OpenGL 4.3
[LazOpenGLCore.git] / dglOpenGL.pas
1 { ============================================================================
2
3        OpenGL 4.4 - Headertranslation
4        Version 4.4a
5        Date : 2014/04/30
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        Containts the translations of glext.h, gl_1_1.h, glu.h and weglext.h.
15        It also contains some helperfunctions that were inspired by those
16        found in Mike Lischke's OpenGL12.pas.
17
18        Copyright (C) DGL-OpenGL2-Portteam
19        All Rights Reserved
20
21        Obtained through:
22        Delphi OpenGL Community(DGL) - www.delphigl.com
23
24        Converted and maintained by DGL's GL2.0-Team :
25          - Sascha Willems             - http://www.saschawillems.de
26          - Steffen Xonna (Lossy eX)   - http://www.dev-center.de
27        Additional input :
28          - Andrey Gruzdev (Mac OS X patch for XE2 / FPC)
29          - Lars Middendorf
30          - Martin Waldegger (Mars)
31          - Benjamin Rosseaux (BeRo)   - http://www.0ok.de
32        Additional thanks:
33            sigsegv (libdl.so)
34
35 ==============================================================================
36  You may retrieve the latest version of this file at the Delphi OpenGL
37  Community home page, located at http://www.delphigl.com/
38
39  The contents of this file are used with permission, subject to
40  the Mozilla Public License Version 1.1 (the "License"); you may
41  not use this file except in compliance with the License. You may
42  obtain a copy of the License at
43  http://www.mozilla.org/MPL/MPL-1.1.html
44
45  Software distributed under the License is distributed on an
46  "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
47  implied. See the License for the specific language governing
48  rights and limitations under the License.
49
50 ==============================================================================
51  History :
52  Version 1.0    Initial Release
53  Version 1.1    Added PPointer in Tpyessection for compatiblity with Delphi
54                 versions lower than 7                                    (SW)
55                 Added a function named RaiseLastOSError including a comment
56                 on how to make it run under Delphi versions lower than 7 (SW)
57                 Added some data types according to the GL-Syntax         (SW)
58  Version 1.2    Fixed some problems with getting the addresses of some
59                 Extensions (e.g. glTexImage3D) where the EXT/ARB did work
60                 but not the core-functions                               (SW)
61  Version 1.3    A second call to ReadimplementationProperties won't
62                 revert to the default libs anymore                       (MW)
63                 Libraries now will be released if necessary              (MW)
64  Version 1.3a   Small fixes for glSlang-functions                        (SW)
65  Version 1.3b   Fixed a small bug with GL_ARB_shader_objects, that lead
66                 lead to that extension not loaded correctly              (SW)
67  Version 1.3c   more GL 1.5 compliance by FOG_COORD_xx and
68                 ARB less VBO and occlusion query routines                (MW)
69  Version 1.3d   Fixed linebreaks (should now be corrected under D5)      (SW)
70  Version 1.4    Changed header to correspond to the OpenGL-Shading
71                 Language specification 1.10 :
72                 - Added new GL_SAMPLER_*-Constants
73                 - Added Constant GL_SHADING_LANGUAGE_VERSION_ARB
74                 - Added Constant GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
75                 - Added Constant GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB  (SW)
76  Version 1.4a   Fixed a missing stdcall for glBindAttribLocationARB      (SW)
77  Version 1.4b   Fixed declaration for glUniform*(f/i)vARB (added count)  (MW)
78                 glCompileShaderARB changed from function to procedure    (MW)
79  Version 1.5    Added support for FreePascal                             (BR)
80                 Added type TGLVectorf3/TGLVector3f                       (SW)
81  Version 1.6    Added Extension GL_EXT_framebuffer_object                (SX)
82  Version 1.7    Added Extension GL_ARB_fragment_program_shadow           (SX)
83                 Added Extension GL_ARB_draw_buffers                      (SX)
84                 Added Extension GL_ARB_texture_rectangle                 (SX)
85                 Added Extension GL_ARB_color_buffer_float                (SX)
86                 Added Extension GL_ARB_half_float_pixel                  (SX)
87                 Added Extension GL_ARB_texture_float                     (SX)
88                 Added Extension GL_ARB_pixel_buffer_object               (SX)
89                 Added Extension GL_EXT_depth_bounds_test                 (SX)
90                 Added Extension GL_EXT_texture_mirror_clamp              (SX)
91                 Added Extension GL_EXT_blend_equation_separate           (SX)
92                 Added Extension GL_EXT_pixel_buffer_object               (SX)
93                 Added Extension GL_EXT_texture_compression_dxt1          (SX)
94                 Added Extension GL_NV_fragment_program_option            (SX)
95                 Added Extension GL_NV_fragment_program2                  (SX)
96                 Added Extension GL_NV_vertex_program2_option             (SX)
97                 Added Extension GL_NV_vertex_program3                    (SX)
98  Version 1.8    Added explicit delegate type definitions                 (LM)
99                 Added .Net 1.1 Support                                   (LM)
100                 Added .Net overloaded functions                          (LM)
101                 Added delayed extension loading and stubs                (LM)
102                 Added automatic InitOpenGL call in CreateRenderingContext(LM)
103                 Added extra Read_* function                              (LM)
104  Version 2.0    fixed some Problem with version string and damn drivers.
105                 String 1.15 identified as OpenGL 1.5 not as OpenGL 1.1   (SX)
106                 Removed unexisting extension GL_ARB_texture_mirror_repeat(SX)
107                 Added Extension WGL_ARB_pixel_format_float               (SX)
108                 Added Extension GL_EXT_stencil_clear_tag                 (SX)
109                 Added Extension GL_EXT_texture_rectangle                 (SX)
110                 Added Extension GL_EXT_texture_edge_clamp                (SX)
111                 Some 1.5 Core Consts added (now completed)               (SX)
112                 gluProject need pointer for not .net                     (SX)
113                 gluUnProject need pointer for not .net                   (SX)
114                 wglUseFontOutlines* need pointer for not .net            (SX)
115                 wglSwapMultipleBuffers need pointer for not .net         (SX)
116                 Bug with wglGetExtensionsStringEXT removed
117                 different type for .net                                  (SX)
118                 Added OpenGL 2.0 Core                                    (SX)
119  Version 2.0.1  fixed some problems with glGetActiveAttrib in 2.0 Core   (SX)
120                 fixes some problems with gluProject                      (SX)
121                 fixes some problems with gluUnProject                    (SX)
122                 fixes some problems with gluTessVertex                   (SX)
123                 fixes some problems with gluLoadSamplingMatrices         (SX)
124  Version 2.1    Removed .NET Support                                     (SX)
125                 Better support for Linux                                 (SX)
126                 Better Codeformation                                     (SX)
127                 Added some more Vector/Matrix types                      (SX)
128                 Added OpenGL 2.1 Core                                    (SX)
129                 Added Extension GL_EXT_packed_depth_stencil              (SX)
130                 Added Extension GL_EXT_texture_sRGB                      (SX)
131                 Added Extension GL_EXT_framebuffer_blit                  (SX)
132                 Added Extension GL_EXT_framebuffer_multisample           (SX)
133                 Added Extension GL_EXT_timer_query                       (SX)
134                 Added Extension GL_EXT_gpu_program_parameters            (SX)
135                 Added Extension GL_EXT_bindable_uniform                  (SX)
136                 Added Extension GL_EXT_draw_buffers2                     (SX)
137                 Added Extension GL_EXT_draw_instanced                    (SX)
138                 Added Extension GL_EXT_framebuffer_sRGB                  (SX)
139                 Added Extension GL_EXT_geometry_shader4                  (SX)
140                 Added Extension GL_EXT_gpu_shader4                       (SX)
141                 Added Extension GL_EXT_packed_float                      (SX)
142                 Added Extension GL_EXT_texture_array                     (SX)
143                 Added Extension GL_EXT_texture_buffer_object             (SX)
144                 Added Extension GL_EXT_texture_compression_latc          (SX)
145                 Added Extension GL_EXT_texture_compression_rgtc          (SX)
146                 Added Extension GL_EXT_texture_integer                   (SX)
147                 Added Extension GL_EXT_texture_shared_exponent           (SX)
148                 Added Extension GL_NV_depth_buffer_float                 (SX)
149                 Added Extension GL_NV_fragment_program4                  (SX)
150                 Added Extension GL_NV_framebuffer_multisample_coverage   (SX)
151                 Added Extension GL_NV_geometry_program4                  (SX)
152                 Added Extension GL_NV_gpu_program4                       (SX)
153                 Added Extension GL_NV_parameter_buffer_object            (SX)
154                 Added Extension GL_NV_transform_feedback                 (SX)
155                 Added Extension GL_NV_vertex_program4                    (SX)
156  Version 3.0    fixed some const of GL_EXT_texture_shared_exponent       (SX)
157                 possible better support for mac                          (SX)
158                 Added OpenGL 3.0 Core                                    (SX)
159                 Added Extension GL_ARB_depth_buffer_float                (SX)
160                 Added Extension GL_ARB_draw_instanced                    (SX)
161                 Added Extension GL_ARB_framebuffer_object                (SX)
162                 Added Extension GL_ARB_framebuffer_sRGB                  (SX)
163                 Added Extension GL_ARB_geometry_shader4                  (SX)
164                 Added Extension GL_ARB_half_float_vertex                 (SX)
165                 Added Extension GL_ARB_instanced_arrays                  (SX)
166                 Added Extension GL_ARB_map_buffer_range                  (SX)
167                 Added Extension GL_ARB_texture_buffer_object             (SX)
168                 Added Extension GL_ARB_texture_compression_rgtc          (SX)
169                 Added Extension GL_ARB_texture_rg                        (SX)
170                 Added Extension GL_ARB_vertex_array_object               (SX)
171                 Added Extension GL_NV_conditional_render                 (SX)
172                 Added Extension GL_NV_present_video                      (SX)
173                 Added Extension GL_EXT_transform_feedback                (SX)
174                 Added Extension GL_EXT_direct_state_access               (SX)
175                 Added Extension GL_EXT_vertex_array_bgra                 (SX)
176                 Added Extension GL_EXT_texture_swizzle                   (SX)
177                 Added Extension GL_NV_explicit_multisample               (SX)
178                 Added Extension GL_NV_transform_feedback2                (SX)
179                 Added Extension WGL_ARB_create_context                   (SX)
180                 Added Extension WGL_NV_present_video                     (SX)
181                 Added Extension WGL_NV_video_out                         (SX)
182                 Added Extension WGL_NV_swap_group                        (SX)
183                 Added Extension WGL_NV_gpu_affinity                      (SX)
184                 Added define DGL_TINY_HEADER to suppress automatic
185                 function loading                                         (SX)
186                 glProcedure renamed to dglGetProcAddress and now it's
187                 visible from outside the unit to custom load functions   (SX)
188                 dglCheckExtension added to check if an extension exists  (SX)
189                 Read_GL_ARB_buffer_object renamed to
190                 Read_GL_ARB_vertex_buffer_object                         (SX)
191  Version 3.0.1  fixed an problem with fpc                                (SX)
192  Version 3.0.2  fixed an problem with WGL_ARB_create_context             (SX)
193  Version 3.2    Functions from GL_VERSION_3_0 where updated              (SX)
194                 Functions from GL_ARB_map_buffer_range where updated     (SX)
195                 Functions from GL_NV_present_video where added           (SX)
196                 Added consts of GL_ARB_instanced_arrays                  (SX)
197                 Defines to identify Delphi was changed (prevent for
198                 feature maintenance)                                     (SX)
199                 Added Extension GL_ATI_meminfo                           (SX)
200                 Added Extension GL_AMD_performance_monitor               (SX)
201                 Added Extension GL_AMD_texture_texture4                  (SX)
202                 Added Extension GL_AMD_vertex_shader_tesselator          (SX)
203                 Added Extension GL_EXT_provoking_vertex                  (SX)
204                 Added Extension WGL_AMD_gpu_association                  (SX)
205                 Added OpenGL 3.1 Core                                    (SX)
206                 All deprecated stuff can be disabled if you undef the
207                 define DGL_DEPRECATED                                    (SX)
208                 Added Extension GL_ARB_uniform_buffer_object             (SX)
209                 Added Extension GL_ARB_compatibility                     (SX)
210                 Added Extension GL_ARB_copy_buffer                       (SX)
211                 Added Extension GL_ARB_shader_texture_lod                (SX)
212                 Remove function from GL_NV_present_video                 (SX)
213                 Added Extension WGL_3DL_stereo_control                   (SX)
214                 Added Extension GL_EXT_texture_snorm                     (SX)
215                 Added Extension GL_AMD_draw_buffers_blend                (SX)
216                 Added Extension GL_APPLE_texture_range                   (SX)
217                 Added Extension GL_APPLE_float_pixels                    (SX)
218                 Added Extension GL_APPLE_vertex_program_evaluators       (SX)
219                 Added Extension GL_APPLE_aux_depth_stencil               (SX)
220                 Added Extension GL_APPLE_object_purgeable                (SX)
221                 Added Extension GL_APPLE_row_bytes                       (SX)
222                 Added OpenGL 3.2 Core                                    (SX)
223                 Added Extension GL_ARB_depth_clamp                       (SX)
224                 Added Extension GL_ARB_draw_elements_base_vertex         (SX)
225                 Added Extension GL_ARB_fragment_coord_conventions        (SX)
226                 Added Extension GL_ARB_provoking_vertex                  (SX)
227                 Added Extension GL_ARB_seamless_cube_map                 (SX)
228                 Added Extension GL_ARB_sync                              (SX)
229                 Added Extension GL_ARB_texture_multisample               (SX)
230                 Added Extension GL_ARB_vertex_array_bgra                 (SX)
231                 Added Extension GL_ARB_draw_buffers_blend                (SX)
232                 Added Extension GL_ARB_sample_shading                    (SX)
233                 Added Extension GL_ARB_texture_cube_map_array            (SX)
234                 Added Extension GL_ARB_texture_gather                    (SX)
235                 Added Extension GL_ARB_texture_query_lod                 (SX)
236                 Added Extension WGL_ARB_create_context_profile           (SX)
237                 Added GLX Core up to Version 1.4                         (SX)
238                 Added Extension GLX_ARB_multisample                      (SX)
239                 Added Extension GLX_ARB_fbconfig_float                   (SX)
240                 Added Extension GLX_ARB_get_proc_address                 (SX)
241                 Added Extension GLX_ARB_create_context                   (SX)
242                 Added Extension GLX_ARB_create_context_profile           (SX)
243                 Added Extension GLX_EXT_visual_info                      (SX)
244                 Added Extension GLX_EXT_visual_rating                    (SX)
245                 Added Extension GLX_EXT_import_context                   (SX)
246                 Added Extension GLX_EXT_fbconfig_packed_float            (SX)
247                 Added Extension GLX_EXT_framebuffer_sRGB                 (SX)
248                 Added Extension GLX_EXT_texture_from_pixmap              (SX)
249  Version 3.2.1  Fixed some problems with Delphi < 6                      (SX)
250  Version 3.2.2  Added Extension GL_APPLE_rgb_422                         (SX)
251                 Added Extension GL_EXT_separate_shader_objects           (SX)
252                 Added Extension GL_NV_video_capture                      (SX)
253                 Added Extension GL_NV_copy_image                         (SX)
254                 Added Extension GL_NV_parameter_buffer_object2           (SX)
255                 Added Extension GL_NV_shader_buffer_load                 (SX)
256                 Added Extension GL_NV_vertex_buffer_unified_memory       (SX)
257                 Added Extension GL_NV_texture_barrier                    (SX)
258                 Variable GL_EXT_texture_snorm will be filled             (SX)
259                 Variable GL_APPLE_row_bytes will be filled               (SX)
260                 Added Extension WGL_NV_video_capture                     (SX)
261                 Added Extension WGL_NV_copy_image                        (SX)
262                 WGL_NV_video_out now named WGL_NV_video_output           (SX)
263                 Added Extension GLX_EXT_swap_control                     (SX)
264  Version 3.2.3  Fixed an Problem with glGetAttribLocation                (SX)
265                 Added const GL_UNIFORM_BUFFER_EXT                        (SX)
266                 Functions of GL_NV_texture_barrier now will be loaded    (SX)
267  Version 4.0    Changes on Extension GL_ARB_texture_gather               (SX)
268                 Changes on Extension GL_NV_shader_buffer_load            (SX)
269                 Added OpenGL 3.3 Core                                    (SX)
270                 Added OpenGL 4.0 Core                                    (SX)
271                 Added Extension GL_AMD_shader_stencil_export             (SX)
272                 Added Extension GL_AMD_seamless_cubemap_per_texture      (SX)
273                 Added Extension GL_ARB_shading_language_include          (SX)
274                 Added Extension GL_ARB_texture_compression_bptc          (SX)
275                 Added Extension GL_ARB_blend_func_extended               (SX)
276                 Added Extension GL_ARB_explicit_attrib_location          (SX)
277                 Added Extension GL_ARB_occlusion_query2                  (SX)
278                 Added Extension GL_ARB_sampler_objects                   (SX)
279                 Added Extension GL_ARB_shader_bit_encoding               (SX)
280                 Added Extension GL_ARB_texture_rgb10_a2ui                (SX)
281                 Added Extension GL_ARB_texture_swizzle                   (SX)
282                 Added Extension GL_ARB_timer_query                       (SX)
283                 Added Extension GL_ARB_vertex_type_2_10_10_10_rev        (SX)
284                 Added Extension GL_ARB_draw_indirect                     (SX)
285                 Added Extension GL_ARB_gpu_shader5                       (SX)
286                 Added Extension GL_ARB_gpu_shader_fp64                   (SX)
287                 Added Extension GL_ARB_shader_subroutine                 (SX)
288                 Added Extension GL_ARB_tessellation_shader               (SX)
289                 Added Extension GL_ARB_texture_buffer_object_rgb32       (SX)
290                 Added Extension GL_ARB_transform_feedback2               (SX)
291                 Added Extension GL_ARB_transform_feedback3               (SX)
292  Version 4.1    Possible fix some strange linux behavior                 (SX)
293                 All function uses GL instead of TGL types                (SX)
294                 GL_AMD_vertex_shader_tesselator will be read now         (SX)
295                 GL_AMD_draw_buffers_blend will be read now               (SX)
296                 Changes on glStencilFuncSeparate (GL_2_0)                (SX)
297                 Changes on GL_VERSION_3_2                                (SX)
298                 Changes on GL_VERSION_3_3                                (SX)
299                 Changes on GL_VERSION_4_0                                (SX)
300                 Changes on GL_ARB_sample_shading                         (SX)
301                 Changes on GL_ARB_texture_cube_map_array                 (SX)
302                 Changes on GL_ARB_gpu_shader5                            (SX)
303                 Changes on GL_ARB_transform_feedback3                    (SX)
304                 Changes on GL_ARB_sampler_objects                        (SX)
305                 Changes on GL_ARB_gpu_shader_fp64                        (SX)
306                 Changes on GL_APPLE_element_array                        (SX)
307                 Changes on GL_APPLE_vertex_array_range                   (SX)
308                 Changes on GL_NV_transform_feedback                      (SX)
309                 Changes on GL_NV_vertex_buffer_unified_memory            (SX)
310                 Changes on GL_EXT_multi_draw_arrays                      (SX)
311                 Changes on GL_EXT_direct_state_access                    (SX)
312                 Changes on GL_AMD_performance_monitor                    (SX)
313                 Changes on GL_AMD_seamless_cubemap_per_texture           (SX)
314                 Changes on GL_EXT_geometry_shader4                       (SX)
315                 Added OpenGL 4.1 Core                                    (SX)
316                 Added Extension GL_ARB_ES2_compatibility                 (SX)
317                 Added Extension GL_ARB_get_program_binary                (SX)
318                 Added Extension GL_ARB_separate_shader_objects           (SX)
319                 Added Extension GL_ARB_shader_precision                  (SX)
320                 Added Extension GL_ARB_vertex_attrib_64bit               (SX)
321                 Added Extension GL_ARB_viewport_array                    (SX)
322                 Added Extension GL_ARB_cl_event                          (SX)
323                 Added Extension GL_ARB_debug_output                      (SX)
324                 Added Extension GL_ARB_robustness                        (SX)
325                 Added Extension GL_ARB_shader_stencil_export             (SX)
326                 Added Extension GL_AMD_conservative_depth                (SX)
327                 Added Extension GL_EXT_shader_image_load_store           (SX)
328                 Added Extension GL_EXT_vertex_attrib_64bit               (SX)
329                 Added Extension GL_NV_gpu_program5                       (SX)
330                 Added Extension GL_NV_gpu_shader5                        (SX)
331                 Added Extension GL_NV_shader_buffer_store                (SX)
332                 Added Extension GL_NV_tessellation_program5              (SX)
333                 Added Extension GL_NV_vertex_attrib_integer_64bit        (SX)
334                 Added Extension GL_NV_multisample_coverage               (SX)
335                 Added Extension GL_AMD_name_gen_delete                   (SX)
336                 Added Extension GL_AMD_debug_output                      (SX)
337                 Added Extension GL_NV_vdpau_interop                      (SX)
338                 Added Extension GL_AMD_transform_feedback3_lines_triangles (SX)
339                 Added Extension GL_AMD_depth_clamp_separate              (SX)
340                 Added Extension GL_EXT_texture_sRGB_decode               (SX)
341                 Added Extension WGL_ARB_framebuffer_sRGB                 (SX)
342                 Added Extension WGL_ARB_create_context_robustness        (SX)
343                 Added Extension WGL_EXT_create_context_es2_profile       (SX)
344                 Added Extension WGL_NV_multisample_coverage              (SX)
345                 Added Extension GLX_ARB_vertex_buffer_object             (SX)
346                 Added Extension GLX_ARB_framebuffer_sRGB                 (SX)
347                 Added Extension GLX_ARB_create_context_robustness        (SX)
348                 Added Extension GLX_EXT_create_context_es2_profile       (SX)
349  Version 4.1a   Fix for dglGetProcAddress with FPC and linux (def param) (SW)
350  Version 4.2    Added OpenGL 4.2 Core                                    (SW)
351                 Added Extension GL_ARB_base_instance                     (SW)
352                 Added Extension GL_ARB_shading_language_420pack          (SW)
353                 Added Extension GL_ARB_transform_feedback_instanced      (SW)
354                 Added Extension GL_ARB_compressed_texture_pixel_storage  (SW)
355                 Added Extension GL_ARB_conservative_depth                (SW)
356                 Added Extension GL_ARB_internalformat_query              (SW)
357                 Added Extension GL_ARB_map_buffer_alignment              (SW)
358                 Added Extension GL_ARB_shader_atomic_counters            (SW)
359                 Added Extension GL_ARB_shader_image_load_store           (SW)
360                 Added Extension GL_ARB_shading_language_packing          (SW)
361                 Added Extension GL_ARB_texture_storage                   (SW)
362                 Added Extension WGL_NV_DX_interop                        (SW)
363                 Added Define for WGL_EXT_create_context_es2_profile      (SW)
364  Version 4.2a   Added Mac OS X patch by Andrey Gruzdev                   (SW)
365  Version 4.3    Added OpenGL 4.3 Core                                    (SW)
366                                                         Added GL_ARB_arrays_of_arrays                                    (SW)
367                                                         Added GL_ARB_fragment_layer_viewport                     (SW)
368                                                         Added GL_ARB_shader_image_size                           (SW)
369                                                         Added GL_ARB_ES3_compatibility                           (SW)
370                                                         Added GL_ARB_clear_buffer_object                         (SW)
371                                                         Added GL_ARB_compute_shader                              (SW)
372                                                         Added GL_ARB_copy_image                                  (SW)
373                                                         Added GL_KHR_debug                                       (SW)
374                                                         Added GL_ARB_explicit_uniform_location,                  (SW)
375                                                         Added GL_ARB_framebuffer_no_attachments                  (SW)
376                                                         Added GL_ARB_internalformat_query2                       (SW)
377                                                         Added GL_ARB_invalidate_subdata                          (SW)
378                                                         Added GL_ARB_multi_draw_indirect                         (SW)
379                                                         Added GL_ARB_program_interface_query                     (SW)
380                                                         Added GL_ARB_robust_buffer_access_behavior               (SW)
381                                                         Added GL_ARB_shader_storage_buffer_object                (SW)
382                                                         Added GL_ARB_stencil_texturing                           (SW)
383                                                         Added GL_ARB_texture_buffer_range                        (SW)
384                                                         Added GL_ARB_texture_query_levels                        (SW)
385                                                         Added GL_ARB_texture_storage_multisample                 (SW)
386                                                         Added GL_ARB_texture_view                                (SW)
387                                                         Added GL_ARB_vertex_attrib_binding                       (SW)
388                 Added new vendor-specific extensions                                                                             (SW)
389                                                                 Added GL_NV_path_rendering                               (SW)
390                                                         Added GL_AMD_pinned_memory                               (SW)
391                 Added GL_AMD_stencil_operation_extended                  (SW)
392                 Added GL_AMD_vertex_shader_viewport_index                (SW)
393                 Added GL_AMD_vertex_shader_layer                         (SW)
394                 Added GL_NV_bindless_texture                             (SW)
395                 Added GL_NV_shader_atomic_float                          (SW)
396                 Added GL_AMD_query_buffer_object                         (SW)
397                 Added CreateRenderingContextVersion                      (SW)
398  Version 4.4    Added ARB_buffer_storage                                 (SW)
399                 Added ARB_clear_texture extension                        (SW)
400                 Added ARB_enhanced_layouts extension                     (SW)
401                 Added ARB_multi_bind extension                           (SW)
402                 Added ARB_query_buffer_object extension                  (SW)
403                 Added ARB_texture_mirror_clamp_to_edge extension         (SW)
404                 Added ARB_texture_stencil8 extension                     (SW)
405                 Added ARB_vertex_type_10f_11f_11f_rev extension          (SW)
406                 Added MAX_VERTEX_ATTRIB_STRIDE stat                      (SW)
407                 Added missing functions for GL_EXT_direct_state_access   (SW)
408                 GL3.0+ uses non-deprecated way of getting extensions
409                 (thanks to frenK)                                                                                (SW)
410                 Added missing cdecl for TglXGetVisualFromFBConfig        (SW)
411  Version 4.4a   Fixed parameter type for glGetProgramInfoLog                     (SW)
412                                 (thanks to glAwesome)
413
414
415 ==============================================================================
416  Header based on glext.h  rev 87 (2012-08-06)
417  Header based on wglext.h rev 24 (2012/01/04)
418  Header based on glxext.h rev 33 (2012/02/29)  (only Core/ARB/EXT)
419
420  This is an important notice for maintaining. Dont remove it. And make sure
421  to keep it up to date
422 ============================================================================== }
423
424 {$define DGL_DEPRECATED}
425 {
426   This define defines if the header should use deprecated ARB stuff or not.
427   per Default the Header use deprecated Stuff.
428 }
429
430
431 {.$define DGL_TINY_HEADER}
432 {
433   If you enable the define DGL_TINY_HEADER no function automatically will be loaded if you
434   call ActivateRenderingContext. This may some bit faster and the smart linker can delete
435   all non used functions. This will reduce the filesize of your binary file. But in this
436   case you have to load the functions by yourself. There are two ways to do this.
437
438   1. You can load whole extension by calling the func Read_Extensionname. But if you do
439      this it's possible to load functions you dont use. So you have the same "problem"
440      like before. But it's only an bit smaler.
441      > Read_GL_ARB_multitexture;
442
443   2. You are able to load only the functions you exactly need. In this case you are able
444      to use the variables of the dglOpenGL.pas. So you only need to load the functions
445      and you can use the header like before.
446      To do this you have to created and activated an opengl context and than you can load
447      the needed functions.
448      > ActivateRenderingContext(fDC, fRC);
449      > glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
450      > glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
451
452      So only the function "glActiveTextureARB" and "glMultiTexCoord2fARB" will be loaded.
453
454
455   Please notice that the extension variables won't be loaded if this define is active. But
456   you can call dglCheckExtension to check if any extension exists. You can assign them to
457   the variables of the dglOpenGL.pas so all code they use this will find them.
458
459   > GL_ARB_shading_language_100 := dglCheckExtension('GL_ARB_shading_language_100');
460 }
461
462
463 unit dglOpenGL;
464
465 interface
466
467 // defines to configure freepascal
468 {$IFDEF FPC}
469   {$MODE Delphi}
470
471   {$IFNDEF WINDOWS}
472     {$LINKLIB c}
473   {$ENDIF}
474 {$ENDIF}
475
476 // known delphi versions
477 {$IFNDEF FPC}       // if freepascal isnt defined
478   {$IFDEF VER140}   // Delphi 6
479     {$DEFINE DELPHI6_AND_DOWN}
480   {$ENDIF}
481
482   {$IFDEF VER130}   // Delphi 5
483     {$DEFINE DELPHI6_AND_DOWN}
484   {$ENDIF}
485
486   {$IFDEF VER120}   // Delphi 4
487     {$DEFINE DELPHI6_AND_DOWN}
488   {$ENDIF}
489
490   {$IFDEF VER110}   // C++ Builder 3
491     {$DEFINE DELPHI6_AND_DOWN}
492   {$ENDIF}
493
494   {$IFDEF VER100}   // Delphi 3
495     {$DEFINE DELPHI6_AND_DOWN}
496   {$ENDIF}
497 {$ENDIF}
498
499 // Options for Delphi < 5
500 {$IFDEF DELPHI6_AND_DOWN}
501   {$A+}
502 {$ELSE}
503   {$A4}
504 {$ENDIF}
505
506 // generell options
507 {$H+,O+,X+}
508
509 // detecting Windows
510 {$IFDEF Win32}          // Delphi and fpc of 32 Bit Windows
511   {$DEFINE DGL_WIN}
512 {$ENDIF}
513
514 {$IFDEF Win64}          // Delphi and fpc of 32 Bit Windows
515   {$DEFINE DGL_WIN}
516 {$ENDIF}
517
518 // detecting Linux
519 {$IFDEF linux}          // Linux
520   {$DEFINE DGL_LINUX}
521 {$ENDIF}
522
523 {$IFDEF DARWIN}  // Mac OS X and FPC
524    {$DEFINE DGL_MAC}
525 {$ENDIF}   
526
527 {$IFDEF DELPHI}  // Mac OS X add Delphi 
528 {$IFDEF MACOS}
529    {$DEFINE DGL_MAC}
530 {$ENDIF}   
531 {$ENDIF}   
532
533
534 // detecting 64 Bit CPU
535 {$IFDEF CPU64}          // fpc on 64 bit cpus
536   {$DEFINE DGL_64BIT}   // dgl define for 64 bit
537 {$ENDIF}
538
539
540
541 uses
542   {$IFDEF FPC}{$IFDEF DARWIN}dynlibs,{$ENDIF}{$ENDIF}  // LoadLibrary functions 
543   SysUtils
544   {$IFDEF DGL_WIN}, Windows{$ENDIF}
545   {$IFDEF DGL_LINUX}, X, XLib, XUtil{$ENDIF}
546   ;
547
548 type
549   // Needed for Delphi 6 and less (defined in system.pas for Delphi 7)
550   PPointer = ^Pointer;
551   PCardinal = ^Cardinal;
552
553   GLenum = Cardinal;
554   GLboolean = BYTEBOOL;
555   GLbitfield = Cardinal;
556   GLbyte = Shortint;
557   GLshort = SmallInt;
558   GLint = Integer;
559   GLsizei = Integer;
560   GLubyte = Byte;
561   GLushort = Word;
562   GLuint = Cardinal;
563   GLfloat = Single;
564   GLclampf = Single;
565   GLdouble = Double;
566   GLclampd = Double;
567   GLvoid = Pointer;
568   GLint64 = Int64;
569   GLuint64 = {$IFDEF DELPHI6_AND_DOWN} Int64 {$ELSE} UInt64 {$ENDIF};
570   
571   TGLenum = GLenum;
572   TGLboolean = GLboolean;
573   TGLbitfield = GLbitfield;
574   TGLbyte = GLbyte;
575   TGLshort = GLshort;
576   TGLint = GLint;
577   TGLsizei = GLsizei;
578   TGLubyte = GLubyte;
579   TGLushort = GLushort;
580   TGLuint = GLuint;
581   TGLfloat = GLfloat;
582   TGLclampf = GLclampf;
583   TGLdouble = GLdouble;
584   TGLclampd = GLclampd;
585   TGLvoid = GLvoid;
586   TGLint64 = GLint64;
587   TGLuint64 = GLuint64;
588
589   PGLboolean = ^GLboolean;
590   PGLbyte = ^GLbyte;
591   PGLshort = ^GLshort;
592   PGLint = ^GLint;
593   PGLsizei = ^GLsizei;
594   PGLubyte = ^GLubyte;
595   PGLushort = ^GLushort;
596   PGLuint = ^GLuint;
597   PGLclampf = ^GLclampf;
598   PGLfloat = ^GLfloat;
599   PGLdouble = ^GLdouble;
600   PGLclampd = ^GLclampd;
601   PGLenum = ^GLenum;
602   PGLvoid = Pointer;
603   PPGLvoid = ^PGLvoid;
604   PGLint64 = ^GLint64;
605   PGLuint64 = ^GLuint64;
606
607   // GL_NV_half_float
608   GLhalfNV = WORD;
609   TGLhalfNV = GLhalfNV;
610   PGLhalfNV = ^GLhalfNV;
611
612   // GL_ARB_shader_objects
613   PGLHandleARB = ^GLHandleARB;
614   GLHandleARB = Integer;
615   GLcharARB = AnsiChar;
616   PGLcharARB = PAnsiChar;
617   PPGLcharARB = ^PGLcharARB;
618
619   // GL_VERSION_1_5
620   GLintptr = GLint;
621   GLsizeiptr = GLsizei;
622
623   // GL_ARB_vertex_buffer_object
624   GLintptrARB = GLint;
625   GLsizeiptrARB = GLsizei;
626
627   // GL_VERSION_2_0
628   GLHandle = Integer;
629   PGLchar = PAnsiChar;
630   PPGLchar = ^PGLChar;
631
632   // GL_EXT_timer_query
633   GLint64EXT = Int64;
634   TGLint64EXT = GLint64EXT;
635   PGLint64EXT = ^GLint64EXT;
636
637   GLuint64EXT = GLuint64;
638   TGLuint64EXT = GLuint64EXT;
639   PGLuint64EXT = ^GLuint64EXT;
640
641   // WGL_ARB_pbuffer
642   HPBUFFERARB = THandle;
643
644   // WGL_EXT_pbuffer
645   HPBUFFEREXT = THandle;
646
647   // WGL_NV_present_video
648   PHVIDEOOUTPUTDEVICENV = ^HVIDEOOUTPUTDEVICENV;
649   HVIDEOOUTPUTDEVICENV = THandle;
650
651   // WGL_NV_video_output
652   PHPVIDEODEV = ^HPVIDEODEV;
653   HPVIDEODEV = THandle;
654
655   // WGL_NV_gpu_affinity
656   PHPGPUNV = ^HPGPUNV;
657   PHGPUNV = ^HGPUNV;
658
659   // WGL_NV_video_capture
660   HVIDEOINPUTDEVICENV = THandle;
661   PHVIDEOINPUTDEVICENV = ^HVIDEOINPUTDEVICENV;
662   
663   HPGPUNV = THandle;
664   HGPUNV = THandle;
665
666   // GL_ARB_sync
667   GLsync = Pointer;
668
669   // GL_ARB_cl_event
670   { These incomplete types let us declare types compatible with OpenCL's cl_context and cl_event }
671   _cl_context = record end;
672   _cl_event = record end;
673   p_cl_context = ^_cl_context;
674   p_cl_event = ^_cl_event;
675
676   // GL_ARB_debug_output
677   TglDebugProcARB = procedure (source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
678
679   // GL_AMD_debug_output
680   TglDebugProcAMD = procedure (id: GLuint; category: GLenum; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
681
682         // (4.3) GL_KHR_debug
683   TglDebugProc = procedure(source : GLEnum; type_ : GLEnum; id : GLUInt; severity : GLUInt; length : GLsizei; const message_ : PGLCHar; userParam : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
684
685   // GL_NV_vdpau_interop
686   GLvdpauSurfaceNV = GLintptr;
687   PGLvdpauSurfaceNV = ^GLvdpauSurfaceNV;
688   
689   
690   // GLX
691   {$IFDEF DGL_LINUX}
692     GLXContext = Pointer;
693     GLXContextID = TXID;
694     GLXDrawable = TXID;
695     GLXFBConfig = Pointer;
696     GLXPbuffer = TXID;
697     GLXPixmap = TXID;
698     GLXWindow = TXID;
699
700     Window = TXID;
701     Colormap = TXID;
702     Pixmap = TXID;
703     Font = TXID;
704   {$ENDIF}
705
706   // Datatypes corresponding to GL's types TGL(name)(type)(count)
707   TGLVectorub2 = array[0..1] of GLubyte;
708   TGLVectori2  = array[0..1] of GLint;
709   TGLVectorf2  = array[0..1] of GLfloat;
710   TGLVectord2  = array[0..1] of GLdouble;
711   TGLVectorp2  = array[0..1] of Pointer;
712
713   TGLVectorub3 = array[0..2] of GLubyte;
714   TGLVectori3  = array[0..2] of GLint;
715   TGLVectorf3  = array[0..2] of GLfloat;
716   TGLVectord3  = array[0..2] of GLdouble;
717   TGLVectorp3  = array[0..2] of Pointer;
718
719   TGLVectorub4 = array[0..3] of GLubyte;
720   TGLVectori4  = array[0..3] of GLint;
721   TGLVectorf4  = array[0..3] of GLfloat;
722   TGLVectord4  = array[0..3] of GLdouble;
723   TGLVectorp4  = array[0..3] of Pointer;
724
725   TGLArrayf4 = TGLVectorf4;
726   TGLArrayf3 = TGLVectorf3;
727   TGLArrayd3 = TGLVectord3;
728   TGLArrayi4 = TGLVectori4;
729   TGLArrayp4 = TGLVectorp4;
730
731   TGlMatrixub3 = array[0..2, 0..2] of GLubyte;
732   TGlMatrixi3  = array[0..2, 0..2] of GLint;
733   TGLMatrixf3  = array[0..2, 0..2] of GLfloat;
734   TGLMatrixd3  = array[0..2, 0..2] of GLdouble;
735
736   TGlMatrixub4 = array[0..3, 0..3] of GLubyte;
737   TGlMatrixi4  = array[0..3, 0..3] of GLint;
738   TGLMatrixf4  = array[0..3, 0..3] of GLfloat;
739   TGLMatrixd4  = array[0..3, 0..3] of GLdouble;
740
741   TGLVector3f = TGLVectorf3;
742
743   // Datatypes corresponding to OpenGL12.pas for easy porting
744   TVector3d = TGLVectord3;
745
746   TVector4i = TGLVectori4;
747   TVector4f = TGLVectorf4;
748   TVector4p = TGLVectorp4;
749
750   TMatrix4f = TGLMatrixf4;
751   TMatrix4d = TGLMatrixd4;
752
753   PGLMatrixd4 = ^TGLMatrixd4;
754   PVector4i = ^TVector4i;
755
756
757
758 {$IFDEF FPC}
759   TRect = packed record
760     Left, Top, Right, Bottom: Longint;
761   end;
762 {$ENDIF}
763
764
765   PGPU_DEVICE = ^GPU_DEVICE;
766   GPU_DEVICE = record
767     cb: DWORD;
768     DeviceName: array [0..31] of AnsiChar;
769     DeviceString: array [0..127] of AnsiChar;
770     Flags: DWORD;
771     rcVirtualScreen: TRect;
772   end;
773   
774
775 type
776 {$IFDEF FPC}
777   {$IFDEF DGL_WIN}
778     PWGLSwap = ^TWGLSwap;
779     {$EXTERNALSYM _WGLSWAP}
780       _WGLSWAP = packed record
781         hdc: HDC;
782         uiFlags: UINT;
783       end;
784
785     TWGLSwap = _WGLSWAP;
786   {$EXTERNALSYM WGLSWAP}
787     WGLSWAP = _WGLSWAP;
788
789   {$ENDIF}
790 {$ENDIF}
791
792   // GLU types
793   TGLUNurbs = record
794   end;
795   TGLUQuadric = record
796   end;
797   TGLUTesselator = record
798   end;
799   PGLUNurbs = ^TGLUNurbs;
800   PGLUQuadric = ^TGLUQuadric;
801   PGLUTesselator = ^TGLUTesselator;
802   // backwards compatibility
803   TGLUNurbsObj = TGLUNurbs;
804   TGLUQuadricObj = TGLUQuadric;
805   TGLUTesselatorObj = TGLUTesselator;
806   TGLUTriangulatorObj = TGLUTesselator;
807   PGLUNurbsObj = PGLUNurbs;
808   PGLUQuadricObj = PGLUQuadric;
809   PGLUTesselatorObj = PGLUTesselator;
810   PGLUTriangulatorObj = PGLUTesselator;
811
812   // GLUQuadricCallback
813   TGLUQuadricErrorProc = procedure(errorCode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
814   // GLUTessCallback
815   TGLUTessBeginProc = procedure(AType: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
816   TGLUTessEdgeFlagProc = procedure(Flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
817   TGLUTessVertexProc = procedure(VertexData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
818   TGLUTessEndProc = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
819   TGLUTessErrorProc = procedure(ErrNo: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
820   TGLUTessCombineProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
821   TGLUTessBeginDataProc = procedure(AType: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
822   TGLUTessEdgeFlagDataProc = procedure(Flag: GLboolean; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
823   TGLUTessVertexDataProc = procedure(VertexData: Pointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
824   TGLUTessEndDataProc = procedure(UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
825   TGLUTessErrorDataProc = procedure(ErrNo: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
826   TGLUTessCombineDataProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
827   // GLUNurbsCallback
828   TGLUNurbsErrorProc = procedure(ErrorCode: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
829
830 var
831   GL_VERSION_1_0,
832   GL_VERSION_1_1,
833   GL_VERSION_1_2,
834   GL_VERSION_1_3,
835   GL_VERSION_1_4,
836   GL_VERSION_1_5,
837   GL_VERSION_2_0,
838   GL_VERSION_2_1,
839   GL_VERSION_3_0,
840   GL_VERSION_3_1,
841   GL_VERSION_3_2,
842   GL_VERSION_3_3,
843   GL_VERSION_4_0,
844   GL_VERSION_4_1,
845   GL_VERSION_4_2,
846   GL_VERSION_4_3,
847   GL_VERSION_4_4,
848   GLU_VERSION_1_1,
849   GLU_VERSION_1_2,
850   GLU_VERSION_1_3,
851   GL_3DFX_multisample,
852   GL_3DFX_tbuffer,
853   GL_3DFX_texture_compression_FXT1,
854   GL_APPLE_client_storage,
855   GL_APPLE_element_array,
856   GL_APPLE_fence,
857   GL_APPLE_specular_vector,
858   GL_APPLE_transform_hint,
859   GL_APPLE_vertex_array_object,
860   GL_APPLE_vertex_array_range,
861   GL_APPLE_ycbcr_422,
862   GL_APPLE_texture_range,
863   GL_APPLE_float_pixels,
864   GL_APPLE_vertex_program_evaluators,
865   GL_APPLE_aux_depth_stencil,
866   GL_APPLE_object_purgeable,
867   GL_APPLE_row_bytes,
868   GL_APPLE_rgb_422,
869   GL_ARB_depth_texture,
870   GL_ARB_fragment_program,
871   GL_ARB_imaging,
872   GL_ARB_matrix_palette,
873   GL_ARB_multisample,
874   GL_ARB_multitexture,
875   GL_ARB_point_parameters,
876   GL_ARB_shadow,
877   GL_ARB_shadow_ambient,
878   GL_ARB_texture_border_clamp,
879   GL_ARB_texture_compression,
880   GL_ARB_texture_cube_map,
881   GL_ARB_texture_env_add,
882   GL_ARB_texture_env_combine,
883   GL_ARB_texture_env_crossbar,
884   GL_ARB_texture_env_dot3,
885   GL_ARB_texture_mirrored_repeat,
886   GL_ARB_transpose_matrix,
887   GL_ARB_vertex_blend,
888   GL_ARB_vertex_buffer_object,
889   GL_ARB_vertex_program,
890   GL_ARB_window_pos,
891   GL_ARB_shader_objects,
892   GL_ARB_vertex_shader,
893   GL_ARB_fragment_shader,
894   GL_ARB_shading_language_100,
895   GL_ARB_occlusion_query,
896   GL_ARB_texture_non_power_of_two,
897   GL_ARB_point_sprite,
898   GL_ARB_fragment_program_shadow,
899   GL_ARB_draw_buffers,
900   GL_ARB_texture_rectangle,
901   GL_ARB_color_buffer_float,
902   GL_ARB_half_float_pixel,
903   GL_ARB_texture_float,
904   GL_ARB_pixel_buffer_object,
905   GL_ARB_depth_buffer_float,
906   GL_ARB_draw_instanced,
907   GL_ARB_framebuffer_object,
908   GL_ARB_framebuffer_sRGB,
909   GL_ARB_geometry_shader4,
910   GL_ARB_half_float_vertex,
911   GL_ARB_instanced_arrays,
912   GL_ARB_map_buffer_range,
913   GL_ARB_texture_buffer_object,
914   GL_ARB_texture_compression_rgtc,
915   GL_ARB_texture_rg,
916   GL_ARB_vertex_array_object,
917   GL_ARB_uniform_buffer_object,
918   GL_ARB_compatibility,
919   GL_ARB_copy_buffer,
920   GL_ARB_shader_texture_lod,
921   GL_ARB_depth_clamp,
922   GL_ARB_draw_elements_base_vertex,
923   GL_ARB_fragment_coord_conventions,
924   GL_ARB_provoking_vertex,
925   GL_ARB_seamless_cube_map,
926   GL_ARB_sync,
927   GL_ARB_texture_multisample,
928   GL_ARB_vertex_array_bgra,
929   GL_ARB_draw_buffers_blend,
930   GL_ARB_sample_shading,
931   GL_ARB_texture_cube_map_array,
932   GL_ARB_texture_gather,
933   GL_ARB_texture_query_lod,
934   GL_ARB_shading_language_include,
935   GL_ARB_texture_compression_bptc,
936   GL_ARB_blend_func_extended,
937   GL_ARB_explicit_attrib_location,
938   GL_ARB_occlusion_query2,
939   GL_ARB_sampler_objects,
940   GL_ARB_shader_bit_encoding,
941   GL_ARB_texture_rgb10_a2ui,
942   GL_ARB_texture_swizzle,
943   GL_ARB_timer_query,
944   GL_ARB_vertex_type_2_10_10_10_rev,
945   GL_ARB_draw_indirect,
946   GL_ARB_gpu_shader5,
947   GL_ARB_gpu_shader_fp64,
948   GL_ARB_shader_subroutine,
949   GL_ARB_tessellation_shader,
950   GL_ARB_texture_buffer_object_rgb32,
951   GL_ARB_transform_feedback2,
952   GL_ARB_transform_feedback3,
953   GL_ARB_ES2_compatibility,
954   GL_ARB_get_program_binary,
955   GL_ARB_separate_shader_objects,
956   GL_ARB_shader_precision,
957   GL_ARB_vertex_attrib_64bit,
958   GL_ARB_viewport_array,
959
960   // GL 4.2
961     GL_ARB_base_instance,
962     GL_ARB_shading_language_420pack,
963     GL_ARB_transform_feedback_instanced,
964     GL_ARB_compressed_texture_pixel_storage,
965     GL_ARB_conservative_depth,
966     GL_ARB_internalformat_query,
967     GL_ARB_map_buffer_alignment,
968     GL_ARB_shader_atomic_counters,
969     GL_ARB_shader_image_load_store,
970     GL_ARB_shading_language_packing,
971     GL_ARB_texture_storage,
972   // END GL 4.2
973
974   // GL 4.3
975     GL_ARB_arrays_of_arrays,
976     GL_ARB_fragment_layer_viewport,
977     GL_ARB_shader_image_size,
978     GL_ARB_ES3_compatibility,
979     GL_ARB_clear_buffer_object,
980     GL_ARB_compute_shader,
981     GL_ARB_copy_image,
982     GL_KHR_debug,
983     GL_ARB_explicit_uniform_location,
984     GL_ARB_framebuffer_no_attachments,
985     GL_ARB_internalformat_query2,
986     GL_ARB_invalidate_subdata,
987     GL_ARB_multi_draw_indirect,
988     GL_ARB_program_interface_query,
989     GL_ARB_robust_buffer_access_behavior,
990     GL_ARB_shader_storage_buffer_object,
991     GL_ARB_stencil_texturing,
992     GL_ARB_texture_buffer_range,
993     GL_ARB_texture_query_levels,
994     GL_ARB_texture_storage_multisample,
995     GL_ARB_texture_view,
996     GL_ARB_vertex_attrib_binding,
997     GL_NV_path_rendering,
998     GL_AMD_pinned_memory,
999     GL_AMD_stencil_operation_extended,
1000     GL_AMD_vertex_shader_viewport_index,
1001     GL_AMD_vertex_shader_layer,
1002     GL_NV_bindless_texture,
1003     GL_NV_shader_atomic_float,
1004     GL_AMD_query_buffer_object,
1005   // END GL 4.3
1006
1007   // GL 4.4
1008     GL_ARB_buffer_storage,
1009     GL_ARB_clear_texture,
1010     GL_ARB_enhanced_layouts,
1011     GL_ARB_multi_bind,
1012     GL_ARB_query_buffer_object,
1013     GL_ARB_texture_mirror_clamp_to_edge,
1014     GL_ARB_texture_stencil8,
1015     GL_ARB_vertex_type_10f_11f_11f_rev,
1016   // END 4.4
1017
1018   GL_ARB_cl_event,
1019   GL_ARB_debug_output,
1020   GL_ARB_robustness,
1021   GL_ARB_shader_stencil_export,
1022   GL_ATI_draw_buffers,
1023   GL_ATI_element_array,
1024   GL_ATI_envmap_bumpmap,
1025   GL_ATI_fragment_shader,
1026   GL_ATI_map_object_buffer,
1027   GL_ATI_pn_triangles,
1028   GL_ATI_separate_stencil,
1029   GL_ATI_text_fragment_shader,
1030   GL_ATI_texture_env_combine3,
1031   GL_ATI_texture_float,
1032   GL_ATI_texture_mirror_once,
1033   GL_ATI_vertex_array_object,
1034   GL_ATI_vertex_attrib_array_object,
1035   GL_ATI_vertex_streams,
1036   GL_ATI_meminfo,
1037   GL_AMD_performance_monitor,
1038   GL_AMD_texture_texture4,
1039   GL_AMD_vertex_shader_tesselator,
1040   GL_AMD_draw_buffers_blend,
1041   GL_AMD_shader_stencil_export,
1042   GL_AMD_seamless_cubemap_per_texture,
1043   GL_AMD_conservative_depth,
1044   GL_AMD_name_gen_delete,
1045   GL_AMD_debug_output,
1046   GL_AMD_transform_feedback3_lines_triangles,
1047   GL_AMD_depth_clamp_separate,
1048   GL_EXT_422_pixels,
1049   GL_EXT_abgr,
1050   GL_EXT_bgra,
1051   GL_EXT_blend_color,
1052   GL_EXT_blend_func_separate,
1053   GL_EXT_blend_logic_op,
1054   GL_EXT_blend_minmax,
1055   GL_EXT_blend_subtract,
1056   GL_EXT_clip_volume_hint,
1057   GL_EXT_cmyka,
1058   GL_EXT_color_matrix,
1059   GL_EXT_color_subtable,
1060   GL_EXT_compiled_vertex_array,
1061   GL_EXT_convolution,
1062   GL_EXT_coordinate_frame,
1063   GL_EXT_copy_texture,
1064   GL_EXT_cull_vertex,
1065   GL_EXT_draw_range_elements,
1066   GL_EXT_fog_coord,
1067   GL_EXT_framebuffer_object,
1068   GL_EXT_histogram,
1069   GL_EXT_index_array_formats,
1070   GL_EXT_index_func,
1071   GL_EXT_index_material,
1072   GL_EXT_index_texture,
1073   GL_EXT_light_texture,
1074   GL_EXT_misc_attribute,
1075   GL_EXT_multi_draw_arrays,
1076   GL_EXT_multisample,
1077   GL_EXT_packed_pixels,
1078   GL_EXT_paletted_texture,
1079   GL_EXT_pixel_transform,
1080   GL_EXT_pixel_transform_color_table,
1081   GL_EXT_point_parameters,
1082   GL_EXT_polygon_offset,
1083   GL_EXT_rescale_normal,
1084   GL_EXT_secondary_color,
1085   GL_EXT_separate_specular_color,
1086   GL_EXT_shadow_funcs,
1087   GL_EXT_shared_texture_palette,
1088   GL_EXT_stencil_two_side,
1089   GL_EXT_stencil_wrap,
1090   GL_EXT_subtexture,
1091   GL_EXT_texture,
1092   GL_EXT_texture3D,
1093   GL_EXT_texture_compression_s3tc,
1094   GL_EXT_texture_cube_map,
1095   GL_EXT_texture_edge_clamp,
1096   GL_EXT_texture_env_add,
1097   GL_EXT_texture_env_combine,
1098   GL_EXT_texture_env_dot3,
1099   GL_EXT_texture_filter_anisotropic,
1100   GL_EXT_texture_lod_bias,
1101   GL_EXT_texture_object,
1102   GL_EXT_texture_perturb_normal,
1103   GL_EXT_texture_rectangle,
1104   GL_EXT_vertex_array,
1105   GL_EXT_vertex_shader,
1106   GL_EXT_vertex_weighting,
1107   GL_EXT_depth_bounds_test,
1108   GL_EXT_texture_mirror_clamp,
1109   GL_EXT_blend_equation_separate,
1110   GL_EXT_pixel_buffer_object,
1111   GL_EXT_texture_compression_dxt1,
1112   GL_EXT_stencil_clear_tag,
1113   GL_EXT_packed_depth_stencil,
1114   GL_EXT_texture_sRGB,
1115   GL_EXT_framebuffer_blit,
1116   GL_EXT_framebuffer_multisample,
1117   GL_EXT_timer_query,
1118   GL_EXT_gpu_program_parameters,
1119   GL_EXT_bindable_uniform,
1120   GL_EXT_draw_buffers2,
1121   GL_EXT_draw_instanced,
1122   GL_EXT_framebuffer_sRGB,
1123   GL_EXT_geometry_shader4,
1124   GL_EXT_gpu_shader4,
1125   GL_EXT_packed_float,
1126   GL_EXT_texture_array,
1127   GL_EXT_texture_buffer_object,
1128   GL_EXT_texture_compression_latc,
1129   GL_EXT_texture_compression_rgtc,
1130   GL_EXT_texture_integer,
1131   GL_EXT_texture_shared_exponent,
1132   GL_EXT_transform_feedback,
1133   GL_EXT_direct_state_access,
1134   GL_EXT_vertex_array_bgra,
1135   GL_EXT_texture_swizzle,
1136   GL_EXT_provoking_vertex,
1137   GL_EXT_texture_snorm,
1138   GL_EXT_separate_shader_objects,
1139   GL_EXT_shader_image_load_store,
1140   GL_EXT_vertex_attrib_64bit,
1141   GL_EXT_texture_sRGB_decode,
1142   GL_FfdMaskSGIX,
1143   GL_HP_convolution_border_modes,
1144   GL_HP_image_transform,
1145   GL_HP_occlusion_test,
1146   GL_HP_texture_lighting,
1147   GL_IBM_cull_vertex,
1148   GL_IBM_multimode_draw_arrays,
1149   GL_IBM_rasterpos_clip,
1150   GL_IBM_texture_mirrored_repeat,
1151   GL_IBM_vertex_array_lists,
1152   GL_INGR_blend_func_separate,
1153   GL_INGR_color_clamp,
1154   GL_INGR_interlace_read,
1155   GL_INGR_palette_buffer,
1156   GL_INTEL_parallel_arrays,
1157   GL_INTEL_texture_scissor,
1158   GL_MESA_resize_buffers,
1159   GL_MESA_window_pos,
1160   GL_NV_blend_square,
1161   GL_NV_copy_depth_to_color,
1162   GL_NV_depth_clamp,
1163   GL_NV_evaluators,
1164   GL_NV_fence,
1165   GL_NV_float_buffer,
1166   GL_NV_fog_distance,
1167   GL_NV_fragment_program,
1168   GL_NV_half_float,
1169   GL_NV_light_max_exponent,
1170   GL_NV_multisample_filter_hint,
1171   GL_NV_occlusion_query,
1172   GL_NV_packed_depth_stencil,
1173   GL_NV_pixel_data_range,
1174   GL_NV_point_sprite,
1175   GL_NV_primitive_restart,
1176   GL_NV_register_combiners,
1177   GL_NV_register_combiners2,
1178   GL_NV_texgen_emboss,
1179   GL_NV_texgen_reflection,
1180   GL_NV_texture_compression_vtc,
1181   GL_NV_texture_env_combine4,
1182   GL_NV_texture_expand_normal,
1183   GL_NV_texture_rectangle,
1184   GL_NV_texture_shader,
1185   GL_NV_texture_shader2,
1186   GL_NV_texture_shader3,
1187   GL_NV_vertex_array_range,
1188   GL_NV_vertex_array_range2,
1189   GL_NV_vertex_program,
1190   GL_NV_vertex_program1_1,
1191   GL_NV_vertex_program2,
1192   GL_NV_fragment_program_option,
1193   GL_NV_fragment_program2,
1194   GL_NV_vertex_program2_option,
1195   GL_NV_vertex_program3,
1196   GL_NV_depth_buffer_float,
1197   GL_NV_fragment_program4,
1198   GL_NV_framebuffer_multisample_coverage,
1199   GL_NV_geometry_program4,
1200   GL_NV_gpu_program4,
1201   GL_NV_parameter_buffer_object,
1202   GL_NV_transform_feedback,
1203   GL_NV_vertex_program4,
1204   GL_NV_conditional_render,
1205   GL_NV_present_video,
1206   GL_NV_explicit_multisample,
1207   GL_NV_transform_feedback2,
1208   GL_NV_video_capture,
1209   GL_NV_copy_image,
1210   GL_NV_parameter_buffer_object2,
1211   GL_NV_shader_buffer_load,
1212   GL_NV_vertex_buffer_unified_memory,
1213   GL_NV_gpu_program5,
1214   GL_NV_gpu_shader5,
1215   GL_NV_shader_buffer_store,
1216   GL_NV_tessellation_program5,
1217   GL_NV_vertex_attrib_integer_64bit,
1218   GL_NV_multisample_coverage,
1219   GL_NV_vdpau_interop,
1220   GL_NV_texture_barrier,
1221   GL_OML_interlace,
1222   GL_OML_resample,
1223   GL_OML_subsample,
1224   GL_PGI_misc_hints,
1225   GL_PGI_vertex_hints,
1226   GL_REND_screen_coordinates,
1227   GL_S3_s3tc,
1228   GL_SGIS_detail_texture,
1229   GL_SGIS_fog_function,
1230   GL_SGIS_generate_mipmap,
1231   GL_SGIS_multisample,
1232   GL_SGIS_pixel_texture,
1233   GL_SGIS_point_line_texgen,
1234   GL_SGIS_point_parameters,
1235   GL_SGIS_sharpen_texture,
1236   GL_SGIS_texture4D,
1237   GL_SGIS_texture_border_clamp,
1238   GL_SGIS_texture_color_mask,
1239   GL_SGIS_texture_edge_clamp,
1240   GL_SGIS_texture_filter4,
1241   GL_SGIS_texture_lod,
1242   GL_SGIS_texture_select,
1243   GL_SGIX_async,
1244   GL_SGIX_async_histogram,
1245   GL_SGIX_async_pixel,
1246   GL_SGIX_blend_alpha_minmax,
1247   GL_SGIX_calligraphic_fragment,
1248   GL_SGIX_clipmap,
1249   GL_SGIX_convolution_accuracy,
1250   GL_SGIX_depth_pass_instrument,
1251   GL_SGIX_depth_texture,
1252   GL_SGIX_flush_raster,
1253   GL_SGIX_fog_offset,
1254   GL_SGIX_fog_scale,
1255   GL_SGIX_fragment_lighting,
1256   GL_SGIX_framezoom,
1257   GL_SGIX_igloo_interface,
1258   GL_SGIX_impact_pixel_texture,
1259   GL_SGIX_instruments,
1260   GL_SGIX_interlace,
1261   GL_SGIX_ir_instrument1,
1262   GL_SGIX_list_priority,
1263   GL_SGIX_pixel_texture,
1264   GL_SGIX_pixel_tiles,
1265   GL_SGIX_polynomial_ffd,
1266   GL_SGIX_reference_plane,
1267   GL_SGIX_resample,
1268   GL_SGIX_scalebias_hint,
1269   GL_SGIX_shadow,
1270   GL_SGIX_shadow_ambient,
1271   GL_SGIX_sprite,
1272   GL_SGIX_subsample,
1273   GL_SGIX_tag_sample_buffer,
1274   GL_SGIX_texture_add_env,
1275   GL_SGIX_texture_coordinate_clamp,
1276   GL_SGIX_texture_lod_bias,
1277   GL_SGIX_texture_multi_buffer,
1278   GL_SGIX_texture_scale_bias,
1279   GL_SGIX_texture_select,
1280   GL_SGIX_vertex_preclip,
1281   GL_SGIX_ycrcb,
1282   GL_SGIX_ycrcb_subsample,
1283   GL_SGIX_ycrcba,
1284   GL_SGI_color_matrix,
1285   GL_SGI_color_table,
1286   GL_SGI_depth_pass_instrument,
1287   GL_SGI_texture_color_table,
1288   GL_SUNX_constant_data,
1289   GL_SUN_convolution_border_modes,
1290   GL_SUN_global_alpha,
1291   GL_SUN_mesh_array,
1292   GL_SUN_slice_accum,
1293   GL_SUN_triangle_list,
1294   GL_SUN_vertex,
1295
1296   GL_WIN_phong_shading,
1297   GL_WIN_specular_fog,
1298   WGL_3DFX_multisample,
1299   WGL_ARB_buffer_region,
1300   WGL_ARB_extensions_string,
1301   WGL_ARB_make_current_read,
1302   WGL_ARB_multisample,
1303   WGL_ARB_pbuffer,
1304   WGL_ARB_pixel_format,
1305   WGL_ARB_pixel_format_float,
1306   WGL_ARB_render_texture,
1307   WGL_ARB_create_context,
1308   WGL_ARB_create_context_profile,
1309   WGL_ARB_framebuffer_sRGB,
1310   WGL_ARB_create_context_robustness,
1311   WGL_ATI_pixel_format_float,
1312   WGL_AMD_gpu_association,
1313   WGL_EXT_depth_float,
1314   WGL_EXT_display_color_table,
1315   WGL_EXT_extensions_string,
1316   WGL_EXT_make_current_read,
1317   WGL_EXT_multisample,
1318   WGL_EXT_pbuffer,
1319   WGL_EXT_pixel_format,
1320   WGL_EXT_swap_control,
1321   WGL_EXT_create_context_es2_profile,
1322   WGL_I3D_digital_video_control,
1323   WGL_I3D_gamma,
1324   WGL_I3D_genlock,
1325   WGL_I3D_image_buffer,
1326   WGL_I3D_swap_frame_lock,
1327   WGL_I3D_swap_frame_usage,
1328   WGL_NV_float_buffer,
1329   WGL_NV_render_depth_texture,
1330   WGL_NV_render_texture_rectangle,
1331   WGL_NV_vertex_array_range,
1332   WGL_NV_present_video,
1333   WGL_NV_video_output,
1334   WGL_NV_swap_group,
1335   WGL_NV_gpu_affinity,
1336   WGL_NV_video_capture,
1337   WGL_NV_copy_image,
1338   WGL_NV_multisample_coverage,
1339   WGL_NV_DX_interop,
1340   WGL_OML_sync_control,
1341   WGL_3DL_stereo_control,
1342   WIN_draw_range_elements,
1343   WIN_swap_hint,
1344   
1345 //  GLX_VERSION_1_0,
1346   GLX_VERSION_1_3,
1347   GLX_VERSION_1_4,
1348   GLX_ARB_multisample,
1349   GLX_ARB_fbconfig_float,
1350   GLX_ARB_get_proc_address,
1351   GLX_ARB_create_context,
1352   GLX_ARB_create_context_profile,
1353   GLX_ARB_vertex_buffer_object,
1354   GLX_ARB_framebuffer_sRGB,
1355   GLX_ARB_create_context_robustness,
1356   GLX_EXT_visual_info,
1357   GLX_EXT_visual_rating,
1358   GLX_EXT_import_context,
1359   GLX_EXT_fbconfig_packed_float,
1360   GLX_EXT_framebuffer_sRGB,
1361   GLX_EXT_texture_from_pixmap,
1362   GLX_EXT_swap_control,
1363   GLX_EXT_create_context_es2_profile : Boolean;
1364
1365 const
1366   // GL_VERSION_1_1
1367   { AttribMask }
1368   GL_DEPTH_BUFFER_BIT = $00000100;
1369   GL_STENCIL_BUFFER_BIT = $00000400;
1370   GL_COLOR_BUFFER_BIT = $00004000;
1371   { Boolean }
1372   GL_TRUE = 1;
1373   GL_FALSE = 0;
1374   { BeginMode }
1375   GL_POINTS = $0000;
1376   GL_LINES = $0001;
1377   GL_LINE_LOOP = $0002;
1378   GL_LINE_STRIP = $0003;
1379   GL_TRIANGLES = $0004;
1380   GL_TRIANGLE_STRIP = $0005;
1381   GL_TRIANGLE_FAN = $0006;
1382   { AlphaFunction }
1383   GL_NEVER = $0200;
1384   GL_LESS = $0201;
1385   GL_EQUAL = $0202;
1386   GL_LEQUAL = $0203;
1387   GL_GREATER = $0204;
1388   GL_NOTEQUAL = $0205;
1389   GL_GEQUAL = $0206;
1390   GL_ALWAYS = $0207;
1391   { BlendingFactorDest }
1392   GL_ZERO = 0;
1393   GL_ONE = 1;
1394   GL_SRC_COLOR = $0300;
1395   GL_ONE_MINUS_SRC_COLOR = $0301;
1396   GL_SRC_ALPHA = $0302;
1397   GL_ONE_MINUS_SRC_ALPHA = $0303;
1398   GL_DST_ALPHA = $0304;
1399   GL_ONE_MINUS_DST_ALPHA = $0305;
1400   { BlendingFactorSrc }
1401   GL_DST_COLOR = $0306;
1402   GL_ONE_MINUS_DST_COLOR = $0307;
1403   GL_SRC_ALPHA_SATURATE = $0308;
1404   { DrawBufferMode }
1405   GL_NONE = 0;
1406   GL_FRONT_LEFT = $0400;
1407   GL_FRONT_RIGHT = $0401;
1408   GL_BACK_LEFT = $0402;
1409   GL_BACK_RIGHT = $0403;
1410   GL_FRONT = $0404;
1411   GL_BACK = $0405;
1412   GL_LEFT = $0406;
1413   GL_RIGHT = $0407;
1414   GL_FRONT_AND_BACK = $0408;
1415   { ErrorCode }
1416   GL_NO_ERROR = 0;
1417   GL_INVALID_ENUM = $0500;
1418   GL_INVALID_VALUE = $0501;
1419   GL_INVALID_OPERATION = $0502;
1420   GL_OUT_OF_MEMORY = $0505;
1421   { FrontFaceDirection }
1422   GL_CW = $0900;
1423   GL_CCW = $0901;
1424   { GetPName }
1425   GL_POINT_SIZE = $0B11;
1426   GL_POINT_SIZE_RANGE = $0B12;
1427   GL_POINT_SIZE_GRANULARITY = $0B13;
1428   GL_LINE_SMOOTH = $0B20;
1429   GL_LINE_WIDTH = $0B21;
1430   GL_LINE_WIDTH_RANGE = $0B22;
1431   GL_LINE_WIDTH_GRANULARITY = $0B23;
1432   GL_POLYGON_SMOOTH = $0B41;
1433   GL_CULL_FACE = $0B44;
1434   GL_CULL_FACE_MODE = $0B45;
1435   GL_FRONT_FACE = $0B46;
1436   GL_DEPTH_RANGE = $0B70;
1437   GL_DEPTH_TEST = $0B71;
1438   GL_DEPTH_WRITEMASK = $0B72;
1439   GL_DEPTH_CLEAR_VALUE = $0B73;
1440   GL_DEPTH_FUNC = $0B74;
1441   GL_STENCIL_TEST = $0B90;
1442   GL_STENCIL_CLEAR_VALUE = $0B91;
1443   GL_STENCIL_FUNC = $0B92;
1444   GL_STENCIL_VALUE_MASK = $0B93;
1445   GL_STENCIL_FAIL = $0B94;
1446   GL_STENCIL_PASS_DEPTH_FAIL = $0B95;
1447   GL_STENCIL_PASS_DEPTH_PASS = $0B96;
1448   GL_STENCIL_REF = $0B97;
1449   GL_STENCIL_WRITEMASK = $0B98;
1450   GL_VIEWPORT = $0BA2;
1451   GL_DITHER = $0BD0;
1452   GL_BLEND_DST = $0BE0;
1453   GL_BLEND_SRC = $0BE1;
1454   GL_BLEND = $0BE2;
1455   GL_LOGIC_OP_MODE = $0BF0;
1456   GL_COLOR_LOGIC_OP = $0BF2;
1457   GL_DRAW_BUFFER = $0C01;
1458   GL_READ_BUFFER = $0C02;
1459   GL_SCISSOR_BOX = $0C10;
1460   GL_SCISSOR_TEST = $0C11;
1461   GL_COLOR_CLEAR_VALUE = $0C22;
1462   GL_COLOR_WRITEMASK = $0C23;
1463   GL_DOUBLEBUFFER = $0C32;
1464   GL_STEREO = $0C33;
1465   GL_LINE_SMOOTH_HINT = $0C52;
1466   GL_POLYGON_SMOOTH_HINT = $0C53;
1467   GL_UNPACK_SWAP_BYTES = $0CF0;
1468   GL_UNPACK_LSB_FIRST = $0CF1;
1469   GL_UNPACK_ROW_LENGTH = $0CF2;
1470   GL_UNPACK_SKIP_ROWS = $0CF3;
1471   GL_UNPACK_SKIP_PIXELS = $0CF4;
1472   GL_UNPACK_ALIGNMENT = $0CF5;
1473   GL_PACK_SWAP_BYTES = $0D00;
1474   GL_PACK_LSB_FIRST = $0D01;
1475   GL_PACK_ROW_LENGTH = $0D02;
1476   GL_PACK_SKIP_ROWS = $0D03;
1477   GL_PACK_SKIP_PIXELS = $0D04;
1478   GL_PACK_ALIGNMENT = $0D05;
1479   GL_MAX_TEXTURE_SIZE = $0D33;
1480   GL_MAX_VIEWPORT_DIMS = $0D3A;
1481   GL_SUBPIXEL_BITS = $0D50;
1482   GL_TEXTURE_1D = $0DE0;
1483   GL_TEXTURE_2D = $0DE1;
1484   GL_POLYGON_OFFSET_UNITS = $2A00;
1485   GL_POLYGON_OFFSET_POINT = $2A01;
1486   GL_POLYGON_OFFSET_LINE = $2A02;
1487   GL_POLYGON_OFFSET_FILL = $8037;
1488   GL_POLYGON_OFFSET_FACTOR = $8038;
1489   GL_TEXTURE_BINDING_1D = $8068;
1490   GL_TEXTURE_BINDING_2D = $8069;
1491   { GetTextureParameter }
1492   GL_TEXTURE_WIDTH = $1000;
1493   GL_TEXTURE_HEIGHT = $1001;
1494   GL_TEXTURE_INTERNAL_FORMAT = $1003;
1495   GL_TEXTURE_BORDER_COLOR = $1004;
1496   GL_TEXTURE_BORDER = $1005;
1497   GL_TEXTURE_RED_SIZE = $805C;
1498   GL_TEXTURE_GREEN_SIZE = $805D;
1499   GL_TEXTURE_BLUE_SIZE = $805E;
1500   GL_TEXTURE_ALPHA_SIZE = $805F;
1501   { HintMode }
1502   GL_DONT_CARE = $1100;
1503   GL_FASTEST = $1101;
1504   GL_NICEST = $1102;
1505   { DataType }
1506   GL_BYTE = $1400;
1507   GL_UNSIGNED_BYTE = $1401;
1508   GL_SHORT = $1402;
1509   GL_UNSIGNED_SHORT = $1403;
1510   GL_INT = $1404;
1511   GL_UNSIGNED_INT = $1405;
1512   GL_FLOAT = $1406;
1513   GL_DOUBLE = $140A;
1514   { LogicOp }
1515   GL_CLEAR = $1500;
1516   GL_AND = $1501;
1517   GL_AND_REVERSE = $1502;
1518   GL_COPY = $1503;
1519   GL_AND_INVERTED = $1504;
1520   GL_NOOP = $1505;
1521   GL_XOR = $1506;
1522   GL_OR = $1507;
1523   GL_NOR = $1508;
1524   GL_EQUIV = $1509;
1525   GL_INVERT = $150A;
1526   GL_OR_REVERSE = $150B;
1527   GL_COPY_INVERTED = $150C;
1528   GL_OR_INVERTED = $150D;
1529   GL_NAND = $150E;
1530   GL_SET = $150F;
1531   { MatrixMode (for gl3.h, FBO attachment type) }
1532   GL_TEXTURE = $1702;
1533   { PixelCopyType }
1534   GL_COLOR = $1800;
1535   GL_DEPTH = $1801;
1536   GL_STENCIL = $1802;
1537   { PixelFormat }
1538   GL_STENCIL_INDEX = $1901;
1539   GL_DEPTH_COMPONENT = $1902;
1540   GL_RED = $1903;
1541   GL_GREEN = $1904;
1542   GL_BLUE = $1905;
1543   GL_ALPHA = $1906;
1544   GL_RGB = $1907;
1545   GL_RGBA = $1908;
1546   { PolygonMode }
1547   GL_POINT = $1B00;
1548   GL_LINE = $1B01;
1549   GL_FILL = $1B02;
1550   { StencilOp }
1551   GL_KEEP = $1E00;
1552   GL_REPLACE = $1E01;
1553   GL_INCR = $1E02;
1554   GL_DECR = $1E03;
1555   { StringName }
1556   GL_VENDOR = $1F00;
1557   GL_RENDERER = $1F01;
1558   GL_VERSION = $1F02;
1559   GL_EXTENSIONS = $1F03;
1560   { TextureMagFilter }
1561   GL_NEAREST = $2600;
1562   GL_LINEAR = $2601;
1563   { TextureMinFilter }
1564   GL_NEAREST_MIPMAP_NEAREST = $2700;
1565   GL_LINEAR_MIPMAP_NEAREST = $2701;
1566   GL_NEAREST_MIPMAP_LINEAR = $2702;
1567   GL_LINEAR_MIPMAP_LINEAR = $2703;
1568   { TextureParameterName }
1569   GL_TEXTURE_MAG_FILTER = $2800;
1570   GL_TEXTURE_MIN_FILTER = $2801;
1571   GL_TEXTURE_WRAP_S = $2802;
1572   GL_TEXTURE_WRAP_T = $2803;
1573   { TextureTarget }
1574   GL_PROXY_TEXTURE_1D = $8063;
1575   GL_PROXY_TEXTURE_2D = $8064;
1576   { TextureWrapMode }
1577   GL_REPEAT = $2901;
1578   { PixelInternalFormat }
1579   GL_R3_G3_B2 = $2A10;
1580   GL_RGB4 = $804F;
1581   GL_RGB5 = $8050;
1582   GL_RGB8 = $8051;
1583   GL_RGB10 = $8052;
1584   GL_RGB12 = $8053;
1585   GL_RGB16 = $8054;
1586   GL_RGBA2 = $8055;
1587   GL_RGBA4 = $8056;
1588   GL_RGB5_A1 = $8057;
1589   GL_RGBA8 = $8058;
1590   GL_RGB10_A2 = $8059;
1591   GL_RGBA12 = $805A;
1592   GL_RGBA16 = $805B;
1593 {$ifdef DGL_DEPRECATED}
1594   GL_ACCUM = $0100;
1595   GL_LOAD = $0101;
1596   GL_RETURN = $0102;
1597   GL_MULT = $0103;
1598   GL_ADD = $0104;
1599   GL_CURRENT_BIT = $00000001;
1600   GL_POINT_BIT = $00000002;
1601   GL_LINE_BIT = $00000004;
1602   GL_POLYGON_BIT = $00000008;
1603   GL_POLYGON_STIPPLE_BIT = $00000010;
1604   GL_PIXEL_MODE_BIT = $00000020;
1605   GL_LIGHTING_BIT = $00000040;
1606   GL_FOG_BIT = $00000080;
1607   GL_ACCUM_BUFFER_BIT = $00000200;
1608   GL_VIEWPORT_BIT = $00000800;
1609   GL_TRANSFORM_BIT = $00001000;
1610   GL_ENABLE_BIT = $00002000;
1611   GL_HINT_BIT = $00008000;
1612   GL_EVAL_BIT = $00010000;
1613   GL_LIST_BIT = $00020000;
1614   GL_TEXTURE_BIT = $00040000;
1615   GL_SCISSOR_BIT = $00080000;
1616   GL_ALL_ATTRIB_BITS = $000FFFFF;
1617   GL_QUADS = $0007;
1618   GL_QUAD_STRIP = $0008;
1619   GL_POLYGON = $0009;
1620   GL_CLIP_PLANE0 = $3000;
1621   GL_CLIP_PLANE1 = $3001;
1622   GL_CLIP_PLANE2 = $3002;
1623   GL_CLIP_PLANE3 = $3003;
1624   GL_CLIP_PLANE4 = $3004;
1625   GL_CLIP_PLANE5 = $3005;
1626   GL_2_BYTES = $1407;
1627   GL_3_BYTES = $1408;
1628   GL_4_BYTES = $1409;
1629   GL_AUX0 = $0409;
1630   GL_AUX1 = $040A;
1631   GL_AUX2 = $040B;
1632   GL_AUX3 = $040C;
1633   GL_STACK_OVERFLOW = $0503;
1634   GL_STACK_UNDERFLOW = $0504;
1635   GL_2D = $0600;
1636   GL_3D = $0601;
1637   GL_3D_COLOR = $0602;
1638   GL_3D_COLOR_TEXTURE = $0603;
1639   GL_4D_COLOR_TEXTURE = $0604;
1640   GL_PASS_THROUGH_TOKEN = $0700;
1641   GL_POINT_TOKEN = $0701;
1642   GL_LINE_TOKEN = $0702;
1643   GL_POLYGON_TOKEN = $0703;
1644   GL_BITMAP_TOKEN = $0704;
1645   GL_DRAW_PIXEL_TOKEN = $0705;
1646   GL_COPY_PIXEL_TOKEN = $0706;
1647   GL_LINE_RESET_TOKEN = $0707;
1648   GL_EXP = $0800;
1649   GL_EXP2 = $0801;
1650   GL_COEFF = $0A00;
1651   GL_ORDER = $0A01;
1652   GL_DOMAIN = $0A02;
1653   GL_CURRENT_COLOR = $0B00;
1654   GL_CURRENT_INDEX = $0B01;
1655   GL_CURRENT_NORMAL = $0B02;
1656   GL_CURRENT_TEXTURE_COORDS = $0B03;
1657   GL_CURRENT_RASTER_COLOR = $0B04;
1658   GL_CURRENT_RASTER_INDEX = $0B05;
1659   GL_CURRENT_RASTER_TEXTURE_COORDS = $0B06;
1660   GL_CURRENT_RASTER_POSITION = $0B07;
1661   GL_CURRENT_RASTER_POSITION_VALID = $0B08;
1662   GL_CURRENT_RASTER_DISTANCE = $0B09;
1663   GL_POINT_SMOOTH = $0B10;
1664   GL_LINE_STIPPLE = $0B24;
1665   GL_LINE_STIPPLE_PATTERN = $0B25;
1666   GL_LINE_STIPPLE_REPEAT = $0B26;
1667   GL_LIST_MODE = $0B30;
1668   GL_MAX_LIST_NESTING = $0B31;
1669   GL_LIST_BASE = $0B32;
1670   GL_LIST_INDEX = $0B33;
1671   GL_POLYGON_MODE = $0B40;
1672   GL_POLYGON_STIPPLE = $0B42;
1673   GL_EDGE_FLAG = $0B43;
1674   GL_LIGHTING = $0B50;
1675   GL_LIGHT_MODEL_LOCAL_VIEWER = $0B51;
1676   GL_LIGHT_MODEL_TWO_SIDE = $0B52;
1677   GL_LIGHT_MODEL_AMBIENT = $0B53;
1678   GL_SHADE_MODEL = $0B54;
1679   GL_COLOR_MATERIAL_FACE = $0B55;
1680   GL_COLOR_MATERIAL_PARAMETER = $0B56;
1681   GL_COLOR_MATERIAL = $0B57;
1682   GL_FOG = $0B60;
1683   GL_FOG_INDEX = $0B61;
1684   GL_FOG_DENSITY = $0B62;
1685   GL_FOG_START = $0B63;
1686   GL_FOG_END = $0B64;
1687   GL_FOG_MODE = $0B65;
1688   GL_FOG_COLOR = $0B66;
1689   GL_ACCUM_CLEAR_VALUE = $0B80;
1690   GL_MATRIX_MODE = $0BA0;
1691   GL_NORMALIZE = $0BA1;
1692   GL_MODELVIEW_STACK_DEPTH = $0BA3;
1693   GL_PROJECTION_STACK_DEPTH = $0BA4;
1694   GL_TEXTURE_STACK_DEPTH = $0BA5;
1695   GL_MODELVIEW_MATRIX = $0BA6;
1696   GL_PROJECTION_MATRIX = $0BA7;
1697   GL_TEXTURE_MATRIX = $0BA8;
1698   GL_ATTRIB_STACK_DEPTH = $0BB0;
1699   GL_CLIENT_ATTRIB_STACK_DEPTH = $0BB1;
1700   GL_ALPHA_TEST = $0BC0;
1701   GL_ALPHA_TEST_FUNC = $0BC1;
1702   GL_ALPHA_TEST_REF = $0BC2;
1703   GL_INDEX_LOGIC_OP = $0BF1;
1704   GL_AUX_BUFFERS = $0C00;
1705   GL_INDEX_CLEAR_VALUE = $0C20;
1706   GL_INDEX_WRITEMASK = $0C21;
1707   GL_INDEX_MODE = $0C30;
1708   GL_RGBA_MODE = $0C31;
1709   GL_RENDER_MODE = $0C40;
1710   GL_PERSPECTIVE_CORRECTION_HINT = $0C50;
1711   GL_POINT_SMOOTH_HINT = $0C51;
1712   GL_FOG_HINT = $0C54;
1713   GL_TEXTURE_GEN_S = $0C60;
1714   GL_TEXTURE_GEN_T = $0C61;
1715   GL_TEXTURE_GEN_R = $0C62;
1716   GL_TEXTURE_GEN_Q = $0C63;
1717   GL_PIXEL_MAP_I_TO_I = $0C70;
1718   GL_PIXEL_MAP_S_TO_S = $0C71;
1719   GL_PIXEL_MAP_I_TO_R = $0C72;
1720   GL_PIXEL_MAP_I_TO_G = $0C73;
1721   GL_PIXEL_MAP_I_TO_B = $0C74;
1722   GL_PIXEL_MAP_I_TO_A = $0C75;
1723   GL_PIXEL_MAP_R_TO_R = $0C76;
1724   GL_PIXEL_MAP_G_TO_G = $0C77;
1725   GL_PIXEL_MAP_B_TO_B = $0C78;
1726   GL_PIXEL_MAP_A_TO_A = $0C79;
1727   GL_PIXEL_MAP_I_TO_I_SIZE = $0CB0;
1728   GL_PIXEL_MAP_S_TO_S_SIZE = $0CB1;
1729   GL_PIXEL_MAP_I_TO_R_SIZE = $0CB2;
1730   GL_PIXEL_MAP_I_TO_G_SIZE = $0CB3;
1731   GL_PIXEL_MAP_I_TO_B_SIZE = $0CB4;
1732   GL_PIXEL_MAP_I_TO_A_SIZE = $0CB5;
1733   GL_PIXEL_MAP_R_TO_R_SIZE = $0CB6;
1734   GL_PIXEL_MAP_G_TO_G_SIZE = $0CB7;
1735   GL_PIXEL_MAP_B_TO_B_SIZE = $0CB8;
1736   GL_PIXEL_MAP_A_TO_A_SIZE = $0CB9;
1737   GL_MAP_COLOR = $0D10;
1738   GL_MAP_STENCIL = $0D11;
1739   GL_INDEX_SHIFT = $0D12;
1740   GL_INDEX_OFFSET = $0D13;
1741   GL_RED_SCALE = $0D14;
1742   GL_RED_BIAS = $0D15;
1743   GL_ZOOM_X = $0D16;
1744   GL_ZOOM_Y = $0D17;
1745   GL_GREEN_SCALE = $0D18;
1746   GL_GREEN_BIAS = $0D19;
1747   GL_BLUE_SCALE = $0D1A;
1748   GL_BLUE_BIAS = $0D1B;
1749   GL_ALPHA_SCALE = $0D1C;
1750   GL_ALPHA_BIAS = $0D1D;
1751   GL_DEPTH_SCALE = $0D1E;
1752   GL_DEPTH_BIAS = $0D1F;
1753   GL_MAX_EVAL_ORDER = $0D30;
1754   GL_MAX_LIGHTS = $0D31;
1755   GL_MAX_CLIP_PLANES = $0D32;
1756   GL_MAX_PIXEL_MAP_TABLE = $0D34;
1757   GL_MAX_ATTRIB_STACK_DEPTH = $0D35;
1758   GL_MAX_MODELVIEW_STACK_DEPTH = $0D36;
1759   GL_MAX_NAME_STACK_DEPTH = $0D37;
1760   GL_MAX_PROJECTION_STACK_DEPTH = $0D38;
1761   GL_MAX_TEXTURE_STACK_DEPTH = $0D39;
1762   GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = $0D3B;
1763   GL_INDEX_BITS = $0D51;
1764   GL_RED_BITS = $0D52;
1765   GL_GREEN_BITS = $0D53;
1766   GL_BLUE_BITS = $0D54;
1767   GL_ALPHA_BITS = $0D55;
1768   GL_DEPTH_BITS = $0D56;
1769   GL_STENCIL_BITS = $0D57;
1770   GL_ACCUM_RED_BITS = $0D58;
1771   GL_ACCUM_GREEN_BITS = $0D59;
1772   GL_ACCUM_BLUE_BITS = $0D5A;
1773   GL_ACCUM_ALPHA_BITS = $0D5B;
1774   GL_NAME_STACK_DEPTH = $0D70;
1775   GL_AUTO_NORMAL = $0D80;
1776   GL_MAP1_COLOR_4 = $0D90;
1777   GL_MAP1_INDEX = $0D91;
1778   GL_MAP1_NORMAL = $0D92;
1779   GL_MAP1_TEXTURE_COORD_1 = $0D93;
1780   GL_MAP1_TEXTURE_COORD_2 = $0D94;
1781   GL_MAP1_TEXTURE_COORD_3 = $0D95;
1782   GL_MAP1_TEXTURE_COORD_4 = $0D96;
1783   GL_MAP1_VERTEX_3 = $0D97;
1784   GL_MAP1_VERTEX_4 = $0D98;
1785   GL_MAP2_COLOR_4 = $0DB0;
1786   GL_MAP2_INDEX = $0DB1;
1787   GL_MAP2_NORMAL = $0DB2;
1788   GL_MAP2_TEXTURE_COORD_1 = $0DB3;
1789   GL_MAP2_TEXTURE_COORD_2 = $0DB4;
1790   GL_MAP2_TEXTURE_COORD_3 = $0DB5;
1791   GL_MAP2_TEXTURE_COORD_4 = $0DB6;
1792   GL_MAP2_VERTEX_3 = $0DB7;
1793   GL_MAP2_VERTEX_4 = $0DB8;
1794   GL_MAP1_GRID_DOMAIN = $0DD0;
1795   GL_MAP1_GRID_SEGMENTS = $0DD1;
1796   GL_MAP2_GRID_DOMAIN = $0DD2;
1797   GL_MAP2_GRID_SEGMENTS = $0DD3;
1798   GL_FEEDBACK_BUFFER_POINTER = $0DF0;
1799   GL_FEEDBACK_BUFFER_SIZE = $0DF1;
1800   GL_FEEDBACK_BUFFER_TYPE = $0DF2;
1801   GL_SELECTION_BUFFER_POINTER = $0DF3;
1802   GL_SELECTION_BUFFER_SIZE = $0DF4;
1803   GL_LIGHT0 = $4000;
1804   GL_LIGHT1 = $4001;
1805   GL_LIGHT2 = $4002;
1806   GL_LIGHT3 = $4003;
1807   GL_LIGHT4 = $4004;
1808   GL_LIGHT5 = $4005;
1809   GL_LIGHT6 = $4006;
1810   GL_LIGHT7 = $4007;
1811   GL_AMBIENT = $1200;
1812   GL_DIFFUSE = $1201;
1813   GL_SPECULAR = $1202;
1814   GL_POSITION = $1203;
1815   GL_SPOT_DIRECTION = $1204;
1816   GL_SPOT_EXPONENT = $1205;
1817   GL_SPOT_CUTOFF = $1206;
1818   GL_CONSTANT_ATTENUATION = $1207;
1819   GL_LINEAR_ATTENUATION = $1208;
1820   GL_QUADRATIC_ATTENUATION = $1209;
1821   GL_COMPILE = $1300;
1822   GL_COMPILE_AND_EXECUTE = $1301;
1823   GL_EMISSION = $1600;
1824   GL_SHININESS = $1601;
1825   GL_AMBIENT_AND_DIFFUSE = $1602;
1826   GL_COLOR_INDEXES = $1603;
1827   GL_MODELVIEW = $1700;
1828   GL_PROJECTION = $1701;
1829   GL_COLOR_INDEX = $1900;
1830   GL_LUMINANCE = $1909;
1831   GL_LUMINANCE_ALPHA = $190A;
1832   GL_BITMAP = $1A00;
1833   GL_RENDER = $1C00;
1834   GL_FEEDBACK = $1C01;
1835   GL_SELECT = $1C02;
1836   GL_FLAT = $1D00;
1837   GL_SMOOTH = $1D01;
1838   GL_S = $2000;
1839   GL_T = $2001;
1840   GL_R = $2002;
1841   GL_Q = $2003;
1842   GL_MODULATE = $2100;
1843   GL_DECAL = $2101;
1844   GL_TEXTURE_ENV_MODE = $2200;
1845   GL_TEXTURE_ENV_COLOR = $2201;
1846   GL_TEXTURE_ENV = $2300;
1847   GL_EYE_LINEAR = $2400;
1848   GL_OBJECT_LINEAR = $2401;
1849   GL_SPHERE_MAP = $2402;
1850   GL_TEXTURE_GEN_MODE = $2500;
1851   GL_OBJECT_PLANE = $2501;
1852   GL_EYE_PLANE = $2502;
1853   GL_CLAMP = $2900;
1854   GL_CLIENT_PIXEL_STORE_BIT = $00000001;
1855   GL_CLIENT_VERTEX_ARRAY_BIT = $00000002;
1856   GL_CLIENT_ALL_ATTRIB_BITS = $FFFFFFFF;
1857   GL_ALPHA4 = $803B;
1858   GL_ALPHA8 = $803C;
1859   GL_ALPHA12 = $803D;
1860   GL_ALPHA16 = $803E;
1861   GL_LUMINANCE4 = $803F;
1862   GL_LUMINANCE8 = $8040;
1863   GL_LUMINANCE12 = $8041;
1864   GL_LUMINANCE16 = $8042;
1865   GL_LUMINANCE4_ALPHA4 = $8043;
1866   GL_LUMINANCE6_ALPHA2 = $8044;
1867   GL_LUMINANCE8_ALPHA8 = $8045;
1868   GL_LUMINANCE12_ALPHA4 = $8046;
1869   GL_LUMINANCE12_ALPHA12 = $8047;
1870   GL_LUMINANCE16_ALPHA16 = $8048;
1871   GL_INTENSITY = $8049;
1872   GL_INTENSITY4 = $804A;
1873   GL_INTENSITY8 = $804B;
1874   GL_INTENSITY12 = $804C;
1875   GL_INTENSITY16 = $804D;
1876   GL_TEXTURE_LUMINANCE_SIZE = $8060;
1877   GL_TEXTURE_INTENSITY_SIZE = $8061;
1878   GL_TEXTURE_PRIORITY = $8066;
1879   GL_TEXTURE_RESIDENT = $8067;
1880   GL_VERTEX_ARRAY = $8074;
1881   GL_NORMAL_ARRAY = $8075;
1882   GL_COLOR_ARRAY = $8076;
1883   GL_INDEX_ARRAY = $8077;
1884   GL_TEXTURE_COORD_ARRAY = $8078;
1885   GL_EDGE_FLAG_ARRAY = $8079;
1886   GL_VERTEX_ARRAY_SIZE = $807A;
1887   GL_VERTEX_ARRAY_TYPE = $807B;
1888   GL_VERTEX_ARRAY_STRIDE = $807C;
1889   GL_NORMAL_ARRAY_TYPE = $807E;
1890   GL_NORMAL_ARRAY_STRIDE = $807F;
1891   GL_COLOR_ARRAY_SIZE = $8081;
1892   GL_COLOR_ARRAY_TYPE = $8082;
1893   GL_COLOR_ARRAY_STRIDE = $8083;
1894   GL_INDEX_ARRAY_TYPE = $8085;
1895   GL_INDEX_ARRAY_STRIDE = $8086;
1896   GL_TEXTURE_COORD_ARRAY_SIZE = $8088;
1897   GL_TEXTURE_COORD_ARRAY_TYPE = $8089;
1898   GL_TEXTURE_COORD_ARRAY_STRIDE = $808A;
1899   GL_EDGE_FLAG_ARRAY_STRIDE = $808C;
1900   GL_VERTEX_ARRAY_POINTER = $808E;
1901   GL_NORMAL_ARRAY_POINTER = $808F;
1902   GL_COLOR_ARRAY_POINTER = $8090;
1903   GL_INDEX_ARRAY_POINTER = $8091;
1904   GL_TEXTURE_COORD_ARRAY_POINTER = $8092;
1905   GL_EDGE_FLAG_ARRAY_POINTER = $8093;
1906   GL_V2F = $2A20;
1907   GL_V3F = $2A21;
1908   GL_C4UB_V2F = $2A22;
1909   GL_C4UB_V3F = $2A23;
1910   GL_C3F_V3F = $2A24;
1911   GL_N3F_V3F = $2A25;
1912   GL_C4F_N3F_V3F = $2A26;
1913   GL_T2F_V3F = $2A27;
1914   GL_T4F_V4F = $2A28;
1915   GL_T2F_C4UB_V3F = $2A29;
1916   GL_T2F_C3F_V3F = $2A2A;
1917   GL_T2F_N3F_V3F = $2A2B;
1918   GL_T2F_C4F_N3F_V3F = $2A2C;
1919   GL_T4F_C4F_N3F_V4F = $2A2D;
1920   GL_COLOR_TABLE_FORMAT_EXT = $80D8;
1921   GL_COLOR_TABLE_WIDTH_EXT = $80D9;
1922   GL_COLOR_TABLE_RED_SIZE_EXT = $80DA;
1923   GL_COLOR_TABLE_GREEN_SIZE_EXT = $80DB;
1924   GL_COLOR_TABLE_BLUE_SIZE_EXT = $80DC;
1925   GL_COLOR_TABLE_ALPHA_SIZE_EXT = $80DD;
1926   GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = $80DE;
1927   GL_COLOR_TABLE_INTENSITY_SIZE_EXT = $80DF;
1928   GL_LOGIC_OP = GL_INDEX_LOGIC_OP;
1929   GL_TEXTURE_COMPONENTS = GL_TEXTURE_INTERNAL_FORMAT;
1930 {$endif}
1931
1932   // GL_VERSION_1_2
1933   GL_UNSIGNED_BYTE_3_3_2 = $8032;
1934   GL_UNSIGNED_SHORT_4_4_4_4 = $8033;
1935   GL_UNSIGNED_SHORT_5_5_5_1 = $8034;
1936   GL_UNSIGNED_INT_8_8_8_8 = $8035;
1937   GL_UNSIGNED_INT_10_10_10_2 = $8036;
1938   GL_TEXTURE_BINDING_3D = $806A;
1939   GL_PACK_SKIP_IMAGES = $806B;
1940   GL_PACK_IMAGE_HEIGHT = $806C;
1941   GL_UNPACK_SKIP_IMAGES = $806D;
1942   GL_UNPACK_IMAGE_HEIGHT = $806E;
1943   GL_TEXTURE_3D = $806F;
1944   GL_PROXY_TEXTURE_3D = $8070;
1945   GL_TEXTURE_DEPTH = $8071;
1946   GL_TEXTURE_WRAP_R = $8072;
1947   GL_MAX_3D_TEXTURE_SIZE = $8073;
1948   GL_UNSIGNED_BYTE_2_3_3_REV = $8362;
1949   GL_UNSIGNED_SHORT_5_6_5 = $8363;
1950   GL_UNSIGNED_SHORT_5_6_5_REV = $8364;
1951   GL_UNSIGNED_SHORT_4_4_4_4_REV = $8365;
1952   GL_UNSIGNED_SHORT_1_5_5_5_REV = $8366;
1953   GL_UNSIGNED_INT_8_8_8_8_REV = $8367;
1954   GL_UNSIGNED_INT_2_10_10_10_REV = $8368;
1955   GL_BGR = $80E0;
1956   GL_BGRA = $80E1;
1957   GL_MAX_ELEMENTS_VERTICES = $80E8;
1958   GL_MAX_ELEMENTS_INDICES = $80E9;
1959   GL_CLAMP_TO_EDGE = $812F;
1960   GL_TEXTURE_MIN_LOD = $813A;
1961   GL_TEXTURE_MAX_LOD = $813B;
1962   GL_TEXTURE_BASE_LEVEL = $813C;
1963   GL_TEXTURE_MAX_LEVEL = $813D;
1964   GL_SMOOTH_POINT_SIZE_RANGE = $0B12;
1965   GL_SMOOTH_POINT_SIZE_GRANULARITY = $0B13;
1966   GL_SMOOTH_LINE_WIDTH_RANGE = $0B22;
1967   GL_SMOOTH_LINE_WIDTH_GRANULARITY = $0B23;
1968   GL_ALIASED_LINE_WIDTH_RANGE = $846E;
1969 {$ifdef DGL_DEPRECATED}
1970   GL_RESCALE_NORMAL = $803A;
1971   GL_LIGHT_MODEL_COLOR_CONTROL = $81F8;
1972   GL_SINGLE_COLOR = $81F9;
1973   GL_SEPARATE_SPECULAR_COLOR = $81FA;
1974   GL_ALIASED_POINT_SIZE_RANGE = $846D;
1975 {$endif}
1976
1977   // GL_VERSION_1_3
1978   GL_TEXTURE0 = $84C0;
1979   GL_TEXTURE1 = $84C1;
1980   GL_TEXTURE2 = $84C2;
1981   GL_TEXTURE3 = $84C3;
1982   GL_TEXTURE4 = $84C4;
1983   GL_TEXTURE5 = $84C5;
1984   GL_TEXTURE6 = $84C6;
1985   GL_TEXTURE7 = $84C7;
1986   GL_TEXTURE8 = $84C8;
1987   GL_TEXTURE9 = $84C9;
1988   GL_TEXTURE10 = $84CA;
1989   GL_TEXTURE11 = $84CB;
1990   GL_TEXTURE12 = $84CC;
1991   GL_TEXTURE13 = $84CD;
1992   GL_TEXTURE14 = $84CE;
1993   GL_TEXTURE15 = $84CF;
1994   GL_TEXTURE16 = $84D0;
1995   GL_TEXTURE17 = $84D1;
1996   GL_TEXTURE18 = $84D2;
1997   GL_TEXTURE19 = $84D3;
1998   GL_TEXTURE20 = $84D4;
1999   GL_TEXTURE21 = $84D5;
2000   GL_TEXTURE22 = $84D6;
2001   GL_TEXTURE23 = $84D7;
2002   GL_TEXTURE24 = $84D8;
2003   GL_TEXTURE25 = $84D9;
2004   GL_TEXTURE26 = $84DA;
2005   GL_TEXTURE27 = $84DB;
2006   GL_TEXTURE28 = $84DC;
2007   GL_TEXTURE29 = $84DD;
2008   GL_TEXTURE30 = $84DE;
2009   GL_TEXTURE31 = $84DF;
2010   GL_ACTIVE_TEXTURE = $84E0;
2011   GL_MULTISAMPLE = $809D;
2012   GL_SAMPLE_ALPHA_TO_COVERAGE = $809E;
2013   GL_SAMPLE_ALPHA_TO_ONE = $809F;
2014   GL_SAMPLE_COVERAGE = $80A0;
2015   GL_SAMPLE_BUFFERS = $80A8;
2016   GL_SAMPLES = $80A9;
2017   GL_SAMPLE_COVERAGE_VALUE = $80AA;
2018   GL_SAMPLE_COVERAGE_INVERT = $80AB;
2019   GL_TEXTURE_CUBE_MAP = $8513;
2020   GL_TEXTURE_BINDING_CUBE_MAP = $8514;
2021   GL_TEXTURE_CUBE_MAP_POSITIVE_X = $8515;
2022   GL_TEXTURE_CUBE_MAP_NEGATIVE_X = $8516;
2023   GL_TEXTURE_CUBE_MAP_POSITIVE_Y = $8517;
2024   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = $8518;
2025   GL_TEXTURE_CUBE_MAP_POSITIVE_Z = $8519;
2026   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = $851A;
2027   GL_PROXY_TEXTURE_CUBE_MAP = $851B;
2028   GL_MAX_CUBE_MAP_TEXTURE_SIZE = $851C;
2029   GL_COMPRESSED_RGB = $84ED;
2030   GL_COMPRESSED_RGBA = $84EE;
2031   GL_TEXTURE_COMPRESSION_HINT = $84EF;
2032   GL_TEXTURE_COMPRESSED_IMAGE_SIZE = $86A0;
2033   GL_TEXTURE_COMPRESSED = $86A1;
2034   GL_NUM_COMPRESSED_TEXTURE_FORMATS = $86A2;
2035   GL_COMPRESSED_TEXTURE_FORMATS = $86A3;
2036   GL_CLAMP_TO_BORDER = $812D;
2037 {$ifdef DGL_DEPRECATED}
2038   GL_CLIENT_ACTIVE_TEXTURE = $84E1;
2039   GL_MAX_TEXTURE_UNITS = $84E2;
2040   GL_TRANSPOSE_MODELVIEW_MATRIX = $84E3;
2041   GL_TRANSPOSE_PROJECTION_MATRIX = $84E4;
2042   GL_TRANSPOSE_TEXTURE_MATRIX = $84E5;
2043   GL_TRANSPOSE_COLOR_MATRIX = $84E6;
2044   GL_MULTISAMPLE_BIT = $20000000;
2045   GL_NORMAL_MAP = $8511;
2046   GL_REFLECTION_MAP = $8512;
2047   GL_COMPRESSED_ALPHA = $84E9;
2048   GL_COMPRESSED_LUMINANCE = $84EA;
2049   GL_COMPRESSED_LUMINANCE_ALPHA = $84EB;
2050   GL_COMPRESSED_INTENSITY = $84EC;
2051   GL_COMBINE = $8570;
2052   GL_COMBINE_RGB = $8571;
2053   GL_COMBINE_ALPHA = $8572;
2054   GL_SOURCE0_RGB = $8580;
2055   GL_SOURCE1_RGB = $8581;
2056   GL_SOURCE2_RGB = $8582;
2057   GL_SOURCE0_ALPHA = $8588;
2058   GL_SOURCE1_ALPHA = $8589;
2059   GL_SOURCE2_ALPHA = $858A;
2060   GL_OPERAND0_RGB = $8590;
2061   GL_OPERAND1_RGB = $8591;
2062   GL_OPERAND2_RGB = $8592;
2063   GL_OPERAND0_ALPHA = $8598;
2064   GL_OPERAND1_ALPHA = $8599;
2065   GL_OPERAND2_ALPHA = $859A;
2066   GL_RGB_SCALE = $8573;
2067   GL_ADD_SIGNED = $8574;
2068   GL_INTERPOLATE = $8575;
2069   GL_SUBTRACT = $84E7;
2070   GL_CONSTANT = $8576;
2071   GL_PRIMARY_COLOR = $8577;
2072   GL_PREVIOUS = $8578;
2073   GL_DOT3_RGB = $86AE;
2074   GL_DOT3_RGBA = $86AF;
2075 {$endif}
2076
2077   // GL_VERSION_1_4
2078   GL_BLEND_DST_RGB = $80C8;
2079   GL_BLEND_SRC_RGB = $80C9;
2080   GL_BLEND_DST_ALPHA = $80CA;
2081   GL_BLEND_SRC_ALPHA = $80CB;
2082   GL_POINT_FADE_THRESHOLD_SIZE = $8128;
2083   GL_DEPTH_COMPONENT16 = $81A5;
2084   GL_DEPTH_COMPONENT24 = $81A6;
2085   GL_DEPTH_COMPONENT32 = $81A7;
2086   GL_MIRRORED_REPEAT = $8370;
2087   GL_MAX_TEXTURE_LOD_BIAS = $84FD;
2088   GL_TEXTURE_LOD_BIAS = $8501;
2089   GL_INCR_WRAP = $8507;
2090   GL_DECR_WRAP = $8508;
2091   GL_TEXTURE_DEPTH_SIZE = $884A;
2092   GL_TEXTURE_COMPARE_MODE = $884C;
2093   GL_TEXTURE_COMPARE_FUNC = $884D;
2094 {$ifdef DGL_DEPRECATED}
2095   GL_POINT_SIZE_MIN = $8126;
2096   GL_POINT_SIZE_MAX = $8127;
2097   GL_POINT_DISTANCE_ATTENUATION = $8129;
2098   GL_GENERATE_MIPMAP = $8191;
2099   GL_GENERATE_MIPMAP_HINT = $8192;
2100   GL_FOG_COORDINATE_SOURCE = $8450;
2101   GL_FOG_COORDINATE = $8451;
2102   GL_FRAGMENT_DEPTH = $8452;
2103   GL_CURRENT_FOG_COORDINATE = $8453;
2104   GL_FOG_COORDINATE_ARRAY_TYPE = $8454;
2105   GL_FOG_COORDINATE_ARRAY_STRIDE = $8455;
2106   GL_FOG_COORDINATE_ARRAY_POINTER = $8456;
2107   GL_FOG_COORDINATE_ARRAY = $8457;
2108   GL_COLOR_SUM = $8458;
2109   GL_CURRENT_SECONDARY_COLOR = $8459;
2110   GL_SECONDARY_COLOR_ARRAY_SIZE = $845A;
2111   GL_SECONDARY_COLOR_ARRAY_TYPE = $845B;
2112   GL_SECONDARY_COLOR_ARRAY_STRIDE = $845C;
2113   GL_SECONDARY_COLOR_ARRAY_POINTER = $845D;
2114   GL_SECONDARY_COLOR_ARRAY = $845E;
2115   GL_TEXTURE_FILTER_CONTROL = $8500;
2116   GL_DEPTH_TEXTURE_MODE = $884B;
2117   GL_COMPARE_R_TO_TEXTURE = $884E;
2118 {$endif}
2119
2120   // GL_VERSION_1_5
2121   GL_BUFFER_SIZE = $8764;
2122   GL_BUFFER_USAGE = $8765;
2123   GL_QUERY_COUNTER_BITS = $8864;
2124   GL_CURRENT_QUERY = $8865;
2125   GL_QUERY_RESULT = $8866;
2126   GL_QUERY_RESULT_AVAILABLE = $8867;
2127   GL_ARRAY_BUFFER = $8892;
2128   GL_ELEMENT_ARRAY_BUFFER = $8893;
2129   GL_ARRAY_BUFFER_BINDING = $8894;
2130   GL_ELEMENT_ARRAY_BUFFER_BINDING = $8895;
2131   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = $889F;
2132   GL_READ_ONLY = $88B8;
2133   GL_WRITE_ONLY = $88B9;
2134   GL_READ_WRITE = $88BA;
2135   GL_BUFFER_ACCESS = $88BB;
2136   GL_BUFFER_MAPPED = $88BC;
2137   GL_BUFFER_MAP_POINTER = $88BD;
2138   GL_STREAM_DRAW = $88E0;
2139   GL_STREAM_READ = $88E1;
2140   GL_STREAM_COPY = $88E2;
2141   GL_STATIC_DRAW = $88E4;
2142   GL_STATIC_READ = $88E5;
2143   GL_STATIC_COPY = $88E6;
2144   GL_DYNAMIC_DRAW = $88E8;
2145   GL_DYNAMIC_READ = $88E9;
2146   GL_DYNAMIC_COPY = $88EA;
2147   GL_SAMPLES_PASSED = $8914;
2148 {$ifdef DGL_DEPRECATED}
2149   GL_VERTEX_ARRAY_BUFFER_BINDING = $8896;
2150   GL_NORMAL_ARRAY_BUFFER_BINDING = $8897;
2151   GL_COLOR_ARRAY_BUFFER_BINDING = $8898;
2152   GL_INDEX_ARRAY_BUFFER_BINDING = $8899;
2153   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = $889A;
2154   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = $889B;
2155   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = $889C;
2156   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = $889D;
2157   GL_WEIGHT_ARRAY_BUFFER_BINDING = $889E;
2158   GL_FOG_COORD_SRC = $8450;
2159   GL_FOG_COORD = $8451;
2160   GL_CURRENT_FOG_COORD = $8453;
2161   GL_FOG_COORD_ARRAY_TYPE = $8454;
2162   GL_FOG_COORD_ARRAY_STRIDE = $8455;
2163   GL_FOG_COORD_ARRAY_POINTER = $8456;
2164   GL_FOG_COORD_ARRAY = $8457;
2165   GL_FOG_COORD_ARRAY_BUFFER_BINDING = $889D;
2166   GL_SRC0_RGB = $8580;
2167   GL_SRC1_RGB = $8581;
2168   GL_SRC2_RGB = $8582;
2169   GL_SRC0_ALPHA = $8588;
2170   GL_SRC1_ALPHA = $8589;
2171   GL_SRC2_ALPHA = $858A;
2172 {$endif}
2173
2174   // GL_VERSION_2_0
2175   GL_BLEND_EQUATION_RGB = $8009;
2176   GL_VERTEX_ATTRIB_ARRAY_ENABLED = $8622;
2177   GL_VERTEX_ATTRIB_ARRAY_SIZE = $8623;
2178   GL_VERTEX_ATTRIB_ARRAY_STRIDE = $8624;
2179   GL_VERTEX_ATTRIB_ARRAY_TYPE = $8625;
2180   GL_CURRENT_VERTEX_ATTRIB = $8626;
2181   GL_VERTEX_PROGRAM_POINT_SIZE = $8642;
2182   GL_VERTEX_ATTRIB_ARRAY_POINTER = $8645;
2183   GL_STENCIL_BACK_FUNC = $8800;
2184   GL_STENCIL_BACK_FAIL = $8801;
2185   GL_STENCIL_BACK_PASS_DEPTH_FAIL = $8802;
2186   GL_STENCIL_BACK_PASS_DEPTH_PASS = $8803;
2187   GL_MAX_DRAW_BUFFERS = $8824;
2188   GL_DRAW_BUFFER0 = $8825;
2189   GL_DRAW_BUFFER1 = $8826;
2190   GL_DRAW_BUFFER2 = $8827;
2191   GL_DRAW_BUFFER3 = $8828;
2192   GL_DRAW_BUFFER4 = $8829;
2193   GL_DRAW_BUFFER5 = $882A;
2194   GL_DRAW_BUFFER6 = $882B;
2195   GL_DRAW_BUFFER7 = $882C;
2196   GL_DRAW_BUFFER8 = $882D;
2197   GL_DRAW_BUFFER9 = $882E;
2198   GL_DRAW_BUFFER10 = $882F;
2199   GL_DRAW_BUFFER11 = $8830;
2200   GL_DRAW_BUFFER12 = $8831;
2201   GL_DRAW_BUFFER13 = $8832;
2202   GL_DRAW_BUFFER14 = $8833;
2203   GL_DRAW_BUFFER15 = $8834;
2204   GL_BLEND_EQUATION_ALPHA = $883D;
2205   GL_MAX_VERTEX_ATTRIBS = $8869;
2206   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = $886A;
2207   GL_MAX_TEXTURE_IMAGE_UNITS = $8872;
2208   GL_FRAGMENT_SHADER = $8B30;
2209   GL_VERTEX_SHADER = $8B31;
2210   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = $8B49;
2211   GL_MAX_VERTEX_UNIFORM_COMPONENTS = $8B4A;
2212   GL_MAX_VARYING_FLOATS = $8B4B;
2213   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = $8B4C;
2214   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = $8B4D;
2215   GL_SHADER_TYPE = $8B4F;
2216   GL_FLOAT_VEC2 = $8B50;
2217   GL_FLOAT_VEC3 = $8B51;
2218   GL_FLOAT_VEC4 = $8B52;
2219   GL_INT_VEC2 = $8B53;
2220   GL_INT_VEC3 = $8B54;
2221   GL_INT_VEC4 = $8B55;
2222   GL_BOOL = $8B56;
2223   GL_BOOL_VEC2 = $8B57;
2224   GL_BOOL_VEC3 = $8B58;
2225   GL_BOOL_VEC4 = $8B59;
2226   GL_FLOAT_MAT2 = $8B5A;
2227   GL_FLOAT_MAT3 = $8B5B;
2228   GL_FLOAT_MAT4 = $8B5C;
2229   GL_SAMPLER_1D = $8B5D;
2230   GL_SAMPLER_2D = $8B5E;
2231   GL_SAMPLER_3D = $8B5F;
2232   GL_SAMPLER_CUBE = $8B60;
2233   GL_SAMPLER_1D_SHADOW = $8B61;
2234   GL_SAMPLER_2D_SHADOW = $8B62;
2235   GL_DELETE_STATUS = $8B80;
2236   GL_COMPILE_STATUS = $8B81;
2237   GL_LINK_STATUS = $8B82;
2238   GL_VALIDATE_STATUS = $8B83;
2239   GL_INFO_LOG_LENGTH = $8B84;
2240   GL_ATTACHED_SHADERS = $8B85;
2241   GL_ACTIVE_UNIFORMS = $8B86;
2242   GL_ACTIVE_UNIFORM_MAX_LENGTH = $8B87;
2243   GL_SHADER_SOURCE_LENGTH = $8B88;
2244   GL_ACTIVE_ATTRIBUTES = $8B89;
2245   GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = $8B8A;
2246   GL_FRAGMENT_SHADER_DERIVATIVE_HINT = $8B8B;
2247   GL_SHADING_LANGUAGE_VERSION = $8B8C;
2248   GL_CURRENT_PROGRAM = $8B8D;
2249   GL_POINT_SPRITE_COORD_ORIGIN = $8CA0;
2250   GL_LOWER_LEFT = $8CA1;
2251   GL_UPPER_LEFT = $8CA2;
2252   GL_STENCIL_BACK_REF = $8CA3;
2253   GL_STENCIL_BACK_VALUE_MASK = $8CA4;
2254   GL_STENCIL_BACK_WRITEMASK = $8CA5;
2255 {$ifdef DGL_DEPRECATED}
2256   GL_VERTEX_PROGRAM_TWO_SIDE = $8643;
2257   GL_POINT_SPRITE = $8861;
2258   GL_COORD_REPLACE = $8862;
2259   GL_MAX_TEXTURE_COORDS = $8871;
2260 {$endif}
2261
2262   // GL_VERSION_2_1
2263   GL_PIXEL_PACK_BUFFER = $88EB;
2264   GL_PIXEL_UNPACK_BUFFER = $88EC;
2265   GL_PIXEL_PACK_BUFFER_BINDING = $88ED;
2266   GL_PIXEL_UNPACK_BUFFER_BINDING = $88EF;
2267   GL_FLOAT_MAT2x3 = $8B65;
2268   GL_FLOAT_MAT2x4 = $8B66;
2269   GL_FLOAT_MAT3x2 = $8B67;
2270   GL_FLOAT_MAT3x4 = $8B68;
2271   GL_FLOAT_MAT4x2 = $8B69;
2272   GL_FLOAT_MAT4x3 = $8B6A;
2273   GL_SRGB = $8C40;
2274   GL_SRGB8 = $8C41;
2275   GL_SRGB_ALPHA = $8C42;
2276   GL_SRGB8_ALPHA8 = $8C43;
2277   GL_COMPRESSED_SRGB = $8C48;
2278   GL_COMPRESSED_SRGB_ALPHA = $8C49;
2279 {$ifdef DGL_DEPRECATED}
2280   GL_CURRENT_RASTER_SECONDARY_COLOR = $845F;
2281   GL_SLUMINANCE_ALPHA = $8C44;
2282   GL_SLUMINANCE8_ALPHA8 = $8C45;
2283   GL_SLUMINANCE = $8C46;
2284   GL_SLUMINANCE8 = $8C47;
2285   GL_COMPRESSED_SLUMINANCE = $8C4A;
2286   GL_COMPRESSED_SLUMINANCE_ALPHA = $8C4B;
2287 {$endif}
2288
2289   // GL_VERSION_3_0
2290   GL_COMPARE_REF_TO_TEXTURE = $884E;
2291   GL_CLIP_DISTANCE0 = $3000;
2292   GL_CLIP_DISTANCE1 = $3001;
2293   GL_CLIP_DISTANCE2 = $3002;
2294   GL_CLIP_DISTANCE3 = $3003;
2295   GL_CLIP_DISTANCE4 = $3004;
2296   GL_CLIP_DISTANCE5 = $3005;
2297   GL_CLIP_DISTANCE6 = $3006;
2298   GL_CLIP_DISTANCE7 = $3007;
2299   GL_MAX_CLIP_DISTANCES = $0D32;
2300   GL_MAJOR_VERSION = $821B;
2301   GL_MINOR_VERSION = $821C;
2302   GL_NUM_EXTENSIONS = $821D;
2303   GL_CONTEXT_FLAGS = $821E;
2304   GL_DEPTH_BUFFER = $8223;
2305   GL_STENCIL_BUFFER = $8224;
2306   GL_COMPRESSED_RED = $8225;
2307   GL_COMPRESSED_RG = $8226;
2308   GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = $0001;
2309   GL_RGBA32F = $8814;
2310   GL_RGB32F = $8815;
2311   GL_RGBA16F = $881A;
2312   GL_RGB16F = $881B;
2313   GL_VERTEX_ATTRIB_ARRAY_INTEGER = $88FD;
2314   GL_MAX_ARRAY_TEXTURE_LAYERS = $88FF;
2315   GL_MIN_PROGRAM_TEXEL_OFFSET = $8904;
2316   GL_MAX_PROGRAM_TEXEL_OFFSET = $8905;
2317   GL_CLAMP_READ_COLOR = $891C;
2318   GL_FIXED_ONLY = $891D;
2319   GL_MAX_VARYING_COMPONENTS = $8B4B;
2320   GL_TEXTURE_1D_ARRAY = $8C18;
2321   GL_PROXY_TEXTURE_1D_ARRAY = $8C19;
2322   GL_TEXTURE_2D_ARRAY = $8C1A;
2323   GL_PROXY_TEXTURE_2D_ARRAY = $8C1B;
2324   GL_TEXTURE_BINDING_1D_ARRAY = $8C1C;
2325   GL_TEXTURE_BINDING_2D_ARRAY = $8C1D;
2326   GL_R11F_G11F_B10F = $8C3A;
2327   GL_UNSIGNED_INT_10F_11F_11F_REV = $8C3B;
2328   GL_RGB9_E5 = $8C3D;
2329   GL_UNSIGNED_INT_5_9_9_9_REV = $8C3E;
2330   GL_TEXTURE_SHARED_SIZE = $8C3F;
2331   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = $8C76;
2332   GL_TRANSFORM_FEEDBACK_BUFFER_MODE = $8C7F;
2333   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = $8C80;
2334   GL_TRANSFORM_FEEDBACK_VARYINGS = $8C83;
2335   GL_TRANSFORM_FEEDBACK_BUFFER_START = $8C84;
2336   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = $8C85;
2337   GL_PRIMITIVES_GENERATED = $8C87;
2338   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = $8C88;
2339   GL_RASTERIZER_DISCARD = $8C89;
2340   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = $8C8A;
2341   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = $8C8B;
2342   GL_INTERLEAVED_ATTRIBS = $8C8C;
2343   GL_SEPARATE_ATTRIBS = $8C8D;
2344   GL_TRANSFORM_FEEDBACK_BUFFER = $8C8E;
2345   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = $8C8F;
2346   GL_RGBA32UI = $8D70;
2347   GL_RGB32UI = $8D71;
2348   GL_RGBA16UI = $8D76;
2349   GL_RGB16UI = $8D77;
2350   GL_RGBA8UI = $8D7C;
2351   GL_RGB8UI = $8D7D;
2352   GL_RGBA32I = $8D82;
2353   GL_RGB32I = $8D83;
2354   GL_RGBA16I = $8D88;
2355   GL_RGB16I = $8D89;
2356   GL_RGBA8I = $8D8E;
2357   GL_RGB8I = $8D8F;
2358   GL_RED_INTEGER = $8D94;
2359   GL_GREEN_INTEGER = $8D95;
2360   GL_BLUE_INTEGER = $8D96;
2361   GL_RGB_INTEGER = $8D98;
2362   GL_RGBA_INTEGER = $8D99;
2363   GL_BGR_INTEGER = $8D9A;
2364   GL_BGRA_INTEGER = $8D9B;
2365   GL_SAMPLER_1D_ARRAY = $8DC0;
2366   GL_SAMPLER_2D_ARRAY = $8DC1;
2367   GL_SAMPLER_1D_ARRAY_SHADOW = $8DC3;
2368   GL_SAMPLER_2D_ARRAY_SHADOW = $8DC4;
2369   GL_SAMPLER_CUBE_SHADOW = $8DC5;
2370   GL_UNSIGNED_INT_VEC2 = $8DC6;
2371   GL_UNSIGNED_INT_VEC3 = $8DC7;
2372   GL_UNSIGNED_INT_VEC4 = $8DC8;
2373   GL_INT_SAMPLER_1D = $8DC9;
2374   GL_INT_SAMPLER_2D = $8DCA;
2375   GL_INT_SAMPLER_3D = $8DCB;
2376   GL_INT_SAMPLER_CUBE = $8DCC;
2377   GL_INT_SAMPLER_1D_ARRAY = $8DCE;
2378   GL_INT_SAMPLER_2D_ARRAY = $8DCF;
2379   GL_UNSIGNED_INT_SAMPLER_1D = $8DD1;
2380   GL_UNSIGNED_INT_SAMPLER_2D = $8DD2;
2381   GL_UNSIGNED_INT_SAMPLER_3D = $8DD3;
2382   GL_UNSIGNED_INT_SAMPLER_CUBE = $8DD4;
2383   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = $8DD6;
2384   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = $8DD7;
2385   GL_QUERY_WAIT = $8E13;
2386   GL_QUERY_NO_WAIT = $8E14;
2387   GL_QUERY_BY_REGION_WAIT = $8E15;
2388   GL_QUERY_BY_REGION_NO_WAIT = $8E16;
2389   GL_BUFFER_ACCESS_FLAGS = $911F;
2390   GL_BUFFER_MAP_LENGTH = $9120;
2391   GL_BUFFER_MAP_OFFSET = $9121;
2392   { Reuse tokens from ARB_depth_buffer_float }
2393   { reuse GL_DEPTH_COMPONENT32F }
2394   { reuse GL_DEPTH32F_STENCIL8 }
2395   { reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV }
2396   { Reuse tokens from ARB_framebuffer_object }
2397   { reuse GL_INVALID_FRAMEBUFFER_OPERATION }
2398   { reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING }
2399   { reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE }
2400   { reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE }
2401   { reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE }
2402   { reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE }
2403   { reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE }
2404   { reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE }
2405   { reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE }
2406   { reuse GL_FRAMEBUFFER_DEFAULT }
2407   { reuse GL_FRAMEBUFFER_UNDEFINED }
2408   { reuse GL_DEPTH_STENCIL_ATTACHMENT }
2409   { reuse GL_INDEX }
2410   { reuse GL_MAX_RENDERBUFFER_SIZE }
2411   { reuse GL_DEPTH_STENCIL }
2412   { reuse GL_UNSIGNED_INT_24_8 }
2413   { reuse GL_DEPTH24_STENCIL8 }
2414   { reuse GL_TEXTURE_STENCIL_SIZE }
2415   { reuse GL_TEXTURE_RED_TYPE }
2416   { reuse GL_TEXTURE_GREEN_TYPE }
2417   { reuse GL_TEXTURE_BLUE_TYPE }
2418   { reuse GL_TEXTURE_ALPHA_TYPE }
2419   { reuse GL_TEXTURE_DEPTH_TYPE }
2420   { reuse GL_UNSIGNED_NORMALIZED }
2421   { reuse GL_FRAMEBUFFER_BINDING }
2422   { reuse GL_DRAW_FRAMEBUFFER_BINDING }
2423   { reuse GL_RENDERBUFFER_BINDING }
2424   { reuse GL_READ_FRAMEBUFFER }
2425   { reuse GL_DRAW_FRAMEBUFFER }
2426   { reuse GL_READ_FRAMEBUFFER_BINDING }
2427   { reuse GL_RENDERBUFFER_SAMPLES }
2428   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE }
2429   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME }
2430   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL }
2431   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE }
2432   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2433   { reuse GL_FRAMEBUFFER_COMPLETE }
2434   { reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT }
2435   { reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT }
2436   { reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER }
2437   { reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER }
2438   { reuse GL_FRAMEBUFFER_UNSUPPORTED }
2439   { reuse GL_MAX_COLOR_ATTACHMENTS }
2440   { reuse GL_COLOR_ATTACHMENT0 }
2441   { reuse GL_COLOR_ATTACHMENT1 }
2442   { reuse GL_COLOR_ATTACHMENT2 }
2443   { reuse GL_COLOR_ATTACHMENT3 }
2444   { reuse GL_COLOR_ATTACHMENT4 }
2445   { reuse GL_COLOR_ATTACHMENT5 }
2446   { reuse GL_COLOR_ATTACHMENT6 }
2447   { reuse GL_COLOR_ATTACHMENT7 }
2448   { reuse GL_COLOR_ATTACHMENT8 }
2449   { reuse GL_COLOR_ATTACHMENT9 }
2450   { reuse GL_COLOR_ATTACHMENT10 }
2451   { reuse GL_COLOR_ATTACHMENT11 }
2452   { reuse GL_COLOR_ATTACHMENT12 }
2453   { reuse GL_COLOR_ATTACHMENT13 }
2454   { reuse GL_COLOR_ATTACHMENT14 }
2455   { reuse GL_COLOR_ATTACHMENT15 }
2456   { reuse GL_DEPTH_ATTACHMENT }
2457   { reuse GL_STENCIL_ATTACHMENT }
2458   { reuse GL_FRAMEBUFFER }
2459   { reuse GL_RENDERBUFFER }
2460   { reuse GL_RENDERBUFFER_WIDTH }
2461   { reuse GL_RENDERBUFFER_HEIGHT }
2462   { reuse GL_RENDERBUFFER_INTERNAL_FORMAT }
2463   { reuse GL_STENCIL_INDEX1 }
2464   { reuse GL_STENCIL_INDEX4 }
2465   { reuse GL_STENCIL_INDEX8 }
2466   { reuse GL_STENCIL_INDEX16 }
2467   { reuse GL_RENDERBUFFER_RED_SIZE }
2468   { reuse GL_RENDERBUFFER_GREEN_SIZE }
2469   { reuse GL_RENDERBUFFER_BLUE_SIZE }
2470   { reuse GL_RENDERBUFFER_ALPHA_SIZE }
2471   { reuse GL_RENDERBUFFER_DEPTH_SIZE }
2472   { reuse GL_RENDERBUFFER_STENCIL_SIZE }
2473   { reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE }
2474   { reuse GL_MAX_SAMPLES }
2475   { Reuse tokens from ARB_framebuffer_sRGB }
2476   { reuse GL_FRAMEBUFFER_SRGB }
2477   { Reuse tokens from ARB_half_float_vertex }
2478   { reuse GL_HALF_FLOAT }
2479   { Reuse tokens from ARB_map_buffer_range }
2480   { reuse GL_MAP_READ_BIT }
2481   { reuse GL_MAP_WRITE_BIT }
2482   { reuse GL_MAP_INVALIDATE_RANGE_BIT }
2483   { reuse GL_MAP_INVALIDATE_BUFFER_BIT }
2484   { reuse GL_MAP_FLUSH_EXPLICIT_BIT }
2485   { reuse GL_MAP_UNSYNCHRONIZED_BIT }
2486   { Reuse tokens from ARB_texture_compression_rgtc }
2487   { reuse GL_COMPRESSED_RED_RGTC1 }
2488   { reuse GL_COMPRESSED_SIGNED_RED_RGTC1 }
2489   { reuse GL_COMPRESSED_RG_RGTC2 }
2490   { reuse GL_COMPRESSED_SIGNED_RG_RGTC2 }
2491   { Reuse tokens from ARB_texture_rg }
2492   { reuse GL_RG }
2493   { reuse GL_RG_INTEGER }
2494   { reuse GL_R8 }
2495   { reuse GL_R16 }
2496   { reuse GL_RG8 }
2497   { reuse GL_RG16 }
2498   { reuse GL_R16F }
2499   { reuse GL_R32F }
2500   { reuse GL_RG16F }
2501   { reuse GL_RG32F }
2502   { reuse GL_R8I }
2503   { reuse GL_R8UI }
2504   { reuse GL_R16I }
2505   { reuse GL_R16UI }
2506   { reuse GL_R32I }
2507   { reuse GL_R32UI }
2508   { reuse GL_RG8I }
2509   { reuse GL_RG8UI }
2510   { reuse GL_RG16I }
2511   { reuse GL_RG16UI }
2512   { reuse GL_RG32I }
2513   { reuse GL_RG32UI }
2514   { Reuse tokens from ARB_vertex_array_object }
2515   { reuse GL_VERTEX_ARRAY_BINDING }
2516 {$ifdef DGL_DEPRECATED}
2517   GL_CLAMP_VERTEX_COLOR = $891A;
2518   GL_CLAMP_FRAGMENT_COLOR = $891B;
2519   GL_ALPHA_INTEGER = $8D97;
2520   { Reuse tokens from ARB_framebuffer_object }
2521   { reuse GL_TEXTURE_LUMINANCE_TYPE }
2522   { reuse GL_TEXTURE_INTENSITY_TYPE }
2523 {$endif}
2524
2525   // GL_VERSION_3_1
2526   GL_SAMPLER_2D_RECT = $8B63;
2527   GL_SAMPLER_2D_RECT_SHADOW = $8B64;
2528   GL_SAMPLER_BUFFER = $8DC2;
2529   GL_INT_SAMPLER_2D_RECT = $8DCD;
2530   GL_INT_SAMPLER_BUFFER = $8DD0;
2531   GL_UNSIGNED_INT_SAMPLER_2D_RECT = $8DD5;
2532   GL_UNSIGNED_INT_SAMPLER_BUFFER = $8DD8;
2533   GL_TEXTURE_BUFFER = $8C2A;
2534   GL_MAX_TEXTURE_BUFFER_SIZE = $8C2B;
2535   GL_TEXTURE_BINDING_BUFFER = $8C2C;
2536   GL_TEXTURE_BUFFER_DATA_STORE_BINDING = $8C2D;
2537   GL_TEXTURE_BUFFER_FORMAT = $8C2E;
2538   GL_TEXTURE_RECTANGLE = $84F5;
2539   GL_TEXTURE_BINDING_RECTANGLE = $84F6;
2540   GL_PROXY_TEXTURE_RECTANGLE = $84F7;
2541   GL_MAX_RECTANGLE_TEXTURE_SIZE = $84F8;
2542   GL_RED_SNORM = $8F90;
2543   GL_RG_SNORM = $8F91;
2544   GL_RGB_SNORM = $8F92;
2545   GL_RGBA_SNORM = $8F93;
2546   GL_R8_SNORM = $8F94;
2547   GL_RG8_SNORM = $8F95;
2548   GL_RGB8_SNORM = $8F96;
2549   GL_RGBA8_SNORM = $8F97;
2550   GL_R16_SNORM = $8F98;
2551   GL_RG16_SNORM = $8F99;
2552   GL_RGB16_SNORM = $8F9A;
2553   GL_RGBA16_SNORM = $8F9B;
2554   GL_SIGNED_NORMALIZED = $8F9C;
2555   GL_PRIMITIVE_RESTART = $8F9D;
2556   GL_PRIMITIVE_RESTART_INDEX = $8F9E;
2557   { Reuse tokens from ARB_copy_buffer }
2558   { reuse GL_COPY_READ_BUFFER }
2559   { reuse GL_COPY_WRITE_BUFFER }
2560   { Reuse tokens from ARB_draw_instanced (none) }
2561   { Reuse tokens from ARB_uniform_buffer_object }
2562   { reuse GL_UNIFORM_BUFFER }
2563   { reuse GL_UNIFORM_BUFFER_BINDING }
2564   { reuse GL_UNIFORM_BUFFER_START }
2565   { reuse GL_UNIFORM_BUFFER_SIZE }
2566   { reuse GL_MAX_VERTEX_UNIFORM_BLOCKS }
2567   { reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS }
2568   { reuse GL_MAX_COMBINED_UNIFORM_BLOCKS }
2569   { reuse GL_MAX_UNIFORM_BUFFER_BINDINGS }
2570   { reuse GL_MAX_UNIFORM_BLOCK_SIZE }
2571   { reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS }
2572   { reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS }
2573   { reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT }
2574   { reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH }
2575   { reuse GL_ACTIVE_UNIFORM_BLOCKS }
2576   { reuse GL_UNIFORM_TYPE }
2577   { reuse GL_UNIFORM_SIZE }
2578   { reuse GL_UNIFORM_NAME_LENGTH }
2579   { reuse GL_UNIFORM_BLOCK_INDEX }
2580   { reuse GL_UNIFORM_OFFSET }
2581   { reuse GL_UNIFORM_ARRAY_STRIDE }
2582   { reuse GL_UNIFORM_MATRIX_STRIDE }
2583   { reuse GL_UNIFORM_IS_ROW_MAJOR }
2584   { reuse GL_UNIFORM_BLOCK_BINDING }
2585   { reuse GL_UNIFORM_BLOCK_DATA_SIZE }
2586   { reuse GL_UNIFORM_BLOCK_NAME_LENGTH }
2587   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS }
2588   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES }
2589   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER }
2590   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER }
2591   { reuse GL_INVALID_INDEX }
2592
2593   // GL_VERSION_3_2
2594   GL_CONTEXT_CORE_PROFILE_BIT = $00000001;
2595   GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = $00000002;
2596   GL_LINES_ADJACENCY = $000A;
2597   GL_LINE_STRIP_ADJACENCY = $000B;
2598   GL_TRIANGLES_ADJACENCY = $000C;
2599   GL_TRIANGLE_STRIP_ADJACENCY = $000D;
2600   GL_PROGRAM_POINT_SIZE = $8642;
2601   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = $8C29;
2602   GL_FRAMEBUFFER_ATTACHMENT_LAYERED = $8DA7;
2603   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = $8DA8;
2604   GL_GEOMETRY_SHADER = $8DD9;
2605   GL_GEOMETRY_VERTICES_OUT = $8916;
2606   GL_GEOMETRY_INPUT_TYPE = $8917;
2607   GL_GEOMETRY_OUTPUT_TYPE = $8918;
2608   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = $8DDF;
2609   GL_MAX_GEOMETRY_OUTPUT_VERTICES = $8DE0;
2610   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = $8DE1;
2611   GL_MAX_VERTEX_OUTPUT_COMPONENTS = $9122;
2612   GL_MAX_GEOMETRY_INPUT_COMPONENTS = $9123;
2613   GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = $9124;
2614   GL_MAX_FRAGMENT_INPUT_COMPONENTS = $9125;
2615   GL_CONTEXT_PROFILE_MASK = $9126;
2616   { reuse GL_MAX_VARYING_COMPONENTS }
2617   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2618   { Reuse tokens from ARB_depth_clamp }
2619   { reuse GL_DEPTH_CLAMP }
2620   { Reuse tokens from ARB_draw_elements_base_vertex (none) }
2621   { Reuse tokens from ARB_fragment_coord_conventions (none) }
2622   { Reuse tokens from ARB_provoking_vertex }
2623   { reuse GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION }
2624   { reuse GL_FIRST_VERTEX_CONVENTION }
2625   { reuse GL_LAST_VERTEX_CONVENTION }
2626   { reuse GL_PROVOKING_VERTEX }
2627   { Reuse tokens from ARB_seamless_cube_map }
2628   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
2629   { Reuse tokens from ARB_sync }
2630   { reuse GL_MAX_SERVER_WAIT_TIMEOUT }
2631   { reuse GL_OBJECT_TYPE }
2632   { reuse GL_SYNC_CONDITION }
2633   { reuse GL_SYNC_STATUS }
2634   { reuse GL_SYNC_FLAGS }
2635   { reuse GL_SYNC_FENCE }
2636   { reuse GL_SYNC_GPU_COMMANDS_COMPLETE }
2637   { reuse GL_UNSIGNALED }
2638   { reuse GL_SIGNALED }
2639   { reuse GL_ALREADY_SIGNALED }
2640   { reuse GL_TIMEOUT_EXPIRED }
2641   { reuse GL_CONDITION_SATISFIED }
2642   { reuse GL_WAIT_FAILED }
2643   { reuse GL_TIMEOUT_IGNORED }
2644   { reuse GL_SYNC_FLUSH_COMMANDS_BIT }
2645   { reuse GL_TIMEOUT_IGNORED }
2646   { Reuse tokens from ARB_texture_multisample }
2647   { reuse GL_SAMPLE_POSITION }
2648   { reuse GL_SAMPLE_MASK }
2649   { reuse GL_SAMPLE_MASK_VALUE }
2650   { reuse GL_MAX_SAMPLE_MASK_WORDS }
2651   { reuse GL_TEXTURE_2D_MULTISAMPLE }
2652   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE }
2653   { reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY }
2654   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY }
2655   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE }
2656   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY }
2657   { reuse GL_TEXTURE_SAMPLES }
2658   { reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS }
2659   { reuse GL_SAMPLER_2D_MULTISAMPLE }
2660   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE }
2661   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE }
2662   { reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY }
2663   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2664   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2665   { reuse GL_MAX_COLOR_TEXTURE_SAMPLES }
2666   { reuse GL_MAX_DEPTH_TEXTURE_SAMPLES }
2667   { reuse GL_MAX_INTEGER_SAMPLES }
2668   { Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core }
2669
2670   // GL_VERSION_3_3
2671   GL_VERTEX_ATTRIB_ARRAY_DIVISOR = $88FE;
2672   { Reuse tokens from ARB_blend_func_extended }
2673   { reuse GL_SRC1_COLOR }
2674   { reuse GL_ONE_MINUS_SRC1_COLOR }
2675   { reuse GL_ONE_MINUS_SRC1_ALPHA }
2676   { reuse GL_MAX_DUAL_SOURCE_DRAW_BUFFERS }
2677   { Reuse tokens from ARB_explicit_attrib_location (none) }
2678   { Reuse tokens from ARB_occlusion_query2 }
2679   { reuse GL_ANY_SAMPLES_PASSED }
2680   { Reuse tokens from ARB_sampler_objects }
2681   { reuse GL_SAMPLER_BINDING }
2682   { Reuse tokens from ARB_shader_bit_encoding (none) }
2683   { Reuse tokens from ARB_texture_rgb10_a2ui }
2684   { reuse GL_RGB10_A2UI }
2685   { Reuse tokens from ARB_texture_swizzle }
2686   { reuse GL_TEXTURE_SWIZZLE_R }
2687   { reuse GL_TEXTURE_SWIZZLE_G }
2688   { reuse GL_TEXTURE_SWIZZLE_B }
2689   { reuse GL_TEXTURE_SWIZZLE_A }
2690   { reuse GL_TEXTURE_SWIZZLE_RGBA }
2691   { Reuse tokens from ARB_timer_query }
2692   { reuse GL_TIME_ELAPSED }
2693   { reuse GL_TIMESTAMP }
2694   { Reuse tokens from ARB_vertex_type_2_10_10_10_rev }
2695   { reuse GL_INT_2_10_10_10_REV }
2696
2697   // GL_VERSION_4_0
2698   GL_SAMPLE_SHADING = $8C36;
2699   GL_MIN_SAMPLE_SHADING_VALUE = $8C37;
2700   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5E;
2701   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5F;
2702   GL_TEXTURE_CUBE_MAP_ARRAY = $9009;
2703   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = $900A;
2704   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = $900B;
2705   GL_SAMPLER_CUBE_MAP_ARRAY = $900C;
2706   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = $900D;
2707   GL_INT_SAMPLER_CUBE_MAP_ARRAY = $900E;
2708   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = $900F;
2709   { Reuse tokens from ARB_texture_query_lod (none) }
2710   { Reuse tokens from ARB_draw_buffers_blend (none) }
2711   { Reuse tokens from ARB_draw_indirect }
2712   { reuse GL_DRAW_INDIRECT_BUFFER }
2713   { reuse GL_DRAW_INDIRECT_BUFFER_BINDING }
2714   { Reuse tokens from ARB_gpu_shader5 }
2715   { reuse GL_GEOMETRY_SHADER_INVOCATIONS }
2716   { reuse GL_MAX_GEOMETRY_SHADER_INVOCATIONS }
2717   { reuse GL_MIN_FRAGMENT_INTERPOLATION_OFFSET }
2718   { reuse GL_MAX_FRAGMENT_INTERPOLATION_OFFSET }
2719   { reuse GL_FRAGMENT_INTERPOLATION_OFFSET_BITS }
2720   { reuse GL_MAX_VERTEX_STREAMS }
2721   { Reuse tokens from ARB_gpu_shader_fp64 }
2722   { reuse GL_DOUBLE_VEC2 }
2723   { reuse GL_DOUBLE_VEC3 }
2724   { reuse GL_DOUBLE_VEC4 }
2725   { reuse GL_DOUBLE_MAT2 }
2726   { reuse GL_DOUBLE_MAT3 }
2727   { reuse GL_DOUBLE_MAT4 }
2728   { reuse GL_DOUBLE_MAT2x3 }
2729   { reuse GL_DOUBLE_MAT2x4 }
2730   { reuse GL_DOUBLE_MAT3x2 }
2731   { reuse GL_DOUBLE_MAT3x4 }
2732   { reuse GL_DOUBLE_MAT4x2 }
2733   { reuse GL_DOUBLE_MAT4x3 }
2734   { Reuse tokens from ARB_shader_subroutine }
2735   { reuse GL_ACTIVE_SUBROUTINES }
2736   { reuse GL_ACTIVE_SUBROUTINE_UNIFORMS }
2737   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS }
2738   { reuse GL_ACTIVE_SUBROUTINE_MAX_LENGTH }
2739   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH }
2740   { reuse GL_MAX_SUBROUTINES }
2741   { reuse GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS }
2742   { reuse GL_NUM_COMPATIBLE_SUBROUTINES }
2743   { reuse GL_COMPATIBLE_SUBROUTINES }
2744   { Reuse tokens from ARB_tessellation_shader }
2745   { reuse GL_PATCHES }
2746   { reuse GL_PATCH_VERTICES }
2747   { reuse GL_PATCH_DEFAULT_INNER_LEVEL }
2748   { reuse GL_PATCH_DEFAULT_OUTER_LEVEL }
2749   { reuse GL_TESS_CONTROL_OUTPUT_VERTICES }
2750   { reuse GL_TESS_GEN_MODE }
2751   { reuse GL_TESS_GEN_SPACING }
2752   { reuse GL_TESS_GEN_VERTEX_ORDER }
2753   { reuse GL_TESS_GEN_POINT_MODE }
2754   { reuse GL_ISOLINES }
2755   { reuse GL_FRACTIONAL_ODD }
2756   { reuse GL_FRACTIONAL_EVEN }
2757   { reuse GL_MAX_PATCH_VERTICES }
2758   { reuse GL_MAX_TESS_GEN_LEVEL }
2759   { reuse GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS }
2760   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS }
2761   { reuse GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS }
2762   { reuse GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS }
2763   { reuse GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS }
2764   { reuse GL_MAX_TESS_PATCH_COMPONENTS }
2765   { reuse GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS }
2766   { reuse GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS }
2767   { reuse GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS }
2768   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS }
2769   { reuse GL_MAX_TESS_CONTROL_INPUT_COMPONENTS }
2770   { reuse GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS }
2771   { reuse GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS }
2772   { reuse GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS }
2773   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER }
2774   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER }
2775   { reuse GL_TESS_EVALUATION_SHADER }
2776   { reuse GL_TESS_CONTROL_SHADER }
2777   { Reuse tokens from ARB_texture_buffer_object_rgb32 (none) }
2778   { Reuse tokens from ARB_transform_feedback2 }
2779   { reuse GL_TRANSFORM_FEEDBACK }
2780   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED }
2781   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE }
2782   { reuse GL_TRANSFORM_FEEDBACK_BINDING }
2783   { Reuse tokens from ARB_transform_feedback3 }
2784   { reuse GL_MAX_TRANSFORM_FEEDBACK_BUFFERS }
2785   { reuse GL_MAX_VERTEX_STREAMS }
2786
2787   // GL_VERSION_4_1
2788   { Reuse tokens from ARB_ES2_compatibility }
2789   { reuse GL_FIXED }
2790   { reuse GL_IMPLEMENTATION_COLOR_READ_TYPE }
2791   { reuse GL_IMPLEMENTATION_COLOR_READ_FORMAT }
2792   { reuse GL_LOW_FLOAT }
2793   { reuse GL_MEDIUM_FLOAT }
2794   { reuse GL_HIGH_FLOAT }
2795   { reuse GL_LOW_INT }
2796   { reuse GL_MEDIUM_INT }
2797   { reuse GL_HIGH_INT }
2798   { reuse GL_SHADER_COMPILER }
2799   { reuse GL_NUM_SHADER_BINARY_FORMATS }
2800   { reuse GL_MAX_VERTEX_UNIFORM_VECTORS }
2801   { reuse GL_MAX_VARYING_VECTORS }
2802   { reuse GL_MAX_FRAGMENT_UNIFORM_VECTORS }
2803   { reuse GL_RGB565 }
2804   { Reuse tokens from ARB_get_program_binary }
2805   { reuse GL_PROGRAM_BINARY_RETRIEVABLE_HINT }
2806   { reuse GL_PROGRAM_BINARY_LENGTH }
2807   { reuse GL_NUM_PROGRAM_BINARY_FORMATS }
2808   { reuse GL_PROGRAM_BINARY_FORMATS }
2809   { Reuse tokens from ARB_separate_shader_objects }
2810   { reuse GL_VERTEX_SHADER_BIT }
2811   { reuse GL_FRAGMENT_SHADER_BIT }
2812   { reuse GL_GEOMETRY_SHADER_BIT }
2813   { reuse GL_TESS_CONTROL_SHADER_BIT }
2814   { reuse GL_TESS_EVALUATION_SHADER_BIT }
2815   { reuse GL_ALL_SHADER_BITS }
2816   { reuse GL_PROGRAM_SEPARABLE }
2817   { reuse GL_ACTIVE_PROGRAM }
2818   { reuse GL_PROGRAM_PIPELINE_BINDING }
2819   { Reuse tokens from ARB_shader_precision (none) }
2820   { Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already }
2821   { Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already }
2822   { reuse GL_MAX_VIEWPORTS }
2823   { reuse GL_VIEWPORT_SUBPIXEL_BITS }
2824   { reuse GL_VIEWPORT_BOUNDS_RANGE }
2825   { reuse GL_LAYER_PROVOKING_VERTEX }
2826   { reuse GL_VIEWPORT_INDEX_PROVOKING_VERTEX }
2827   { reuse GL_UNDEFINED_VERTEX }
2828
2829   // GL_VERSION_4_2
2830   { Reuse tokens from ARB_base_instance (none) }
2831   { Reuse tokens from ARB_shading_language_420pack (none) }
2832   { Reuse tokens from ARB_transform_feedback_instanced (none) }
2833   { Reuse tokens from ARB_compressed_texture_pixel_storage }
2834   { reuse GL_UNPACK_COMPRESSED_BLOCK_WIDTH }
2835   { reuse GL_UNPACK_COMPRESSED_BLOCK_HEIGHT }
2836   { reuse GL_UNPACK_COMPRESSED_BLOCK_DEPTH }
2837   { reuse GL_UNPACK_COMPRESSED_BLOCK_SIZE }
2838   { reuse GL_PACK_COMPRESSED_BLOCK_WIDTH }
2839   { reuse GL_PACK_COMPRESSED_BLOCK_HEIGHT }
2840   { reuse GL_PACK_COMPRESSED_BLOCK_DEPTH }
2841   { reuse GL_PACK_COMPRESSED_BLOCK_SIZE }
2842   { Reuse tokens from ARB_conservative_depth (none) }
2843   { Reuse tokens from ARB_internalformat_query }
2844   { reuse GL_NUM_SAMPLE_COUNTS }
2845   { Reuse tokens from ARB_map_buffer_alignment }
2846   { reuse GL_MIN_MAP_BUFFER_ALIGNMENT }
2847   { Reuse tokens from ARB_shader_atomic_counters }
2848   { reuse GL_ATOMIC_COUNTER_BUFFER }
2849   { reuse GL_ATOMIC_COUNTER_BUFFER_BINDING }
2850   { reuse GL_ATOMIC_COUNTER_BUFFER_START }
2851   { reuse GL_ATOMIC_COUNTER_BUFFER_SIZE }
2852   { reuse GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE }
2853   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS }
2854   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES }
2855   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER }
2856   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER }
2857   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER }
2858   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER }
2859   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER }
2860   { reuse GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS }
2861   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS }
2862   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS }
2863   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS }
2864   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS }
2865   { reuse GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS }
2866   { reuse GL_MAX_VERTEX_ATOMIC_COUNTERS }
2867   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS }
2868   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS }
2869   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTERS }
2870   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTERS }
2871   { reuse GL_MAX_COMBINED_ATOMIC_COUNTERS }
2872   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE }
2873   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS }
2874   { reuse GL_ACTIVE_ATOMIC_COUNTER_BUFFERS }
2875   { reuse GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX }
2876   { reuse GL_UNSIGNED_INT_ATOMIC_COUNTER }
2877   { Reuse tokens from ARB_shader_image_load_store }
2878   { reuse GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT }
2879   { reuse GL_ELEMENT_ARRAY_BARRIER_BIT }
2880   { reuse GL_UNIFORM_BARRIER_BIT }
2881   { reuse GL_TEXTURE_FETCH_BARRIER_BIT }
2882   { reuse GL_SHADER_IMAGE_ACCESS_BARRIER_BIT }
2883   { reuse GL_COMMAND_BARRIER_BIT }
2884   { reuse GL_PIXEL_BUFFER_BARRIER_BIT }
2885   { reuse GL_TEXTURE_UPDATE_BARRIER_BIT }
2886   { reuse GL_BUFFER_UPDATE_BARRIER_BIT }
2887   { reuse GL_FRAMEBUFFER_BARRIER_BIT }
2888   { reuse GL_TRANSFORM_FEEDBACK_BARRIER_BIT }
2889   { reuse GL_ATOMIC_COUNTER_BARRIER_BIT }
2890   { reuse GL_ALL_BARRIER_BITS }
2891   { reuse GL_MAX_IMAGE_UNITS }
2892   { reuse GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS }
2893   { reuse GL_IMAGE_BINDING_NAME }
2894   { reuse GL_IMAGE_BINDING_LEVEL }
2895   { reuse GL_IMAGE_BINDING_LAYERED }
2896   { reuse GL_IMAGE_BINDING_LAYER }
2897   { reuse GL_IMAGE_BINDING_ACCESS }
2898   { reuse GL_IMAGE_1D }
2899   { reuse GL_IMAGE_2D }
2900   { reuse GL_IMAGE_3D }
2901   { reuse GL_IMAGE_2D_RECT }
2902   { reuse GL_IMAGE_CUBE }
2903   { reuse GL_IMAGE_BUFFER }
2904   { reuse GL_IMAGE_1D_ARRAY }
2905   { reuse GL_IMAGE_2D_ARRAY }
2906   { reuse GL_IMAGE_CUBE_MAP_ARRAY }
2907   { reuse GL_IMAGE_2D_MULTISAMPLE }
2908   { reuse GL_IMAGE_2D_MULTISAMPLE_ARRAY }
2909   { reuse GL_INT_IMAGE_1D }
2910   { reuse GL_INT_IMAGE_2D }
2911   { reuse GL_INT_IMAGE_3D }
2912   { reuse GL_INT_IMAGE_2D_RECT }
2913   { reuse GL_INT_IMAGE_CUBE }
2914   { reuse GL_INT_IMAGE_BUFFER }
2915   { reuse GL_INT_IMAGE_1D_ARRAY }
2916   { reuse GL_INT_IMAGE_2D_ARRAY }
2917   { reuse GL_INT_IMAGE_CUBE_MAP_ARRAY }
2918   { reuse GL_INT_IMAGE_2D_MULTISAMPLE }
2919   { reuse GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2920   { reuse GL_UNSIGNED_INT_IMAGE_1D }
2921   { reuse GL_UNSIGNED_INT_IMAGE_2D }
2922   { reuse GL_UNSIGNED_INT_IMAGE_3D }
2923   { reuse GL_UNSIGNED_INT_IMAGE_2D_RECT }
2924   { reuse GL_UNSIGNED_INT_IMAGE_CUBE }
2925   { reuse GL_UNSIGNED_INT_IMAGE_BUFFER }
2926   { reuse GL_UNSIGNED_INT_IMAGE_1D_ARRAY }
2927   { reuse GL_UNSIGNED_INT_IMAGE_2D_ARRAY }
2928   { reuse GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY }
2929   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE }
2930   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2931   { reuse GL_MAX_IMAGE_SAMPLES }
2932   { reuse GL_IMAGE_BINDING_FORMAT }
2933   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_TYPE }
2934   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE }
2935   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS }
2936   { reuse GL_MAX_VERTEX_IMAGE_UNIFORMS }
2937   { reuse GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS }
2938   { reuse GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS }
2939   { reuse GL_MAX_GEOMETRY_IMAGE_UNIFORMS }
2940   { reuse GL_MAX_FRAGMENT_IMAGE_UNIFORMS }
2941   { reuse GL_MAX_COMBINED_IMAGE_UNIFORMS }
2942   { Reuse tokens from ARB_shading_language_packing (none) }
2943   { Reuse tokens from ARB_texture_storage }
2944   { reuse GL_TEXTURE_IMMUTABLE_FORMAT }
2945
2946   // GL_VERSION_4_3
2947   GL_NUM_SHADING_LANGUAGE_VERSIONS  = $82E9;
2948   GL_VERTEX_ATTRIB_ARRAY_LONG = $874E;
2949   { Reuse tokens from ARB_arrays_of_arrays (none, GLSL only) }
2950   { Reuse tokens from ARB_fragment_layer_viewport (none, GLSL only) }
2951   { Reuse tokens from ARB_shader_image_size (none, GLSL only) }
2952   { Reuse tokens from ARB_ES3_compatibility }
2953   { reuse GL_COMPRESSED_RGB8_ETC2 }
2954   { reuse GL_COMPRESSED_SRGB8_ETC2 }
2955   { reuse GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2956   { reuse GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2957   { reuse GL_COMPRESSED_RGBA8_ETC2_EAC }
2958   { reuse GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC }
2959   { reuse GL_COMPRESSED_R11_EAC }
2960   { reuse GL_COMPRESSED_SIGNED_R11_EAC }
2961   { reuse GL_COMPRESSED_RG11_EAC }
2962   { reuse GL_COMPRESSED_SIGNED_RG11_EAC }
2963   { reuse GL_PRIMITIVE_RESTART_FIXED_INDEX }
2964   { reuse GL_ANY_SAMPLES_PASSED_CONSERVATIVE }
2965   { reuse GL_MAX_ELEMENT_INDEX }
2966   { Reuse tokens from ARB_clear_buffer_object (none) }
2967   { Reuse tokens from ARB_compute_shader }
2968   { reuse GL_COMPUTE_SHADER }
2969   { reuse GL_MAX_COMPUTE_UNIFORM_BLOCKS }
2970   { reuse GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS }
2971   { reuse GL_MAX_COMPUTE_IMAGE_UNIFORMS }
2972   { reuse GL_MAX_COMPUTE_SHARED_MEMORY_SIZE }
2973   { reuse GL_MAX_COMPUTE_UNIFORM_COMPONENTS }
2974   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS }
2975   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTERS }
2976   { reuse GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS }
2977   { reuse GL_MAX_COMPUTE_LOCAL_INVOCATIONS }
2978   { reuse GL_MAX_COMPUTE_WORK_GROUP_COUNT }
2979   { reuse GL_MAX_COMPUTE_WORK_GROUP_SIZE }
2980   { reuse GL_COMPUTE_LOCAL_WORK_SIZE }
2981   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER }
2982   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER }
2983   { reuse GL_DISPATCH_INDIRECT_BUFFER }
2984   { reuse GL_DISPATCH_INDIRECT_BUFFER_BINDING }
2985   { Reuse tokens from ARB_copy_image (none) }
2986   { Reuse tokens from KHR_debug }
2987   { reuse GL_DEBUG_OUTPUT_SYNCHRONOUS }
2988   { reuse GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH }
2989   { reuse GL_DEBUG_CALLBACK_FUNCTION }
2990   { reuse GL_DEBUG_CALLBACK_USER_PARAM }
2991   { reuse GL_DEBUG_SOURCE_API }
2992   { reuse GL_DEBUG_SOURCE_WINDOW_SYSTEM }
2993   { reuse GL_DEBUG_SOURCE_SHADER_COMPILER }
2994   { reuse GL_DEBUG_SOURCE_THIRD_PARTY }
2995   { reuse GL_DEBUG_SOURCE_APPLICATION }
2996   { reuse GL_DEBUG_SOURCE_OTHER }
2997   { reuse GL_DEBUG_TYPE_ERROR }
2998   { reuse GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR }
2999   { reuse GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR }
3000   { reuse GL_DEBUG_TYPE_PORTABILITY }
3001   { reuse GL_DEBUG_TYPE_PERFORMANCE }
3002   { reuse GL_DEBUG_TYPE_OTHER }
3003   { reuse GL_MAX_DEBUG_MESSAGE_LENGTH }
3004   { reuse GL_MAX_DEBUG_LOGGED_MESSAGES }
3005   { reuse GL_DEBUG_LOGGED_MESSAGES }
3006   { reuse GL_DEBUG_SEVERITY_HIGH }
3007   { reuse GL_DEBUG_SEVERITY_MEDIUM }
3008   { reuse GL_DEBUG_SEVERITY_LOW }
3009   { reuse GL_DEBUG_TYPE_MARKER }
3010   { reuse GL_DEBUG_TYPE_PUSH_GROUP }
3011   { reuse GL_DEBUG_TYPE_POP_GROUP }
3012   { reuse GL_DEBUG_SEVERITY_NOTIFICATION }
3013   { reuse GL_MAX_DEBUG_GROUP_STACK_DEPTH }
3014   { reuse GL_DEBUG_GROUP_STACK_DEPTH }
3015   { reuse GL_BUFFER }
3016   { reuse GL_SHADER }
3017   { reuse GL_PROGRAM }
3018   { reuse GL_QUERY }
3019   { reuse GL_PROGRAM_PIPELINE }
3020   { reuse GL_SAMPLER }
3021   { reuse GL_DISPLAY_LIST }
3022   { reuse GL_MAX_LABEL_LENGTH }
3023   { reuse GL_DEBUG_OUTPUT }
3024   { reuse GL_CONTEXT_FLAG_DEBUG_BIT }
3025   { reuse GL_STACK_UNDERFLOW }
3026   { reuse GL_STACK_OVERFLOW }
3027   { Reuse tokens from ARB_explicit_uniform_location }
3028   { reuse GL_MAX_UNIFORM_LOCATIONS }
3029   { Reuse tokens from ARB_framebuffer_no_attachments }
3030   { reuse GL_FRAMEBUFFER_DEFAULT_WIDTH }
3031   { reuse GL_FRAMEBUFFER_DEFAULT_HEIGHT }
3032   { reuse GL_FRAMEBUFFER_DEFAULT_LAYERS }
3033   { reuse GL_FRAMEBUFFER_DEFAULT_SAMPLES }
3034   { reuse GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS }
3035   { reuse GL_MAX_FRAMEBUFFER_WIDTH }
3036   { reuse GL_MAX_FRAMEBUFFER_HEIGHT }
3037   { reuse GL_MAX_FRAMEBUFFER_LAYERS }
3038   { reuse GL_MAX_FRAMEBUFFER_SAMPLES }
3039   { Reuse tokens from ARB_internalformat_query2 }
3040   { reuse GL_INTERNALFORMAT_SUPPORTED }
3041   { reuse GL_INTERNALFORMAT_PREFERRED }
3042   { reuse GL_INTERNALFORMAT_RED_SIZE }
3043   { reuse GL_INTERNALFORMAT_GREEN_SIZE }
3044   { reuse GL_INTERNALFORMAT_BLUE_SIZE }
3045   { reuse GL_INTERNALFORMAT_ALPHA_SIZE }
3046   { reuse GL_INTERNALFORMAT_DEPTH_SIZE }
3047   { reuse GL_INTERNALFORMAT_STENCIL_SIZE }
3048   { reuse GL_INTERNALFORMAT_SHARED_SIZE }
3049   { reuse GL_INTERNALFORMAT_RED_TYPE }
3050   { reuse GL_INTERNALFORMAT_GREEN_TYPE }
3051   { reuse GL_INTERNALFORMAT_BLUE_TYPE }
3052   { reuse GL_INTERNALFORMAT_ALPHA_TYPE }
3053   { reuse GL_INTERNALFORMAT_DEPTH_TYPE }
3054   { reuse GL_INTERNALFORMAT_STENCIL_TYPE }
3055   { reuse GL_MAX_WIDTH }
3056   { reuse GL_MAX_HEIGHT }
3057   { reuse GL_MAX_DEPTH }
3058   { reuse GL_MAX_LAYERS }
3059   { reuse GL_MAX_COMBINED_DIMENSIONS }
3060   { reuse GL_COLOR_COMPONENTS }
3061   { reuse GL_DEPTH_COMPONENTS }
3062   { reuse GL_STENCIL_COMPONENTS }
3063   { reuse GL_COLOR_RENDERABLE }
3064   { reuse GL_DEPTH_RENDERABLE }
3065   { reuse GL_STENCIL_RENDERABLE }
3066   { reuse GL_FRAMEBUFFER_RENDERABLE }
3067   { reuse GL_FRAMEBUFFER_RENDERABLE_LAYERED }
3068   { reuse GL_FRAMEBUFFER_BLEND }
3069   { reuse GL_READ_PIXELS }
3070   { reuse GL_READ_PIXELS_FORMAT }
3071   { reuse GL_READ_PIXELS_TYPE }
3072   { reuse GL_TEXTURE_IMAGE_FORMAT }
3073   { reuse GL_TEXTURE_IMAGE_TYPE }
3074   { reuse GL_GET_TEXTURE_IMAGE_FORMAT }
3075   { reuse GL_GET_TEXTURE_IMAGE_TYPE }
3076   { reuse GL_MIPMAP }
3077   { reuse GL_MANUAL_GENERATE_MIPMAP }
3078   { reuse GL_AUTO_GENERATE_MIPMAP }
3079   { reuse GL_COLOR_ENCODING }
3080   { reuse GL_SRGB_READ }
3081   { reuse GL_SRGB_WRITE }
3082   { reuse GL_FILTER }
3083   { reuse GL_VERTEX_TEXTURE }
3084   { reuse GL_TESS_CONTROL_TEXTURE }
3085   { reuse GL_TESS_EVALUATION_TEXTURE }
3086   { reuse GL_GEOMETRY_TEXTURE }
3087   { reuse GL_FRAGMENT_TEXTURE }
3088   { reuse GL_COMPUTE_TEXTURE }
3089   { reuse GL_TEXTURE_SHADOW }
3090   { reuse GL_TEXTURE_GATHER }
3091   { reuse GL_TEXTURE_GATHER_SHADOW }
3092   { reuse GL_SHADER_IMAGE_LOAD }
3093   { reuse GL_SHADER_IMAGE_STORE }
3094   { reuse GL_SHADER_IMAGE_ATOMIC }
3095   { reuse GL_IMAGE_TEXEL_SIZE }
3096   { reuse GL_IMAGE_COMPATIBILITY_CLASS }
3097   { reuse GL_IMAGE_PIXEL_FORMAT }
3098   { reuse GL_IMAGE_PIXEL_TYPE }
3099   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST }
3100   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST }
3101   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE }
3102   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE }
3103   { reuse GL_TEXTURE_COMPRESSED_BLOCK_WIDTH }
3104   { reuse GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT }
3105   { reuse GL_TEXTURE_COMPRESSED_BLOCK_SIZE }
3106   { reuse GL_CLEAR_BUFFER }
3107   { reuse GL_TEXTURE_VIEW }
3108   { reuse GL_VIEW_COMPATIBILITY_CLASS }
3109   { reuse GL_FULL_SUPPORT }
3110   { reuse GL_CAVEAT_SUPPORT }
3111   { reuse GL_IMAGE_CLASS_4_X_32 }
3112   { reuse GL_IMAGE_CLASS_2_X_32 }
3113   { reuse GL_IMAGE_CLASS_1_X_32 }
3114   { reuse GL_IMAGE_CLASS_4_X_16 }
3115   { reuse GL_IMAGE_CLASS_2_X_16 }
3116   { reuse GL_IMAGE_CLASS_1_X_16 }
3117   { reuse GL_IMAGE_CLASS_4_X_8 }
3118   { reuse GL_IMAGE_CLASS_2_X_8 }
3119   { reuse GL_IMAGE_CLASS_1_X_8 }
3120   { reuse GL_IMAGE_CLASS_11_11_10 }
3121   { reuse GL_IMAGE_CLASS_10_10_10_2 }
3122   { reuse GL_VIEW_CLASS_128_BITS }
3123   { reuse GL_VIEW_CLASS_96_BITS }
3124   { reuse GL_VIEW_CLASS_64_BITS }
3125   { reuse GL_VIEW_CLASS_48_BITS }
3126   { reuse GL_VIEW_CLASS_32_BITS }
3127   { reuse GL_VIEW_CLASS_24_BITS }
3128   { reuse GL_VIEW_CLASS_16_BITS }
3129   { reuse GL_VIEW_CLASS_8_BITS }
3130   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGB }
3131   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGBA }
3132   { reuse GL_VIEW_CLASS_S3TC_DXT3_RGBA }
3133   { reuse GL_VIEW_CLASS_S3TC_DXT5_RGBA }
3134   { reuse GL_VIEW_CLASS_RGTC1_RED }
3135   { reuse GL_VIEW_CLASS_RGTC2_RG }
3136   { reuse GL_VIEW_CLASS_BPTC_UNORM }
3137   { reuse GL_VIEW_CLASS_BPTC_FLOAT }
3138   { Reuse tokens from ARB_invalidate_subdata (none) }
3139   { Reuse tokens from ARB_multi_draw_indirect (none) }
3140   { Reuse tokens from ARB_program_interface_query }
3141   { reuse GL_UNIFORM }
3142   { reuse GL_UNIFORM_BLOCK }
3143   { reuse GL_PROGRAM_INPUT }
3144   { reuse GL_PROGRAM_OUTPUT }
3145   { reuse GL_BUFFER_VARIABLE }
3146   { reuse GL_SHADER_STORAGE_BLOCK }
3147   { reuse GL_VERTEX_SUBROUTINE }
3148   { reuse GL_TESS_CONTROL_SUBROUTINE }
3149   { reuse GL_TESS_EVALUATION_SUBROUTINE }
3150   { reuse GL_GEOMETRY_SUBROUTINE }
3151   { reuse GL_FRAGMENT_SUBROUTINE }
3152   { reuse GL_COMPUTE_SUBROUTINE }
3153   { reuse GL_VERTEX_SUBROUTINE_UNIFORM }
3154   { reuse GL_TESS_CONTROL_SUBROUTINE_UNIFORM }
3155   { reuse GL_TESS_EVALUATION_SUBROUTINE_UNIFORM }
3156   { reuse GL_GEOMETRY_SUBROUTINE_UNIFORM }
3157   { reuse GL_FRAGMENT_SUBROUTINE_UNIFORM }
3158   { reuse GL_COMPUTE_SUBROUTINE_UNIFORM }
3159   { reuse GL_TRANSFORM_FEEDBACK_VARYING }
3160   { reuse GL_ACTIVE_RESOURCES }
3161   { reuse GL_MAX_NAME_LENGTH }
3162   { reuse GL_MAX_NUM_ACTIVE_VARIABLES }
3163   { reuse GL_MAX_NUM_COMPATIBLE_SUBROUTINES }
3164   { reuse GL_NAME_LENGTH }
3165   { reuse GL_TYPE }
3166   { reuse GL_ARRAY_SIZE }
3167   { reuse GL_OFFSET }
3168   { reuse GL_BLOCK_INDEX }
3169   { reuse GL_ARRAY_STRIDE }
3170   { reuse GL_MATRIX_STRIDE }
3171   { reuse GL_IS_ROW_MAJOR }
3172   { reuse GL_ATOMIC_COUNTER_BUFFER_INDEX }
3173   { reuse GL_BUFFER_BINDING }
3174   { reuse GL_BUFFER_DATA_SIZE }
3175   { reuse GL_NUM_ACTIVE_VARIABLES }
3176   { reuse GL_ACTIVE_VARIABLES }
3177   { reuse GL_REFERENCED_BY_VERTEX_SHADER }
3178   { reuse GL_REFERENCED_BY_TESS_CONTROL_SHADER }
3179   { reuse GL_REFERENCED_BY_TESS_EVALUATION_SHADER }
3180   { reuse GL_REFERENCED_BY_GEOMETRY_SHADER }
3181   { reuse GL_REFERENCED_BY_FRAGMENT_SHADER }
3182   { reuse GL_REFERENCED_BY_COMPUTE_SHADER }
3183   { reuse GL_TOP_LEVEL_ARRAY_SIZE }
3184   { reuse GL_TOP_LEVEL_ARRAY_STRIDE }
3185   { reuse GL_LOCATION }
3186   { reuse GL_LOCATION_INDEX }
3187   { reuse GL_IS_PER_PATCH }
3188   { Reuse tokens from ARB_robust_buffer_access_behavior (none) }
3189   { Reuse tokens from ARB_shader_storage_buffer_object }
3190   { reuse GL_SHADER_STORAGE_BUFFER }
3191   { reuse GL_SHADER_STORAGE_BUFFER_BINDING }
3192   { reuse GL_SHADER_STORAGE_BUFFER_START }
3193   { reuse GL_SHADER_STORAGE_BUFFER_SIZE }
3194   { reuse GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS }
3195   { reuse GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS }
3196   { reuse GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS }
3197   { reuse GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS }
3198   { reuse GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS }
3199   { reuse GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS }
3200   { reuse GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS }
3201   { reuse GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS }
3202   { reuse GL_MAX_SHADER_STORAGE_BLOCK_SIZE }
3203   { reuse GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT }
3204   { reuse GL_SHADER_STORAGE_BARRIER_BIT }
3205   { reuse GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES }
3206   { Reuse tokens from ARB_stencil_texturing }
3207   { reuse GL_DEPTH_STENCIL_TEXTURE_MODE }
3208   { Reuse tokens from ARB_texture_buffer_range }
3209   { reuse GL_TEXTURE_BUFFER_OFFSET }
3210   { reuse GL_TEXTURE_BUFFER_SIZE }
3211   { reuse GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT }
3212   { Reuse tokens from ARB_texture_query_levels (none) }
3213   { Reuse tokens from ARB_texture_storage_multisample (none) }
3214   { Reuse tokens from ARB_texture_view }
3215   { reuse GL_TEXTURE_VIEW_MIN_LEVEL }
3216   { reuse GL_TEXTURE_VIEW_NUM_LEVELS }
3217   { reuse GL_TEXTURE_VIEW_MIN_LAYER }
3218   { reuse GL_TEXTURE_VIEW_NUM_LAYERS }
3219   { reuse GL_TEXTURE_IMMUTABLE_LEVELS }
3220   { Reuse tokens from ARB_vertex_attrib_binding }
3221   { reuse GL_VERTEX_ATTRIB_BINDING }
3222   { reuse GL_VERTEX_ATTRIB_RELATIVE_OFFSET }
3223   { reuse GL_VERTEX_BINDING_DIVISOR }
3224   { reuse GL_VERTEX_BINDING_OFFSET }
3225   { reuse GL_VERTEX_BINDING_STRIDE }
3226   { reuse GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET }
3227   { reuse GL_MAX_VERTEX_ATTRIB_BINDINGS }
3228
3229
3230   // GL_3DFX_multisample
3231   GL_MULTISAMPLE_3DFX = $86B2;
3232   GL_SAMPLE_BUFFERS_3DFX = $86B3;
3233   GL_SAMPLES_3DFX = $86B4;
3234   GL_MULTISAMPLE_BIT_3DFX = $20000000;
3235
3236   // GL_3DFX_texture_compression_FXT1
3237   GL_COMPRESSED_RGB_FXT1_3DFX = $86B0;
3238   GL_COMPRESSED_RGBA_FXT1_3DFX = $86B1;
3239
3240   // GL_APPLE_client_storage
3241   GL_UNPACK_CLIENT_STORAGE_APPLE = $85B2;
3242
3243   // GL_APPLE_element_array
3244   GL_ELEMENT_ARRAY_APPLE = $8A0C;
3245   GL_ELEMENT_ARRAY_TYPE_APPLE = $8A0D;
3246   GL_ELEMENT_ARRAY_POINTER_APPLE = $8A0E;
3247
3248   // GL_APPLE_fence
3249   GL_DRAW_PIXELS_APPLE = $8A0A;
3250   GL_FENCE_APPLE = $8A0B;
3251
3252   // GL_APPLE_specular_vector
3253   GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = $85B0;
3254
3255   // GL_APPLE_transform_hint
3256   GL_TRANSFORM_HINT_APPLE = $85B1;
3257
3258   // GL_APPLE_vertex_array_object
3259   GL_VERTEX_ARRAY_BINDING_APPLE = $85B5;
3260
3261   // GL_APPLE_vertex_array_range
3262   GL_VERTEX_ARRAY_RANGE_APPLE = $851D;
3263   GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = $851E;
3264   GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = $851F;
3265   GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = $8521;
3266   GL_STORAGE_CLIENT_APPLE = $85B4;
3267   GL_STORAGE_CACHED_APPLE = $85BE;
3268   GL_STORAGE_SHARED_APPLE = $85BF;
3269
3270   // GL_APPLE_ycbcr_422
3271   GL_YCBCR_422_APPLE = $85B9;
3272   GL_UNSIGNED_SHORT_8_8_APPLE = $85BA;
3273   GL_UNSIGNED_SHORT_8_8_REV_APPLE = $85BB;
3274
3275   // GL_APPLE_texture_range
3276   GL_TEXTURE_RANGE_LENGTH_APPLE = $85B7;
3277   GL_TEXTURE_RANGE_POINTER_APPLE = $85B8;
3278   GL_TEXTURE_STORAGE_HINT_APPLE = $85BC;
3279   GL_STORAGE_PRIVATE_APPLE = $85BD;
3280   { reuse GL_STORAGE_CACHED_APPLE }
3281   { reuse GL_STORAGE_SHARED_APPLE }
3282
3283   // GL_APPLE_float_pixels
3284   GL_HALF_APPLE = $140B;
3285   GL_RGBA_FLOAT32_APPLE = $8814;
3286   GL_RGB_FLOAT32_APPLE = $8815;
3287   GL_ALPHA_FLOAT32_APPLE = $8816;
3288   GL_INTENSITY_FLOAT32_APPLE = $8817;
3289   GL_LUMINANCE_FLOAT32_APPLE = $8818;
3290   GL_LUMINANCE_ALPHA_FLOAT32_APPLE = $8819;
3291   GL_RGBA_FLOAT16_APPLE = $881A;
3292   GL_RGB_FLOAT16_APPLE = $881B;
3293   GL_ALPHA_FLOAT16_APPLE = $881C;
3294   GL_INTENSITY_FLOAT16_APPLE = $881D;
3295   GL_LUMINANCE_FLOAT16_APPLE = $881E;
3296   GL_LUMINANCE_ALPHA_FLOAT16_APPLE = $881F;
3297   GL_COLOR_FLOAT_APPLE = $8A0F;
3298
3299   // GL_APPLE_vertex_program_evaluators
3300   GL_VERTEX_ATTRIB_MAP1_APPLE = $8A00;
3301   GL_VERTEX_ATTRIB_MAP2_APPLE = $8A01;
3302   GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = $8A02;
3303   GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = $8A03;
3304   GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = $8A04;
3305   GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = $8A05;
3306   GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = $8A06;
3307   GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = $8A07;
3308   GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = $8A08;
3309   GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = $8A09;
3310
3311   // GL_APPLE_aux_depth_stencil
3312   GL_AUX_DEPTH_STENCIL_APPLE = $8A14;
3313
3314   // GL_APPLE_object_purgeable
3315   GL_BUFFER_OBJECT_APPLE = $85B3;
3316   GL_RELEASED_APPLE = $8A19;
3317   GL_VOLATILE_APPLE = $8A1A;
3318   GL_RETAINED_APPLE = $8A1B;
3319   GL_UNDEFINED_APPLE = $8A1C;
3320   GL_PURGEABLE_APPLE = $8A1D;
3321
3322   // GL_APPLE_row_bytes
3323   GL_PACK_ROW_BYTES_APPLE = $8A15;
3324   GL_UNPACK_ROW_BYTES_APPLE = $8A16;
3325   
3326   // GL_APPLE_rgb_422
3327   { reuse GL_UNSIGNED_SHORT_8_8_APPLE }
3328   { reuse GL_UNSIGNED_SHORT_8_8_REV_APPLE }  
3329   
3330   // GL_ARB_depth_texture
3331   GL_DEPTH_COMPONENT16_ARB = $81A5;
3332   GL_DEPTH_COMPONENT24_ARB = $81A6;
3333   GL_DEPTH_COMPONENT32_ARB = $81A7;
3334   GL_TEXTURE_DEPTH_SIZE_ARB = $884A;
3335   GL_DEPTH_TEXTURE_MODE_ARB = $884B;
3336
3337   // GL_ARB_fragment_program
3338   GL_FRAGMENT_PROGRAM_ARB = $8804;
3339   GL_PROGRAM_ALU_INSTRUCTIONS_ARB = $8805;
3340   GL_PROGRAM_TEX_INSTRUCTIONS_ARB = $8806;
3341   GL_PROGRAM_TEX_INDIRECTIONS_ARB = $8807;
3342   GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $8808;
3343   GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $8809;
3344   GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $880A;
3345   GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = $880B;
3346   GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = $880C;
3347   GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = $880D;
3348   GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $880E;
3349   GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $880F;
3350   GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $8810;
3351   GL_MAX_TEXTURE_COORDS_ARB = $8871;
3352   GL_MAX_TEXTURE_IMAGE_UNITS_ARB = $8872;
3353
3354   // GL_ARB_imaging
3355   GL_CONSTANT_COLOR_ARB = $8001;
3356   GL_ONE_MINUS_CONSTANT_COLOR = $8002;
3357   GL_CONSTANT_ALPHA = $8003;
3358   GL_ONE_MINUS_CONSTANT_ALPHA = $8004;
3359   GL_BLEND_COLOR = $8005;
3360   GL_FUNC_ADD = $8006;
3361   GL_MIN = $8007;
3362   GL_MAX = $8008;
3363   GL_BLEND_EQUATION = $8009;
3364   GL_FUNC_SUBTRACT = $800A;
3365   GL_FUNC_REVERSE_SUBTRACT = $800B;
3366 {$ifdef DGL_DEPRECATED}
3367   GL_CONVOLUTION_1D = $8010;
3368   GL_CONVOLUTION_2D = $8011;
3369   GL_SEPARABLE_2D = $8012;
3370   GL_CONVOLUTION_BORDER_MODE = $8013;
3371   GL_CONVOLUTION_FILTER_SCALE = $8014;
3372   GL_CONVOLUTION_FILTER_BIAS = $8015;
3373   GL_REDUCE = $8016;
3374   GL_CONVOLUTION_FORMAT = $8017;
3375   GL_CONVOLUTION_WIDTH = $8018;
3376   GL_CONVOLUTION_HEIGHT = $8019;
3377   GL_MAX_CONVOLUTION_WIDTH = $801A;
3378   GL_MAX_CONVOLUTION_HEIGHT = $801B;
3379   GL_POST_CONVOLUTION_RED_SCALE = $801C;
3380   GL_POST_CONVOLUTION_GREEN_SCALE = $801D;
3381   GL_POST_CONVOLUTION_BLUE_SCALE = $801E;
3382   GL_POST_CONVOLUTION_ALPHA_SCALE = $801F;
3383   GL_POST_CONVOLUTION_RED_BIAS = $8020;
3384   GL_POST_CONVOLUTION_GREEN_BIAS = $8021;
3385   GL_POST_CONVOLUTION_BLUE_BIAS = $8022;
3386   GL_POST_CONVOLUTION_ALPHA_BIAS = $8023;
3387   GL_HISTOGRAM = $8024;
3388   GL_PROXY_HISTOGRAM = $8025;
3389   GL_HISTOGRAM_WIDTH = $8026;
3390   GL_HISTOGRAM_FORMAT = $8027;
3391   GL_HISTOGRAM_RED_SIZE = $8028;
3392   GL_HISTOGRAM_GREEN_SIZE = $8029;
3393   GL_HISTOGRAM_BLUE_SIZE = $802A;
3394   GL_HISTOGRAM_ALPHA_SIZE = $802B;
3395   GL_HISTOGRAM_LUMINANCE_SIZE = $802C;
3396   GL_HISTOGRAM_SINK = $802D;
3397   GL_MINMAX = $802E;
3398   GL_MINMAX_FORMAT = $802F;
3399   GL_MINMAX_SINK = $8030;
3400   GL_TABLE_TOO_LARGE = $8031;
3401   GL_COLOR_MATRIX = $80B1;
3402   GL_COLOR_MATRIX_STACK_DEPTH = $80B2;
3403   GL_MAX_COLOR_MATRIX_STACK_DEPTH = $80B3;
3404   GL_POST_COLOR_MATRIX_RED_SCALE = $80B4;
3405   GL_POST_COLOR_MATRIX_GREEN_SCALE = $80B5;
3406   GL_POST_COLOR_MATRIX_BLUE_SCALE = $80B6;
3407   GL_POST_COLOR_MATRIX_ALPHA_SCALE = $80B7;
3408   GL_POST_COLOR_MATRIX_RED_BIAS = $80B8;
3409   GL_POST_COLOR_MATRIX_GREEN_BIAS = $80B9;
3410   GL_POST_COLOR_MATRIX_BLUE_BIAS = $80BA;
3411   GL_POST_COLOR_MATRIX_ALPHA_BIAS = $80BB;
3412   GL_COLOR_TABLE = $80D0;
3413   GL_POST_CONVOLUTION_COLOR_TABLE = $80D1;
3414   GL_POST_COLOR_MATRIX_COLOR_TABLE = $80D2;
3415   GL_PROXY_COLOR_TABLE = $80D3;
3416   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = $80D4;
3417   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = $80D5;
3418   GL_COLOR_TABLE_SCALE = $80D6;
3419   GL_COLOR_TABLE_BIAS = $80D7;
3420   GL_COLOR_TABLE_FORMAT = $80D8;
3421   GL_COLOR_TABLE_WIDTH = $80D9;
3422   GL_COLOR_TABLE_RED_SIZE = $80DA;
3423   GL_COLOR_TABLE_GREEN_SIZE = $80DB;
3424   GL_COLOR_TABLE_BLUE_SIZE = $80DC;
3425   GL_COLOR_TABLE_ALPHA_SIZE = $80DD;
3426   GL_COLOR_TABLE_LUMINANCE_SIZE = $80DE;
3427   GL_COLOR_TABLE_INTENSITY_SIZE = $80DF;
3428   GL_CONSTANT_BORDER = $8151;
3429   GL_REPLICATE_BORDER = $8153;
3430   GL_CONVOLUTION_BORDER_COLOR = $8154;
3431 {$endif}
3432
3433   // GL_ARB_matrix_palette
3434   GL_MATRIX_PALETTE_ARB = $8840;
3435   GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = $8841;
3436   GL_MAX_PALETTE_MATRICES_ARB = $8842;
3437   GL_CURRENT_PALETTE_MATRIX_ARB = $8843;
3438   GL_MATRIX_INDEX_ARRAY_ARB = $8844;
3439   GL_CURRENT_MATRIX_INDEX_ARB = $8845;
3440   GL_MATRIX_INDEX_ARRAY_SIZE_ARB = $8846;
3441   GL_MATRIX_INDEX_ARRAY_TYPE_ARB = $8847;
3442   GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = $8848;
3443   GL_MATRIX_INDEX_ARRAY_POINTER_ARB = $8849;
3444
3445   // GL_ARB_multisample
3446   GL_MULTISAMPLE_ARB = $809D;
3447   GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = $809E;
3448   GL_SAMPLE_ALPHA_TO_ONE_ARB = $809F;
3449   GL_SAMPLE_COVERAGE_ARB = $80A0;
3450   GL_SAMPLE_BUFFERS_ARB = $80A8;
3451   GL_SAMPLES_ARB = $80A9;
3452   GL_SAMPLE_COVERAGE_VALUE_ARB = $80AA;
3453   GL_SAMPLE_COVERAGE_INVERT_ARB = $80AB;
3454   GL_MULTISAMPLE_BIT_ARB = $20000000;
3455
3456   // GL_ARB_multitexture
3457   GL_TEXTURE0_ARB = $84C0;
3458   GL_TEXTURE1_ARB = $84C1;
3459   GL_TEXTURE2_ARB = $84C2;
3460   GL_TEXTURE3_ARB = $84C3;
3461   GL_TEXTURE4_ARB = $84C4;
3462   GL_TEXTURE5_ARB = $84C5;
3463   GL_TEXTURE6_ARB = $84C6;
3464   GL_TEXTURE7_ARB = $84C7;
3465   GL_TEXTURE8_ARB = $84C8;
3466   GL_TEXTURE9_ARB = $84C9;
3467   GL_TEXTURE10_ARB = $84CA;
3468   GL_TEXTURE11_ARB = $84CB;
3469   GL_TEXTURE12_ARB = $84CC;
3470   GL_TEXTURE13_ARB = $84CD;
3471   GL_TEXTURE14_ARB = $84CE;
3472   GL_TEXTURE15_ARB = $84CF;
3473   GL_TEXTURE16_ARB = $84D0;
3474   GL_TEXTURE17_ARB = $84D1;
3475   GL_TEXTURE18_ARB = $84D2;
3476   GL_TEXTURE19_ARB = $84D3;
3477   GL_TEXTURE20_ARB = $84D4;
3478   GL_TEXTURE21_ARB = $84D5;
3479   GL_TEXTURE22_ARB = $84D6;
3480   GL_TEXTURE23_ARB = $84D7;
3481   GL_TEXTURE24_ARB = $84D8;
3482   GL_TEXTURE25_ARB = $84D9;
3483   GL_TEXTURE26_ARB = $84DA;
3484   GL_TEXTURE27_ARB = $84DB;
3485   GL_TEXTURE28_ARB = $84DC;
3486   GL_TEXTURE29_ARB = $84DD;
3487   GL_TEXTURE30_ARB = $84DE;
3488   GL_TEXTURE31_ARB = $84DF;
3489   GL_ACTIVE_TEXTURE_ARB = $84E0;
3490   GL_CLIENT_ACTIVE_TEXTURE_ARB = $84E1;
3491   GL_MAX_TEXTURE_UNITS_ARB = $84E2;
3492
3493   // GL_ARB_point_parameters
3494   GL_POINT_SIZE_MIN_ARB = $8126;
3495   GL_POINT_SIZE_MAX_ARB = $8127;
3496   GL_POINT_FADE_THRESHOLD_SIZE_ARB = $8128;
3497   GL_POINT_DISTANCE_ATTENUATION_ARB = $8129;
3498
3499   // GL_ARB_shadow
3500   GL_TEXTURE_COMPARE_MODE_ARB = $884C;
3501   GL_TEXTURE_COMPARE_FUNC_ARB = $884D;
3502   GL_COMPARE_R_TO_TEXTURE_ARB = $884E;
3503
3504   // GL_ARB_shadow_ambient
3505   GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = $80BF;
3506
3507   // GL_ARB_texture_border_clamp
3508   GL_CLAMP_TO_BORDER_ARB = $812D;
3509
3510   // GL_ARB_texture_compression
3511   GL_COMPRESSED_ALPHA_ARB = $84E9;
3512   GL_COMPRESSED_LUMINANCE_ARB = $84EA;
3513   GL_COMPRESSED_LUMINANCE_ALPHA_ARB = $84EB;
3514   GL_COMPRESSED_INTENSITY_ARB = $84EC;
3515   GL_COMPRESSED_RGB_ARB = $84ED;
3516   GL_COMPRESSED_RGBA_ARB = $84EE;
3517   GL_TEXTURE_COMPRESSION_HINT_ARB = $84EF;
3518   GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = $86A0;
3519   GL_TEXTURE_COMPRESSED_ARB = $86A1;
3520   GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = $86A2;
3521   GL_COMPRESSED_TEXTURE_FORMATS_ARB = $86A3;
3522
3523   // GL_ARB_texture_cube_map
3524   GL_NORMAL_MAP_ARB = $8511;
3525   GL_REFLECTION_MAP_ARB = $8512;
3526   GL_TEXTURE_CUBE_MAP_ARB = $8513;
3527   GL_TEXTURE_BINDING_CUBE_MAP_ARB = $8514;
3528   GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $8515;
3529   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $8516;
3530   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $8517;
3531   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $8518;
3532   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $8519;
3533   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $851A;
3534   GL_PROXY_TEXTURE_CUBE_MAP_ARB = $851B;
3535   GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = $851C;
3536
3537   // GL_ARB_texture_env_combine
3538   GL_COMBINE_ARB = $8570;
3539   GL_COMBINE_RGB_ARB = $8571;
3540   GL_COMBINE_ALPHA_ARB = $8572;
3541   GL_SOURCE0_RGB_ARB = $8580;
3542   GL_SOURCE1_RGB_ARB = $8581;
3543   GL_SOURCE2_RGB_ARB = $8582;
3544   GL_SOURCE0_ALPHA_ARB = $8588;
3545   GL_SOURCE1_ALPHA_ARB = $8589;
3546   GL_SOURCE2_ALPHA_ARB = $858A;
3547   GL_OPERAND0_RGB_ARB = $8590;
3548   GL_OPERAND1_RGB_ARB = $8591;
3549   GL_OPERAND2_RGB_ARB = $8592;
3550   GL_OPERAND0_ALPHA_ARB = $8598;
3551   GL_OPERAND1_ALPHA_ARB = $8599;
3552   GL_OPERAND2_ALPHA_ARB = $859A;
3553   GL_RGB_SCALE_ARB = $8573;
3554   GL_ADD_SIGNED_ARB = $8574;
3555   GL_INTERPOLATE_ARB = $8575;
3556   GL_SUBTRACT_ARB = $84E7;
3557   GL_CONSTANT_ARB = $8576;
3558   GL_PRIMARY_COLOR_ARB = $8577;
3559   GL_PREVIOUS_ARB = $8578;
3560
3561   // GL_ARB_texture_env_dot3
3562   GL_DOT3_RGB_ARB = $86AE;
3563   GL_DOT3_RGBA_ARB = $86AF;
3564
3565   // GL_ARB_texture_mirrored_repeat
3566   GL_MIRRORED_REPEAT_ARB = $8370;
3567
3568   // GL_ARB_transpose_matrix
3569   GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = $84E3;
3570   GL_TRANSPOSE_PROJECTION_MATRIX_ARB = $84E4;
3571   GL_TRANSPOSE_TEXTURE_MATRIX_ARB = $84E5;
3572   GL_TRANSPOSE_COLOR_MATRIX_ARB = $84E6;
3573
3574   // GL_ARB_vertex_blend
3575   GL_MAX_VERTEX_UNITS_ARB = $86A4;
3576   GL_ACTIVE_VERTEX_UNITS_ARB = $86A5;
3577   GL_WEIGHT_SUM_UNITY_ARB = $86A6;
3578   GL_VERTEX_BLEND_ARB = $86A7;
3579   GL_CURRENT_WEIGHT_ARB = $86A8;
3580   GL_WEIGHT_ARRAY_TYPE_ARB = $86A9;
3581   GL_WEIGHT_ARRAY_STRIDE_ARB = $86AA;
3582   GL_WEIGHT_ARRAY_SIZE_ARB = $86AB;
3583   GL_WEIGHT_ARRAY_POINTER_ARB = $86AC;
3584   GL_WEIGHT_ARRAY_ARB = $86AD;
3585   GL_MODELVIEW0_ARB = $1700;
3586   GL_MODELVIEW1_ARB = $850A;
3587   GL_MODELVIEW2_ARB = $8722;
3588   GL_MODELVIEW3_ARB = $8723;
3589   GL_MODELVIEW4_ARB = $8724;
3590   GL_MODELVIEW5_ARB = $8725;
3591   GL_MODELVIEW6_ARB = $8726;
3592   GL_MODELVIEW7_ARB = $8727;
3593   GL_MODELVIEW8_ARB = $8728;
3594   GL_MODELVIEW9_ARB = $8729;
3595   GL_MODELVIEW10_ARB = $872A;
3596   GL_MODELVIEW11_ARB = $872B;
3597   GL_MODELVIEW12_ARB = $872C;
3598   GL_MODELVIEW13_ARB = $872D;
3599   GL_MODELVIEW14_ARB = $872E;
3600   GL_MODELVIEW15_ARB = $872F;
3601   GL_MODELVIEW16_ARB = $8730;
3602   GL_MODELVIEW17_ARB = $8731;
3603   GL_MODELVIEW18_ARB = $8732;
3604   GL_MODELVIEW19_ARB = $8733;
3605   GL_MODELVIEW20_ARB = $8734;
3606   GL_MODELVIEW21_ARB = $8735;
3607   GL_MODELVIEW22_ARB = $8736;
3608   GL_MODELVIEW23_ARB = $8737;
3609   GL_MODELVIEW24_ARB = $8738;
3610   GL_MODELVIEW25_ARB = $8739;
3611   GL_MODELVIEW26_ARB = $873A;
3612   GL_MODELVIEW27_ARB = $873B;
3613   GL_MODELVIEW28_ARB = $873C;
3614   GL_MODELVIEW29_ARB = $873D;
3615   GL_MODELVIEW30_ARB = $873E;
3616   GL_MODELVIEW31_ARB = $873F;
3617
3618   // GL_ARB_vertex_buffer_object
3619   GL_BUFFER_SIZE_ARB = $8764;
3620   GL_BUFFER_USAGE_ARB = $8765;
3621   GL_ARRAY_BUFFER_ARB = $8892;
3622   GL_ELEMENT_ARRAY_BUFFER_ARB = $8893;
3623   GL_ARRAY_BUFFER_BINDING_ARB = $8894;
3624   GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = $8895;
3625   GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = $8896;
3626   GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = $8897;
3627   GL_COLOR_ARRAY_BUFFER_BINDING_ARB = $8898;
3628   GL_INDEX_ARRAY_BUFFER_BINDING_ARB = $8899;
3629   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = $889A;
3630   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = $889B;
3631   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = $889C;
3632   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = $889D;
3633   GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = $889E;
3634   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = $889F;
3635   GL_READ_ONLY_ARB = $88B8;
3636   GL_WRITE_ONLY_ARB = $88B9;
3637   GL_READ_WRITE_ARB = $88BA;
3638   GL_BUFFER_ACCESS_ARB = $88BB;
3639   GL_BUFFER_MAPPED_ARB = $88BC;
3640   GL_BUFFER_MAP_POINTER_ARB = $88BD;
3641   GL_STREAM_DRAW_ARB = $88E0;
3642   GL_STREAM_READ_ARB = $88E1;
3643   GL_STREAM_COPY_ARB = $88E2;
3644   GL_STATIC_DRAW_ARB = $88E4;
3645   GL_STATIC_READ_ARB = $88E5;
3646   GL_STATIC_COPY_ARB = $88E6;
3647   GL_DYNAMIC_DRAW_ARB = $88E8;
3648   GL_DYNAMIC_READ_ARB = $88E9;
3649   GL_DYNAMIC_COPY_ARB = $88EA;
3650
3651   // GL_ARB_vertex_program
3652   GL_COLOR_SUM_ARB = $8458;
3653   GL_VERTEX_PROGRAM_ARB = $8620;
3654   GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = $8622;
3655   GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = $8623;
3656   GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = $8624;
3657   GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = $8625;
3658   GL_CURRENT_VERTEX_ATTRIB_ARB = $8626;
3659   GL_PROGRAM_LENGTH_ARB = $8627;
3660   GL_PROGRAM_STRING_ARB = $8628;
3661   GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = $862E;
3662   GL_MAX_PROGRAM_MATRICES_ARB = $862F;
3663   GL_CURRENT_MATRIX_STACK_DEPTH_ARB = $8640;
3664   GL_CURRENT_MATRIX_ARB = $8641;
3665   GL_VERTEX_PROGRAM_POINT_SIZE_ARB = $8642;
3666   GL_VERTEX_PROGRAM_TWO_SIDE_ARB = $8643;
3667   GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = $8645;
3668   GL_PROGRAM_ERROR_POSITION_ARB = $864B;
3669   GL_PROGRAM_BINDING_ARB = $8677;
3670   GL_MAX_VERTEX_ATTRIBS_ARB = $8869;
3671   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = $886A;
3672   GL_PROGRAM_ERROR_STRING_ARB = $8874;
3673   GL_PROGRAM_FORMAT_ASCII_ARB = $8875;
3674   GL_PROGRAM_FORMAT_ARB = $8876;
3675   GL_PROGRAM_INSTRUCTIONS_ARB = $88A0;
3676   GL_MAX_PROGRAM_INSTRUCTIONS_ARB = $88A1;
3677   GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A2;
3678   GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A3;
3679   GL_PROGRAM_TEMPORARIES_ARB = $88A4;
3680   GL_MAX_PROGRAM_TEMPORARIES_ARB = $88A5;
3681   GL_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A6;
3682   GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A7;
3683   GL_PROGRAM_PARAMETERS_ARB = $88A8;
3684   GL_MAX_PROGRAM_PARAMETERS_ARB = $88A9;
3685   GL_PROGRAM_NATIVE_PARAMETERS_ARB = $88AA;
3686   GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = $88AB;
3687   GL_PROGRAM_ATTRIBS_ARB = $88AC;
3688   GL_MAX_PROGRAM_ATTRIBS_ARB = $88AD;
3689   GL_PROGRAM_NATIVE_ATTRIBS_ARB = $88AE;
3690   GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = $88AF;
3691   GL_PROGRAM_ADDRESS_REGISTERS_ARB = $88B0;
3692   GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = $88B1;
3693   GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B2;
3694   GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B3;
3695   GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = $88B4;
3696   GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = $88B5;
3697   GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = $88B6;
3698   GL_TRANSPOSE_CURRENT_MATRIX_ARB = $88B7;
3699   GL_MATRIX0_ARB = $88C0;
3700   GL_MATRIX1_ARB = $88C1;
3701   GL_MATRIX2_ARB = $88C2;
3702   GL_MATRIX3_ARB = $88C3;
3703   GL_MATRIX4_ARB = $88C4;
3704   GL_MATRIX5_ARB = $88C5;
3705   GL_MATRIX6_ARB = $88C6;
3706   GL_MATRIX7_ARB = $88C7;
3707   GL_MATRIX8_ARB = $88C8;
3708   GL_MATRIX9_ARB = $88C9;
3709   GL_MATRIX10_ARB = $88CA;
3710   GL_MATRIX11_ARB = $88CB;
3711   GL_MATRIX12_ARB = $88CC;
3712   GL_MATRIX13_ARB = $88CD;
3713   GL_MATRIX14_ARB = $88CE;
3714   GL_MATRIX15_ARB = $88CF;
3715   GL_MATRIX16_ARB = $88D0;
3716   GL_MATRIX17_ARB = $88D1;
3717   GL_MATRIX18_ARB = $88D2;
3718   GL_MATRIX19_ARB = $88D3;
3719   GL_MATRIX20_ARB = $88D4;
3720   GL_MATRIX21_ARB = $88D5;
3721   GL_MATRIX22_ARB = $88D6;
3722   GL_MATRIX23_ARB = $88D7;
3723   GL_MATRIX24_ARB = $88D8;
3724   GL_MATRIX25_ARB = $88D9;
3725   GL_MATRIX26_ARB = $88DA;
3726   GL_MATRIX27_ARB = $88DB;
3727   GL_MATRIX28_ARB = $88DC;
3728   GL_MATRIX29_ARB = $88DD;
3729   GL_MATRIX30_ARB = $88DE;
3730   GL_MATRIX31_ARB = $88DF;
3731
3732   // GL_ARB_draw_buffers
3733   GL_MAX_DRAW_BUFFERS_ARB = $8824;
3734   GL_DRAW_BUFFER0_ARB = $8825;
3735   GL_DRAW_BUFFER1_ARB = $8826;
3736   GL_DRAW_BUFFER2_ARB = $8827;
3737   GL_DRAW_BUFFER3_ARB = $8828;
3738   GL_DRAW_BUFFER4_ARB = $8829;
3739   GL_DRAW_BUFFER5_ARB = $882A;
3740   GL_DRAW_BUFFER6_ARB = $882B;
3741   GL_DRAW_BUFFER7_ARB = $882C;
3742   GL_DRAW_BUFFER8_ARB = $882D;
3743   GL_DRAW_BUFFER9_ARB = $882E;
3744   GL_DRAW_BUFFER10_ARB = $882F;
3745   GL_DRAW_BUFFER11_ARB = $8830;
3746   GL_DRAW_BUFFER12_ARB = $8831;
3747   GL_DRAW_BUFFER13_ARB = $8832;
3748   GL_DRAW_BUFFER14_ARB = $8833;
3749   GL_DRAW_BUFFER15_ARB = $8834;
3750
3751   // GL_ARB_texture_rectangle
3752   GL_TEXTURE_RECTANGLE_ARB = $84F5;
3753   GL_TEXTURE_BINDING_RECTANGLE_ARB = $84F6;
3754   GL_PROXY_TEXTURE_RECTANGLE_ARB = $84F7;
3755   GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = $84F8;
3756
3757   // GL_ARB_color_buffer_float
3758   GL_RGBA_FLOAT_MODE_ARB = $8820;
3759   GL_CLAMP_VERTEX_COLOR_ARB = $891A;
3760   GL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
3761   GL_CLAMP_READ_COLOR_ARB = $891C;
3762   GL_FIXED_ONLY_ARB = $891D;
3763   WGL_TYPE_RGBA_FLOAT_ARB = $21A0;
3764   GLX_RGBA_FLOAT_TYPE = $20B9;
3765   GLX_RGBA_FLOAT_BIT = $00000004;
3766
3767   // GL_ARB_half_float_pixel
3768   GL_HALF_FLOAT_ARB = $140B;
3769
3770   // GL_ARB_texture_float
3771   GL_TEXTURE_RED_TYPE_ARB = $8C10;
3772   GL_TEXTURE_GREEN_TYPE_ARB = $8C11;
3773   GL_TEXTURE_BLUE_TYPE_ARB = $8C12;
3774   GL_TEXTURE_ALPHA_TYPE_ARB = $8C13;
3775   GL_TEXTURE_LUMINANCE_TYPE_ARB = $8C14;
3776   GL_TEXTURE_INTENSITY_TYPE_ARB = $8C15;
3777   GL_TEXTURE_DEPTH_TYPE_ARB = $8C16;
3778   GL_UNSIGNED_NORMALIZED_ARB = $8C17;
3779   GL_RGBA32F_ARB = $8814;
3780   GL_RGB32F_ARB = $8815;
3781   GL_ALPHA32F_ARB = $8816;
3782   GL_INTENSITY32F_ARB = $8817;
3783   GL_LUMINANCE32F_ARB = $8818;
3784   GL_LUMINANCE_ALPHA32F_ARB = $8819;
3785   GL_RGBA16F_ARB = $881A;
3786   GL_RGB16F_ARB = $881B;
3787   GL_ALPHA16F_ARB = $881C;
3788   GL_INTENSITY16F_ARB = $881D;
3789   GL_LUMINANCE16F_ARB = $881E;
3790   GL_LUMINANCE_ALPHA16F_ARB = $881F;
3791
3792   // GL_ARB_pixel_buffer_object
3793   GL_PIXEL_PACK_BUFFER_ARB = $88EB;
3794   GL_PIXEL_UNPACK_BUFFER_ARB = $88EC;
3795   GL_PIXEL_PACK_BUFFER_BINDING_ARB = $88ED;
3796   GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = $88EF;
3797
3798   // GL_ARB_depth_buffer_float
3799   GL_DEPTH_COMPONENT32F = $8CAC;
3800   GL_DEPTH32F_STENCIL8 = $8CAD;
3801   GL_FLOAT_32_UNSIGNED_INT_24_8_REV = $8DAD;
3802
3803   // GL_ARB_framebuffer_object
3804   GL_INVALID_FRAMEBUFFER_OPERATION = $0506;
3805   GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = $8210;
3806   GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = $8211;
3807   GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = $8212;
3808   GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = $8213;
3809   GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = $8214;
3810   GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = $8215;
3811   GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = $8216;
3812   GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = $8217;
3813   GL_FRAMEBUFFER_DEFAULT = $8218;
3814   GL_FRAMEBUFFER_UNDEFINED = $8219;
3815   GL_DEPTH_STENCIL_ATTACHMENT = $821A;
3816   GL_MAX_RENDERBUFFER_SIZE = $84E8;
3817   GL_DEPTH_STENCIL = $84F9;
3818   GL_UNSIGNED_INT_24_8 = $84FA;
3819   GL_DEPTH24_STENCIL8 = $88F0;
3820   GL_TEXTURE_STENCIL_SIZE = $88F1;
3821   GL_TEXTURE_RED_TYPE = $8C10;
3822   GL_TEXTURE_GREEN_TYPE = $8C11;
3823   GL_TEXTURE_BLUE_TYPE = $8C12;
3824   GL_TEXTURE_ALPHA_TYPE = $8C13;
3825   GL_TEXTURE_DEPTH_TYPE = $8C16;
3826   GL_UNSIGNED_NORMALIZED = $8C17;
3827   GL_FRAMEBUFFER_BINDING = $8CA6;
3828   GL_DRAW_FRAMEBUFFER_BINDING = GL_FRAMEBUFFER_BINDING;
3829   GL_RENDERBUFFER_BINDING = $8CA7;
3830   GL_READ_FRAMEBUFFER = $8CA8;
3831   GL_DRAW_FRAMEBUFFER = $8CA9;
3832   GL_READ_FRAMEBUFFER_BINDING = $8CAA;
3833   GL_RENDERBUFFER_SAMPLES = $8CAB;
3834   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = $8CD0;
3835   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = $8CD1;
3836   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = $8CD2;
3837   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = $8CD3;
3838   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = $8CD4;
3839   GL_FRAMEBUFFER_COMPLETE = $8CD5;
3840   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = $8CD6;
3841   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = $8CD7;
3842   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = $8CDB;
3843   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = $8CDC;
3844   GL_FRAMEBUFFER_UNSUPPORTED = $8CDD;
3845   GL_MAX_COLOR_ATTACHMENTS = $8CDF;
3846   GL_COLOR_ATTACHMENT0 = $8CE0;
3847   GL_COLOR_ATTACHMENT1 = $8CE1;
3848   GL_COLOR_ATTACHMENT2 = $8CE2;
3849   GL_COLOR_ATTACHMENT3 = $8CE3;
3850   GL_COLOR_ATTACHMENT4 = $8CE4;
3851   GL_COLOR_ATTACHMENT5 = $8CE5;
3852   GL_COLOR_ATTACHMENT6 = $8CE6;
3853   GL_COLOR_ATTACHMENT7 = $8CE7;
3854   GL_COLOR_ATTACHMENT8 = $8CE8;
3855   GL_COLOR_ATTACHMENT9 = $8CE9;
3856   GL_COLOR_ATTACHMENT10 = $8CEA;
3857   GL_COLOR_ATTACHMENT11 = $8CEB;
3858   GL_COLOR_ATTACHMENT12 = $8CEC;
3859   GL_COLOR_ATTACHMENT13 = $8CED;
3860   GL_COLOR_ATTACHMENT14 = $8CEE;
3861   GL_COLOR_ATTACHMENT15 = $8CEF;
3862   GL_DEPTH_ATTACHMENT = $8D00;
3863   GL_STENCIL_ATTACHMENT = $8D20;
3864   GL_FRAMEBUFFER = $8D40;
3865   GL_RENDERBUFFER = $8D41;
3866   GL_RENDERBUFFER_WIDTH = $8D42;
3867   GL_RENDERBUFFER_HEIGHT = $8D43;
3868   GL_RENDERBUFFER_INTERNAL_FORMAT = $8D44;
3869   GL_STENCIL_INDEX1 = $8D46;
3870   GL_STENCIL_INDEX4 = $8D47;
3871   GL_STENCIL_INDEX8 = $8D48;
3872   GL_STENCIL_INDEX16 = $8D49;
3873   GL_RENDERBUFFER_RED_SIZE = $8D50;
3874   GL_RENDERBUFFER_GREEN_SIZE = $8D51;
3875   GL_RENDERBUFFER_BLUE_SIZE = $8D52;
3876   GL_RENDERBUFFER_ALPHA_SIZE = $8D53;
3877   GL_RENDERBUFFER_DEPTH_SIZE = $8D54;
3878   GL_RENDERBUFFER_STENCIL_SIZE = $8D55;
3879   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = $8D56;
3880   GL_MAX_SAMPLES = $8D57;
3881 {$ifdef DGL_DEPRECATED}
3882   GL_INDEX = $8222;
3883   GL_TEXTURE_LUMINANCE_TYPE = $8C14;
3884   GL_TEXTURE_INTENSITY_TYPE = $8C15;
3885 {$endif}
3886
3887   // GL_ARB_framebuffer_sRGB
3888   GL_FRAMEBUFFER_SRGB = $8DB9;
3889
3890   // GL_ARB_geometry_shader4
3891   GL_LINES_ADJACENCY_ARB = $000A;
3892   GL_LINE_STRIP_ADJACENCY_ARB = $000B;
3893   GL_TRIANGLES_ADJACENCY_ARB = $000C;
3894   GL_TRIANGLE_STRIP_ADJACENCY_ARB = $000D;
3895   GL_PROGRAM_POINT_SIZE_ARB = $8642;
3896   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = $8C29;
3897   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = $8DA7;
3898   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = $8DA8;
3899   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = $8DA9;
3900   GL_GEOMETRY_SHADER_ARB = $8DD9;
3901   GL_GEOMETRY_VERTICES_OUT_ARB = $8DDA;
3902   GL_GEOMETRY_INPUT_TYPE_ARB = $8DDB;
3903   GL_GEOMETRY_OUTPUT_TYPE_ARB = $8DDC;
3904   GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = $8DDD;
3905   GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = $8DDE;
3906   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = $8DDF;
3907   GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = $8DE0;
3908   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = $8DE1;
3909   { reuse GL_MAX_VARYING_COMPONENTS }
3910   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
3911
3912   // GL_ARB_half_float_vertex
3913   GL_HALF_FLOAT = $140B;
3914
3915   // GL_ARB_instanced_arrays
3916   GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = $88FE;
3917
3918   // GL_ARB_map_buffer_range
3919   GL_MAP_READ_BIT = $0001;
3920   GL_MAP_WRITE_BIT = $0002;
3921   GL_MAP_INVALIDATE_RANGE_BIT = $0004;
3922   GL_MAP_INVALIDATE_BUFFER_BIT = $0008;
3923   GL_MAP_FLUSH_EXPLICIT_BIT = $0010;
3924   GL_MAP_UNSYNCHRONIZED_BIT = $0020;
3925
3926   // GL_ARB_texture_buffer_object
3927   GL_TEXTURE_BUFFER_ARB = $8C2A;
3928   GL_MAX_TEXTURE_BUFFER_SIZE_ARB = $8C2B;
3929   GL_TEXTURE_BINDING_BUFFER_ARB = $8C2C;
3930   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = $8C2D;
3931   GL_TEXTURE_BUFFER_FORMAT_ARB = $8C2E;
3932
3933   // GL_ARB_texture_compression_rgtc
3934   GL_COMPRESSED_RED_RGTC1 = $8DBB;
3935   GL_COMPRESSED_SIGNED_RED_RGTC1 = $8DBC;
3936   GL_COMPRESSED_RG_RGTC2 = $8DBD;
3937   GL_COMPRESSED_SIGNED_RG_RGTC2 = $8DBE;
3938
3939   // GL_ARB_texture_rg
3940   GL_RG = $8227;
3941   GL_RG_INTEGER = $8228;
3942   GL_R8 = $8229;
3943   GL_R16 = $822A;
3944   GL_RG8 = $822B;
3945   GL_RG16 = $822C;
3946   GL_R16F = $822D;
3947   GL_R32F = $822E;
3948   GL_RG16F = $822F;
3949   GL_RG32F = $8230;
3950   GL_R8I = $8231;
3951   GL_R8UI = $8232;
3952   GL_R16I = $8233;
3953   GL_R16UI = $8234;
3954   GL_R32I = $8235;
3955   GL_R32UI = $8236;
3956   GL_RG8I = $8237;
3957   GL_RG8UI = $8238;
3958   GL_RG16I = $8239;
3959   GL_RG16UI = $823A;
3960   GL_RG32I = $823B;
3961   GL_RG32UI = $823C;
3962
3963   // GL_ARB_vertex_array_object
3964   GL_VERTEX_ARRAY_BINDING = $85B5;
3965
3966   // GL_ARB_uniform_buffer_object
3967   GL_UNIFORM_BUFFER = $8A11;
3968   GL_UNIFORM_BUFFER_BINDING = $8A28;
3969   GL_UNIFORM_BUFFER_START = $8A29;
3970   GL_UNIFORM_BUFFER_SIZE = $8A2A;
3971   GL_MAX_VERTEX_UNIFORM_BLOCKS = $8A2B;
3972   GL_MAX_GEOMETRY_UNIFORM_BLOCKS = $8A2C;
3973   GL_MAX_FRAGMENT_UNIFORM_BLOCKS = $8A2D;
3974   GL_MAX_COMBINED_UNIFORM_BLOCKS = $8A2E;
3975   GL_MAX_UNIFORM_BUFFER_BINDINGS = $8A2F;
3976   GL_MAX_UNIFORM_BLOCK_SIZE = $8A30;
3977   GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = $8A31;
3978   GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = $8A32;
3979   GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = $8A33;
3980   GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = $8A34;
3981   GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = $8A35;
3982   GL_ACTIVE_UNIFORM_BLOCKS = $8A36;
3983   GL_UNIFORM_TYPE = $8A37;
3984   GL_UNIFORM_SIZE = $8A38;
3985   GL_UNIFORM_NAME_LENGTH = $8A39;
3986   GL_UNIFORM_BLOCK_INDEX = $8A3A;
3987   GL_UNIFORM_OFFSET = $8A3B;
3988   GL_UNIFORM_ARRAY_STRIDE = $8A3C;
3989   GL_UNIFORM_MATRIX_STRIDE = $8A3D;
3990   GL_UNIFORM_IS_ROW_MAJOR = $8A3E;
3991   GL_UNIFORM_BLOCK_BINDING = $8A3F;
3992   GL_UNIFORM_BLOCK_DATA_SIZE = $8A40;
3993   GL_UNIFORM_BLOCK_NAME_LENGTH = $8A41;
3994   GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = $8A42;
3995   GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = $8A43;
3996   GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = $8A44;
3997   GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = $8A45;
3998   GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = $8A46;
3999   GL_INVALID_INDEX = $FFFFFFFF;
4000
4001   // GL_ARB_compatibility
4002   { ARB_compatibility just defines tokens from core 3.0 }
4003
4004   // GL_ARB_copy_buffer
4005   GL_COPY_READ_BUFFER_BINDING = $8F36;
4006   GL_COPY_READ_BUFFER = GL_COPY_READ_BUFFER_BINDING;
4007   GL_COPY_WRITE_BUFFER_BINDING = $8F37;
4008   GL_COPY_WRITE_BUFFER = GL_COPY_WRITE_BUFFER_BINDING;
4009
4010   // GL_ARB_depth_clamp
4011   GL_DEPTH_CLAMP = $864F;
4012
4013   // GL_ARB_provoking_vertex
4014   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = $8E4C;
4015   GL_FIRST_VERTEX_CONVENTION = $8E4D;
4016   GL_LAST_VERTEX_CONVENTION = $8E4E;
4017   GL_PROVOKING_VERTEX = $8E4F;
4018
4019   // GL_ARB_seamless_cube_map
4020   GL_TEXTURE_CUBE_MAP_SEAMLESS = $884F;
4021
4022   // GL_ARB_sync
4023   GL_MAX_SERVER_WAIT_TIMEOUT = $9111;
4024   GL_OBJECT_TYPE = $9112;
4025   GL_SYNC_CONDITION = $9113;
4026   GL_SYNC_STATUS = $9114;
4027   GL_SYNC_FLAGS = $9115;
4028   GL_SYNC_FENCE = $9116;
4029   GL_SYNC_GPU_COMMANDS_COMPLETE = $9117;
4030   GL_UNSIGNALED = $9118;
4031   GL_SIGNALED = $9119;
4032   GL_ALREADY_SIGNALED = $911A;
4033   GL_TIMEOUT_EXPIRED = $911B;
4034   GL_CONDITION_SATISFIED = $911C;
4035   GL_WAIT_FAILED = $911D;
4036   GL_SYNC_FLUSH_COMMANDS_BIT = $00000001;
4037   GL_TIMEOUT_IGNORED = $FFFFFFFFFFFFFFFF;
4038
4039   // GL_ARB_texture_multisample
4040   GL_SAMPLE_POSITION = $8E50;
4041   GL_SAMPLE_MASK = $8E51;
4042   GL_SAMPLE_MASK_VALUE = $8E52;
4043   GL_MAX_SAMPLE_MASK_WORDS = $8E59;
4044   GL_TEXTURE_2D_MULTISAMPLE = $9100;
4045   GL_PROXY_TEXTURE_2D_MULTISAMPLE = $9101;
4046   GL_TEXTURE_2D_MULTISAMPLE_ARRAY = $9102;
4047   GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = $9103;
4048   GL_TEXTURE_BINDING_2D_MULTISAMPLE = $9104;
4049   GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = $9105;
4050   GL_TEXTURE_SAMPLES = $9106;
4051   GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = $9107;
4052   GL_SAMPLER_2D_MULTISAMPLE = $9108;
4053   GL_INT_SAMPLER_2D_MULTISAMPLE = $9109;
4054   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = $910A;
4055   GL_SAMPLER_2D_MULTISAMPLE_ARRAY = $910B;
4056   GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910C;
4057   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910D;
4058   GL_MAX_COLOR_TEXTURE_SAMPLES = $910E;
4059   GL_MAX_DEPTH_TEXTURE_SAMPLES = $910F;
4060   GL_MAX_INTEGER_SAMPLES = $9110;
4061
4062   // GL_ARB_vertex_array_bgra
4063   { reuse GL_BGRA }
4064
4065   // GL_ARB_sample_shading
4066   GL_SAMPLE_SHADING_ARB = $8C36;
4067   GL_MIN_SAMPLE_SHADING_VALUE_ARB = $8C37;
4068
4069   // GL_ARB_texture_cube_map_array
4070   GL_TEXTURE_CUBE_MAP_ARRAY_ARB = $9009;
4071   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = $900A;
4072   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = $900B;
4073   GL_SAMPLER_CUBE_MAP_ARRAY_ARB = $900C;
4074   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = $900D;
4075   GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900E;
4076   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900F;
4077
4078   // GL_ARB_texture_gather
4079   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5E;
4080   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5F;
4081
4082   // GL_ARB_shading_language_include
4083   GL_SHADER_INCLUDE_ARB = $8DAE;
4084   GL_NAMED_STRING_LENGTH_ARB = $8DE9;
4085   GL_NAMED_STRING_TYPE_ARB = $8DEA;
4086
4087   // GL_ARB_texture_compression_bptc
4088   GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = $8E8C;
4089   GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = $8E8D;
4090   GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = $8E8E;
4091   GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = $8E8F;
4092
4093   // GL_ARB_blend_func_extended
4094   GL_SRC1_COLOR = $88F9;
4095   { reuse GL_SRC1_ALPHA }
4096   GL_ONE_MINUS_SRC1_COLOR = $88FA;
4097   GL_ONE_MINUS_SRC1_ALPHA = $88FB;
4098   GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = $88FC;
4099
4100   // GL_ARB_occlusion_query2
4101   GL_ANY_SAMPLES_PASSED = $8C2F;
4102
4103   // GL_ARB_sampler_objects
4104   GL_SAMPLER_BINDING = $8919;
4105
4106   // GL_ARB_texture_rgb10_a2ui
4107   GL_RGB10_A2UI = $906F;
4108
4109   // GL_ARB_texture_swizzle
4110   GL_TEXTURE_SWIZZLE_R = $8E42;
4111   GL_TEXTURE_SWIZZLE_G = $8E43;
4112   GL_TEXTURE_SWIZZLE_B = $8E44;
4113   GL_TEXTURE_SWIZZLE_A = $8E45;
4114   GL_TEXTURE_SWIZZLE_RGBA = $8E46;
4115
4116   // GL_ARB_timer_query
4117   GL_TIME_ELAPSED = $88BF;
4118   GL_TIMESTAMP = $8E28;
4119
4120   // GL_ARB_vertex_type_2_10_10_10_rev
4121   { reuse GL_UNSIGNED_INT_2_10_10_10_REV }
4122   GL_INT_2_10_10_10_REV = $8D9F;
4123
4124   // GL_ARB_draw_indirect
4125   GL_DRAW_INDIRECT_BUFFER = $8F3F;
4126   GL_DRAW_INDIRECT_BUFFER_BINDING = $8F43;
4127
4128   // GL_ARB_gpu_shader5
4129   GL_GEOMETRY_SHADER_INVOCATIONS = $887F;
4130   GL_MAX_GEOMETRY_SHADER_INVOCATIONS = $8E5A;
4131   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = $8E5B;
4132   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = $8E5C;
4133   GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = $8E5D;
4134   { reuse GL_MAX_VERTEX_STREAMS }
4135
4136   // GL_ARB_gpu_shader_fp64
4137   { reuse GL_DOUBLE }
4138   GL_DOUBLE_VEC2 = $8FFC;
4139   GL_DOUBLE_VEC3 = $8FFD;
4140   GL_DOUBLE_VEC4 = $8FFE;
4141   GL_DOUBLE_MAT2 = $8F46;
4142   GL_DOUBLE_MAT3 = $8F47;
4143   GL_DOUBLE_MAT4 = $8F48;
4144   GL_DOUBLE_MAT2x3 = $8F49;
4145   GL_DOUBLE_MAT2x4 = $8F4A;
4146   GL_DOUBLE_MAT3x2 = $8F4B;
4147   GL_DOUBLE_MAT3x4 = $8F4C;
4148   GL_DOUBLE_MAT4x2 = $8F4D;
4149   GL_DOUBLE_MAT4x3 = $8F4E;
4150
4151   // GL_ARB_shader_subroutine
4152   GL_ACTIVE_SUBROUTINES = $8DE5;
4153   GL_ACTIVE_SUBROUTINE_UNIFORMS = $8DE6;
4154   GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = $8E47;
4155   GL_ACTIVE_SUBROUTINE_MAX_LENGTH = $8E48;
4156   GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = $8E49;
4157   GL_MAX_SUBROUTINES = $8DE7;
4158   GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = $8DE8;
4159   GL_NUM_COMPATIBLE_SUBROUTINES = $8E4A;
4160   GL_COMPATIBLE_SUBROUTINES = $8E4B;
4161   { reuse GL_UNIFORM_SIZE }
4162   { reuse GL_UNIFORM_NAME_LENGTH }
4163
4164   // GL_ARB_tessellation_shader
4165   GL_PATCHES = $000E;
4166   GL_PATCH_VERTICES = $8E72;
4167   GL_PATCH_DEFAULT_INNER_LEVEL = $8E73;
4168   GL_PATCH_DEFAULT_OUTER_LEVEL = $8E74;
4169   GL_TESS_CONTROL_OUTPUT_VERTICES = $8E75;
4170   GL_TESS_GEN_MODE = $8E76;
4171   GL_TESS_GEN_SPACING = $8E77;
4172   GL_TESS_GEN_VERTEX_ORDER = $8E78;
4173   GL_TESS_GEN_POINT_MODE = $8E79;
4174   { reuse GL_TRIANGLES }
4175   { reuse GL_QUADS }
4176   GL_ISOLINES = $8E7A;
4177   { reuse GL_EQUAL }
4178   GL_FRACTIONAL_ODD = $8E7B;
4179   GL_FRACTIONAL_EVEN = $8E7C;
4180   { reuse GL_CCW }
4181   { reuse GL_CW }
4182   GL_MAX_PATCH_VERTICES = $8E7D;
4183   GL_MAX_TESS_GEN_LEVEL = $8E7E;
4184   GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = $8E7F;
4185   GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E80;
4186   GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = $8E81;
4187   GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = $8E82;
4188   GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = $8E83;
4189   GL_MAX_TESS_PATCH_COMPONENTS = $8E84;
4190   GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = $8E85;
4191   GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = $8E86;
4192   GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = $8E89;
4193   GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = $8E8A;
4194   GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = $886C;
4195   GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = $886D;
4196   GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = $8E1E;
4197   GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E1F;
4198   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = $84F0;
4199   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = $84F1;
4200   GL_TESS_EVALUATION_SHADER = $8E87;
4201   GL_TESS_CONTROL_SHADER = $8E88;
4202
4203   // GL_ARB_texture_buffer_object_rgb32
4204   { reuse GL_RGB32F }
4205   { reuse GL_RGB32UI }
4206   { reuse GL_RGB32I }
4207
4208   // GL_ARB_transform_feedback2
4209   GL_TRANSFORM_FEEDBACK = $8E22;
4210   GL_TRANSFORM_FEEDBACK_PAUSED = $8E23;
4211   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = GL_TRANSFORM_FEEDBACK_PAUSED;
4212   GL_TRANSFORM_FEEDBACK_ACTIVE = $8E24;
4213   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = GL_TRANSFORM_FEEDBACK_ACTIVE;
4214   GL_TRANSFORM_FEEDBACK_BINDING = $8E25;
4215
4216   // GL_ARB_transform_feedback3
4217   GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = $8E70;
4218   GL_MAX_VERTEX_STREAMS = $8E71;
4219
4220   // GL_ARB_ES2_compatibility
4221   GL_FIXED = $140C;
4222   GL_IMPLEMENTATION_COLOR_READ_TYPE = $8B9A;
4223   GL_IMPLEMENTATION_COLOR_READ_FORMAT = $8B9B;
4224   GL_LOW_FLOAT = $8DF0;
4225   GL_MEDIUM_FLOAT = $8DF1;
4226   GL_HIGH_FLOAT = $8DF2;
4227   GL_LOW_INT = $8DF3;
4228   GL_MEDIUM_INT = $8DF4;
4229   GL_HIGH_INT = $8DF5;
4230   GL_SHADER_COMPILER = $8DFA;
4231   GL_NUM_SHADER_BINARY_FORMATS = $8DF9;
4232   GL_MAX_VERTEX_UNIFORM_VECTORS = $8DFB;
4233   GL_MAX_VARYING_VECTORS = $8DFC;
4234   GL_MAX_FRAGMENT_UNIFORM_VECTORS = $8DFD;
4235   GL_RGB565 = $8D62;
4236
4237   // GL_ARB_get_program_binary
4238   GL_PROGRAM_BINARY_RETRIEVABLE_HINT = $8257;
4239   GL_PROGRAM_BINARY_LENGTH = $8741;
4240   GL_NUM_PROGRAM_BINARY_FORMATS = $87FE;
4241   GL_PROGRAM_BINARY_FORMATS = $87FF;
4242
4243   // GL_ARB_separate_shader_objects
4244   GL_VERTEX_SHADER_BIT = $00000001;
4245   GL_FRAGMENT_SHADER_BIT = $00000002;
4246   GL_GEOMETRY_SHADER_BIT = $00000004;
4247   GL_TESS_CONTROL_SHADER_BIT = $00000008;
4248   GL_TESS_EVALUATION_SHADER_BIT = $00000010;
4249   GL_ALL_SHADER_BITS = $FFFFFFFF;
4250   GL_PROGRAM_SEPARABLE = $8258;
4251   GL_ACTIVE_PROGRAM = $8259;
4252   GL_PROGRAM_PIPELINE_BINDING = $825A;
4253
4254   // GL_ARB_vertex_attrib_64bit
4255   { reuse GL_RGB32I }
4256   { reuse GL_DOUBLE_VEC2 }
4257   { reuse GL_DOUBLE_VEC3 }
4258   { reuse GL_DOUBLE_VEC4 }
4259   { reuse GL_DOUBLE_MAT2 }
4260   { reuse GL_DOUBLE_MAT3 }
4261   { reuse GL_DOUBLE_MAT4 }
4262   { reuse GL_DOUBLE_MAT2x3 }
4263   { reuse GL_DOUBLE_MAT2x4 }
4264   { reuse GL_DOUBLE_MAT3x2 }
4265   { reuse GL_DOUBLE_MAT3x4 }
4266   { reuse GL_DOUBLE_MAT4x2 }
4267   { reuse GL_DOUBLE_MAT4x3 }
4268
4269   // GL_ARB_viewport_array
4270   { reuse GL_SCISSOR_BOX }
4271   { reuse GL_VIEWPORT }
4272   { reuse GL_DEPTH_RANGE }
4273   { reuse GL_SCISSOR_TEST }
4274   GL_MAX_VIEWPORTS = $825B;
4275   GL_VIEWPORT_SUBPIXEL_BITS = $825C;
4276   GL_VIEWPORT_BOUNDS_RANGE = $825D;
4277   GL_LAYER_PROVOKING_VERTEX = $825E;
4278   GL_VIEWPORT_INDEX_PROVOKING_VERTEX = $825F;
4279   GL_UNDEFINED_VERTEX = $8260;
4280   { reuse GL_FIRST_VERTEX_CONVENTION }
4281   { reuse GL_LAST_VERTEX_CONVENTION }
4282   { reuse GL_PROVOKING_VERTEX }
4283
4284   // GL_ARB_cl_event
4285   GL_SYNC_CL_EVENT_ARB = $8240;
4286   GL_SYNC_CL_EVENT_COMPLETE_ARB = $8241;
4287
4288   // GL_ARB_debug_output
4289   GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = $8242;
4290   GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = $8243;
4291   GL_DEBUG_CALLBACK_FUNCTION_ARB = $8244;
4292   GL_DEBUG_CALLBACK_USER_PARAM_ARB = $8245;
4293   GL_DEBUG_SOURCE_API_ARB = $8246;
4294   GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = $8247;
4295   GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = $8248;
4296   GL_DEBUG_SOURCE_THIRD_PARTY_ARB = $8249;
4297   GL_DEBUG_SOURCE_APPLICATION_ARB = $824A;
4298   GL_DEBUG_SOURCE_OTHER_ARB = $824B;
4299   GL_DEBUG_TYPE_ERROR_ARB = $824C;
4300   GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = $824D;
4301   GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = $824E;
4302   GL_DEBUG_TYPE_PORTABILITY_ARB = $824F;
4303   GL_DEBUG_TYPE_PERFORMANCE_ARB = $8250;
4304   GL_DEBUG_TYPE_OTHER_ARB = $8251;
4305   GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = $9143;
4306   GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = $9144;
4307   GL_DEBUG_LOGGED_MESSAGES_ARB = $9145;
4308   GL_DEBUG_SEVERITY_HIGH_ARB = $9146;
4309   GL_DEBUG_SEVERITY_MEDIUM_ARB = $9147;
4310   GL_DEBUG_SEVERITY_LOW_ARB = $9148;
4311
4312   // GL_ARB_robustness
4313   { reuse GL_NO_ERROR }
4314   GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = $00000004;
4315   GL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
4316   GL_GUILTY_CONTEXT_RESET_ARB = $8253;
4317   GL_INNOCENT_CONTEXT_RESET_ARB = $8254;
4318   GL_UNKNOWN_CONTEXT_RESET_ARB = $8255;
4319   GL_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
4320   GL_NO_RESET_NOTIFICATION_ARB = $8261;
4321
4322   //  GL_ARB_compressed_texture_pixel_storage
4323   GL_UNPACK_COMPRESSED_BLOCK_WIDTH  = $09127;
4324   GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = $09128;
4325   GL_UNPACK_COMPRESSED_BLOCK_DEPTH  = $09129;
4326   GL_UNPACK_COMPRESSED_BLOCK_SIZE   = $0912A;
4327   GL_PACK_COMPRESSED_BLOCK_WIDTH    = $0912B;
4328   GL_PACK_COMPRESSED_BLOCK_HEIGHT   = $0912C;
4329   GL_PACK_COMPRESSED_BLOCK_DEPTH    = $0912D;
4330   GL_PACK_COMPRESSED_BLOCK_SIZE     = $0912E;
4331
4332   // GL_ARB_internalformat_query
4333   GL_NUM_SAMPLE_COUNTS              = $09380;
4334
4335   // GL_ARB_map_buffer_alignment
4336   GL_MIN_MAP_BUFFER_ALIGNMENT       = $090BC;
4337
4338   // GL_ARB_shader_atomic_counters
4339   GL_ATOMIC_COUNTER_BUFFER          = $92C0;
4340   GL_ATOMIC_COUNTER_BUFFER_BINDING  = $92C1;
4341   GL_ATOMIC_COUNTER_BUFFER_START    = $92C2;
4342   GL_ATOMIC_COUNTER_BUFFER_SIZE     = $92C3;
4343   GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = $92C4;
4344   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = $92C5;
4345   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = $92C6;
4346   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = $92C7;
4347   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = $92C8;
4348   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = $92C9;
4349   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = $92CA;
4350   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = $92CB;
4351   GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = $92CC;
4352   GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = $92CD;
4353   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = $92CE;
4354   GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = $92CF;
4355   GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = $92D0;
4356   GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = $92D1;
4357   GL_MAX_VERTEX_ATOMIC_COUNTERS     = $92D2;
4358   GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = $92D3;
4359   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = $92D4;
4360   GL_MAX_GEOMETRY_ATOMIC_COUNTERS   = $92D5;
4361   GL_MAX_FRAGMENT_ATOMIC_COUNTERS   = $92D6;
4362   GL_MAX_COMBINED_ATOMIC_COUNTERS   = $92D7;
4363   GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = $92D8;
4364   GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = $92DC;
4365   GL_ACTIVE_ATOMIC_COUNTER_BUFFERS  = $92D9;
4366   GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = $92DA;
4367   GL_UNSIGNED_INT_ATOMIC_COUNTER    = $92DB;
4368
4369   // GL_ARB_shader_image_load_store
4370   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = $00000001;
4371   GL_ELEMENT_ARRAY_BARRIER_BIT      = $00000002;
4372   GL_UNIFORM_BARRIER_BIT            = $00000004;
4373   GL_TEXTURE_FETCH_BARRIER_BIT      = $00000008;
4374   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = $00000020;
4375   GL_COMMAND_BARRIER_BIT            = $00000040;
4376   GL_PIXEL_BUFFER_BARRIER_BIT       = $00000080;
4377   GL_TEXTURE_UPDATE_BARRIER_BIT     = $00000100;
4378   GL_BUFFER_UPDATE_BARRIER_BIT      = $00000200;
4379   GL_FRAMEBUFFER_BARRIER_BIT        = $00000400;
4380   GL_TRANSFORM_FEEDBACK_BARRIER_BIT = $00000800;
4381   GL_ATOMIC_COUNTER_BARRIER_BIT     = $00001000;
4382   GL_ALL_BARRIER_BITS               = $FFFFFFFF;
4383   GL_MAX_IMAGE_UNITS                = $8F38;
4384   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = $8F39;
4385   GL_IMAGE_BINDING_NAME             = $8F3A;
4386   GL_IMAGE_BINDING_LEVEL            = $8F3B;
4387   GL_IMAGE_BINDING_LAYERED          = $8F3C;
4388   GL_IMAGE_BINDING_LAYER            = $8F3D;
4389   GL_IMAGE_BINDING_ACCESS           = $8F3E;
4390   GL_IMAGE_1D                       = $904C;
4391   GL_IMAGE_2D                       = $904D;
4392   GL_IMAGE_3D                       = $904E;
4393   GL_IMAGE_2D_RECT                  = $904F;
4394   GL_IMAGE_CUBE                     = $9050;
4395   GL_IMAGE_BUFFER                   = $9051;
4396   GL_IMAGE_1D_ARRAY                 = $9052;
4397   GL_IMAGE_2D_ARRAY                 = $9053;
4398   GL_IMAGE_CUBE_MAP_ARRAY           = $9054;
4399   GL_IMAGE_2D_MULTISAMPLE           = $9055;
4400   GL_IMAGE_2D_MULTISAMPLE_ARRAY     = $9056;
4401   GL_INT_IMAGE_1D                   = $9057;
4402   GL_INT_IMAGE_2D                   = $9058;
4403   GL_INT_IMAGE_3D                   = $9059;
4404   GL_INT_IMAGE_2D_RECT              = $905A;
4405   GL_INT_IMAGE_CUBE                 = $905B;
4406   GL_INT_IMAGE_BUFFER               = $905C;
4407   GL_INT_IMAGE_1D_ARRAY             = $905D;
4408   GL_INT_IMAGE_2D_ARRAY             = $905E;
4409   GL_INT_IMAGE_CUBE_MAP_ARRAY       = $905F;
4410   GL_INT_IMAGE_2D_MULTISAMPLE       = $9060;
4411   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $9061;
4412   GL_UNSIGNED_INT_IMAGE_1D          = $9062;
4413   GL_UNSIGNED_INT_IMAGE_2D          = $9063;
4414   GL_UNSIGNED_INT_IMAGE_3D          = $9064;
4415   GL_UNSIGNED_INT_IMAGE_2D_RECT     = $9065;
4416   GL_UNSIGNED_INT_IMAGE_CUBE        = $9066;
4417   GL_UNSIGNED_INT_IMAGE_BUFFER      = $9067;
4418   GL_UNSIGNED_INT_IMAGE_1D_ARRAY    = $9068;
4419   GL_UNSIGNED_INT_IMAGE_2D_ARRAY    = $9069;
4420   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = $906A;
4421   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = $906B;
4422   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $906C;
4423   GL_MAX_IMAGE_SAMPLES              = $906D;
4424   GL_IMAGE_BINDING_FORMAT           = $906E;
4425   GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = $90C7;
4426   GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = $90C8;
4427   GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = $90C9;
4428   GL_MAX_VERTEX_IMAGE_UNIFORMS      = $90CA;
4429   GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = $90CB;
4430   GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = $90CC;
4431   GL_MAX_GEOMETRY_IMAGE_UNIFORMS    = $90CD;
4432   GL_MAX_FRAGMENT_IMAGE_UNIFORMS    = $90CE;
4433   GL_MAX_COMBINED_IMAGE_UNIFORMS    = $90CF;
4434
4435   // GL_ARB_texture_storage
4436   GL_TEXTURE_IMMUTABLE_FORMAT       = $912F;
4437
4438   // 4.3
4439     GL_COMPRESSED_RGBA_ASTC_4x4_KHR = $93B0;
4440     GL_COMPRESSED_RGBA_ASTC_5x4_KHR = $93B1;
4441     GL_COMPRESSED_RGBA_ASTC_5x5_KHR = $93B2;
4442     GL_COMPRESSED_RGBA_ASTC_6x5_KHR = $93B3;
4443     GL_COMPRESSED_RGBA_ASTC_6x6_KHR = $93B4;
4444     GL_COMPRESSED_RGBA_ASTC_8x5_KHR = $93B5;
4445     GL_COMPRESSED_RGBA_ASTC_8x6_KHR = $93B6;
4446     GL_COMPRESSED_RGBA_ASTC_8x8_KHR = $93B7;
4447     GL_COMPRESSED_RGBA_ASTC_105_KHR = $93B8;
4448     GL_COMPRESSED_RGBA_ASTC_106_KHR = $93B9;
4449     GL_COMPRESSED_RGBA_ASTC_108_KHR = $93BA;
4450     GL_COMPRESSED_RGBA_ASTC_110_KHR = $93BB;
4451     GL_COMPRESSED_RGBA_ASTC_12x10_KHR = $93BC;
4452     GL_COMPRESSED_RGBA_ASTC_12x12_KHR = $93BD;
4453     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = $93D0;
4454     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = $93D1;
4455     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = $93D2;
4456     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = $93D3;
4457     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = $93D4;
4458     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = $93D5;
4459     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = $93D6;
4460     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = $93D7;
4461     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = $93D8;
4462     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = $93D9;
4463     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = $93DA;
4464     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = $93DB;
4465     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = $93DC;
4466     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = $93DD;
4467     // (4.3) GL_KHR_debug
4468     GL_DEBUG_OUTPUT_SYNCHRONOUS       = $8242;
4469     GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = $8243;
4470     GL_DEBUG_CALLBACK_FUNCTION        = $8244;
4471     GL_DEBUG_CALLBACK_USER_PARAM      = $8245;
4472     GL_DEBUG_SOURCE_API               = $8246;
4473     GL_DEBUG_SOURCE_WINDOW_SYSTEM     = $8247;
4474     GL_DEBUG_SOURCE_SHADER_COMPILER   = $8248;
4475     GL_DEBUG_SOURCE_THIRD_PARTY       = $8249;
4476     GL_DEBUG_SOURCE_APPLICATION       = $824A;
4477     GL_DEBUG_SOURCE_OTHER             = $824B;
4478     GL_DEBUG_TYPE_ERROR               = $824C;
4479     GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = $824D;
4480     GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR  = $824E;
4481     GL_DEBUG_TYPE_PORTABILITY         = $824F;
4482     GL_DEBUG_TYPE_PERFORMANCE         = $8250;
4483     GL_DEBUG_TYPE_OTHER               = $8251;
4484     GL_DEBUG_TYPE_MARKER              = $8268;
4485     GL_DEBUG_TYPE_PUSH_GROUP          = $8269;
4486     GL_DEBUG_TYPE_POP_GROUP           = $826A;
4487     GL_DEBUG_SEVERITY_NOTIFICATION    = $826B;
4488     GL_MAX_DEBUG_GROUP_STACK_DEPTH    = $826C;
4489     GL_DEBUG_GROUP_STACK_DEPTH        = $826D;
4490     GL_BUFFER                         = $82E0;
4491     GL_SHADER                         = $82E1;
4492     GL_PROGRAM                        = $82E2;
4493     GL_QUERY                          = $82E3;
4494     GL_PROGRAM_PIPELINE               = $82E4;
4495     GL_SAMPLER                        = $82E6;
4496     GL_DISPLAY_LIST                   = $82E7;
4497     GL_MAX_LABEL_LENGTH               = $82E8;
4498     GL_MAX_DEBUG_MESSAGE_LENGTH       = $9143;
4499     GL_MAX_DEBUG_LOGGED_MESSAGES      = $9144;
4500     GL_DEBUG_LOGGED_MESSAGES          = $9145;
4501     GL_DEBUG_SEVERITY_HIGH            = $9146;
4502     GL_DEBUG_SEVERITY_MEDIUM          = $9147;
4503     GL_DEBUG_SEVERITY_LOW             = $9148;
4504     GL_DEBUG_OUTPUT                   = $92E0;
4505     GL_CONTEXT_FLAG_DEBUG_BIT         = $00000002;
4506     GL_COMPUTE_SHADER                 = $91B9;
4507     GL_MAX_COMPUTE_UNIFORM_BLOCKS     = $91BB;
4508     GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = $91BC;
4509     GL_MAX_COMPUTE_IMAGE_UNIFORMS     = $91BD;
4510     GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = $8262;
4511     GL_MAX_COMPUTE_UNIFORM_COMPONENTS = $8263;
4512     GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = $8264;
4513     GL_MAX_COMPUTE_ATOMIC_COUNTERS    = $8265;
4514     GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = $8266;
4515     GL_MAX_COMPUTE_LOCAL_INVOCATIONS  = $90EB;
4516     GL_MAX_COMPUTE_WORK_GROUP_COUNT   = $91BE;
4517     GL_MAX_COMPUTE_WORK_GROUP_SIZE    = $91BF;
4518     GL_COMPUTE_LOCAL_WORK_SIZE        = $8267;
4519     GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = $90EC;
4520     GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = $90ED;
4521     GL_DISPATCH_INDIRECT_BUFFER       = $90EE;
4522     GL_DISPATCH_INDIRECT_BUFFER_BINDING = $90EF;
4523     GL_COMPUTE_SHADER_BIT             = $00000020;
4524     GL_COMPRESSED_RGB8_ETC2           = $9274;
4525     GL_COMPRESSED_SRGB8_ETC2          = $9275;
4526     GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9276;
4527     GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9277;
4528     GL_COMPRESSED_RGBA8_ETC2_EAC      = $9278;
4529     GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = $9279;
4530     GL_COMPRESSED_R11_EAC             = $9270;
4531     GL_COMPRESSED_SIGNED_R11_EAC      = $9271;
4532     GL_COMPRESSED_RG11_EAC            = $9272;
4533     GL_COMPRESSED_SIGNED_RG11_EAC     = $9273;
4534     GL_PRIMITIVE_RESTART_FIXED_INDEX  = $8D69;
4535     GL_ANY_SAMPLES_PASSED_CONSERVATIVE = $8D6A;
4536     GL_MAX_ELEMENT_INDEX              = $8D6B;
4537         GL_MAX_UNIFORM_LOCATIONS          = $826E;
4538     GL_FRAMEBUFFER_DEFAULT_WIDTH      = $9310;
4539     GL_FRAMEBUFFER_DEFAULT_HEIGHT     = $9311;
4540     GL_FRAMEBUFFER_DEFAULT_LAYERS     = $9312;
4541     GL_FRAMEBUFFER_DEFAULT_SAMPLES    = $9313;
4542     GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = $9314;
4543     GL_MAX_FRAMEBUFFER_WIDTH          = $9315;
4544     GL_MAX_FRAMEBUFFER_HEIGHT         = $9316;
4545     GL_MAX_FRAMEBUFFER_LAYERS         = $9317;
4546     GL_MAX_FRAMEBUFFER_SAMPLES        = $9318;
4547           GL_INTERNALFORMAT_SUPPORTED       = $826F;
4548     GL_INTERNALFORMAT_PREFERRED       = $8270;
4549     GL_INTERNALFORMAT_RED_SIZE        = $8271;
4550     GL_INTERNALFORMAT_GREEN_SIZE      = $8272;
4551     GL_INTERNALFORMAT_BLUE_SIZE       = $8273;
4552     GL_INTERNALFORMAT_ALPHA_SIZE      = $8274;
4553     GL_INTERNALFORMAT_DEPTH_SIZE      = $8275;
4554     GL_INTERNALFORMAT_STENCIL_SIZE    = $8276;
4555     GL_INTERNALFORMAT_SHARED_SIZE     = $8277;
4556     GL_INTERNALFORMAT_RED_TYPE        = $8278;
4557     GL_INTERNALFORMAT_GREEN_TYPE      = $8279;
4558     GL_INTERNALFORMAT_BLUE_TYPE       = $827A;
4559     GL_INTERNALFORMAT_ALPHA_TYPE      = $827B;
4560     GL_INTERNALFORMAT_DEPTH_TYPE      = $827C;
4561     GL_INTERNALFORMAT_STENCIL_TYPE    = $827D;
4562     GL_MAX_WIDTH                      = $827E;
4563     GL_MAX_HEIGHT                     = $827F;
4564     GL_MAX_DEPTH                      = $8280;
4565     GL_MAX_LAYERS                     = $8281;
4566     GL_MAX_COMBINED_DIMENSIONS        = $8282;
4567     GL_COLOR_COMPONENTS               = $8283;
4568     GL_DEPTH_COMPONENTS               = $8284;
4569     GL_STENCIL_COMPONENTS             = $8285;
4570     GL_COLOR_RENDERABLE               = $8286;
4571     GL_DEPTH_RENDERABLE               = $8287;
4572     GL_STENCIL_RENDERABLE             = $8288;
4573     GL_FRAMEBUFFER_RENDERABLE         = $8289;
4574     GL_FRAMEBUFFER_RENDERABLE_LAYERED = $828A;
4575     GL_FRAMEBUFFER_BLEND              = $828B;
4576     GL_READ_PIXELS                    = $828C;
4577     GL_READ_PIXELS_FORMAT             = $828D;
4578     GL_READ_PIXELS_TYPE               = $828E;
4579     GL_TEXTURE_IMAGE_FORMAT           = $828F;
4580     GL_TEXTURE_IMAGE_TYPE             = $8290;
4581     GL_GET_TEXTURE_IMAGE_FORMAT       = $8291;
4582     GL_GET_TEXTURE_IMAGE_TYPE         = $8292;
4583     GL_MIPMAP                         = $8293;
4584     GL_MANUAL_GENERATE_MIPMAP         = $8294;
4585     GL_AUTO_GENERATE_MIPMAP           = $8295;
4586     GL_COLOR_ENCODING                 = $8296;
4587     GL_SRGB_READ                      = $8297;
4588     GL_SRGB_WRITE                     = $8298;
4589     GL_SRGB_DECODE_ARB                = $8299;
4590     GL_FILTER                         = $829A;
4591     GL_VERTEX_TEXTURE                 = $829B;
4592     GL_TESS_CONTROL_TEXTURE           = $829C;
4593     GL_TESS_EVALUATION_TEXTURE        = $829D;
4594     GL_GEOMETRY_TEXTURE               = $829E;
4595     GL_FRAGMENT_TEXTURE               = $829F;
4596     GL_COMPUTE_TEXTURE                = $82A0;
4597     GL_TEXTURE_SHADOW                 = $82A1;
4598     GL_TEXTURE_GATHER                 = $82A2;
4599     GL_TEXTURE_GATHER_SHADOW          = $82A3;
4600     GL_SHADER_IMAGE_LOAD              = $82A4;
4601     GL_SHADER_IMAGE_STORE             = $82A5;
4602     GL_SHADER_IMAGE_ATOMIC            = $82A6;
4603     GL_IMAGE_TEXEL_SIZE               = $82A7;
4604     GL_IMAGE_COMPATIBILITY_CLASS      = $82A8;
4605     GL_IMAGE_PIXEL_FORMAT             = $82A9;
4606     GL_IMAGE_PIXEL_TYPE               = $82AA;
4607     GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = $82AC;
4608     GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = $82AD;
4609     GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = $82AE;
4610     GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = $82AF;
4611     GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = $82B1;
4612     GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = $82B2;
4613     GL_TEXTURE_COMPRESSED_BLOCK_SIZE  = $82B3;
4614     GL_CLEAR_BUFFER                   = $82B4;
4615     GL_TEXTURE_VIEW                   = $82B5;
4616     GL_VIEW_COMPATIBILITY_CLASS       = $82B6;
4617     GL_FULL_SUPPORT                   = $82B7;
4618     GL_CAVEAT_SUPPORT                 = $82B8;
4619     GL_IMAGE_CLASS_4_X_32             = $82B9;
4620     GL_IMAGE_CLASS_2_X_32             = $82BA;
4621     GL_IMAGE_CLASS_1_X_32             = $82BB;
4622     GL_IMAGE_CLASS_4_X_16             = $82BC;
4623     GL_IMAGE_CLASS_2_X_16             = $82BD;
4624     GL_IMAGE_CLASS_1_X_16             = $82BE;
4625     GL_IMAGE_CLASS_4_X_8              = $82BF;
4626     GL_IMAGE_CLASS_2_X_8              = $82C0;
4627     GL_IMAGE_CLASS_1_X_8              = $82C1;
4628     GL_IMAGE_CLASS_11_11_10           = $82C2;
4629     GL_IMAGE_CLASS_10_10_10_2         = $82C3;
4630     GL_VIEW_CLASS_128_BITS            = $82C4;
4631     GL_VIEW_CLASS_96_BITS             = $82C5;
4632     GL_VIEW_CLASS_64_BITS             = $82C6;
4633     GL_VIEW_CLASS_48_BITS             = $82C7;
4634     GL_VIEW_CLASS_32_BITS             = $82C8;
4635     GL_VIEW_CLASS_24_BITS             = $82C9;
4636     GL_VIEW_CLASS_16_BITS             = $82CA;
4637     GL_VIEW_CLASS_8_BITS              = $82CB;
4638     GL_VIEW_CLASS_S3TC_DXT1_RGB       = $82CC;
4639     GL_VIEW_CLASS_S3TC_DXT1_RGBA      = $82CD;
4640     GL_VIEW_CLASS_S3TC_DXT3_RGBA      = $82CE;
4641     GL_VIEW_CLASS_S3TC_DXT5_RGBA      = $82CF;
4642     GL_VIEW_CLASS_RGTC1_RED           = $82D0;
4643     GL_VIEW_CLASS_RGTC2_RG            = $82D1;
4644     GL_VIEW_CLASS_BPTC_UNORM          = $82D2;
4645     GL_VIEW_CLASS_BPTC_FLOAT          = $82D3;
4646     GL_UNIFORM                        = $92E1;
4647     GL_UNIFORM_BLOCK                  = $92E2;
4648     GL_PROGRAM_INPUT                  = $92E3;
4649     GL_PROGRAM_OUTPUT                 = $92E4;
4650     GL_BUFFER_VARIABLE                = $92E5;
4651     GL_SHADER_STORAGE_BLOCK           = $92E6;
4652     GL_VERTEX_SUBROUTINE              = $92E8;
4653     GL_TESS_CONTROL_SUBROUTINE        = $92E9;
4654     GL_TESS_EVALUATION_SUBROUTINE     = $92EA;
4655     GL_GEOMETRY_SUBROUTINE            = $92EB;
4656     GL_FRAGMENT_SUBROUTINE            = $92EC;
4657     GL_COMPUTE_SUBROUTINE             = $92ED;
4658     GL_VERTEX_SUBROUTINE_UNIFORM      = $92EE;
4659     GL_TESS_CONTROL_SUBROUTINE_UNIFORM = $92EF;
4660     GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = $92F0;
4661     GL_GEOMETRY_SUBROUTINE_UNIFORM    = $92F1;
4662     GL_FRAGMENT_SUBROUTINE_UNIFORM    = $92F2;
4663     GL_COMPUTE_SUBROUTINE_UNIFORM     = $92F3;
4664     GL_TRANSFORM_FEEDBACK_VARYING     = $92F4;
4665     GL_ACTIVE_RESOURCES               = $92F5;
4666     GL_MAX_NAME_LENGTH                = $92F6;
4667     GL_MAX_NUM_ACTIVE_VARIABLES       = $92F7;
4668     GL_MAX_NUM_COMPATIBLE_SUBROUTINES = $92F8;
4669     GL_NAME_LENGTH                    = $92F9;
4670     GL_TYPE                           = $92FA;
4671     GL_ARRAY_SIZE                     = $92FB;
4672     GL_OFFSET                         = $92FC;
4673     GL_BLOCK_INDEX                    = $92FD;
4674     GL_ARRAY_STRIDE                   = $92FE;
4675     GL_MATRIX_STRIDE                  = $92FF;
4676     GL_IS_ROW_MAJOR                   = $9300;
4677     GL_ATOMIC_COUNTER_BUFFER_INDEX    = $9301;
4678     GL_BUFFER_BINDING                 = $9302;
4679     GL_BUFFER_DATA_SIZE               = $9303;
4680     GL_NUM_ACTIVE_VARIABLES           = $9304;
4681     GL_ACTIVE_VARIABLES               = $9305;
4682     GL_REFERENCED_BY_VERTEX_SHADER    = $9306;
4683     GL_REFERENCED_BY_TESS_CONTROL_SHADER = $9307;
4684     GL_REFERENCED_BY_TESS_EVALUATION_SHADER = $9308;
4685     GL_REFERENCED_BY_GEOMETRY_SHADER  = $9309;
4686     GL_REFERENCED_BY_FRAGMENT_SHADER  = $930A;
4687     GL_REFERENCED_BY_COMPUTE_SHADER   = $930B;
4688     GL_TOP_LEVEL_ARRAY_SIZE           = $930C;
4689     GL_TOP_LEVEL_ARRAY_STRIDE         = $930D;
4690     GL_LOCATION                       = $930E;
4691     GL_LOCATION_INDEX                 = $930F;
4692     GL_IS_PER_PATCH                   = $92E7;
4693     GL_SHADER_STORAGE_BUFFER          = $90D2;
4694     GL_SHADER_STORAGE_BUFFER_BINDING  = $90D3;
4695     GL_SHADER_STORAGE_BUFFER_START    = $90D4;
4696     GL_SHADER_STORAGE_BUFFER_SIZE     = $90D5;
4697     GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = $90D6;
4698     GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = $90D7;
4699     GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = $90D8;
4700     GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = $90D9;
4701     GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = $90DA;
4702     GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = $90DB;
4703     GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = $90DC;
4704     GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = $90DD;
4705     GL_MAX_SHADER_STORAGE_BLOCK_SIZE  = $90DE;
4706     GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = $90DF;
4707     GL_SHADER_STORAGE_BARRIER_BIT     = $2000;
4708     GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS;
4709     GL_DEPTH_STENCIL_TEXTURE_MODE     = $90EA;
4710     GL_TEXTURE_BUFFER_OFFSET          = $919D;
4711     GL_TEXTURE_BUFFER_SIZE            = $919E;
4712     GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = $919F;
4713     GL_TEXTURE_VIEW_MIN_LEVEL         = $82DB;
4714     GL_TEXTURE_VIEW_NUM_LEVELS        = $82DC;
4715     GL_TEXTURE_VIEW_MIN_LAYER         = $82DD;
4716     GL_TEXTURE_VIEW_NUM_LAYERS        = $82DE;
4717     GL_TEXTURE_IMMUTABLE_LEVELS       = $82DF;
4718     GL_VERTEX_ATTRIB_BINDING          = $82D4;
4719     GL_VERTEX_ATTRIB_RELATIVE_OFFSET  = $82D5;
4720     GL_VERTEX_BINDING_DIVISOR         = $82D6;
4721     GL_VERTEX_BINDING_OFFSET          = $82D7;
4722     GL_VERTEX_BINDING_STRIDE          = $82D8;
4723     GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D9;
4724     GL_MAX_VERTEX_ATTRIB_BINDINGS     = $82DA;
4725         // END 4.3
4726
4727   // GL 4.4
4728     GL_MAX_VERTEX_ATTRIB_STRIDE         = $82E5;
4729     GL_MAP_PERSISTENT_BIT               = $0040;
4730     GL_MAP_COHERENT_BIT                 = $0080;
4731     GL_DYNAMIC_STORAGE_BIT              = $0100;
4732     GL_CLIENT_STORAGE_BIT               = $0200;
4733     GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = $00004000;
4734     GL_BUFFER_IMMUTABLE_STORAGE         = $821F;
4735     GL_BUFFER_STORAGE_FLAGS             = $8220;
4736     GL_CLEAR_TEXTURE                    = $9365;
4737     GL_LOCATION_COMPONENT               = $934A;
4738     GL_TRANSFORM_FEEDBACK_BUFFER_INDEX  = $934B;
4739     GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = $934C;
4740     GL_QUERY_BUFFER                     = $9192;
4741     GL_QUERY_BUFFER_BARRIER_BIT         = $00008000;
4742     GL_QUERY_BUFFER_BINDING             = $9193;
4743     GL_QUERY_RESULT_NO_WAIT             = $9194;
4744     GL_MIRROR_CLAMP_TO_EDGE             = $8743;
4745   // END GL 4.4
4746
4747   // GL_ATI_draw_buffers
4748   GL_MAX_DRAW_BUFFERS_ATI = $8824;
4749   GL_DRAW_BUFFER0_ATI = $8825;
4750   GL_DRAW_BUFFER1_ATI = $8826;
4751   GL_DRAW_BUFFER2_ATI = $8827;
4752   GL_DRAW_BUFFER3_ATI = $8828;
4753   GL_DRAW_BUFFER4_ATI = $8829;
4754   GL_DRAW_BUFFER5_ATI = $882A;
4755   GL_DRAW_BUFFER6_ATI = $882B;
4756   GL_DRAW_BUFFER7_ATI = $882C;
4757   GL_DRAW_BUFFER8_ATI = $882D;
4758   GL_DRAW_BUFFER9_ATI = $882E;
4759   GL_DRAW_BUFFER10_ATI = $882F;
4760   GL_DRAW_BUFFER11_ATI = $8830;
4761   GL_DRAW_BUFFER12_ATI = $8831;
4762   GL_DRAW_BUFFER13_ATI = $8832;
4763   GL_DRAW_BUFFER14_ATI = $8833;
4764   GL_DRAW_BUFFER15_ATI = $8834;
4765
4766   // GL_ATI_element_array
4767   GL_ELEMENT_ARRAY_ATI = $8768;
4768   GL_ELEMENT_ARRAY_TYPE_ATI = $8769;
4769   GL_ELEMENT_ARRAY_POINTER_ATI = $876A;
4770
4771   // GL_ATI_envmap_bumpmap
4772   GL_BUMP_ROT_MATRIX_ATI = $8775;
4773   GL_BUMP_ROT_MATRIX_SIZE_ATI = $8776;
4774   GL_BUMP_NUM_TEX_UNITS_ATI = $8777;
4775   GL_BUMP_TEX_UNITS_ATI = $8778;
4776   GL_DUDV_ATI = $8779;
4777   GL_DU8DV8_ATI = $877A;
4778   GL_BUMP_ENVMAP_ATI = $877B;
4779   GL_BUMP_TARGET_ATI = $877C;
4780
4781   // GL_ATI_fragment_shader
4782   GL_FRAGMENT_SHADER_ATI = $8920;
4783   GL_REG_0_ATI = $8921;
4784   GL_REG_1_ATI = $8922;
4785   GL_REG_2_ATI = $8923;
4786   GL_REG_3_ATI = $8924;
4787   GL_REG_4_ATI = $8925;
4788   GL_REG_5_ATI = $8926;
4789   GL_REG_6_ATI = $8927;
4790   GL_REG_7_ATI = $8928;
4791   GL_REG_8_ATI = $8929;
4792   GL_REG_9_ATI = $892A;
4793   GL_REG_10_ATI = $892B;
4794   GL_REG_11_ATI = $892C;
4795   GL_REG_12_ATI = $892D;
4796   GL_REG_13_ATI = $892E;
4797   GL_REG_14_ATI = $892F;
4798   GL_REG_15_ATI = $8930;
4799   GL_REG_16_ATI = $8931;
4800   GL_REG_17_ATI = $8932;
4801   GL_REG_18_ATI = $8933;
4802   GL_REG_19_ATI = $8934;
4803   GL_REG_20_ATI = $8935;
4804   GL_REG_21_ATI = $8936;
4805   GL_REG_22_ATI = $8937;
4806   GL_REG_23_ATI = $8938;
4807   GL_REG_24_ATI = $8939;
4808   GL_REG_25_ATI = $893A;
4809   GL_REG_26_ATI = $893B;
4810   GL_REG_27_ATI = $893C;
4811   GL_REG_28_ATI = $893D;
4812   GL_REG_29_ATI = $893E;
4813   GL_REG_30_ATI = $893F;
4814   GL_REG_31_ATI = $8940;
4815   GL_CON_0_ATI = $8941;
4816   GL_CON_1_ATI = $8942;
4817   GL_CON_2_ATI = $8943;
4818   GL_CON_3_ATI = $8944;
4819   GL_CON_4_ATI = $8945;
4820   GL_CON_5_ATI = $8946;
4821   GL_CON_6_ATI = $8947;
4822   GL_CON_7_ATI = $8948;
4823   GL_CON_8_ATI = $8949;
4824   GL_CON_9_ATI = $894A;
4825   GL_CON_10_ATI = $894B;
4826   GL_CON_11_ATI = $894C;
4827   GL_CON_12_ATI = $894D;
4828   GL_CON_13_ATI = $894E;
4829   GL_CON_14_ATI = $894F;
4830   GL_CON_15_ATI = $8950;
4831   GL_CON_16_ATI = $8951;
4832   GL_CON_17_ATI = $8952;
4833   GL_CON_18_ATI = $8953;
4834   GL_CON_19_ATI = $8954;
4835   GL_CON_20_ATI = $8955;
4836   GL_CON_21_ATI = $8956;
4837   GL_CON_22_ATI = $8957;
4838   GL_CON_23_ATI = $8958;
4839   GL_CON_24_ATI = $8959;
4840   GL_CON_25_ATI = $895A;
4841   GL_CON_26_ATI = $895B;
4842   GL_CON_27_ATI = $895C;
4843   GL_CON_28_ATI = $895D;
4844   GL_CON_29_ATI = $895E;
4845   GL_CON_30_ATI = $895F;
4846   GL_CON_31_ATI = $8960;
4847   GL_MOV_ATI = $8961;
4848   GL_ADD_ATI = $8963;
4849   GL_MUL_ATI = $8964;
4850   GL_SUB_ATI = $8965;
4851   GL_DOT3_ATI = $8966;
4852   GL_DOT4_ATI = $8967;
4853   GL_MAD_ATI = $8968;
4854   GL_LERP_ATI = $8969;
4855   GL_CND_ATI = $896A;
4856   GL_CND0_ATI = $896B;
4857   GL_DOT2_ADD_ATI = $896C;
4858   GL_SECONDARY_INTERPOLATOR_ATI = $896D;
4859   GL_NUM_FRAGMENT_REGISTERS_ATI = $896E;
4860   GL_NUM_FRAGMENT_CONSTANTS_ATI = $896F;
4861   GL_NUM_PASSES_ATI = $8970;
4862   GL_NUM_INSTRUCTIONS_PER_PASS_ATI = $8971;
4863   GL_NUM_INSTRUCTIONS_TOTAL_ATI = $8972;
4864   GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = $8973;
4865   GL_NUM_LOOPBACK_COMPONENTS_ATI = $8974;
4866   GL_COLOR_ALPHA_PAIRING_ATI = $8975;
4867   GL_SWIZZLE_STR_ATI = $8976;
4868   GL_SWIZZLE_STQ_ATI = $8977;
4869   GL_SWIZZLE_STR_DR_ATI = $8978;
4870   GL_SWIZZLE_STQ_DQ_ATI = $8979;
4871   GL_SWIZZLE_STRQ_ATI = $897A;
4872   GL_SWIZZLE_STRQ_DQ_ATI = $897B;
4873   GL_RED_BIT_ATI = $00000001;
4874   GL_GREEN_BIT_ATI = $00000002;
4875   GL_BLUE_BIT_ATI = $00000004;
4876   GL_2X_BIT_ATI = $00000001;
4877   GL_4X_BIT_ATI = $00000002;
4878   GL_8X_BIT_ATI = $00000004;
4879   GL_HALF_BIT_ATI = $00000008;
4880   GL_QUARTER_BIT_ATI = $00000010;
4881   GL_EIGHTH_BIT_ATI = $00000020;
4882   GL_SATURATE_BIT_ATI = $00000040;
4883   GL_COMP_BIT_ATI = $00000002;
4884   GL_NEGATE_BIT_ATI = $00000004;
4885   GL_BIAS_BIT_ATI = $00000008;
4886
4887   // GL_ATI_pn_triangles
4888   GL_PN_TRIANGLES_ATI = $87F0;
4889   GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F1;
4890   GL_PN_TRIANGLES_POINT_MODE_ATI = $87F2;
4891   GL_PN_TRIANGLES_NORMAL_MODE_ATI = $87F3;
4892   GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F4;
4893   GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = $87F5;
4894   GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = $87F6;
4895   GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = $87F7;
4896   GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = $87F8;
4897
4898   // GL_ATI_separate_stencil
4899   GL_STENCIL_BACK_FUNC_ATI = $8800;
4900   GL_STENCIL_BACK_FAIL_ATI = $8801;
4901   GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = $8802;
4902   GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = $8803;
4903
4904   // GL_ATI_text_fragment_shader
4905   GL_TEXT_FRAGMENT_SHADER_ATI = $8200;
4906
4907   // GL_ATI_texture_env_combine3
4908   GL_MODULATE_ADD_ATI = $8744;
4909   GL_MODULATE_SIGNED_ADD_ATI = $8745;
4910   GL_MODULATE_SUBTRACT_ATI = $8746;
4911
4912   // GL_ATI_texture_float
4913   GL_RGBA_FLOAT32_ATI = $8814;
4914   GL_RGB_FLOAT32_ATI = $8815;
4915   GL_ALPHA_FLOAT32_ATI = $8816;
4916   GL_INTENSITY_FLOAT32_ATI = $8817;
4917   GL_LUMINANCE_FLOAT32_ATI = $8818;
4918   GL_LUMINANCE_ALPHA_FLOAT32_ATI = $8819;
4919   GL_RGBA_FLOAT16_ATI = $881A;
4920   GL_RGB_FLOAT16_ATI = $881B;
4921   GL_ALPHA_FLOAT16_ATI = $881C;
4922   GL_INTENSITY_FLOAT16_ATI = $881D;
4923   GL_LUMINANCE_FLOAT16_ATI = $881E;
4924   GL_LUMINANCE_ALPHA_FLOAT16_ATI = $881F;
4925
4926   // GL_ATI_texture_mirror_once
4927   GL_MIRROR_CLAMP_ATI = $8742;
4928   GL_MIRROR_CLAMP_TO_EDGE_ATI = $8743;
4929
4930   // GL_ATI_vertex_array_object
4931   GL_STATIC_ATI = $8760;
4932   GL_DYNAMIC_ATI = $8761;
4933   GL_PRESERVE_ATI = $8762;
4934   GL_DISCARD_ATI = $8763;
4935   GL_OBJECT_BUFFER_SIZE_ATI = $8764;
4936   GL_OBJECT_BUFFER_USAGE_ATI = $8765;
4937   GL_ARRAY_OBJECT_BUFFER_ATI = $8766;
4938   GL_ARRAY_OBJECT_OFFSET_ATI = $8767;
4939
4940   // GL_ATI_vertex_streams
4941   GL_MAX_VERTEX_STREAMS_ATI = $876B;
4942   GL_VERTEX_STREAM0_ATI = $876C;
4943   GL_VERTEX_STREAM1_ATI = $876D;
4944   GL_VERTEX_STREAM2_ATI = $876E;
4945   GL_VERTEX_STREAM3_ATI = $876F;
4946   GL_VERTEX_STREAM4_ATI = $8770;
4947   GL_VERTEX_STREAM5_ATI = $8771;
4948   GL_VERTEX_STREAM6_ATI = $8772;
4949   GL_VERTEX_STREAM7_ATI = $8773;
4950   GL_VERTEX_SOURCE_ATI = $8774;
4951
4952   // GL_ATI_meminfo
4953   GL_VBO_FREE_MEMORY_ATI = $87FB;
4954   GL_TEXTURE_FREE_MEMORY_ATI = $87FC;
4955   GL_RENDERBUFFER_FREE_MEMORY_ATI = $87FD;
4956
4957   // GL_AMD_performance_monitor
4958   GL_COUNTER_TYPE_AMD = $8BC0;
4959   GL_COUNTER_RANGE_AMD = $8BC1;
4960   GL_UNSIGNED_INT64_AMD = $8BC2;
4961   GL_PERCENTAGE_AMD = $8BC3;
4962   GL_PERFMON_RESULT_AVAILABLE_AMD = $8BC4;
4963   GL_PERFMON_RESULT_SIZE_AMD = $8BC5;
4964   GL_PERFMON_RESULT_AMD = $8BC6;
4965   
4966   // GL_AMD_vertex_shader_tesselator
4967   GL_SAMPLER_BUFFER_AMD = $9001;
4968   GL_INT_SAMPLER_BUFFER_AMD = $9002;
4969   GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = $9003;
4970   GL_TESSELLATION_MODE_AMD = $9004;
4971   GL_TESSELLATION_FACTOR_AMD = $9005;
4972   GL_DISCRETE_AMD = $9006;
4973   GL_CONTINUOUS_AMD = $9007;
4974
4975   // GL_AMD_seamless_cubemap_per_texture
4976   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
4977
4978   // GL_AMD_name_gen_delete
4979   GL_DATA_BUFFER_AMD = $9151;
4980   GL_PERFORMANCE_MONITOR_AMD = $9152;
4981   GL_QUERY_OBJECT_AMD = $9153;
4982   GL_VERTEX_ARRAY_OBJECT_AMD = $9154;
4983   GL_SAMPLER_OBJECT_AMD = $9155;
4984
4985   // GL_AMD_debug_output
4986   GL_MAX_DEBUG_LOGGED_MESSAGES_AMD = $9144;
4987   GL_DEBUG_LOGGED_MESSAGES_AMD = $9145;
4988   GL_DEBUG_SEVERITY_HIGH_AMD = $9146;
4989   GL_DEBUG_SEVERITY_MEDIUM_AMD = $9147;
4990   GL_DEBUG_SEVERITY_LOW_AMD = $9148;
4991   GL_DEBUG_CATEGORY_API_ERROR_AMD = $9149;
4992   GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = $914A;
4993   GL_DEBUG_CATEGORY_DEPRECATION_AMD = $914B;
4994   GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = $914C;
4995   GL_DEBUG_CATEGORY_PERFORMANCE_AMD = $914D;
4996   GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD = $914E;
4997   GL_DEBUG_CATEGORY_APPLICATION_AMD = $914F;
4998   GL_DEBUG_CATEGORY_OTHER_AMD = $9150;
4999
5000   // GL_AMD_depth_clamp_separate
5001   GL_DEPTH_CLAMP_NEAR_AMD = $901E;
5002   GL_DEPTH_CLAMP_FAR_AMD = $901F;
5003
5004   // GL_EXT_422_pixels
5005   GL_422_EXT = $80CC;
5006   GL_422_REV_EXT = $80CD;
5007   GL_422_AVERAGE_EXT = $80CE;
5008   GL_422_REV_AVERAGE_EXT = $80CF;
5009
5010   // GL_EXT_abgr
5011   GL_ABGR_EXT = $8000;
5012
5013   // GL_EXT_bgra
5014   GL_BGR_EXT = $80E0;
5015   GL_BGRA_EXT = $80E1;
5016
5017   // GL_EXT_blend_color
5018   GL_CONSTANT_COLOR_EXT = $8001;
5019   GL_ONE_MINUS_CONSTANT_COLOR_EXT = $8002;
5020   GL_CONSTANT_ALPHA_EXT = $8003;
5021   GL_ONE_MINUS_CONSTANT_ALPHA_EXT = $8004;
5022   GL_BLEND_COLOR_EXT = $8005;
5023
5024   // GL_EXT_blend_func_separate
5025   GL_BLEND_DST_RGB_EXT = $80C8;
5026   GL_BLEND_SRC_RGB_EXT = $80C9;
5027   GL_BLEND_DST_ALPHA_EXT = $80CA;
5028   GL_BLEND_SRC_ALPHA_EXT = $80CB;
5029
5030   // GL_EXT_blend_minmax
5031   GL_FUNC_ADD_EXT = $8006;
5032   GL_MIN_EXT = $8007;
5033   GL_MAX_EXT = $8008;
5034   GL_BLEND_EQUATION_EXT = $8009;
5035
5036   // GL_EXT_blend_subtract
5037   GL_FUNC_SUBTRACT_EXT = $800A;
5038   GL_FUNC_REVERSE_SUBTRACT_EXT = $800B;
5039
5040   // GL_EXT_clip_volume_hint
5041   GL_CLIP_VOLUME_CLIPPING_HINT_EXT = $80F0;
5042
5043   // GL_EXT_cmyka
5044   GL_CMYK_EXT = $800C;
5045   GL_CMYKA_EXT = $800D;
5046   GL_PACK_CMYK_HINT_EXT = $800E;
5047   GL_UNPACK_CMYK_HINT_EXT = $800F;
5048
5049   // GL_EXT_compiled_vertex_array
5050   GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = $81A8;
5051   GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = $81A9;
5052
5053   // GL_EXT_convolution
5054   GL_CONVOLUTION_1D_EXT = $8010;
5055   GL_CONVOLUTION_2D_EXT = $8011;
5056   GL_SEPARABLE_2D_EXT = $8012;
5057   GL_CONVOLUTION_BORDER_MODE_EXT = $8013;
5058   GL_CONVOLUTION_FILTER_SCALE_EXT = $8014;
5059   GL_CONVOLUTION_FILTER_BIAS_EXT = $8015;
5060   GL_REDUCE_EXT = $8016;
5061   GL_CONVOLUTION_FORMAT_EXT = $8017;
5062   GL_CONVOLUTION_WIDTH_EXT = $8018;
5063   GL_CONVOLUTION_HEIGHT_EXT = $8019;
5064   GL_MAX_CONVOLUTION_WIDTH_EXT = $801A;
5065   GL_MAX_CONVOLUTION_HEIGHT_EXT = $801B;
5066   GL_POST_CONVOLUTION_RED_SCALE_EXT = $801C;
5067   GL_POST_CONVOLUTION_GREEN_SCALE_EXT = $801D;
5068   GL_POST_CONVOLUTION_BLUE_SCALE_EXT = $801E;
5069   GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = $801F;
5070   GL_POST_CONVOLUTION_RED_BIAS_EXT = $8020;
5071   GL_POST_CONVOLUTION_GREEN_BIAS_EXT = $8021;
5072   GL_POST_CONVOLUTION_BLUE_BIAS_EXT = $8022;
5073   GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = $8023;
5074
5075   // GL_EXT_coordinate_frame
5076   GL_TANGENT_ARRAY_EXT = $8439;
5077   GL_BINORMAL_ARRAY_EXT = $843A;
5078   GL_CURRENT_TANGENT_EXT = $843B;
5079   GL_CURRENT_BINORMAL_EXT = $843C;
5080   GL_TANGENT_ARRAY_TYPE_EXT = $843E;
5081   GL_TANGENT_ARRAY_STRIDE_EXT = $843F;
5082   GL_BINORMAL_ARRAY_TYPE_EXT = $8440;
5083   GL_BINORMAL_ARRAY_STRIDE_EXT = $8441;
5084   GL_TANGENT_ARRAY_POINTER_EXT = $8442;
5085   GL_BINORMAL_ARRAY_POINTER_EXT = $8443;
5086   GL_MAP1_TANGENT_EXT = $8444;
5087   GL_MAP2_TANGENT_EXT = $8445;
5088   GL_MAP1_BINORMAL_EXT = $8446;
5089   GL_MAP2_BINORMAL_EXT = $8447;
5090
5091   // GL_EXT_cull_vertex
5092   GL_CULL_VERTEX_EXT = $81AA;
5093   GL_CULL_VERTEX_EYE_POSITION_EXT = $81AB;
5094   GL_CULL_VERTEX_OBJECT_POSITION_EXT = $81AC;
5095
5096   // GL_EXT_draw_range_elements
5097   GL_MAX_ELEMENTS_VERTICES_EXT = $80E8;
5098   GL_MAX_ELEMENTS_INDICES_EXT = $80E9;
5099
5100   // GL_EXT_fog_coord
5101   GL_FOG_COORDINATE_SOURCE_EXT = $8450;
5102   GL_FOG_COORDINATE_EXT = $8451;
5103   GL_FRAGMENT_DEPTH_EXT = $8452;
5104   GL_CURRENT_FOG_COORDINATE_EXT = $8453;
5105   GL_FOG_COORDINATE_ARRAY_TYPE_EXT = $8454;
5106   GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = $8455;
5107   GL_FOG_COORDINATE_ARRAY_POINTER_EXT = $8456;
5108   GL_FOG_COORDINATE_ARRAY_EXT = $8457;
5109
5110   // GL_EXT_framebuffer_object
5111   GL_FRAMEBUFFER_EXT = $8D40;
5112   GL_RENDERBUFFER_EXT = $8D41;
5113   GL_STENCIL_INDEX_EXT = $8D45;
5114   GL_STENCIL_INDEX1_EXT = $8D46;
5115   GL_STENCIL_INDEX4_EXT = $8D47;
5116   GL_STENCIL_INDEX8_EXT = $8D48;
5117   GL_STENCIL_INDEX16_EXT = $8D49;
5118   GL_RENDERBUFFER_WIDTH_EXT = $8D42;
5119   GL_RENDERBUFFER_HEIGHT_EXT = $8D43;
5120   GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = $8D44;
5121   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = $8CD0;
5122   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = $8CD1;
5123   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = $8CD2;
5124   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = $8CD3;
5125   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = $8CD4;
5126   GL_COLOR_ATTACHMENT0_EXT = $8CE0;
5127   GL_COLOR_ATTACHMENT1_EXT = $8CE1;
5128   GL_COLOR_ATTACHMENT2_EXT = $8CE2;
5129   GL_COLOR_ATTACHMENT3_EXT = $8CE3;
5130   GL_COLOR_ATTACHMENT4_EXT = $8CE4;
5131   GL_COLOR_ATTACHMENT5_EXT = $8CE5;
5132   GL_COLOR_ATTACHMENT6_EXT = $8CE6;
5133   GL_COLOR_ATTACHMENT7_EXT = $8CE7;
5134   GL_COLOR_ATTACHMENT8_EXT = $8CE8;
5135   GL_COLOR_ATTACHMENT9_EXT = $8CE9;
5136   GL_COLOR_ATTACHMENT10_EXT = $8CEA;
5137   GL_COLOR_ATTACHMENT11_EXT = $8CEB;
5138   GL_COLOR_ATTACHMENT12_EXT = $8CEC;
5139   GL_COLOR_ATTACHMENT13_EXT = $8CED;
5140   GL_COLOR_ATTACHMENT14_EXT = $8CEE;
5141   GL_COLOR_ATTACHMENT15_EXT = $8CEF;
5142   GL_DEPTH_ATTACHMENT_EXT = $8D00;
5143   GL_STENCIL_ATTACHMENT_EXT = $8D20;
5144   GL_FRAMEBUFFER_COMPLETE_EXT = $8CD5;
5145   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = $8CD6;
5146   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = $8CD7;
5147   GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = $8CD8;
5148   GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = $8CD9;
5149   GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = $8CDA;
5150   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = $8CDB;
5151   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = $8CDC;
5152   GL_FRAMEBUFFER_UNSUPPORTED_EXT = $8CDD;
5153   GL_FRAMEBUFFER_STATUS_ERROR_EXT = $8CDE;
5154   GL_FRAMEBUFFER_BINDING_EXT = $8CA6;
5155   GL_RENDERBUFFER_BINDING_EXT = $8CA7;
5156   GL_MAX_COLOR_ATTACHMENTS_EXT = $8CDF;
5157   GL_MAX_RENDERBUFFER_SIZE_EXT = $84E8;
5158   GL_INVALID_FRAMEBUFFER_OPERATION_EXT = $0506;
5159
5160   // GL_EXT_histogram
5161   GL_HISTOGRAM_EXT = $8024;
5162   GL_PROXY_HISTOGRAM_EXT = $8025;
5163   GL_HISTOGRAM_WIDTH_EXT = $8026;
5164   GL_HISTOGRAM_FORMAT_EXT = $8027;
5165   GL_HISTOGRAM_RED_SIZE_EXT = $8028;
5166   GL_HISTOGRAM_GREEN_SIZE_EXT = $8029;
5167   GL_HISTOGRAM_BLUE_SIZE_EXT = $802A;
5168   GL_HISTOGRAM_ALPHA_SIZE_EXT = $802B;
5169   GL_HISTOGRAM_LUMINANCE_SIZE_EXT = $802C;
5170   GL_HISTOGRAM_SINK_EXT = $802D;
5171   GL_MINMAX_EXT = $802E;
5172   GL_MINMAX_FORMAT_EXT = $802F;
5173   GL_MINMAX_SINK_EXT = $8030;
5174   GL_TABLE_TOO_LARGE_EXT = $8031;
5175
5176   // GL_EXT_index_array_formats
5177   GL_IUI_V2F_EXT = $81AD;
5178   GL_IUI_V3F_EXT = $81AE;
5179   GL_IUI_N3F_V2F_EXT = $81AF;
5180   GL_IUI_N3F_V3F_EXT = $81B0;
5181   GL_T2F_IUI_V2F_EXT = $81B1;
5182   GL_T2F_IUI_V3F_EXT = $81B2;
5183   GL_T2F_IUI_N3F_V2F_EXT = $81B3;
5184   GL_T2F_IUI_N3F_V3F_EXT = $81B4;
5185
5186   // GL_EXT_index_func
5187   GL_INDEX_TEST_EXT = $81B5;
5188   GL_INDEX_TEST_FUNC_EXT = $81B6;
5189   GL_INDEX_TEST_REF_EXT = $81B7;
5190
5191   // GL_EXT_index_material
5192   GL_INDEX_MATERIAL_EXT = $81B8;
5193   GL_INDEX_MATERIAL_PARAMETER_EXT = $81B9;
5194   GL_INDEX_MATERIAL_FACE_EXT = $81BA;
5195
5196   // GL_EXT_light_texture
5197   GL_FRAGMENT_MATERIAL_EXT = $8349;
5198   GL_FRAGMENT_NORMAL_EXT = $834A;
5199   GL_FRAGMENT_COLOR_EXT = $834C;
5200   GL_ATTENUATION_EXT = $834D;
5201   GL_SHADOW_ATTENUATION_EXT = $834E;
5202   GL_TEXTURE_APPLICATION_MODE_EXT = $834F;
5203   GL_TEXTURE_LIGHT_EXT = $8350;
5204   GL_TEXTURE_MATERIAL_FACE_EXT = $8351;
5205   GL_TEXTURE_MATERIAL_PARAMETER_EXT = $8352;
5206
5207   // GL_EXT_multisample
5208   GL_MULTISAMPLE_EXT = $809D;
5209   GL_SAMPLE_ALPHA_TO_MASK_EXT = $809E;
5210   GL_SAMPLE_ALPHA_TO_ONE_EXT = $809F;
5211   GL_SAMPLE_MASK_EXT = $80A0;
5212   GL_1PASS_EXT = $80A1;
5213   GL_2PASS_0_EXT = $80A2;
5214   GL_2PASS_1_EXT = $80A3;
5215   GL_4PASS_0_EXT = $80A4;
5216   GL_4PASS_1_EXT = $80A5;
5217   GL_4PASS_2_EXT = $80A6;
5218   GL_4PASS_3_EXT = $80A7;
5219   GL_SAMPLE_BUFFERS_EXT = $80A8;
5220   GL_SAMPLES_EXT = $80A9;
5221   GL_SAMPLE_MASK_VALUE_EXT = $80AA;
5222   GL_SAMPLE_MASK_INVERT_EXT = $80AB;
5223   GL_SAMPLE_PATTERN_EXT = $80AC;
5224   GL_MULTISAMPLE_BIT_EXT = $20000000;
5225
5226   // GL_EXT_packed_pixels
5227   GL_UNSIGNED_BYTE_3_3_2_EXT = $8032;
5228   GL_UNSIGNED_SHORT_4_4_4_4_EXT = $8033;
5229   GL_UNSIGNED_SHORT_5_5_5_1_EXT = $8034;
5230   GL_UNSIGNED_INT_8_8_8_8_EXT = $8035;
5231   GL_UNSIGNED_INT_10_10_10_2_EXT = $8036;
5232
5233   // GL_EXT_paletted_texture
5234   GL_COLOR_INDEX1_EXT = $80E2;
5235   GL_COLOR_INDEX2_EXT = $80E3;
5236   GL_COLOR_INDEX4_EXT = $80E4;
5237   GL_COLOR_INDEX8_EXT = $80E5;
5238   GL_COLOR_INDEX12_EXT = $80E6;
5239   GL_COLOR_INDEX16_EXT = $80E7;
5240   GL_TEXTURE_INDEX_SIZE_EXT = $80ED;
5241
5242   // GL_EXT_pixel_transform
5243   GL_PIXEL_TRANSFORM_2D_EXT = $8330;
5244   GL_PIXEL_MAG_FILTER_EXT = $8331;
5245   GL_PIXEL_MIN_FILTER_EXT = $8332;
5246   GL_PIXEL_CUBIC_WEIGHT_EXT = $8333;
5247   GL_CUBIC_EXT = $8334;
5248   GL_AVERAGE_EXT = $8335;
5249   GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8336;
5250   GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8337;
5251   GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = $8338;
5252
5253   // GL_EXT_point_parameters
5254   GL_POINT_SIZE_MIN_EXT = $8126;
5255   GL_POINT_SIZE_MAX_EXT = $8127;
5256   GL_POINT_FADE_THRESHOLD_SIZE_EXT = $8128;
5257   GL_DISTANCE_ATTENUATION_EXT = $8129;
5258
5259   // GL_EXT_polygon_offset
5260   GL_POLYGON_OFFSET_EXT = $8037;
5261   GL_POLYGON_OFFSET_FACTOR_EXT = $8038;
5262   GL_POLYGON_OFFSET_BIAS_EXT = $8039;
5263
5264   // GL_EXT_rescale_normal
5265   GL_RESCALE_NORMAL_EXT = $803A;
5266
5267   // GL_EXT_secondary_color
5268   GL_COLOR_SUM_EXT = $8458;
5269   GL_CURRENT_SECONDARY_COLOR_EXT = $8459;
5270   GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = $845A;
5271   GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = $845B;
5272   GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = $845C;
5273   GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = $845D;
5274   GL_SECONDARY_COLOR_ARRAY_EXT = $845E;
5275
5276   // GL_EXT_separate_specular_color
5277   GL_LIGHT_MODEL_COLOR_CONTROL_EXT = $81F8;
5278   GL_SINGLE_COLOR_EXT = $81F9;
5279   GL_SEPARATE_SPECULAR_COLOR_EXT = $81FA;
5280
5281   // GL_EXT_shared_texture_palette
5282   GL_SHARED_TEXTURE_PALETTE_EXT = $81FB;
5283
5284   // GL_EXT_stencil_two_side
5285   GL_STENCIL_TEST_TWO_SIDE_EXT = $8910;
5286   GL_ACTIVE_STENCIL_FACE_EXT = $8911;
5287
5288   // GL_EXT_stencil_wrap
5289   GL_INCR_WRAP_EXT = $8507;
5290   GL_DECR_WRAP_EXT = $8508;
5291
5292   // GL_EXT_texture
5293   GL_ALPHA4_EXT = $803B;
5294   GL_ALPHA8_EXT = $803C;
5295   GL_ALPHA12_EXT = $803D;
5296   GL_ALPHA16_EXT = $803E;
5297   GL_LUMINANCE4_EXT = $803F;
5298   GL_LUMINANCE8_EXT = $8040;
5299   GL_LUMINANCE12_EXT = $8041;
5300   GL_LUMINANCE16_EXT = $8042;
5301   GL_LUMINANCE4_ALPHA4_EXT = $8043;
5302   GL_LUMINANCE6_ALPHA2_EXT = $8044;
5303   GL_LUMINANCE8_ALPHA8_EXT = $8045;
5304   GL_LUMINANCE12_ALPHA4_EXT = $8046;
5305   GL_LUMINANCE12_ALPHA12_EXT = $8047;
5306   GL_LUMINANCE16_ALPHA16_EXT = $8048;
5307   GL_INTENSITY_EXT = $8049;
5308   GL_INTENSITY4_EXT = $804A;
5309   GL_INTENSITY8_EXT = $804B;
5310   GL_INTENSITY12_EXT = $804C;
5311   GL_INTENSITY16_EXT = $804D;
5312   GL_RGB2_EXT = $804E;
5313   GL_RGB4_EXT = $804F;
5314   GL_RGB5_EXT = $8050;
5315   GL_RGB8_EXT = $8051;
5316   GL_RGB10_EXT = $8052;
5317   GL_RGB12_EXT = $8053;
5318   GL_RGB16_EXT = $8054;
5319   GL_RGBA2_EXT = $8055;
5320   GL_RGBA4_EXT = $8056;
5321   GL_RGB5_A1_EXT = $8057;
5322   GL_RGBA8_EXT = $8058;
5323   GL_RGB10_A2_EXT = $8059;
5324   GL_RGBA12_EXT = $805A;
5325   GL_RGBA16_EXT = $805B;
5326   GL_TEXTURE_RED_SIZE_EXT = $805C;
5327   GL_TEXTURE_GREEN_SIZE_EXT = $805D;
5328   GL_TEXTURE_BLUE_SIZE_EXT = $805E;
5329   GL_TEXTURE_ALPHA_SIZE_EXT = $805F;
5330   GL_TEXTURE_LUMINANCE_SIZE_EXT = $8060;
5331   GL_TEXTURE_INTENSITY_SIZE_EXT = $8061;
5332   GL_REPLACE_EXT = $8062;
5333   GL_PROXY_TEXTURE_1D_EXT = $8063;
5334   GL_PROXY_TEXTURE_2D_EXT = $8064;
5335   GL_TEXTURE_TOO_LARGE_EXT = $8065;
5336
5337   // GL_EXT_texture3D
5338   GL_PACK_SKIP_IMAGES_EXT = $806B;
5339   GL_PACK_IMAGE_HEIGHT_EXT = $806C;
5340   GL_UNPACK_SKIP_IMAGES_EXT = $806D;
5341   GL_UNPACK_IMAGE_HEIGHT_EXT = $806E;
5342   GL_TEXTURE_3D_EXT = $806F;
5343   GL_PROXY_TEXTURE_3D_EXT = $8070;
5344   GL_TEXTURE_DEPTH_EXT = $8071;
5345   GL_TEXTURE_WRAP_R_EXT = $8072;
5346   GL_MAX_3D_TEXTURE_SIZE_EXT = $8073;
5347
5348   // GL_EXT_texture_compression_s3tc
5349   GL_COMPRESSED_RGB_S3TC_DXT1_EXT = $83F0;
5350   GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = $83F1;
5351   GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = $83F2;
5352   GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = $83F3;
5353
5354   // GL_EXT_texture_cube_map
5355   GL_NORMAL_MAP_EXT = $8511;
5356   GL_REFLECTION_MAP_EXT = $8512;
5357   GL_TEXTURE_CUBE_MAP_EXT = $8513;
5358   GL_TEXTURE_BINDING_CUBE_MAP_EXT = $8514;
5359   GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = $8515;
5360   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = $8516;
5361   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = $8517;
5362   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = $8518;
5363   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = $8519;
5364   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = $851A;
5365   GL_PROXY_TEXTURE_CUBE_MAP_EXT = $851B;
5366   GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = $851C;
5367
5368   // GL_EXT_texture_edge_clamp
5369   GL_CLAMP_TO_EDGE_EXT = $812F;
5370
5371   // GL_EXT_texture_env_combine
5372   GL_COMBINE_EXT = $8570;
5373   GL_COMBINE_RGB_EXT = $8571;
5374   GL_COMBINE_ALPHA_EXT = $8572;
5375   GL_RGB_SCALE_EXT = $8573;
5376   GL_ADD_SIGNED_EXT = $8574;
5377   GL_INTERPOLATE_EXT = $8575;
5378   GL_CONSTANT_EXT = $8576;
5379   GL_PRIMARY_COLOR_EXT = $8577;
5380   GL_PREVIOUS_EXT = $8578;
5381   GL_SOURCE0_RGB_EXT = $8580;
5382   GL_SOURCE1_RGB_EXT = $8581;
5383   GL_SOURCE2_RGB_EXT = $8582;
5384   GL_SOURCE0_ALPHA_EXT = $8588;
5385   GL_SOURCE1_ALPHA_EXT = $8589;
5386   GL_SOURCE2_ALPHA_EXT = $858A;
5387   GL_OPERAND0_RGB_EXT = $8590;
5388   GL_OPERAND1_RGB_EXT = $8591;
5389   GL_OPERAND2_RGB_EXT = $8592;
5390   GL_OPERAND0_ALPHA_EXT = $8598;
5391   GL_OPERAND1_ALPHA_EXT = $8599;
5392   GL_OPERAND2_ALPHA_EXT = $859A;
5393
5394   // GL_EXT_texture_env_dot3
5395   GL_DOT3_RGB_EXT = $8740;
5396   GL_DOT3_RGBA_EXT = $8741;
5397
5398   // GL_EXT_texture_filter_anisotropic
5399   GL_TEXTURE_MAX_ANISOTROPY_EXT = $84FE;
5400   GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF;
5401
5402   // GL_EXT_texture_lod_bias
5403   GL_MAX_TEXTURE_LOD_BIAS_EXT = $84FD;
5404   GL_TEXTURE_FILTER_CONTROL_EXT = $8500;
5405   GL_TEXTURE_LOD_BIAS_EXT = $8501;
5406
5407   // GL_EXT_texture_object
5408   GL_TEXTURE_PRIORITY_EXT = $8066;
5409   GL_TEXTURE_RESIDENT_EXT = $8067;
5410   GL_TEXTURE_1D_BINDING_EXT = $8068;
5411   GL_TEXTURE_2D_BINDING_EXT = $8069;
5412   GL_TEXTURE_3D_BINDING_EXT = $806A;
5413
5414   // GL_EXT_texture_perturb_normal
5415   GL_PERTURB_EXT = $85AE;
5416   GL_TEXTURE_NORMAL_EXT = $85AF;
5417
5418   // GL_EXT_texture_rectangle
5419   GL_TEXTURE_RECTANGLE_EXT = $84F5;
5420   GL_TEXTURE_BINDING_RECTANGLE_EXT = $84F6;
5421   GL_PROXY_TEXTURE_RECTANGLE_EXT = $84F7;
5422   GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT = $84F8;
5423
5424   // GL_EXT_vertex_array
5425   GL_VERTEX_ARRAY_EXT = $8074;
5426   GL_NORMAL_ARRAY_EXT = $8075;
5427   GL_COLOR_ARRAY_EXT = $8076;
5428   GL_INDEX_ARRAY_EXT = $8077;
5429   GL_TEXTURE_COORD_ARRAY_EXT = $8078;
5430   GL_EDGE_FLAG_ARRAY_EXT = $8079;
5431   GL_VERTEX_ARRAY_SIZE_EXT = $807A;
5432   GL_VERTEX_ARRAY_TYPE_EXT = $807B;
5433   GL_VERTEX_ARRAY_STRIDE_EXT = $807C;
5434   GL_VERTEX_ARRAY_COUNT_EXT = $807D;
5435   GL_NORMAL_ARRAY_TYPE_EXT = $807E;
5436   GL_NORMAL_ARRAY_STRIDE_EXT = $807F;
5437   GL_NORMAL_ARRAY_COUNT_EXT = $8080;
5438   GL_COLOR_ARRAY_SIZE_EXT = $8081;
5439   GL_COLOR_ARRAY_TYPE_EXT = $8082;
5440   GL_COLOR_ARRAY_STRIDE_EXT = $8083;
5441   GL_COLOR_ARRAY_COUNT_EXT = $8084;
5442   GL_INDEX_ARRAY_TYPE_EXT = $8085;
5443   GL_INDEX_ARRAY_STRIDE_EXT = $8086;
5444   GL_INDEX_ARRAY_COUNT_EXT = $8087;
5445   GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088;
5446   GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089;
5447   GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
5448   GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B;
5449   GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C;
5450   GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D;
5451   GL_VERTEX_ARRAY_POINTER_EXT = $808E;
5452   GL_NORMAL_ARRAY_POINTER_EXT = $808F;
5453   GL_COLOR_ARRAY_POINTER_EXT = $8090;
5454   GL_INDEX_ARRAY_POINTER_EXT = $8091;
5455   GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
5456   GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093;
5457
5458   // GL_EXT_vertex_shader
5459   GL_VERTEX_SHADER_EXT = $8780;
5460   GL_VERTEX_SHADER_BINDING_EXT = $8781;
5461   GL_OP_INDEX_EXT = $8782;
5462   GL_OP_NEGATE_EXT = $8783;
5463   GL_OP_DOT3_EXT = $8784;
5464   GL_OP_DOT4_EXT = $8785;
5465   GL_OP_MUL_EXT = $8786;
5466   GL_OP_ADD_EXT = $8787;
5467   GL_OP_MADD_EXT = $8788;
5468   GL_OP_FRAC_EXT = $8789;
5469   GL_OP_MAX_EXT = $878A;
5470   GL_OP_MIN_EXT = $878B;
5471   GL_OP_SET_GE_EXT = $878C;
5472   GL_OP_SET_LT_EXT = $878D;
5473   GL_OP_CLAMP_EXT = $878E;
5474   GL_OP_FLOOR_EXT = $878F;
5475   GL_OP_ROUND_EXT = $8790;
5476   GL_OP_EXP_BASE_2_EXT = $8791;
5477   GL_OP_LOG_BASE_2_EXT = $8792;
5478   GL_OP_POWER_EXT = $8793;
5479   GL_OP_RECIP_EXT = $8794;
5480   GL_OP_RECIP_SQRT_EXT = $8795;
5481   GL_OP_SUB_EXT = $8796;
5482   GL_OP_CROSS_PRODUCT_EXT = $8797;
5483   GL_OP_MULTIPLY_MATRIX_EXT = $8798;
5484   GL_OP_MOV_EXT = $8799;
5485   GL_OUTPUT_VERTEX_EXT = $879A;
5486   GL_OUTPUT_COLOR0_EXT = $879B;
5487   GL_OUTPUT_COLOR1_EXT = $879C;
5488   GL_OUTPUT_TEXTURE_COORD0_EXT = $879D;
5489   GL_OUTPUT_TEXTURE_COORD1_EXT = $879E;
5490   GL_OUTPUT_TEXTURE_COORD2_EXT = $879F;
5491   GL_OUTPUT_TEXTURE_COORD3_EXT = $87A0;
5492   GL_OUTPUT_TEXTURE_COORD4_EXT = $87A1;
5493   GL_OUTPUT_TEXTURE_COORD5_EXT = $87A2;
5494   GL_OUTPUT_TEXTURE_COORD6_EXT = $87A3;
5495   GL_OUTPUT_TEXTURE_COORD7_EXT = $87A4;
5496   GL_OUTPUT_TEXTURE_COORD8_EXT = $87A5;
5497   GL_OUTPUT_TEXTURE_COORD9_EXT = $87A6;
5498   GL_OUTPUT_TEXTURE_COORD10_EXT = $87A7;
5499   GL_OUTPUT_TEXTURE_COORD11_EXT = $87A8;
5500   GL_OUTPUT_TEXTURE_COORD12_EXT = $87A9;
5501   GL_OUTPUT_TEXTURE_COORD13_EXT = $87AA;
5502   GL_OUTPUT_TEXTURE_COORD14_EXT = $87AB;
5503   GL_OUTPUT_TEXTURE_COORD15_EXT = $87AC;
5504   GL_OUTPUT_TEXTURE_COORD16_EXT = $87AD;
5505   GL_OUTPUT_TEXTURE_COORD17_EXT = $87AE;
5506   GL_OUTPUT_TEXTURE_COORD18_EXT = $87AF;
5507   GL_OUTPUT_TEXTURE_COORD19_EXT = $87B0;
5508   GL_OUTPUT_TEXTURE_COORD20_EXT = $87B1;
5509   GL_OUTPUT_TEXTURE_COORD21_EXT = $87B2;
5510   GL_OUTPUT_TEXTURE_COORD22_EXT = $87B3;
5511   GL_OUTPUT_TEXTURE_COORD23_EXT = $87B4;
5512   GL_OUTPUT_TEXTURE_COORD24_EXT = $87B5;
5513   GL_OUTPUT_TEXTURE_COORD25_EXT = $87B6;
5514   GL_OUTPUT_TEXTURE_COORD26_EXT = $87B7;
5515   GL_OUTPUT_TEXTURE_COORD27_EXT = $87B8;
5516   GL_OUTPUT_TEXTURE_COORD28_EXT = $87B9;
5517   GL_OUTPUT_TEXTURE_COORD29_EXT = $87BA;
5518   GL_OUTPUT_TEXTURE_COORD30_EXT = $87BB;
5519   GL_OUTPUT_TEXTURE_COORD31_EXT = $87BC;
5520   GL_OUTPUT_FOG_EXT = $87BD;
5521   GL_SCALAR_EXT = $87BE;
5522   GL_VECTOR_EXT = $87BF;
5523   GL_MATRIX_EXT = $87C0;
5524   GL_VARIANT_EXT = $87C1;
5525   GL_INVARIANT_EXT = $87C2;
5526   GL_LOCAL_CONSTANT_EXT = $87C3;
5527   GL_LOCAL_EXT = $87C4;
5528   GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = $87C5;
5529   GL_MAX_VERTEX_SHADER_VARIANTS_EXT = $87C6;
5530   GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = $87C7;
5531   GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87C8;
5532   GL_MAX_VERTEX_SHADER_LOCALS_EXT = $87C9;
5533   GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CA;
5534   GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = $87CB;
5535   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87CC;
5536   GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = $87CD;
5537   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = $87CE;
5538   GL_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CF;
5539   GL_VERTEX_SHADER_VARIANTS_EXT = $87D0;
5540   GL_VERTEX_SHADER_INVARIANTS_EXT = $87D1;
5541   GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87D2;
5542   GL_VERTEX_SHADER_LOCALS_EXT = $87D3;
5543   GL_VERTEX_SHADER_OPTIMIZED_EXT = $87D4;
5544   GL_X_EXT = $87D5;
5545   GL_Y_EXT = $87D6;
5546   GL_Z_EXT = $87D7;
5547   GL_W_EXT = $87D8;
5548   GL_NEGATIVE_X_EXT = $87D9;
5549   GL_NEGATIVE_Y_EXT = $87DA;
5550   GL_NEGATIVE_Z_EXT = $87DB;
5551   GL_NEGATIVE_W_EXT = $87DC;
5552   GL_ZERO_EXT = $87DD;
5553   GL_ONE_EXT = $87DE;
5554   GL_NEGATIVE_ONE_EXT = $87DF;
5555   GL_NORMALIZED_RANGE_EXT = $87E0;
5556   GL_FULL_RANGE_EXT = $87E1;
5557   GL_CURRENT_VERTEX_EXT = $87E2;
5558   GL_MVP_MATRIX_EXT = $87E3;
5559   GL_VARIANT_VALUE_EXT = $87E4;
5560   GL_VARIANT_DATATYPE_EXT = $87E5;
5561   GL_VARIANT_ARRAY_STRIDE_EXT = $87E6;
5562   GL_VARIANT_ARRAY_TYPE_EXT = $87E7;
5563   GL_VARIANT_ARRAY_EXT = $87E8;
5564   GL_VARIANT_ARRAY_POINTER_EXT = $87E9;
5565   GL_INVARIANT_VALUE_EXT = $87EA;
5566   GL_INVARIANT_DATATYPE_EXT = $87EB;
5567   GL_LOCAL_CONSTANT_VALUE_EXT = $87EC;
5568   GL_LOCAL_CONSTANT_DATATYPE_EXT = $87ED;
5569
5570   // GL_EXT_vertex_weighting
5571   GL_MODELVIEW0_STACK_DEPTH_EXT = $0BA3;
5572   GL_MODELVIEW1_STACK_DEPTH_EXT = $8502;
5573   GL_MODELVIEW0_MATRIX_EXT = $0BA6;
5574   GL_MODELVIEW1_MATRIX_EXT = $8506;
5575   GL_VERTEX_WEIGHTING_EXT = $8509;
5576   GL_MODELVIEW0_EXT = $1700;
5577   GL_MODELVIEW1_EXT = $850A;
5578   GL_CURRENT_VERTEX_WEIGHT_EXT = $850B;
5579   GL_VERTEX_WEIGHT_ARRAY_EXT = $850C;
5580   GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = $850D;
5581   GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = $850E;
5582   GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = $850F;
5583   GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = $8510;
5584
5585   // GL_EXT_depth_bounds_test
5586   GL_DEPTH_BOUNDS_TEST_EXT = $8890;
5587   GL_DEPTH_BOUNDS_EXT = $8891;
5588
5589   // GL_EXT_texture_mirror_clamp
5590   GL_MIRROR_CLAMP_EXT = $8742;
5591   GL_MIRROR_CLAMP_TO_EDGE_EXT = $8743;
5592   GL_MIRROR_CLAMP_TO_BORDER_EXT = $8912;
5593
5594   // GL_EXT_blend_equation_separate
5595   GL_BLEND_EQUATION_RGB_EXT = $8009; 
5596   GL_BLEND_EQUATION_ALPHA_EXT = $883D;
5597
5598   // GL_EXT_pixel_buffer_object
5599   GL_PIXEL_PACK_BUFFER_EXT = $88EB;
5600   GL_PIXEL_UNPACK_BUFFER_EXT = $88EC;
5601   GL_PIXEL_PACK_BUFFER_BINDING_EXT = $88ED;
5602   GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = $88EF;
5603
5604   // GL_EXT_stencil_clear_tag
5605   GL_STENCIL_TAG_BITS_EXT = $88F2;
5606   GL_STENCIL_CLEAR_TAG_VALUE_EXT = $88F3;
5607
5608   // GL_EXT_packed_depth_stencil
5609   GL_DEPTH_STENCIL_EXT = $84F9;
5610   GL_UNSIGNED_INT_24_8_EXT = $84FA;
5611   GL_DEPTH24_STENCIL8_EXT = $88F0;
5612   GL_TEXTURE_STENCIL_SIZE_EXT = $88F1;
5613
5614   // GL_EXT_texture_sRGB
5615   GL_SRGB_EXT = $8C40;
5616   GL_SRGB8_EXT = $8C41;
5617   GL_SRGB_ALPHA_EXT = $8C42;
5618   GL_SRGB8_ALPHA8_EXT = $8C43;
5619   GL_SLUMINANCE_ALPHA_EXT = $8C44;
5620   GL_SLUMINANCE8_ALPHA8_EXT = $8C45;
5621   GL_SLUMINANCE_EXT = $8C46;
5622   GL_SLUMINANCE8_EXT = $8C47;
5623   GL_COMPRESSED_SRGB_EXT = $8C48;
5624   GL_COMPRESSED_SRGB_ALPHA_EXT = $8C49;
5625   GL_COMPRESSED_SLUMINANCE_EXT = $8C4A;
5626   GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = $8C4B;
5627   GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = $8C4C;
5628   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = $8C4D;
5629   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = $8C4E;
5630   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = $8C4F;
5631
5632   // GL_EXT_framebuffer_blit
5633   GL_READ_FRAMEBUFFER_EXT = $8CA8;
5634   GL_DRAW_FRAMEBUFFER_EXT = $8CA9;
5635   GL_READ_FRAMEBUFFER_BINDING_EXT = GL_FRAMEBUFFER_BINDING_EXT;
5636   GL_DRAW_FRAMEBUFFER_BINDING_EXT = $8CAA;
5637
5638   // GL_EXT_framebuffer_multisample
5639   GL_RENDERBUFFER_SAMPLES_EXT = $8CAB;
5640   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = $8D56;
5641   GL_MAX_SAMPLES_EXT = $8D57;
5642
5643   // GL_EXT_timer_query
5644   GL_TIME_ELAPSED_EXT = $88BF;
5645
5646   // GL_EXT_bindable_uniform
5647   GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = $8DE2;
5648   GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = $8DE3;
5649   GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = $8DE4;
5650   GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = $8DED;
5651   GL_UNIFORM_BUFFER_EXT = $8DEE;
5652   GL_UNIFORM_BUFFER_BINDING_EXT = $8DEF;
5653
5654   // GL_EXT_framebuffer_sRGB
5655   GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
5656   WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20A9;
5657   GL_FRAMEBUFFER_SRGB_EXT = $8DB9;
5658   GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $8DBA;
5659
5660   // GL_EXT_geometry_shader4
5661   GL_GEOMETRY_SHADER_EXT = $8DD9;
5662   GL_GEOMETRY_VERTICES_OUT_EXT = $8DDA;
5663   GL_GEOMETRY_INPUT_TYPE_EXT = $8DDB;
5664   GL_GEOMETRY_OUTPUT_TYPE_EXT = $8DDC;
5665   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = $8C29;
5666   GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = $8DDD;
5667   GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = $8DDE;
5668   GL_MAX_VARYING_COMPONENTS_EXT = $8B4B;
5669   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = $8DDF;
5670   GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = $8DE0;
5671   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = $8DE1;
5672   GL_LINES_ADJACENCY_EXT = $A;
5673   GL_LINE_STRIP_ADJACENCY_EXT = $B;
5674   GL_TRIANGLES_ADJACENCY_EXT = $C;
5675   GL_TRIANGLE_STRIP_ADJACENCY_EXT = $D;
5676   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = $8DA8;
5677   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = $8DA9;
5678   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = $8DA7;
5679   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = $8CD4;
5680   GL_PROGRAM_POINT_SIZE_EXT = $8642;
5681
5682   // GL_EXT_gpu_shader4
5683   GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = $88FD;
5684   GL_SAMPLER_1D_ARRAY_EXT = $8DC0;
5685   GL_SAMPLER_2D_ARRAY_EXT = $8DC1;
5686   GL_SAMPLER_BUFFER_EXT = $8DC2;
5687   GL_SAMPLER_1D_ARRAY_SHADOW_EXT = $8DC3;
5688   GL_SAMPLER_2D_ARRAY_SHADOW_EXT = $8DC4;
5689   GL_SAMPLER_CUBE_SHADOW_EXT = $8DC5;
5690   GL_UNSIGNED_INT_VEC2_EXT = $8DC6;
5691   GL_UNSIGNED_INT_VEC3_EXT = $8DC7;
5692   GL_UNSIGNED_INT_VEC4_EXT = $8DC8;
5693   GL_INT_SAMPLER_1D_EXT = $8DC9;
5694   GL_INT_SAMPLER_2D_EXT = $8DCA;
5695   GL_INT_SAMPLER_3D_EXT = $8DCB;
5696   GL_INT_SAMPLER_CUBE_EXT = $8DCC;
5697   GL_INT_SAMPLER_2D_RECT_EXT = $8DCD;
5698   GL_INT_SAMPLER_1D_ARRAY_EXT = $8DCE;
5699   GL_INT_SAMPLER_2D_ARRAY_EXT = $8DCF;
5700   GL_INT_SAMPLER_BUFFER_EXT = $8DD0;
5701   GL_UNSIGNED_INT_SAMPLER_1D_EXT = $8DD1;
5702   GL_UNSIGNED_INT_SAMPLER_2D_EXT = $8DD2;
5703   GL_UNSIGNED_INT_SAMPLER_3D_EXT = $8DD3;
5704   GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = $8DD4;
5705   GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = $8DD5;
5706   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = $8DD6;
5707   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = $8DD7;
5708   GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = $8DD8;
5709   GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = $8904;
5710   GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = $8905;
5711
5712   // GL_EXT_packed_float
5713   GL_R11F_G11F_B10F_EXT = $8C3A;
5714   GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = $8C3B;
5715   RGBA_SIGNED_COMPONENTS_EXT = $8C3C;
5716   WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT = $20A8;
5717   GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
5718   GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
5719
5720   // GL_EXT_texture_array
5721   GL_TEXTURE_1D_ARRAY_EXT = $8C18;
5722   GL_TEXTURE_2D_ARRAY_EXT = $8C1A;
5723   GL_PROXY_TEXTURE_2D_ARRAY_EXT = $8C1B;
5724   GL_PROXY_TEXTURE_1D_ARRAY_EXT = $8C19;
5725   GL_TEXTURE_BINDING_1D_ARRAY_EXT = $8C1C;
5726   GL_TEXTURE_BINDING_2D_ARRAY_EXT = $8C1D;
5727   GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = $88FF;
5728   GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = $884E;
5729
5730   // GL_EXT_texture_buffer_object
5731   GL_TEXTURE_BUFFER_EXT = $8C2A;
5732   GL_MAX_TEXTURE_BUFFER_SIZE_EXT = $8C2B;
5733   GL_TEXTURE_BINDING_BUFFER_EXT = $8C2C;
5734   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = $8C2D;
5735   GL_TEXTURE_BUFFER_FORMAT_EXT = $8C2E;
5736
5737   // GL_EXT_texture_compression_latc
5738   GL_COMPRESSED_LUMINANCE_LATC1_EXT = $8C70;
5739   GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = $8C71;
5740   GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = $8C72;
5741   GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = $8C73;
5742
5743   // GL_EXT_texture_compression_rgtc
5744   GL_COMPRESSED_RED_RGTC1_EXT = $8DBB;
5745   GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = $8DBC;
5746   GL_COMPRESSED_RED_GREEN_RGTC2_EXT = $8DBD;
5747   GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = $8DBE;
5748
5749   // GL_EXT_texture_integer
5750   GL_RGBA_INTEGER_MODE_EXT = $8D9E;
5751   GL_RGBA32UI_EXT = $8D70;
5752   GL_RGB32UI_EXT = $8D71;
5753   GL_ALPHA32UI_EXT = $8D72;
5754   GL_INTENSITY32UI_EXT = $8D73;
5755   GL_LUMINANCE32UI_EXT = $8D74;
5756   GL_LUMINANCE_ALPHA32UI_EXT = $8D75;
5757   GL_RGBA16UI_EXT = $8D76;
5758   GL_RGB16UI_EXT = $8D77;
5759   GL_ALPHA16UI_EXT = $8D78;
5760   GL_INTENSITY16UI_EXT = $8D79;
5761   GL_LUMINANCE16UI_EXT = $8D7A;
5762   GL_LUMINANCE_ALPHA16UI_EXT = $8D7B;
5763   GL_RGBA8UI_EXT = $8D7C;
5764   GL_RGB8UI_EXT = $8D7D;
5765   GL_ALPHA8UI_EXT = $8D7E;
5766   GL_INTENSITY8UI_EXT = $8D7F;
5767   GL_LUMINANCE8UI_EXT = $8D80;
5768   GL_LUMINANCE_ALPHA8UI_EXT = $8D81;
5769   GL_RGBA32I_EXT = $8D82;
5770   GL_RGB32I_EXT = $8D83;
5771   GL_ALPHA32I_EXT = $8D84;
5772   GL_INTENSITY32I_EXT = $8D85;
5773   GL_LUMINANCE32I_EXT = $8D86;
5774   GL_LUMINANCE_ALPHA32I_EXT = $8D87;
5775   GL_RGBA16I_EXT = $8D88;
5776   GL_RGB16I_EXT = $8D89;
5777   GL_ALPHA16I_EXT = $8D8A;
5778   GL_INTENSITY16I_EXT = $8D8B;
5779   GL_LUMINANCE16I_EXT = $8D8C;
5780   GL_LUMINANCE_ALPHA16I_EXT = $8D8D;
5781   GL_RGBA8I_EXT = $8D8E;
5782   GL_RGB8I_EXT = $8D8F;
5783   GL_ALPHA8I_EXT = $8D90;
5784   GL_INTENSITY8I_EXT = $8D91;
5785   GL_LUMINANCE8I_EXT = $8D92;
5786   GL_LUMINANCE_ALPHA8I_EXT = $8D93;
5787   GL_RED_INTEGER_EXT = $8D94;
5788   GL_GREEN_INTEGER_EXT = $8D95;
5789   GL_BLUE_INTEGER_EXT = $8D96;
5790   GL_ALPHA_INTEGER_EXT = $8D97;
5791   GL_RGB_INTEGER_EXT = $8D98;
5792   GL_RGBA_INTEGER_EXT = $8D99;
5793   GL_BGR_INTEGER_EXT = $8D9A;
5794   GL_BGRA_INTEGER_EXT = $8D9B;
5795   GL_LUMINANCE_INTEGER_EXT = $8D9C;
5796   GL_LUMINANCE_ALPHA_INTEGER_EXT = $8D9D;
5797
5798   // GL_EXT_texture_shared_exponent
5799   GL_RGB9_E5_EXT = $8C3D;
5800   GL_UNSIGNED_INT_5_9_9_9_REV_EXT = $8C3E;
5801   GL_TEXTURE_SHARED_SIZE_EXT = $8C3F;
5802
5803   // GL_EXT_transform_feedback
5804   GL_TRANSFORM_FEEDBACK_BUFFER_EXT = $8C8E;
5805   GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = $8C84;
5806   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = $8C85;
5807   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = $8C8F;
5808   GL_INTERLEAVED_ATTRIBS_EXT = $8C8C;
5809   GL_SEPARATE_ATTRIBS_EXT = $8C8D;
5810   GL_PRIMITIVES_GENERATED_EXT = $8C87;
5811   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = $8C88;
5812   GL_RASTERIZER_DISCARD_EXT = $8C89;
5813   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = $8C8A;
5814   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = $8C8B;
5815   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = $8C80;
5816   GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = $8C83;
5817   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = $8C7F;
5818   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = $8C76;
5819
5820   // GL_EXT_direct_state_access
5821   GL_PROGRAM_MATRIX_EXT = $8E2D;
5822   GL_TRANSPOSE_PROGRAM_MATRIX_EXT = $8E2E;
5823   GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = $8E2F;
5824
5825   // GL_EXT_texture_swizzle
5826   GL_TEXTURE_SWIZZLE_R_EXT = $8E42;
5827   GL_TEXTURE_SWIZZLE_G_EXT = $8E43;
5828   GL_TEXTURE_SWIZZLE_B_EXT = $8E44;
5829   GL_TEXTURE_SWIZZLE_A_EXT = $8E45;
5830   GL_TEXTURE_SWIZZLE_RGBA_EXT = $8E46;
5831
5832   // GL_EXT_provoking_vertex
5833   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = $8E4C;
5834   GL_FIRST_VERTEX_CONVENTION_EXT = $8E4D;
5835   GL_LAST_VERTEX_CONVENTION_EXT = $8E4E;
5836   GL_PROVOKING_VERTEX_EXT = $8E4F;
5837   
5838   // GL_EXT_texture_snorm
5839   GL_ALPHA_SNORM = $9010;
5840   GL_LUMINANCE_SNORM = $9011;
5841   GL_LUMINANCE_ALPHA_SNORM = $9012;
5842   GL_INTENSITY_SNORM = $9013;
5843   GL_ALPHA8_SNORM = $9014;
5844   GL_LUMINANCE8_SNORM = $9015;
5845   GL_LUMINANCE8_ALPHA8_SNORM = $9016;
5846   GL_INTENSITY8_SNORM = $9017;
5847   GL_ALPHA16_SNORM = $9018;
5848   GL_LUMINANCE16_SNORM = $9019;
5849   GL_LUMINANCE16_ALPHA16_SNORM = $901A;
5850   GL_INTENSITY16_SNORM = $901B;
5851   { reuse GL_RED_SNORM }
5852   { reuse GL_RG_SNORM }
5853   { reuse GL_RGB_SNORM }
5854   { reuse GL_RGBA_SNORM }
5855   { reuse GL_R8_SNORM }
5856   { reuse GL_RG8_SNORM }
5857   { reuse GL_RGB8_SNORM }
5858   { reuse GL_RGBA8_SNORM }
5859   { reuse GL_R16_SNORM }
5860   { reuse GL_RG16_SNORM }
5861   { reuse GL_RGB16_SNORM }
5862   { reuse GL_RGBA16_SNORM }
5863   { reuse GL_SIGNED_NORMALIZED }
5864   
5865   // GL_EXT_separate_shader_objects
5866   GL_ACTIVE_PROGRAM_EXT = $8B8D;
5867   
5868   // GL_EXT_shader_image_load_store
5869   GL_MAX_IMAGE_UNITS_EXT = $8F38;
5870   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = $8F39;
5871   GL_IMAGE_BINDING_NAME_EXT = $8F3A;
5872   GL_IMAGE_BINDING_LEVEL_EXT = $8F3B;
5873   GL_IMAGE_BINDING_LAYERED_EXT = $8F3C;
5874   GL_IMAGE_BINDING_LAYER_EXT = $8F3D;
5875   GL_IMAGE_BINDING_ACCESS_EXT = $8F3E;
5876   GL_IMAGE_1D_EXT = $904C;
5877   GL_IMAGE_2D_EXT = $904D;
5878   GL_IMAGE_3D_EXT = $904E;
5879   GL_IMAGE_2D_RECT_EXT = $904F;
5880   GL_IMAGE_CUBE_EXT = $9050;
5881   GL_IMAGE_BUFFER_EXT = $9051;
5882   GL_IMAGE_1D_ARRAY_EXT = $9052;
5883   GL_IMAGE_2D_ARRAY_EXT = $9053;
5884   GL_IMAGE_CUBE_MAP_ARRAY_EXT = $9054;
5885   GL_IMAGE_2D_MULTISAMPLE_EXT = $9055;
5886   GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9056;
5887   GL_INT_IMAGE_1D_EXT = $9057;
5888   GL_INT_IMAGE_2D_EXT = $9058;
5889   GL_INT_IMAGE_3D_EXT = $9059;
5890   GL_INT_IMAGE_2D_RECT_EXT = $905A;
5891   GL_INT_IMAGE_CUBE_EXT = $905B;
5892   GL_INT_IMAGE_BUFFER_EXT = $905C;
5893   GL_INT_IMAGE_1D_ARRAY_EXT = $905D;
5894   GL_INT_IMAGE_2D_ARRAY_EXT = $905E;
5895   GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $905F;
5896   GL_INT_IMAGE_2D_MULTISAMPLE_EXT = $9060;
5897   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9061;
5898   GL_UNSIGNED_INT_IMAGE_1D_EXT = $9062;
5899   GL_UNSIGNED_INT_IMAGE_2D_EXT = $9063;
5900   GL_UNSIGNED_INT_IMAGE_3D_EXT = $9064;
5901   GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT = $9065;
5902   GL_UNSIGNED_INT_IMAGE_CUBE_EXT = $9066;
5903   GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = $9067;
5904   GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = $9068;
5905   GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = $9069;
5906   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $906A;
5907   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = $906B;
5908   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $906C;
5909   GL_MAX_IMAGE_SAMPLES_EXT = $906D;
5910   GL_IMAGE_BINDING_FORMAT_EXT = $906E;
5911   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = $00000001;
5912   GL_ELEMENT_ARRAY_BARRIER_BIT_EXT = $00000002;
5913   GL_UNIFORM_BARRIER_BIT_EXT = $00000004;
5914   GL_TEXTURE_FETCH_BARRIER_BIT_EXT = $00000008;
5915   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = $00000020;
5916   GL_COMMAND_BARRIER_BIT_EXT = $00000040;
5917   GL_PIXEL_BUFFER_BARRIER_BIT_EXT = $00000080;
5918   GL_TEXTURE_UPDATE_BARRIER_BIT_EXT = $00000100;
5919   GL_BUFFER_UPDATE_BARRIER_BIT_EXT = $00000200;
5920   GL_FRAMEBUFFER_BARRIER_BIT_EXT = $00000400;
5921   GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = $00000800;
5922   GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = $00001000;
5923   GL_ALL_BARRIER_BITS_EXT = $FFFFFFFF;
5924   
5925   // GL_EXT_vertex_attrib_64bit
5926   { reuse GL_DOUBLE }
5927   GL_DOUBLE_VEC2_EXT = $8FFC;
5928   GL_DOUBLE_VEC3_EXT = $8FFD;
5929   GL_DOUBLE_VEC4_EXT = $8FFE;
5930   GL_DOUBLE_MAT2_EXT = $8F46;
5931   GL_DOUBLE_MAT3_EXT = $8F47;
5932   GL_DOUBLE_MAT4_EXT = $8F48;
5933   GL_DOUBLE_MAT2x3_EXT = $8F49;
5934   GL_DOUBLE_MAT2x4_EXT = $8F4A;
5935   GL_DOUBLE_MAT3x2_EXT = $8F4B;
5936   GL_DOUBLE_MAT3x4_EXT = $8F4C;
5937   GL_DOUBLE_MAT4x2_EXT = $8F4D;
5938   GL_DOUBLE_MAT4x3_EXT = $8F4E;
5939
5940   // GL_EXT_texture_sRGB_decode
5941   GL_TEXTURE_SRGB_DECODE_EXT = $8A48;
5942   GL_DECODE_EXT = $8A49;
5943   GL_SKIP_DECODE_EXT = $8A4A;
5944
5945   // GL_NV_texture_multisample 
5946   GL_TEXTURE_COVERAGE_SAMPLES_NV    = $9045;
5947   GL_TEXTURE_COLOR_SAMPLES_NV       = $9046;
5948
5949   // GL_AMD_blend_minmax_factor
5950   GL_FACTOR_MIN_AMD                 = $901C;
5951   GL_FACTOR_MAX_AMD                 = $901D;
5952
5953   // GL_AMD_sample_positions
5954   GL_SUBSAMPLE_DISTANCE_AMD         = $883F;
5955
5956   // GL_EXT_x11_sync_object
5957   GL_SYNC_X11_FENCE_EXT             = $90E1;
5958
5959   // GL_EXT_framebuffer_multisample_blit_scaled
5960   GL_SCALED_RESOLVE_FASTEST_EXT     = $90BA;
5961   GL_SCALED_RESOLVE_NICEST_EXT      = $90BB;
5962
5963   // (4.3) GL_NV_path_rendering
5964         GL_PATH_FORMAT_SVG_NV            = $9070;
5965         GL_PATH_FORMAT_PS_NV             = $9071;
5966         GL_STANDARD_FONT_NAME_NV         = $9072;
5967         GL_SYSTEM_FONT_NAME_NV           = $9073;
5968         GL_FILE_NAME_NV                  = $9074;
5969         GL_PATH_STROKE_WIDTH_NV          = $9075;
5970         GL_PATH_END_CAPS_NV              = $9076;
5971         GL_PATH_INITIAL_END_CAP_NV       = $9077;
5972         GL_PATH_TERMINAL_END_CAP_NV      = $9078;
5973         GL_PATH_JOIN_STYLE_NV            = $9079;
5974         GL_PATH_MITER_LIMIT_NV           = $907A;
5975         GL_PATH_DASH_CAPS_NV             = $907B;
5976         GL_PATH_INITIAL_DASH_CAP_NV      = $907C;
5977         GL_PATH_TERMINAL_DASH_CAP_NV     = $907D;
5978         GL_PATH_DASH_OFFSET_NV           = $907E;
5979         GL_PATH_CLIENT_LENGTH_NV         = $907F;
5980         GL_PATH_FILL_MODE_NV             = $9080;
5981         GL_PATH_FILL_MASK_NV             = $9081;
5982         GL_PATH_FILL_COVER_MODE_NV       = $9082;
5983         GL_PATH_STROKE_COVER_MODE_NV     = $9083;
5984         GL_PATH_STROKE_MASK_NV           = $9084;
5985         GL_PATH_SAMPLE_QUALITY_NV        = $9085;
5986         GL_PATH_STROKE_BOUND_NV          = $9086;
5987         GL_PATH_STROKE_OVERSAMPLE_COUNT_NV= $9087;
5988         GL_COUNT_UP_NV                   = $9088;
5989         GL_COUNT_DOWN_NV                 = $9089;
5990         GL_PATH_OBJECT_BOUNDING_BOX_NV   = $908A;
5991         GL_CONVEX_HULL_NV                = $908B;
5992         GL_MULTI_HULLS_NV                = $908C;
5993         GL_BOUNDING_BOX_NV               = $908D;
5994         GL_TRANSLATE_X_NV                = $908E;
5995         GL_TRANSLATE_Y_NV                = $908F;
5996         GL_TRANSLATE_2D_NV               = $9090;
5997         GL_TRANSLATE_3D_NV               = $9091;
5998         GL_AFFINE_2D_NV                  = $9092;
5999         GL_PROJECTIVE_2D_NV              = $9093;
6000         GL_AFFINE_3D_NV                  = $9094;
6001         GL_PROJECTIVE_3D_NV              = $9095;
6002         GL_TRANSPOSE_AFFINE_2D_NV        = $9096;
6003         GL_TRANSPOSE_PROJECTIVE_2D_NV    = $9097;
6004         GL_TRANSPOSE_AFFINE_3D_NV        = $9098;
6005         GL_TRANSPOSE_PROJECTIVE_3D_NV    = $9099;
6006         GL_UTF8_NV                       = $909A;
6007         GL_UTF16_NV                      = $909B;
6008         GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV= $909C;
6009         GL_PATH_COMMAND_COUNT_NV         = $909D;
6010         GL_PATH_COORD_COUNT_NV           = $909E;
6011   GL_PATH_DASH_ARRAY_COUNT_NV      = $909F;
6012   GL_PATH_COMPUTED_LENGTH_NV       = $90A0;
6013   GL_PATH_FILL_BOUNDING_BOX_NV     = $90A1;
6014   GL_PATH_STROKE_BOUNDING_BOX_NV   = $90A2;
6015   GL_SQUARE_NV                     = $90A3;
6016   GL_ROUND_NV                      = $90A4;
6017   GL_TRIANGULAR_NV                 = $90A5;
6018   GL_BEVEL_NV                      = $90A6;
6019   GL_MITER_REVERT_NV               = $90A7;
6020   GL_MITER_TRUNCATE_NV             = $90A8;
6021   GL_SKIP_MISSING_GLYPH_NV         = $90A9;
6022   GL_USE_MISSING_GLYPH_NV          = $90AA;
6023   GL_PATH_ERROR_POSITION_NV        = $90AB;
6024   GL_PATH_FOG_GEN_MODE_NV          = $90AC;
6025   GL_ACCUM_ADJACENT_PAIRS_NV       = $90AD;
6026   GL_ADJACENT_PAIRS_NV             = $90AE;
6027   GL_FIRST_TO_REST_NV              = $90AF;
6028   GL_PATH_GEN_MODE_NV              = $90B0;
6029   GL_PATH_GEN_COEFF_NV             = $90B1;
6030   GL_PATH_GEN_COLOR_FORMAT_NV      = $90B2;
6031   GL_PATH_GEN_COMPONENTS_NV        = $90B3;
6032   GL_PATH_STENCIL_FUNC_NV          = $90B7;
6033   GL_PATH_STENCIL_REF_NV           = $90B8;
6034   GL_PATH_STENCIL_VALUE_MASK_NV    = $90B9;
6035   GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV= $90BD;
6036   GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV= $90BE;
6037   GL_PATH_COVER_DEPTH_FUNC_NV      = $90BF;
6038   GL_PATH_DASH_OFFSET_RESET_NV     = $90B4;
6039   GL_MOVE_TO_RESETS_NV             = $90B5;
6040   GL_MOVE_TO_CONTINUES_NV          = $90B6;
6041   GL_CLOSE_PATH_NV                 = $00;
6042   GL_MOVE_TO_NV                    = $02;
6043   GL_RELATIVE_MOVE_TO_NV           = $03;
6044   GL_LINE_TO_NV                    = $04;
6045   GL_RELATIVE_LINE_TO_NV           = $05;
6046   GL_HORIZONTAL_LINE_TO_NV         = $06;
6047   GL_RELATIVE_HORIZONTAL_LINE_TO_NV= $07;
6048   GL_VERTICAL_LINE_TO_NV           = $08;
6049   GL_RELATIVE_VERTICAL_LINE_TO_NV  = $09;
6050   GL_QUADRATIC_CURVE_TO_NV         = $0A;
6051   GL_RELATIVE_QUADRATIC_CURVE_TO_NV= $0B;
6052   GL_CUBIC_CURVE_TO_NV             = $0C;
6053   GL_RELATIVE_CUBIC_CURVE_TO_NV    = $0D;
6054   GL_SMOOTH_QUADRATIC_CURVE_TO_NV  = $0E;
6055   GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV= $0F;
6056   GL_SMOOTH_CUBIC_CURVE_TO_NV      = $10;
6057   GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV= $11;
6058   GL_SMALL_CCW_ARC_TO_NV           = $12;
6059   GL_RELATIVE_SMALL_CCW_ARC_TO_NV  = $13;
6060   GL_SMALL_CW_ARC_TO_NV            = $14;
6061   GL_RELATIVE_SMALL_CW_ARC_TO_NV   = $15;
6062   GL_LARGE_CCW_ARC_TO_NV           = $16;
6063   GL_RELATIVE_LARGE_CCW_ARC_TO_NV  = $17;
6064   GL_LARGE_CW_ARC_TO_NV            = $18;
6065   GL_RELATIVE_LARGE_CW_ARC_TO_NV   = $19;
6066   GL_RESTART_PATH_NV               = $F0;
6067   GL_DUP_FIRST_CUBIC_CURVE_TO_NV   = $F2;
6068   GL_DUP_LAST_CUBIC_CURVE_TO_NV    = $F4;
6069   GL_RECT_NV                       = $F6;
6070   GL_CIRCULAR_CCW_ARC_TO_NV        = $F8;
6071   GL_CIRCULAR_CW_ARC_TO_NV         = $FA;
6072   GL_CIRCULAR_TANGENT_ARC_TO_NV    = $FC;
6073   GL_ARC_TO_NV                     = $FE;
6074   GL_RELATIVE_ARC_TO_NV            = $FF;
6075   GL_BOLD_BIT_NV                   = $01;
6076   GL_ITALIC_BIT_NV                 = $02;
6077   GL_GLYPH_WIDTH_BIT_NV            = $01;
6078   GL_GLYPH_HEIGHT_BIT_NV           = $02;
6079   GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV= $04;
6080   GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV= $08;
6081   GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV= $10;
6082   GL_GLYPH_VERTICAL_BEARING_X_BIT_NV= $20;
6083   GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV= $40;
6084   GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV= $80;
6085   GL_GLYPH_HAS_KERNING_NV          = $100;
6086   GL_FONT_X_MIN_BOUNDS_NV          = $00010000;
6087   GL_FONT_Y_MIN_BOUNDS_NV          = $00020000;
6088   GL_FONT_X_MAX_BOUNDS_NV          = $00040000;
6089   GL_FONT_Y_MAX_BOUNDS_NV          = $00080000;
6090   GL_FONT_UNITS_PER_EM_NV          = $00100000;
6091   GL_FONT_ASCENDER_NV              = $00200000;
6092   GL_FONT_DESCENDER_NV             = $00400000;
6093   GL_FONT_HEIGHT_NV                = $00800000;
6094   GL_FONT_MAX_ADVANCE_WIDTH_NV     = $01000000;
6095   GL_FONT_MAX_ADVANCE_HEIGHT_NV    = $02000000;
6096   GL_FONT_UNDERLINE_POSITION_NV    = $04000000;
6097   GL_FONT_UNDERLINE_THICKNESS_NV   = $08000000;
6098   GL_FONT_HAS_KERNING_NV           = $10000000;
6099
6100   // (4.3) GL_AMD_pinned_memory
6101   GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD= $9160;
6102
6103   // (4.3) GL_AMD_stencil_operation_extended
6104   GL_SET_AMD                       = $874A;
6105   GL_REPLACE_VALUE_AMD             = $874B;
6106   GL_STENCIL_OP_VALUE_AMD          = $874C;
6107   GL_STENCIL_BACK_OP_VALUE_AMD     = $874D;
6108
6109   // (4.3) GL_AMD_vertex_shader_viewport_index
6110
6111   // (4.3) GL_AMD_vertex_shader_layer
6112
6113   // (4.3) GL_NV_bindless_texture
6114
6115   // (4.3) GL_NV_shader_atomic_float
6116
6117   // (4.3) GL_AMD_query_buffer_object
6118   GL_QUERY_BUFFER_AMD              = $9192;
6119   GL_QUERY_BUFFER_BINDING_AMD      = $9193;
6120   GL_QUERY_RESULT_NO_WAIT_AMD      = $9194;
6121
6122   // GL_FfdMaskSGIX
6123   GL_TEXTURE_DEFORMATION_BIT_SGIX = $00000001;
6124   GL_GEOMETRY_DEFORMATION_BIT_SGIX = $00000002;
6125
6126   // GL_HP_convolution_border_modes
6127   GL_IGNORE_BORDER_HP = $8150;
6128   GL_CONSTANT_BORDER_HP = $8151;
6129   GL_REPLICATE_BORDER_HP = $8153;
6130   GL_CONVOLUTION_BORDER_COLOR_HP = $8154;
6131
6132   // GL_HP_image_transform
6133   GL_IMAGE_SCALE_X_HP = $8155;
6134   GL_IMAGE_SCALE_Y_HP = $8156;
6135   GL_IMAGE_TRANSLATE_X_HP = $8157;
6136   GL_IMAGE_TRANSLATE_Y_HP = $8158;
6137   GL_IMAGE_ROTATE_ANGLE_HP = $8159;
6138   GL_IMAGE_ROTATE_ORIGIN_X_HP = $815A;
6139   GL_IMAGE_ROTATE_ORIGIN_Y_HP = $815B;
6140   GL_IMAGE_MAG_FILTER_HP = $815C;
6141   GL_IMAGE_MIN_FILTER_HP = $815D;
6142   GL_IMAGE_CUBIC_WEIGHT_HP = $815E;
6143   GL_CUBIC_HP = $815F;
6144   GL_AVERAGE_HP = $8160;
6145   GL_IMAGE_TRANSFORM_2D_HP = $8161;
6146   GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8162;
6147   GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8163;
6148
6149   // GL_HP_occlusion_test
6150   GL_OCCLUSION_TEST_HP = $8165;
6151   GL_OCCLUSION_TEST_RESULT_HP = $8166;
6152
6153   // GL_HP_texture_lighting
6154   GL_TEXTURE_LIGHTING_MODE_HP = $8167;
6155   GL_TEXTURE_POST_SPECULAR_HP = $8168;
6156   GL_TEXTURE_PRE_SPECULAR_HP = $8169;
6157
6158   // GL_IBM_cull_vertex
6159   GL_CULL_VERTEX_IBM = 103050;
6160
6161   // GL_IBM_rasterpos_clip
6162   GL_RASTER_POSITION_UNCLIPPED_IBM = $19262;
6163
6164   // GL_IBM_texture_mirrored_repeat
6165   GL_MIRRORED_REPEAT_IBM = $8370;
6166
6167   // GL_IBM_vertex_array_lists
6168   GL_VERTEX_ARRAY_LIST_IBM = 103070;
6169   GL_NORMAL_ARRAY_LIST_IBM = 103071;
6170   GL_COLOR_ARRAY_LIST_IBM = 103072;
6171   GL_INDEX_ARRAY_LIST_IBM = 103073;
6172   GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074;
6173   GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075;
6174   GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076;
6175   GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077;
6176   GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080;
6177   GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081;
6178   GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082;
6179   GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083;
6180   GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084;
6181   GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085;
6182   GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086;
6183   GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087;
6184
6185   // GL_INGR_color_clamp
6186   GL_RED_MIN_CLAMP_INGR = $8560;
6187   GL_GREEN_MIN_CLAMP_INGR = $8561;
6188   GL_BLUE_MIN_CLAMP_INGR = $8562;
6189   GL_ALPHA_MIN_CLAMP_INGR = $8563;
6190   GL_RED_MAX_CLAMP_INGR = $8564;
6191   GL_GREEN_MAX_CLAMP_INGR = $8565;
6192   GL_BLUE_MAX_CLAMP_INGR = $8566;
6193   GL_ALPHA_MAX_CLAMP_INGR = $8567;
6194
6195   // GL_INGR_interlace_read
6196   GL_INTERLACE_READ_INGR = $8568;
6197
6198   // GL_INTEL_parallel_arrays
6199   GL_PARALLEL_ARRAYS_INTEL = $83F4;
6200   GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = $83F5;
6201   GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = $83F6;
6202   GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = $83F7;
6203   GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = $83F8;
6204
6205   // GL_NV_copy_depth_to_color
6206   GL_DEPTH_STENCIL_TO_RGBA_NV = $886E;
6207   GL_DEPTH_STENCIL_TO_BGRA_NV = $886F;
6208
6209   // GL_NV_depth_clamp
6210   GL_DEPTH_CLAMP_NV = $864F;
6211
6212   // GL_NV_evaluators
6213   GL_EVAL_2D_NV = $86C0;
6214   GL_EVAL_TRIANGULAR_2D_NV = $86C1;
6215   GL_MAP_TESSELLATION_NV = $86C2;
6216   GL_MAP_ATTRIB_U_ORDER_NV = $86C3;
6217   GL_MAP_ATTRIB_V_ORDER_NV = $86C4;
6218   GL_EVAL_FRACTIONAL_TESSELLATION_NV = $86C5;
6219   GL_EVAL_VERTEX_ATTRIB0_NV = $86C6;
6220   GL_EVAL_VERTEX_ATTRIB1_NV = $86C7;
6221   GL_EVAL_VERTEX_ATTRIB2_NV = $86C8;
6222   GL_EVAL_VERTEX_ATTRIB3_NV = $86C9;
6223   GL_EVAL_VERTEX_ATTRIB4_NV = $86CA;
6224   GL_EVAL_VERTEX_ATTRIB5_NV = $86CB;
6225   GL_EVAL_VERTEX_ATTRIB6_NV = $86CC;
6226   GL_EVAL_VERTEX_ATTRIB7_NV = $86CD;
6227   GL_EVAL_VERTEX_ATTRIB8_NV = $86CE;
6228   GL_EVAL_VERTEX_ATTRIB9_NV = $86CF;
6229   GL_EVAL_VERTEX_ATTRIB10_NV = $86D0;
6230   GL_EVAL_VERTEX_ATTRIB11_NV = $86D1;
6231   GL_EVAL_VERTEX_ATTRIB12_NV = $86D2;
6232   GL_EVAL_VERTEX_ATTRIB13_NV = $86D3;
6233   GL_EVAL_VERTEX_ATTRIB14_NV = $86D4;
6234   GL_EVAL_VERTEX_ATTRIB15_NV = $86D5;
6235   GL_MAX_MAP_TESSELLATION_NV = $86D6;
6236   GL_MAX_RATIONAL_EVAL_ORDER_NV = $86D7;
6237
6238   // GL_NV_fence
6239   GL_ALL_COMPLETED_NV = $84F2;
6240   GL_FENCE_STATUS_NV = $84F3;
6241   GL_FENCE_CONDITION_NV = $84F4;
6242
6243   // GL_NV_float_buffer
6244   GL_FLOAT_R_NV = $8880;
6245   GL_FLOAT_RG_NV = $8881;
6246   GL_FLOAT_RGB_NV = $8882;
6247   GL_FLOAT_RGBA_NV = $8883;
6248   GL_FLOAT_R16_NV = $8884;
6249   GL_FLOAT_R32_NV = $8885;
6250   GL_FLOAT_RG16_NV = $8886;
6251   GL_FLOAT_RG32_NV = $8887;
6252   GL_FLOAT_RGB16_NV = $8888;
6253   GL_FLOAT_RGB32_NV = $8889;
6254   GL_FLOAT_RGBA16_NV = $888A;
6255   GL_FLOAT_RGBA32_NV = $888B;
6256   GL_TEXTURE_FLOAT_COMPONENTS_NV = $888C;
6257   GL_FLOAT_CLEAR_COLOR_VALUE_NV = $888D;
6258   GL_FLOAT_RGBA_MODE_NV = $888E;
6259
6260   // GL_NV_fog_distance
6261   GL_FOG_DISTANCE_MODE_NV = $855A;
6262   GL_EYE_RADIAL_NV = $855B;
6263   GL_EYE_PLANE_ABSOLUTE_NV = $855C;
6264
6265   // GL_NV_fragment_program
6266   GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = $8868;
6267   GL_FRAGMENT_PROGRAM_NV = $8870;
6268   GL_MAX_TEXTURE_COORDS_NV = $8871;
6269   GL_MAX_TEXTURE_IMAGE_UNITS_NV = $8872;
6270   GL_FRAGMENT_PROGRAM_BINDING_NV = $8873;
6271   GL_PROGRAM_ERROR_STRING_NV = $8874;
6272
6273   // GL_NV_half_float
6274   GL_HALF_FLOAT_NV = $140B;
6275
6276   // GL_NV_light_max_exponent
6277   GL_MAX_SHININESS_NV = $8504;
6278   GL_MAX_SPOT_EXPONENT_NV = $8505;
6279
6280   // GL_NV_multisample_filter_hint
6281   GL_MULTISAMPLE_FILTER_HINT_NV = $8534;
6282
6283   // GL_NV_occlusion_query
6284   GL_PIXEL_COUNTER_BITS_NV = $8864;
6285   GL_CURRENT_OCCLUSION_QUERY_ID_NV = $8865;
6286   GL_PIXEL_COUNT_NV = $8866;
6287   GL_PIXEL_COUNT_AVAILABLE_NV = $8867;
6288
6289   // GL_NV_packed_depth_stencil
6290   GL_DEPTH_STENCIL_NV = $84F9;
6291   GL_UNSIGNED_INT_24_8_NV = $84FA;
6292
6293   // GL_NV_pixel_data_range
6294   GL_WRITE_PIXEL_DATA_RANGE_NV = $8878;
6295   GL_READ_PIXEL_DATA_RANGE_NV = $8879;
6296   GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = $887A;
6297   GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = $887B;
6298   GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = $887C;
6299   GL_READ_PIXEL_DATA_RANGE_POINTER_NV = $887D;
6300
6301   // GL_NV_point_sprite
6302   GL_POINT_SPRITE_NV = $8861;
6303   GL_COORD_REPLACE_NV = $8862;
6304   GL_POINT_SPRITE_R_MODE_NV = $8863;
6305
6306   // GL_NV_primitive_restart
6307   GL_PRIMITIVE_RESTART_NV = $8558;
6308   GL_PRIMITIVE_RESTART_INDEX_NV = $8559;
6309
6310   // GL_NV_register_combiners
6311   GL_REGISTER_COMBINERS_NV = $8522;
6312   GL_VARIABLE_A_NV = $8523;
6313   GL_VARIABLE_B_NV = $8524;
6314   GL_VARIABLE_C_NV = $8525;
6315   GL_VARIABLE_D_NV = $8526;
6316   GL_VARIABLE_E_NV = $8527;
6317   GL_VARIABLE_F_NV = $8528;
6318   GL_VARIABLE_G_NV = $8529;
6319   GL_CONSTANT_COLOR0_NV = $852A;
6320   GL_CONSTANT_COLOR1_NV = $852B;
6321   GL_PRIMARY_COLOR_NV = $852C;
6322   GL_SECONDARY_COLOR_NV = $852D;
6323   GL_SPARE0_NV = $852E;
6324   GL_SPARE1_NV = $852F;
6325   GL_DISCARD_NV = $8530;
6326   GL_E_TIMES_F_NV = $8531;
6327   GL_SPARE0_PLUS_SECONDARY_COLOR_NV = $8532;
6328   GL_UNSIGNED_IDENTITY_NV = $8536;
6329   GL_UNSIGNED_INVERT_NV = $8537;
6330   GL_EXPAND_NORMAL_NV = $8538;
6331   GL_EXPAND_NEGATE_NV = $8539;
6332   GL_HALF_BIAS_NORMAL_NV = $853A;
6333   GL_HALF_BIAS_NEGATE_NV = $853B;
6334   GL_SIGNED_IDENTITY_NV = $853C;
6335   GL_SIGNED_NEGATE_NV = $853D;
6336   GL_SCALE_BY_TWO_NV = $853E;
6337   GL_SCALE_BY_FOUR_NV = $853F;
6338   GL_SCALE_BY_ONE_HALF_NV = $8540;
6339   GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = $8541;
6340   GL_COMBINER_INPUT_NV = $8542;
6341   GL_COMBINER_MAPPING_NV = $8543;
6342   GL_COMBINER_COMPONENT_USAGE_NV = $8544;
6343   GL_COMBINER_AB_DOT_PRODUCT_NV = $8545;
6344   GL_COMBINER_CD_DOT_PRODUCT_NV = $8546;
6345   GL_COMBINER_MUX_SUM_NV = $8547;
6346   GL_COMBINER_SCALE_NV = $8548;
6347   GL_COMBINER_BIAS_NV = $8549;
6348   GL_COMBINER_AB_OUTPUT_NV = $854A;
6349   GL_COMBINER_CD_OUTPUT_NV = $854B;
6350   GL_COMBINER_SUM_OUTPUT_NV = $854C;
6351   GL_MAX_GENERAL_COMBINERS_NV = $854D;
6352   GL_NUM_GENERAL_COMBINERS_NV = $854E;
6353   GL_COLOR_SUM_CLAMP_NV = $854F;
6354   GL_COMBINER0_NV = $8550;
6355   GL_COMBINER1_NV = $8551;
6356   GL_COMBINER2_NV = $8552;
6357   GL_COMBINER3_NV = $8553;
6358   GL_COMBINER4_NV = $8554;
6359   GL_COMBINER5_NV = $8555;
6360   GL_COMBINER6_NV = $8556;
6361   GL_COMBINER7_NV = $8557;
6362
6363   // GL_NV_register_combiners2
6364   GL_PER_STAGE_CONSTANTS_NV = $8535;
6365
6366   // GL_NV_texgen_emboss
6367   GL_EMBOSS_LIGHT_NV = $855D;
6368   GL_EMBOSS_CONSTANT_NV = $855E;
6369   GL_EMBOSS_MAP_NV = $855F;
6370
6371   // GL_NV_texgen_reflection
6372   GL_NORMAL_MAP_NV = $8511;
6373   GL_REFLECTION_MAP_NV = $8512;
6374
6375   // GL_NV_texture_env_combine4
6376   GL_COMBINE4_NV = $8503;
6377   GL_SOURCE3_RGB_NV = $8583;
6378   GL_SOURCE3_ALPHA_NV = $858B;
6379   GL_OPERAND3_RGB_NV = $8593;
6380   GL_OPERAND3_ALPHA_NV = $859B;
6381
6382   // GL_NV_texture_expand_normal
6383   GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = $888F;
6384
6385   // GL_NV_texture_rectangle
6386   GL_TEXTURE_RECTANGLE_NV = $84F5;
6387   GL_TEXTURE_BINDING_RECTANGLE_NV = $84F6;
6388   GL_PROXY_TEXTURE_RECTANGLE_NV = $84F7;
6389   GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = $84F8;
6390
6391   // GL_NV_texture_shader
6392   GL_OFFSET_TEXTURE_RECTANGLE_NV = $864C;
6393   GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = $864D;
6394   GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = $864E;
6395   GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = $86D9;
6396   GL_UNSIGNED_INT_S8_S8_8_8_NV = $86DA;
6397   GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = $86DB;
6398   GL_DSDT_MAG_INTENSITY_NV = $86DC;
6399   GL_SHADER_CONSISTENT_NV = $86DD;
6400   GL_TEXTURE_SHADER_NV = $86DE;
6401   GL_SHADER_OPERATION_NV = $86DF;
6402   GL_CULL_MODES_NV = $86E0;
6403   GL_OFFSET_TEXTURE_MATRIX_NV = $86E1;
6404   GL_OFFSET_TEXTURE_SCALE_NV = $86E2;
6405   GL_OFFSET_TEXTURE_BIAS_NV = $86E3;
6406   GL_OFFSET_TEXTURE_2D_MATRIX_NV = GL_OFFSET_TEXTURE_MATRIX_NV;
6407   GL_OFFSET_TEXTURE_2D_SCALE_NV = GL_OFFSET_TEXTURE_SCALE_NV;
6408   GL_OFFSET_TEXTURE_2D_BIAS_NV = GL_OFFSET_TEXTURE_BIAS_NV;
6409   GL_PREVIOUS_TEXTURE_INPUT_NV = $86E4;
6410   GL_CONST_EYE_NV = $86E5;
6411   GL_PASS_THROUGH_NV = $86E6;
6412   GL_CULL_FRAGMENT_NV = $86E7;
6413   GL_OFFSET_TEXTURE_2D_NV = $86E8;
6414   GL_DEPENDENT_AR_TEXTURE_2D_NV = $86E9;
6415   GL_DEPENDENT_GB_TEXTURE_2D_NV = $86EA;
6416   GL_DOT_PRODUCT_NV = $86EC;
6417   GL_DOT_PRODUCT_DEPTH_REPLACE_NV = $86ED;
6418   GL_DOT_PRODUCT_TEXTURE_2D_NV = $86EE;
6419   GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = $86F0;
6420   GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = $86F1;
6421   GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = $86F2;
6422   GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = $86F3;
6423   GL_HILO_NV = $86F4;
6424   GL_DSDT_NV = $86F5;
6425   GL_DSDT_MAG_NV = $86F6;
6426   GL_DSDT_MAG_VIB_NV = $86F7;
6427   GL_HILO16_NV = $86F8;
6428   GL_SIGNED_HILO_NV = $86F9;
6429   GL_SIGNED_HILO16_NV = $86FA;
6430   GL_SIGNED_RGBA_NV = $86FB;
6431   GL_SIGNED_RGBA8_NV = $86FC;
6432   GL_SIGNED_RGB_NV = $86FE;
6433   GL_SIGNED_RGB8_NV = $86FF;
6434   GL_SIGNED_LUMINANCE_NV = $8701;
6435   GL_SIGNED_LUMINANCE8_NV = $8702;
6436   GL_SIGNED_LUMINANCE_ALPHA_NV = $8703;
6437   GL_SIGNED_LUMINANCE8_ALPHA8_NV = $8704;
6438   GL_SIGNED_ALPHA_NV = $8705;
6439   GL_SIGNED_ALPHA8_NV = $8706;
6440   GL_SIGNED_INTENSITY_NV = $8707;
6441   GL_SIGNED_INTENSITY8_NV = $8708;
6442   GL_DSDT8_NV = $8709;
6443   GL_DSDT8_MAG8_NV = $870A;
6444   GL_DSDT8_MAG8_INTENSITY8_NV = $870B;
6445   GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = $870C;
6446   GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = $870D;
6447   GL_HI_SCALE_NV = $870E;
6448   GL_LO_SCALE_NV = $870F;
6449   GL_DS_SCALE_NV = $8710;
6450   GL_DT_SCALE_NV = $8711;
6451   GL_MAGNITUDE_SCALE_NV = $8712;
6452   GL_VIBRANCE_SCALE_NV = $8713;
6453   GL_HI_BIAS_NV = $8714;
6454   GL_LO_BIAS_NV = $8715;
6455   GL_DS_BIAS_NV = $8716;
6456   GL_DT_BIAS_NV = $8717;
6457   GL_MAGNITUDE_BIAS_NV = $8718;
6458   GL_VIBRANCE_BIAS_NV = $8719;
6459   GL_TEXTURE_BORDER_VALUES_NV = $871A;
6460   GL_TEXTURE_HI_SIZE_NV = $871B;
6461   GL_TEXTURE_LO_SIZE_NV = $871C;
6462   GL_TEXTURE_DS_SIZE_NV = $871D;
6463   GL_TEXTURE_DT_SIZE_NV = $871E;
6464   GL_TEXTURE_MAG_SIZE_NV = $871F;
6465
6466   // GL_NV_texture_shader2
6467   GL_DOT_PRODUCT_TEXTURE_3D_NV = $86EF;
6468
6469   // GL_NV_texture_shader3
6470   GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = $8850;
6471   GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = $8851;
6472   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8852;
6473   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = $8853;
6474   GL_OFFSET_HILO_TEXTURE_2D_NV = $8854;
6475   GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = $8855;
6476   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = $8856;
6477   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8857;
6478   GL_DEPENDENT_HILO_TEXTURE_2D_NV = $8858;
6479   GL_DEPENDENT_RGB_TEXTURE_3D_NV = $8859;
6480   GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = $885A;
6481   GL_DOT_PRODUCT_PASS_THROUGH_NV = $885B;
6482   GL_DOT_PRODUCT_TEXTURE_1D_NV = $885C;
6483   GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = $885D;
6484   GL_HILO8_NV = $885E;
6485   GL_SIGNED_HILO8_NV = $885F;
6486   GL_FORCE_BLUE_TO_ONE_NV = $8860;
6487
6488   // GL_NV_vertex_array_range
6489   GL_VERTEX_ARRAY_RANGE_NV = $851D;
6490   GL_VERTEX_ARRAY_RANGE_LENGTH_NV = $851E;
6491   GL_VERTEX_ARRAY_RANGE_VALID_NV = $851F;
6492   GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = $8520;
6493   GL_VERTEX_ARRAY_RANGE_POINTER_NV = $8521;
6494
6495   // GL_NV_vertex_array_range2
6496   GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = $8533;
6497
6498   // GL_NV_vertex_program
6499   GL_VERTEX_PROGRAM_NV = $8620;
6500   GL_VERTEX_STATE_PROGRAM_NV = $8621;
6501   GL_ATTRIB_ARRAY_SIZE_NV = $8623;
6502   GL_ATTRIB_ARRAY_STRIDE_NV = $8624;
6503   GL_ATTRIB_ARRAY_TYPE_NV = $8625;
6504   GL_CURRENT_ATTRIB_NV = $8626;
6505   GL_PROGRAM_LENGTH_NV = $8627;
6506   GL_PROGRAM_STRING_NV = $8628;
6507   GL_MODELVIEW_PROJECTION_NV = $8629;
6508   GL_IDENTITY_NV = $862A;
6509   GL_INVERSE_NV = $862B;
6510   GL_TRANSPOSE_NV = $862C;
6511   GL_INVERSE_TRANSPOSE_NV = $862D;
6512   GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = $862E;
6513   GL_MAX_TRACK_MATRICES_NV = $862F;
6514   GL_MATRIX0_NV = $8630;
6515   GL_MATRIX1_NV = $8631;
6516   GL_MATRIX2_NV = $8632;
6517   GL_MATRIX3_NV = $8633;
6518   GL_MATRIX4_NV = $8634;
6519   GL_MATRIX5_NV = $8635;
6520   GL_MATRIX6_NV = $8636;
6521   GL_MATRIX7_NV = $8637;
6522   GL_CURRENT_MATRIX_STACK_DEPTH_NV = $8640;
6523   GL_CURRENT_MATRIX_NV = $8641;
6524   GL_VERTEX_PROGRAM_POINT_SIZE_NV = $8642;
6525   GL_VERTEX_PROGRAM_TWO_SIDE_NV = $8643;
6526   GL_PROGRAM_PARAMETER_NV = $8644;
6527   GL_ATTRIB_ARRAY_POINTER_NV = $8645;
6528   GL_PROGRAM_TARGET_NV = $8646;
6529   GL_PROGRAM_RESIDENT_NV = $8647;
6530   GL_TRACK_MATRIX_NV = $8648;
6531   GL_TRACK_MATRIX_TRANSFORM_NV = $8649;
6532   GL_VERTEX_PROGRAM_BINDING_NV = $864A;
6533   GL_PROGRAM_ERROR_POSITION_NV = $864B;
6534   GL_VERTEX_ATTRIB_ARRAY0_NV = $8650;
6535   GL_VERTEX_ATTRIB_ARRAY1_NV = $8651;
6536   GL_VERTEX_ATTRIB_ARRAY2_NV = $8652;
6537   GL_VERTEX_ATTRIB_ARRAY3_NV = $8653;
6538   GL_VERTEX_ATTRIB_ARRAY4_NV = $8654;
6539   GL_VERTEX_ATTRIB_ARRAY5_NV = $8655;
6540   GL_VERTEX_ATTRIB_ARRAY6_NV = $8656;
6541   GL_VERTEX_ATTRIB_ARRAY7_NV = $8657;
6542   GL_VERTEX_ATTRIB_ARRAY8_NV = $8658;
6543   GL_VERTEX_ATTRIB_ARRAY9_NV = $8659;
6544   GL_VERTEX_ATTRIB_ARRAY10_NV = $865A;
6545   GL_VERTEX_ATTRIB_ARRAY11_NV = $865B;
6546   GL_VERTEX_ATTRIB_ARRAY12_NV = $865C;
6547   GL_VERTEX_ATTRIB_ARRAY13_NV = $865D;
6548   GL_VERTEX_ATTRIB_ARRAY14_NV = $865E;
6549   GL_VERTEX_ATTRIB_ARRAY15_NV = $865F;
6550   GL_MAP1_VERTEX_ATTRIB0_4_NV = $8660;
6551   GL_MAP1_VERTEX_ATTRIB1_4_NV = $8661;
6552   GL_MAP1_VERTEX_ATTRIB2_4_NV = $8662;
6553   GL_MAP1_VERTEX_ATTRIB3_4_NV = $8663;
6554   GL_MAP1_VERTEX_ATTRIB4_4_NV = $8664;
6555   GL_MAP1_VERTEX_ATTRIB5_4_NV = $8665;
6556   GL_MAP1_VERTEX_ATTRIB6_4_NV = $8666;
6557   GL_MAP1_VERTEX_ATTRIB7_4_NV = $8667;
6558   GL_MAP1_VERTEX_ATTRIB8_4_NV = $8668;
6559   GL_MAP1_VERTEX_ATTRIB9_4_NV = $8669;
6560   GL_MAP1_VERTEX_ATTRIB10_4_NV = $866A;
6561   GL_MAP1_VERTEX_ATTRIB11_4_NV = $866B;
6562   GL_MAP1_VERTEX_ATTRIB12_4_NV = $866C;
6563   GL_MAP1_VERTEX_ATTRIB13_4_NV = $866D;
6564   GL_MAP1_VERTEX_ATTRIB14_4_NV = $866E;
6565   GL_MAP1_VERTEX_ATTRIB15_4_NV = $866F;
6566   GL_MAP2_VERTEX_ATTRIB0_4_NV = $8670;
6567   GL_MAP2_VERTEX_ATTRIB1_4_NV = $8671;
6568   GL_MAP2_VERTEX_ATTRIB2_4_NV = $8672;
6569   GL_MAP2_VERTEX_ATTRIB3_4_NV = $8673;
6570   GL_MAP2_VERTEX_ATTRIB4_4_NV = $8674;
6571   GL_MAP2_VERTEX_ATTRIB5_4_NV = $8675;
6572   GL_MAP2_VERTEX_ATTRIB6_4_NV = $8676;
6573   GL_MAP2_VERTEX_ATTRIB7_4_NV = $8677;
6574   GL_MAP2_VERTEX_ATTRIB8_4_NV = $8678;
6575   GL_MAP2_VERTEX_ATTRIB9_4_NV = $8679;
6576   GL_MAP2_VERTEX_ATTRIB10_4_NV = $867A;
6577   GL_MAP2_VERTEX_ATTRIB11_4_NV = $867B;
6578   GL_MAP2_VERTEX_ATTRIB12_4_NV = $867C;
6579   GL_MAP2_VERTEX_ATTRIB13_4_NV = $867D;
6580   GL_MAP2_VERTEX_ATTRIB14_4_NV = $867E;
6581   GL_MAP2_VERTEX_ATTRIB15_4_NV = $867F;
6582
6583   // GL_NV_fragment_program2 and GL_NV_vertex_program2_option
6584   GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = $88F4;
6585   GL_MAX_PROGRAM_CALL_DEPTH_NV = $88F5;
6586
6587   // GL_NV_fragment_program2
6588   GL_MAX_PROGRAM_IF_DEPTH_NV = $88F6;
6589   GL_MAX_PROGRAM_LOOP_DEPTH_NV = $88F7;
6590   GL_MAX_PROGRAM_LOOP_COUNT_NV = $88F8;
6591
6592   // GL_NV_vertex_program3
6593   MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
6594
6595   // GL_NV_depth_buffer_float
6596   GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = $8DAD;
6597   GL_DEPTH_BUFFER_FLOAT_MODE_NV = $8DAF;
6598
6599   // GL_NV_framebuffer_multisample_coverage
6600   GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = $8CAB;
6601   GL_RENDERBUFFER_COLOR_SAMPLES_NV = $8E10;
6602
6603   // GL_NV_geometry_program4
6604   GL_GEOMETRY_PROGRAM_NV = $8C26;
6605   GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = $8C27;
6606   GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = $8C28;
6607
6608   // GL_NV_gpu_program4
6609   GL_PROGRAM_ATTRIB_COMPONENTS_NV = $8906;
6610   GL_PROGRAM_RESULT_COMPONENTS_NV = $8907;
6611   GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = $8908;
6612   GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = $8909;
6613   GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = $8DA5;
6614   GL_MAX_PROGRAM_GENERIC_RESULTS_NV = $8DA6;
6615
6616   // GL_NV_parameter_buffer_object
6617   GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = $8DA0;
6618   GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = $8DA1;
6619   GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = $8DA2;
6620   GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = $8DA3;
6621   GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = $8DA4;
6622
6623   // GL_NV_transform_feedback
6624   GL_TRANSFORM_FEEDBACK_BUFFER_NV = $8C8E;
6625   GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = $8C84;
6626   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = $8C85;
6627   GL_TRANSFORM_FEEDBACK_RECORD_NV = $8C86;
6628   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = $8C8F;
6629   GL_INTERLEAVED_ATTRIBS_NV = $8C8C;
6630   GL_SEPARATE_ATTRIBS_NV = $8C8D;
6631   GL_PRIMITIVES_GENERATED_NV = $8C87;
6632   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = $8C88;
6633   GL_RASTERIZER_DISCARD_NV = $8C89;
6634   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = $8C8A;
6635   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = $8C8B;
6636   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = $8C80;
6637   GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = $8C7E;
6638   GL_ACTIVE_VARYINGS_NV = $8C81;
6639   GL_ACTIVE_VARYING_MAX_LENGTH_NV = $8C82;
6640   GL_TRANSFORM_FEEDBACK_VARYINGS_NV = $8C83;
6641   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = $8C7F;
6642   GL_BACK_PRIMARY_COLOR_NV = $8C77;
6643   GL_BACK_SECONDARY_COLOR_NV = $8C78;
6644   GL_TEXTURE_COORD_NV = $8C79;
6645   GL_CLIP_DISTANCE_NV = $8C7A;
6646   GL_VERTEX_ID_NV = $8C7B;
6647   GL_PRIMITIVE_ID_NV = $8C7C;
6648   GL_GENERIC_ATTRIB_NV = $8C7D;
6649   GL_LAYER_NV = $8DAA;
6650   GL_NEXT_BUFFER_NV = -2;
6651   GL_SKIP_COMPONENTS4_NV = -3;
6652   GL_SKIP_COMPONENTS3_NV = -4;
6653   GL_SKIP_COMPONENTS2_NV = -5;
6654   GL_SKIP_COMPONENTS1_NV = -6;
6655
6656   // GL_NV_conditional_render
6657   GL_QUERY_WAIT_NV = $8E13;
6658   GL_QUERY_NO_WAIT_NV = $8E14;
6659   GL_QUERY_BY_REGION_WAIT_NV = $8E15;
6660   GL_QUERY_BY_REGION_NO_WAIT_NV = $8E16;
6661
6662   // GL_NV_present_video
6663   GL_FRAME_NV = $8E26;
6664   GL_FIELDS_NV = $8E27;
6665   GL_CURRENT_TIME_NV = $8E28;
6666   GL_NUM_FILL_STREAMS_NV = $8E29;
6667   GL_PRESENT_TIME_NV = $8E2A;
6668   GL_PRESENT_DURATION_NV = $8E2B;
6669
6670   // GL_NV_explicit_multisample
6671   GL_SAMPLE_POSITION_NV = $8E50;
6672   GL_SAMPLE_MASK_NV = $8E51;
6673   GL_SAMPLE_MASK_VALUE_NV = $8E52;
6674   GL_TEXTURE_BINDING_RENDERBUFFER_NV = $8E53;
6675   GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = $8E54;
6676   GL_TEXTURE_RENDERBUFFER_NV = $8E55;
6677   GL_SAMPLER_RENDERBUFFER_NV = $8E56;
6678   GL_INT_SAMPLER_RENDERBUFFER_NV = $8E57;
6679   GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = $8E58;
6680   GL_MAX_SAMPLE_MASK_WORDS_NV = $8E59;
6681
6682   // GL_NV_transform_feedback2
6683   GL_TRANSFORM_FEEDBACK_NV = $8E22;
6684   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = $8E23;
6685   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = $8E24;
6686   GL_TRANSFORM_FEEDBACK_BINDING_NV = $8E25;
6687   
6688   // GL_NV_video_capture
6689   GL_VIDEO_BUFFER_NV = $9020;
6690   GL_VIDEO_BUFFER_BINDING_NV = $9021;
6691   GL_FIELD_UPPER_NV = $9022;
6692   GL_FIELD_LOWER_NV = $9023;
6693   GL_NUM_VIDEO_CAPTURE_STREAMS_NV = $9024;
6694   GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = $9025;
6695   GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = $9026;
6696   GL_LAST_VIDEO_CAPTURE_STATUS_NV = $9027;
6697   GL_VIDEO_BUFFER_PITCH_NV = $9028;
6698   GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = $9029;
6699   GL_VIDEO_COLOR_CONVERSION_MAX_NV = $902A;
6700   GL_VIDEO_COLOR_CONVERSION_MIN_NV = $902B;
6701   GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = $902C;
6702   GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = $902D;
6703   GL_PARTIAL_SUCCESS_NV = $902E;
6704   GL_SUCCESS_NV = $902F;
6705   GL_FAILURE_NV = $9030;
6706   GL_YCBYCR8_422_NV = $9031;
6707   GL_YCBAYCR8A_4224_NV = $9032;
6708   GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = $9033;
6709   GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = $9034;
6710   GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = $9035;
6711   GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = $9036;
6712   GL_Z4Y12Z4CB12Z4CR12_444_NV = $9037;
6713   GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = $9038;
6714   GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = $9039;
6715   GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = $903A;
6716   GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = $903B;
6717   GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = $903C;
6718   
6719   // GL_NV_shader_buffer_load
6720   GL_BUFFER_GPU_ADDRESS_NV = $8F1D;
6721   GL_GPU_ADDRESS_NV = $8F34;
6722   GL_MAX_SHADER_BUFFER_ADDRESS_NV = $8F35;
6723
6724   // GL_NV_vertex_buffer_unified_memory
6725   GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = $8F1E;
6726   GL_ELEMENT_ARRAY_UNIFIED_NV = $8F1F;
6727   GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = $8F20;
6728   GL_VERTEX_ARRAY_ADDRESS_NV = $8F21;
6729   GL_NORMAL_ARRAY_ADDRESS_NV = $8F22;
6730   GL_COLOR_ARRAY_ADDRESS_NV = $8F23;
6731   GL_INDEX_ARRAY_ADDRESS_NV = $8F24;
6732   GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = $8F25;
6733   GL_EDGE_FLAG_ARRAY_ADDRESS_NV = $8F26;
6734   GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = $8F27;
6735   GL_FOG_COORD_ARRAY_ADDRESS_NV = $8F28;
6736   GL_ELEMENT_ARRAY_ADDRESS_NV = $8F29;
6737   GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = $8F2A;
6738   GL_VERTEX_ARRAY_LENGTH_NV = $8F2B;
6739   GL_NORMAL_ARRAY_LENGTH_NV = $8F2C;
6740   GL_COLOR_ARRAY_LENGTH_NV = $8F2D;
6741   GL_INDEX_ARRAY_LENGTH_NV = $8F2E;
6742   GL_TEXTURE_COORD_ARRAY_LENGTH_NV = $8F2F;
6743   GL_EDGE_FLAG_ARRAY_LENGTH_NV = $8F30;
6744   GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = $8F31;
6745   GL_FOG_COORD_ARRAY_LENGTH_NV = $8F32;
6746   GL_ELEMENT_ARRAY_LENGTH_NV = $8F33;
6747   GL_DRAW_INDIRECT_UNIFIED_NV = $8F40;
6748   GL_DRAW_INDIRECT_ADDRESS_NV = $8F41;
6749   GL_DRAW_INDIRECT_LENGTH_NV = $8F42;
6750
6751   // GL_NV_gpu_program5
6752   GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = $8E5A;
6753   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5B;
6754   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5C;
6755   GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = $8E5D;
6756   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5E;
6757   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5F;
6758   GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = $8F44;
6759   GL_MAX_PROGRAM_SUBROUTINE_NUM_NV = $8F45;
6760
6761   // GL_NV_gpu_shader5
6762   GL_INT64_NV = $140E;
6763   GL_UNSIGNED_INT64_NV = $140F;
6764   GL_INT8_NV = $8FE0;
6765   GL_INT8_VEC2_NV = $8FE1;
6766   GL_INT8_VEC3_NV = $8FE2;
6767   GL_INT8_VEC4_NV = $8FE3;
6768   GL_INT16_NV = $8FE4;
6769   GL_INT16_VEC2_NV = $8FE5;
6770   GL_INT16_VEC3_NV = $8FE6;
6771   GL_INT16_VEC4_NV = $8FE7;
6772   GL_INT64_VEC2_NV = $8FE9;
6773   GL_INT64_VEC3_NV = $8FEA;
6774   GL_INT64_VEC4_NV = $8FEB;
6775   GL_UNSIGNED_INT8_NV = $8FEC;
6776   GL_UNSIGNED_INT8_VEC2_NV = $8FED;
6777   GL_UNSIGNED_INT8_VEC3_NV = $8FEE;
6778   GL_UNSIGNED_INT8_VEC4_NV = $8FEF;
6779   GL_UNSIGNED_INT16_NV = $8FF0;
6780   GL_UNSIGNED_INT16_VEC2_NV = $8FF1;
6781   GL_UNSIGNED_INT16_VEC3_NV = $8FF2;
6782   GL_UNSIGNED_INT16_VEC4_NV = $8FF3;
6783   GL_UNSIGNED_INT64_VEC2_NV = $8FF5;
6784   GL_UNSIGNED_INT64_VEC3_NV = $8FF6;
6785   GL_UNSIGNED_INT64_VEC4_NV = $8FF7;
6786   GL_FLOAT16_NV = $8FF8;
6787   GL_FLOAT16_VEC2_NV = $8FF9;
6788   GL_FLOAT16_VEC3_NV = $8FFA;
6789   GL_FLOAT16_VEC4_NV = $8FFB;
6790   { reuse GL_PATCHES }
6791
6792   // GL_NV_shader_buffer_store
6793   GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = $00000010;
6794   { reuse GL_READ_WRITE }
6795   { reuse GL_WRITE_ONLY }
6796
6797   // GL_NV_tessellation_program5
6798   GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = $86D8;
6799   GL_TESS_CONTROL_PROGRAM_NV = $891E;
6800   GL_TESS_EVALUATION_PROGRAM_NV = $891F;
6801   GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = $8C74;
6802   GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = $8C75;
6803
6804   // GL_NV_vertex_attrib_integer_64bit
6805   { reuse GL_INT64_NV }
6806   { reuse GL_UNSIGNED_INT64_NV }
6807
6808   // GL_NV_multisample_coverage
6809   GL_COVERAGE_SAMPLES_NV = $80A9;
6810   GL_COLOR_SAMPLES_NV = $8E20;
6811
6812   // GL_NV_vdpau_interop
6813   GL_SURFACE_STATE_NV = $86EB;
6814   GL_SURFACE_REGISTERED_NV = $86FD;
6815   GL_SURFACE_MAPPED_NV = $8700;
6816   GL_WRITE_DISCARD_NV = $88BE;
6817
6818   // GL_OML_interlace
6819   GL_INTERLACE_OML = $8980;
6820   GL_INTERLACE_READ_OML = $8981;
6821
6822   // GL_OML_resample
6823   GL_PACK_RESAMPLE_OML = $8984;
6824   GL_UNPACK_RESAMPLE_OML = $8985;
6825   GL_RESAMPLE_REPLICATE_OML = $8986;
6826   GL_RESAMPLE_ZERO_FILL_OML = $8987;
6827   GL_RESAMPLE_AVERAGE_OML = $8988;
6828   GL_RESAMPLE_DECIMATE_OML = $8989;
6829
6830   // GL_OML_subsample
6831   GL_FORMAT_SUBSAMPLE_24_24_OML = $8982;
6832   GL_FORMAT_SUBSAMPLE_244_244_OML = $8983;
6833
6834   // GL_PGI_misc_hints
6835   GL_PREFER_DOUBLEBUFFER_HINT_PGI = $1A1F8;
6836   GL_CONSERVE_MEMORY_HINT_PGI = $1A1FD;
6837   GL_RECLAIM_MEMORY_HINT_PGI = $1A1FE;
6838   GL_NATIVE_GRAPHICS_HANDLE_PGI = $1A202;
6839   GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = $1A203;
6840   GL_NATIVE_GRAPHICS_END_HINT_PGI = $1A204;
6841   GL_ALWAYS_FAST_HINT_PGI = $1A20C;
6842   GL_ALWAYS_SOFT_HINT_PGI = $1A20D;
6843   GL_ALLOW_DRAW_OBJ_HINT_PGI = $1A20E;
6844   GL_ALLOW_DRAW_WIN_HINT_PGI = $1A20F;
6845   GL_ALLOW_DRAW_FRG_HINT_PGI = $1A210;
6846   GL_ALLOW_DRAW_MEM_HINT_PGI = $1A211;
6847   GL_STRICT_DEPTHFUNC_HINT_PGI = $1A216;
6848   GL_STRICT_LIGHTING_HINT_PGI = $1A217;
6849   GL_STRICT_SCISSOR_HINT_PGI = $1A218;
6850   GL_FULL_STIPPLE_HINT_PGI = $1A219;
6851   GL_CLIP_NEAR_HINT_PGI = $1A220;
6852   GL_CLIP_FAR_HINT_PGI = $1A221;
6853   GL_WIDE_LINE_HINT_PGI = $1A222;
6854   GL_BACK_NORMALS_HINT_PGI = $1A223;
6855
6856   // GL_PGI_vertex_hints
6857   GL_VERTEX_DATA_HINT_PGI = $1A22A;
6858   GL_VERTEX_CONSISTENT_HINT_PGI = $1A22B;
6859   GL_MATERIAL_SIDE_HINT_PGI = $1A22C;
6860   GL_MAX_VERTEX_HINT_PGI = $1A22D;
6861   GL_COLOR3_BIT_PGI = $00010000;
6862   GL_COLOR4_BIT_PGI = $00020000;
6863   GL_EDGEFLAG_BIT_PGI = $00040000;
6864   GL_INDEX_BIT_PGI = $00080000;
6865   GL_MAT_AMBIENT_BIT_PGI = $00100000;
6866   GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = $00200000;
6867   GL_MAT_DIFFUSE_BIT_PGI = $00400000;
6868   GL_MAT_EMISSION_BIT_PGI = $00800000;
6869   GL_MAT_COLOR_INDEXES_BIT_PGI = $01000000;
6870   GL_MAT_SHININESS_BIT_PGI = $02000000;
6871   GL_MAT_SPECULAR_BIT_PGI = $04000000;
6872   GL_NORMAL_BIT_PGI = $08000000;
6873   GL_TEXCOORD1_BIT_PGI = $10000000;
6874   GL_TEXCOORD2_BIT_PGI = $20000000;
6875   GL_TEXCOORD3_BIT_PGI = $40000000;
6876   GL_TEXCOORD4_BIT_PGI = $80000000;
6877   GL_VERTEX23_BIT_PGI = $00000004;
6878   GL_VERTEX4_BIT_PGI = $00000008;
6879
6880   // GL_REND_screen_coordinates
6881   GL_SCREEN_COORDINATES_REND = $8490;
6882   GL_INVERTED_SCREEN_W_REND = $8491;
6883
6884   // GL_S3_s3tc
6885   GL_RGB_S3TC = $83A0;
6886   GL_RGB4_S3TC = $83A1;
6887   GL_RGBA_S3TC = $83A2;
6888   GL_RGBA4_S3TC = $83A3;
6889
6890   // GL_SGIS_detail_texture
6891   GL_DETAIL_TEXTURE_2D_SGIS = $8095;
6892   GL_DETAIL_TEXTURE_2D_BINDING_SGIS = $8096;
6893   GL_LINEAR_DETAIL_SGIS = $8097;
6894   GL_LINEAR_DETAIL_ALPHA_SGIS = $8098;
6895   GL_LINEAR_DETAIL_COLOR_SGIS = $8099;
6896   GL_DETAIL_TEXTURE_LEVEL_SGIS = $809A;
6897   GL_DETAIL_TEXTURE_MODE_SGIS = $809B;
6898   GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = $809C;
6899
6900   // GL_SGIS_fog_function
6901   GL_FOG_FUNC_SGIS = $812A;
6902   GL_FOG_FUNC_POINTS_SGIS = $812B;
6903   GL_MAX_FOG_FUNC_POINTS_SGIS = $812C;
6904
6905   // GL_SGIS_generate_mipmap
6906   GL_GENERATE_MIPMAP_SGIS = $8191;
6907   GL_GENERATE_MIPMAP_HINT_SGIS = $8192;
6908
6909   // GL_SGIS_multisample
6910   GL_MULTISAMPLE_SGIS = $809D;
6911   GL_SAMPLE_ALPHA_TO_MASK_SGIS = $809E;
6912   GL_SAMPLE_ALPHA_TO_ONE_SGIS = $809F;
6913   GL_SAMPLE_MASK_SGIS = $80A0;
6914   GL_1PASS_SGIS = $80A1;
6915   GL_2PASS_0_SGIS = $80A2;
6916   GL_2PASS_1_SGIS = $80A3;
6917   GL_4PASS_0_SGIS = $80A4;
6918   GL_4PASS_1_SGIS = $80A5;
6919   GL_4PASS_2_SGIS = $80A6;
6920   GL_4PASS_3_SGIS = $80A7;
6921   GL_SAMPLE_BUFFERS_SGIS = $80A8;
6922   GL_SAMPLES_SGIS = $80A9;
6923   GL_SAMPLE_MASK_VALUE_SGIS = $80AA;
6924   GL_SAMPLE_MASK_INVERT_SGIS = $80AB;
6925   GL_SAMPLE_PATTERN_SGIS = $80AC;
6926
6927   // GL_SGIS_pixel_texture
6928   GL_PIXEL_TEXTURE_SGIS = $8353;
6929   GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = $8354;
6930   GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = $8355;
6931   GL_PIXEL_GROUP_COLOR_SGIS = $8356;
6932
6933   // GL_SGIS_point_line_texgen
6934   GL_EYE_DISTANCE_TO_POINT_SGIS = $81F0;
6935   GL_OBJECT_DISTANCE_TO_POINT_SGIS = $81F1;
6936   GL_EYE_DISTANCE_TO_LINE_SGIS = $81F2;
6937   GL_OBJECT_DISTANCE_TO_LINE_SGIS = $81F3;
6938   GL_EYE_POINT_SGIS = $81F4;
6939   GL_OBJECT_POINT_SGIS = $81F5;
6940   GL_EYE_LINE_SGIS = $81F6;
6941   GL_OBJECT_LINE_SGIS = $81F7;
6942
6943   // GL_SGIS_point_parameters
6944   GL_POINT_SIZE_MIN_SGIS = $8126;
6945   GL_POINT_SIZE_MAX_SGIS = $8127;
6946   GL_POINT_FADE_THRESHOLD_SIZE_SGIS = $8128;
6947   GL_DISTANCE_ATTENUATION_SGIS = $8129;
6948
6949   // GL_SGIS_sharpen_texture
6950   GL_LINEAR_SHARPEN_SGIS = $80AD;
6951   GL_LINEAR_SHARPEN_ALPHA_SGIS = $80AE;
6952   GL_LINEAR_SHARPEN_COLOR_SGIS = $80AF;
6953   GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = $80B0;
6954
6955   // GL_SGIS_texture4D
6956   GL_PACK_SKIP_VOLUMES_SGIS = $8130;
6957   GL_PACK_IMAGE_DEPTH_SGIS = $8131;
6958   GL_UNPACK_SKIP_VOLUMES_SGIS = $8132;
6959   GL_UNPACK_IMAGE_DEPTH_SGIS = $8133;
6960   GL_TEXTURE_4D_SGIS = $8134;
6961   GL_PROXY_TEXTURE_4D_SGIS = $8135;
6962   GL_TEXTURE_4DSIZE_SGIS = $8136;
6963   GL_TEXTURE_WRAP_Q_SGIS = $8137;
6964   GL_MAX_4D_TEXTURE_SIZE_SGIS = $8138;
6965   GL_TEXTURE_4D_BINDING_SGIS = $814F;
6966
6967   // GL_SGIS_texture_color_mask
6968   GL_TEXTURE_COLOR_WRITEMASK_SGIS = $81EF;
6969
6970   // GL_SGIS_texture_edge_clamp
6971   GL_CLAMP_TO_EDGE_SGIS = $812F;
6972
6973   // GL_SGIS_texture_filter4
6974   GL_FILTER4_SGIS = $8146;
6975   GL_TEXTURE_FILTER4_SIZE_SGIS = $8147;
6976
6977   // GL_SGIS_texture_lod
6978   GL_TEXTURE_MIN_LOD_SGIS = $813A;
6979   GL_TEXTURE_MAX_LOD_SGIS = $813B;
6980   GL_TEXTURE_BASE_LEVEL_SGIS = $813C;
6981   GL_TEXTURE_MAX_LEVEL_SGIS = $813D;
6982
6983   // GL_SGIS_texture_select
6984   GL_DUAL_ALPHA4_SGIS = $8110;
6985   GL_DUAL_ALPHA8_SGIS = $8111;
6986   GL_DUAL_ALPHA12_SGIS = $8112;
6987   GL_DUAL_ALPHA16_SGIS = $8113;
6988   GL_DUAL_LUMINANCE4_SGIS = $8114;
6989   GL_DUAL_LUMINANCE8_SGIS = $8115;
6990   GL_DUAL_LUMINANCE12_SGIS = $8116;
6991   GL_DUAL_LUMINANCE16_SGIS = $8117;
6992   GL_DUAL_INTENSITY4_SGIS = $8118;
6993   GL_DUAL_INTENSITY8_SGIS = $8119;
6994   GL_DUAL_INTENSITY12_SGIS = $811A;
6995   GL_DUAL_INTENSITY16_SGIS = $811B;
6996   GL_DUAL_LUMINANCE_ALPHA4_SGIS = $811C;
6997   GL_DUAL_LUMINANCE_ALPHA8_SGIS = $811D;
6998   GL_QUAD_ALPHA4_SGIS = $811E;
6999   GL_QUAD_ALPHA8_SGIS = $811F;
7000   GL_QUAD_LUMINANCE4_SGIS = $8120;
7001   GL_QUAD_LUMINANCE8_SGIS = $8121;
7002   GL_QUAD_INTENSITY4_SGIS = $8122;
7003   GL_QUAD_INTENSITY8_SGIS = $8123;
7004   GL_DUAL_TEXTURE_SELECT_SGIS = $8124;
7005   GL_QUAD_TEXTURE_SELECT_SGIS = $8125;
7006
7007   // GL_SGIX_async
7008   GL_ASYNC_MARKER_SGIX = $8329;
7009
7010   // GL_SGIX_async_histogram
7011   GL_ASYNC_HISTOGRAM_SGIX = $832C;
7012   GL_MAX_ASYNC_HISTOGRAM_SGIX = $832D;
7013
7014   // GL_SGIX_async_pixel
7015   GL_ASYNC_TEX_IMAGE_SGIX = $835C;
7016   GL_ASYNC_DRAW_PIXELS_SGIX = $835D;
7017   GL_ASYNC_READ_PIXELS_SGIX = $835E;
7018   GL_MAX_ASYNC_TEX_IMAGE_SGIX = $835F;
7019   GL_MAX_ASYNC_DRAW_PIXELS_SGIX = $8360;
7020   GL_MAX_ASYNC_READ_PIXELS_SGIX = $8361;
7021
7022   // GL_SGIX_blend_alpha_minmax
7023   GL_ALPHA_MIN_SGIX = $8320;
7024   GL_ALPHA_MAX_SGIX = $8321;
7025
7026   // GL_SGIX_calligraphic_fragment
7027   GL_CALLIGRAPHIC_FRAGMENT_SGIX = $8183;
7028
7029   // GL_SGIX_clipmap
7030   GL_LINEAR_CLIPMAP_LINEAR_SGIX = $8170;
7031   GL_TEXTURE_CLIPMAP_CENTER_SGIX = $8171;
7032   GL_TEXTURE_CLIPMAP_FRAME_SGIX = $8172;
7033   GL_TEXTURE_CLIPMAP_OFFSET_SGIX = $8173;
7034   GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8174;
7035   GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = $8175;
7036   GL_TEXTURE_CLIPMAP_DEPTH_SGIX = $8176;
7037   GL_MAX_CLIPMAP_DEPTH_SGIX = $8177;
7038   GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8178;
7039   GL_NEAREST_CLIPMAP_NEAREST_SGIX = $844D;
7040   GL_NEAREST_CLIPMAP_LINEAR_SGIX = $844E;
7041   GL_LINEAR_CLIPMAP_NEAREST_SGIX = $844F;
7042
7043   // GL_SGIX_convolution_accuracy
7044   GL_CONVOLUTION_HINT_SGIX = $8316;
7045
7046   // GL_SGIX_depth_texture
7047   GL_DEPTH_COMPONENT16_SGIX = $81A5;
7048   GL_DEPTH_COMPONENT24_SGIX = $81A6;
7049   GL_DEPTH_COMPONENT32_SGIX = $81A7;
7050
7051   // GL_SGIX_fog_offset
7052   GL_FOG_OFFSET_SGIX = $8198;
7053   GL_FOG_OFFSET_VALUE_SGIX = $8199;
7054
7055   // GL_SGIX_fog_scale
7056   GL_FOG_SCALE_SGIX = $81FC;
7057   GL_FOG_SCALE_VALUE_SGIX = $81FD;
7058
7059   // GL_SGIX_fragment_lighting
7060   GL_FRAGMENT_LIGHTING_SGIX = $8400;
7061   GL_FRAGMENT_COLOR_MATERIAL_SGIX = $8401;
7062   GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = $8402;
7063   GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = $8403;
7064   GL_MAX_FRAGMENT_LIGHTS_SGIX = $8404;
7065   GL_MAX_ACTIVE_LIGHTS_SGIX = $8405;
7066   GL_CURRENT_RASTER_NORMAL_SGIX = $8406;
7067   GL_LIGHT_ENV_MODE_SGIX = $8407;
7068   GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = $8408;
7069   GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = $8409;
7070   GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = $840A;
7071   GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = $840B;
7072   GL_FRAGMENT_LIGHT0_SGIX = $840C;
7073   GL_FRAGMENT_LIGHT1_SGIX = $840D;
7074   GL_FRAGMENT_LIGHT2_SGIX = $840E;
7075   GL_FRAGMENT_LIGHT3_SGIX = $840F;
7076   GL_FRAGMENT_LIGHT4_SGIX = $8410;
7077   GL_FRAGMENT_LIGHT5_SGIX = $8411;
7078   GL_FRAGMENT_LIGHT6_SGIX = $8412;
7079   GL_FRAGMENT_LIGHT7_SGIX = $8413;
7080
7081   // GL_SGIX_framezoom
7082   GL_FRAMEZOOM_SGIX = $818B;
7083   GL_FRAMEZOOM_FACTOR_SGIX = $818C;
7084   GL_MAX_FRAMEZOOM_FACTOR_SGIX = $818D;
7085
7086   // GL_SGIX_impact_pixel_texture
7087   GL_PIXEL_TEX_GEN_Q_CEILING_SGIX = $8184;
7088   GL_PIXEL_TEX_GEN_Q_ROUND_SGIX = $8185;
7089   GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX = $8186;
7090   GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = $8187;
7091   GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = $8188;
7092   GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX = $8189;
7093   GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX = $818A;
7094
7095   // GL_SGIX_instruments
7096   GL_INSTRUMENT_BUFFER_POINTER_SGIX = $8180;
7097   GL_INSTRUMENT_MEASUREMENTS_SGIX = $8181;
7098
7099   // GL_SGIX_interlace
7100   GL_INTERLACE_SGIX = $8094;
7101
7102   // GL_SGIX_ir_instrument1
7103   GL_IR_INSTRUMENT1_SGIX = $817F;
7104
7105   // GL_SGIX_list_priority
7106   GL_LIST_PRIORITY_SGIX = $8182;
7107
7108   // GL_SGIX_pixel_texture
7109   GL_PIXEL_TEX_GEN_SGIX = $8139;
7110   GL_PIXEL_TEX_GEN_MODE_SGIX = $832B;
7111
7112   // GL_SGIX_pixel_tiles
7113   GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = $813E;
7114   GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = $813F;
7115   GL_PIXEL_TILE_WIDTH_SGIX = $8140;
7116   GL_PIXEL_TILE_HEIGHT_SGIX = $8141;
7117   GL_PIXEL_TILE_GRID_WIDTH_SGIX = $8142;
7118   GL_PIXEL_TILE_GRID_HEIGHT_SGIX = $8143;
7119   GL_PIXEL_TILE_GRID_DEPTH_SGIX = $8144;
7120   GL_PIXEL_TILE_CACHE_SIZE_SGIX = $8145;
7121
7122   // GL_SGIX_polynomial_ffd
7123   GL_GEOMETRY_DEFORMATION_SGIX = $8194;
7124   GL_TEXTURE_DEFORMATION_SGIX = $8195;
7125   GL_DEFORMATIONS_MASK_SGIX = $8196;
7126   GL_MAX_DEFORMATION_ORDER_SGIX = $8197;
7127
7128   // GL_SGIX_reference_plane
7129   GL_REFERENCE_PLANE_SGIX = $817D;
7130   GL_REFERENCE_PLANE_EQUATION_SGIX = $817E;
7131
7132   // GL_SGIX_resample
7133   GL_PACK_RESAMPLE_SGIX = $842C;
7134   GL_UNPACK_RESAMPLE_SGIX = $842D;
7135   GL_RESAMPLE_REPLICATE_SGIX = $842E;
7136   GL_RESAMPLE_ZERO_FILL_SGIX = $842F;
7137   GL_RESAMPLE_DECIMATE_SGIX = $8430;
7138
7139   // GL_SGIX_scalebias_hint
7140   GL_SCALEBIAS_HINT_SGIX = $8322;
7141
7142   // GL_SGIX_shadow
7143   GL_TEXTURE_COMPARE_SGIX = $819A;
7144   GL_TEXTURE_COMPARE_OPERATOR_SGIX = $819B;
7145   GL_TEXTURE_LEQUAL_R_SGIX = $819C;
7146   GL_TEXTURE_GEQUAL_R_SGIX = $819D;
7147
7148   // GL_SGIX_shadow_ambient
7149   GL_SHADOW_AMBIENT_SGIX = $80BF;
7150
7151   // GL_SGIX_sprite
7152   GL_SPRITE_SGIX = $8148;
7153   GL_SPRITE_MODE_SGIX = $8149;
7154   GL_SPRITE_AXIS_SGIX = $814A;
7155   GL_SPRITE_TRANSLATION_SGIX = $814B;
7156   GL_SPRITE_AXIAL_SGIX = $814C;
7157   GL_SPRITE_OBJECT_ALIGNED_SGIX = $814D;
7158   GL_SPRITE_EYE_ALIGNED_SGIX = $814E;
7159
7160   // GL_SGIX_subsample
7161   GL_PACK_SUBSAMPLE_RATE_SGIX = $85A0;
7162   GL_UNPACK_SUBSAMPLE_RATE_SGIX = $85A1;
7163   GL_PIXEL_SUBSAMPLE_4444_SGIX = $85A2;
7164   GL_PIXEL_SUBSAMPLE_2424_SGIX = $85A3;
7165   GL_PIXEL_SUBSAMPLE_4242_SGIX = $85A4;
7166
7167   // GL_SGIX_texture_add_env
7168   GL_TEXTURE_ENV_BIAS_SGIX = $80BE;
7169
7170   // GL_SGIX_texture_coordinate_clamp
7171   GL_TEXTURE_MAX_CLAMP_S_SGIX = $8369;
7172   GL_TEXTURE_MAX_CLAMP_T_SGIX = $836A;
7173   GL_TEXTURE_MAX_CLAMP_R_SGIX = $836B;
7174
7175   // GL_SGIX_texture_lod_bias
7176   GL_TEXTURE_LOD_BIAS_S_SGIX = $818E;
7177   GL_TEXTURE_LOD_BIAS_T_SGIX = $818F;
7178   GL_TEXTURE_LOD_BIAS_R_SGIX = $8190;
7179
7180   // GL_SGIX_texture_multi_buffer
7181   GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = $812E;
7182
7183   // GL_SGIX_texture_scale_bias
7184   GL_POST_TEXTURE_FILTER_BIAS_SGIX = $8179;
7185   GL_POST_TEXTURE_FILTER_SCALE_SGIX = $817A;
7186   GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = $817B;
7187   GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = $817C;
7188
7189   // GL_SGIX_vertex_preclip
7190   GL_VERTEX_PRECLIP_SGIX = $83EE;
7191   GL_VERTEX_PRECLIP_HINT_SGIX = $83EF;
7192
7193   // GL_SGIX_ycrcb
7194   GL_YCRCB_422_SGIX = $81BB;
7195   GL_YCRCB_444_SGIX = $81BC;
7196
7197   // GL_SGIX_ycrcba
7198   GL_YCRCB_SGIX = $8318;
7199   GL_YCRCBA_SGIX = $8319;
7200
7201   // GL_SGI_color_matrix
7202   GL_COLOR_MATRIX_SGI = $80B1;
7203   GL_COLOR_MATRIX_STACK_DEPTH_SGI = $80B2;
7204   GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = $80B3;
7205   GL_POST_COLOR_MATRIX_RED_SCALE_SGI = $80B4;
7206   GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = $80B5;
7207   GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = $80B6;
7208   GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = $80B7;
7209   GL_POST_COLOR_MATRIX_RED_BIAS_SGI = $80B8;
7210   GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = $80B9;
7211   GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = $80BA;
7212   GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = $80BB;
7213
7214   // GL_SGI_color_table
7215   GL_COLOR_TABLE_SGI = $80D0;
7216   GL_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D1;
7217   GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D2;
7218   GL_PROXY_COLOR_TABLE_SGI = $80D3;
7219   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D4;
7220   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D5;
7221   GL_COLOR_TABLE_SCALE_SGI = $80D6;
7222   GL_COLOR_TABLE_BIAS_SGI = $80D7;
7223   GL_COLOR_TABLE_FORMAT_SGI = $80D8;
7224   GL_COLOR_TABLE_WIDTH_SGI = $80D9;
7225   GL_COLOR_TABLE_RED_SIZE_SGI = $80DA;
7226   GL_COLOR_TABLE_GREEN_SIZE_SGI = $80DB;
7227   GL_COLOR_TABLE_BLUE_SIZE_SGI = $80DC;
7228   GL_COLOR_TABLE_ALPHA_SIZE_SGI = $80DD;
7229   GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = $80DE;
7230   GL_COLOR_TABLE_INTENSITY_SIZE_SGI = $80DF;
7231
7232   // GL_SGI_depth_pass_instrument
7233   GL_DEPTH_PASS_INSTRUMENT_SGIX = $8310;
7234   GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = $8311;
7235   GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX = $8312;
7236
7237   // GL_SGI_texture_color_table
7238   GL_TEXTURE_COLOR_TABLE_SGI = $80BC;
7239   GL_PROXY_TEXTURE_COLOR_TABLE_SGI = $80BD;
7240
7241   // GL_SUNX_constant_data
7242   GL_UNPACK_CONSTANT_DATA_SUNX = $81D5;
7243   GL_TEXTURE_CONSTANT_DATA_SUNX = $81D6;
7244
7245   // GL_SUN_convolution_border_modes
7246   GL_WRAP_BORDER_SUN = $81D4;
7247
7248   // GL_SUN_global_alpha
7249   GL_GLOBAL_ALPHA_SUN = $81D9;
7250   GL_GLOBAL_ALPHA_FACTOR_SUN = $81DA;
7251
7252   // GL_SUN_mesh_array
7253   GL_QUAD_MESH_SUN = $8614;
7254   GL_TRIANGLE_MESH_SUN = $8615;
7255
7256   // GL_SUN_slice_accum
7257   GL_SLICE_ACCUM_SUN = $85CC;
7258
7259   // GL_SUN_triangle_list
7260   GL_RESTART_SUN = $0001;
7261   GL_REPLACE_MIDDLE_SUN = $0002;
7262   GL_REPLACE_OLDEST_SUN = $0003;
7263   GL_TRIANGLE_LIST_SUN = $81D7;
7264   GL_REPLACEMENT_CODE_SUN = $81D8;
7265   GL_REPLACEMENT_CODE_ARRAY_SUN = $85C0;
7266   GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = $85C1;
7267   GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = $85C2;
7268   GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = $85C3;
7269   GL_R1UI_V3F_SUN = $85C4;
7270   GL_R1UI_C4UB_V3F_SUN = $85C5;
7271   GL_R1UI_C3F_V3F_SUN = $85C6;
7272   GL_R1UI_N3F_V3F_SUN = $85C7;
7273   GL_R1UI_C4F_N3F_V3F_SUN = $85C8;
7274   GL_R1UI_T2F_V3F_SUN = $85C9;
7275   GL_R1UI_T2F_N3F_V3F_SUN = $85CA;
7276   GL_R1UI_T2F_C4F_N3F_V3F_SUN = $85CB;
7277
7278   // GL_WIN_phong_shading
7279   GL_PHONG_WIN = $80EA;
7280   GL_PHONG_HINT_WIN = $80EB;
7281
7282   // GL_WIN_specular_fog
7283   GL_FOG_SPECULAR_TEXTURE_WIN = $80EC;
7284
7285    // GL_ARB_vertex_shader
7286   GL_VERTEX_SHADER_ARB = $8B31;
7287   GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = $8B4A;
7288   GL_MAX_VARYING_FLOATS_ARB = $8B4B;
7289   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
7290   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = $8B4D;
7291   GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = $8B89;
7292   GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = $8B8A;
7293
7294   // GL_ARB_fragment_shader
7295   GL_FRAGMENT_SHADER_ARB = $8B30;
7296   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = $8B49; // 1.4
7297   GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = $8B8B; // 1.4
7298
7299   // GL_ARB_occlusion_query
7300   GL_SAMPLES_PASSED_ARB = $8914;
7301   GL_QUERY_COUNTER_BITS_ARB = $8864;
7302   GL_CURRENT_QUERY_ARB = $8865;
7303   GL_QUERY_RESULT_ARB = $8866;
7304   GL_QUERY_RESULT_AVAILABLE_ARB = $8867;
7305
7306   // GL_ARB_point_sprite
7307   GL_POINT_SPRITE_ARB = $8861;
7308   GL_COORD_REPLACE_ARB = $8862;
7309
7310   // GL_ARB_shading_language_100
7311   GL_SHADING_LANGUAGE_VERSION_ARB = $8B8C; // 1.4
7312
7313   // GL_ARB_shader_objects
7314   GL_PROGRAM_OBJECT_ARB = $8B40;
7315
7316   GL_OBJECT_TYPE_ARB = $8B4E;
7317   GL_OBJECT_SUBTYPE_ARB = $8B4F;
7318   GL_OBJECT_DELETE_STATUS_ARB = $8B80;
7319   GL_OBJECT_COMPILE_STATUS_ARB = $8B81;
7320   GL_OBJECT_LINK_STATUS_ARB = $8B82;
7321   GL_OBJECT_VALIDATE_STATUS_ARB = $8B83;
7322   GL_OBJECT_INFO_LOG_LENGTH_ARB = $8B84;
7323   GL_OBJECT_ATTACHED_OBJECTS_ARB = $8B85;
7324   GL_OBJECT_ACTIVE_UNIFORMS_ARB = $8B86;
7325   GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = $8B87;
7326   GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = $8B88;
7327
7328   GL_SHADER_OBJECT_ARB = $8B48;
7329
7330   GL_FLOAT_VEC2_ARB = $8B50;
7331   GL_FLOAT_VEC3_ARB = $8B51;
7332   GL_FLOAT_VEC4_ARB = $8B52;
7333   GL_INT_VEC2_ARB = $8B53;
7334   GL_INT_VEC3_ARB = $8B54;
7335   GL_INT_VEC4_ARB = $8B55;
7336   GL_BOOL_ARB = $8B56;
7337   GL_BOOL_VEC2_ARB = $8B57;
7338   GL_BOOL_VEC3_ARB = $8B58;
7339   GL_BOOL_VEC4_ARB = $8B59;
7340   GL_FLOAT_MAT2_ARB = $8B5A;
7341   GL_FLOAT_MAT3_ARB = $8B5B;
7342   GL_FLOAT_MAT4_ARB = $8B5C;
7343   GL_SAMPLER_1D_ARB = $8B5D;
7344   GL_SAMPLER_2D_ARB = $8B5E;
7345   GL_SAMPLER_3D_ARB = $8B5F;
7346   GL_SAMPLER_CUBE_ARB = $8B60;
7347   GL_SAMPLER_1D_SHADOW_ARB = $8B61;
7348   GL_SAMPLER_2D_SHADOW_ARB = $8B62;
7349   GL_SAMPLER_2D_RECT_ARB = $8B63;
7350   GL_SAMPLER_2D_RECT_SHADOW_ARB = $8B64;
7351
7352   // WGL_3DFX_multisample
7353   WGL_SAMPLE_BUFFERS_3DFX = $2060;
7354   WGL_SAMPLES_3DFX = $2061;
7355
7356   // WGL_ARB_buffer_region
7357   WGL_FRONT_COLOR_BUFFER_BIT_ARB = $00000001;
7358   WGL_BACK_COLOR_BUFFER_BIT_ARB = $00000002;
7359   WGL_DEPTH_BUFFER_BIT_ARB = $00000004;
7360   WGL_STENCIL_BUFFER_BIT_ARB = $00000008;
7361
7362   // WGL_ARB_make_current_read
7363   ERROR_INVALID_PIXEL_TYPE_ARB = $2043;
7364   ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB = $2054;
7365
7366   // WGL_ARB_multisample
7367   WGL_SAMPLE_BUFFERS_ARB = $2041;
7368   WGL_SAMPLES_ARB = $2042;
7369
7370   // WGL_ARB_pbuffer
7371   WGL_DRAW_TO_PBUFFER_ARB = $202D;
7372   WGL_MAX_PBUFFER_PIXELS_ARB = $202E;
7373   WGL_MAX_PBUFFER_WIDTH_ARB = $202F;
7374   WGL_MAX_PBUFFER_HEIGHT_ARB = $2030;
7375   WGL_PBUFFER_LARGEST_ARB = $2033;
7376   WGL_PBUFFER_WIDTH_ARB = $2034;
7377   WGL_PBUFFER_HEIGHT_ARB = $2035;
7378   WGL_PBUFFER_LOST_ARB = $2036;
7379
7380   // WGL_ARB_pixel_format
7381   WGL_NUMBER_PIXEL_FORMATS_ARB = $2000;
7382   WGL_DRAW_TO_WINDOW_ARB = $2001;
7383   WGL_DRAW_TO_BITMAP_ARB = $2002;
7384   WGL_ACCELERATION_ARB = $2003;
7385   WGL_NEED_PALETTE_ARB = $2004;
7386   WGL_NEED_SYSTEM_PALETTE_ARB = $2005;
7387   WGL_SWAP_LAYER_BUFFERS_ARB = $2006;
7388   WGL_SWAP_METHOD_ARB = $2007;
7389   WGL_NUMBER_OVERLAYS_ARB = $2008;
7390   WGL_NUMBER_UNDERLAYS_ARB = $2009;
7391   WGL_TRANSPARENT_ARB = $200A;
7392   WGL_TRANSPARENT_RED_VALUE_ARB = $2037;
7393   WGL_TRANSPARENT_GREEN_VALUE_ARB = $2038;
7394   WGL_TRANSPARENT_BLUE_VALUE_ARB = $2039;
7395   WGL_TRANSPARENT_ALPHA_VALUE_ARB = $203A;
7396   WGL_TRANSPARENT_INDEX_VALUE_ARB = $203B;
7397   WGL_SHARE_DEPTH_ARB = $200C;
7398   WGL_SHARE_STENCIL_ARB = $200D;
7399   WGL_SHARE_ACCUM_ARB = $200E;
7400   WGL_SUPPORT_GDI_ARB = $200F;
7401   WGL_SUPPORT_OPENGL_ARB = $2010;
7402   WGL_DOUBLE_BUFFER_ARB = $2011;
7403   WGL_STEREO_ARB = $2012;
7404   WGL_PIXEL_TYPE_ARB = $2013;
7405   WGL_COLOR_BITS_ARB = $2014;
7406   WGL_RED_BITS_ARB = $2015;
7407   WGL_RED_SHIFT_ARB = $2016;
7408   WGL_GREEN_BITS_ARB = $2017;
7409   WGL_GREEN_SHIFT_ARB = $2018;
7410   WGL_BLUE_BITS_ARB = $2019;
7411   WGL_BLUE_SHIFT_ARB = $201A;
7412   WGL_ALPHA_BITS_ARB = $201B;
7413   WGL_ALPHA_SHIFT_ARB = $201C;
7414   WGL_ACCUM_BITS_ARB = $201D;
7415   WGL_ACCUM_RED_BITS_ARB = $201E;
7416   WGL_ACCUM_GREEN_BITS_ARB = $201F;
7417   WGL_ACCUM_BLUE_BITS_ARB = $2020;
7418   WGL_ACCUM_ALPHA_BITS_ARB = $2021;
7419   WGL_DEPTH_BITS_ARB = $2022;
7420   WGL_STENCIL_BITS_ARB = $2023;
7421   WGL_AUX_BUFFERS_ARB = $2024;
7422   WGL_NO_ACCELERATION_ARB = $2025;
7423   WGL_GENERIC_ACCELERATION_ARB = $2026;
7424   WGL_FULL_ACCELERATION_ARB = $2027;
7425   WGL_SWAP_EXCHANGE_ARB = $2028;
7426   WGL_SWAP_COPY_ARB = $2029;
7427   WGL_SWAP_UNDEFINED_ARB = $202A;
7428   WGL_TYPE_RGBA_ARB = $202B;
7429   WGL_TYPE_COLORINDEX_ARB = $202C;
7430
7431   // WGL_ARB_pixel_format_float
7432   WGL_RGBA_FLOAT_MODE_ARB = $8820;
7433   WGL_CLAMP_VERTEX_COLOR_ARB = $891A;
7434   WGL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
7435   WGL_CLAMP_READ_COLOR_ARB = $891C;
7436   WGL_FIXED_ONLY_ARB = $891D;
7437
7438   // WGL_ARB_render_texture
7439   WGL_BIND_TO_TEXTURE_RGB_ARB = $2070;
7440   WGL_BIND_TO_TEXTURE_RGBA_ARB = $2071;
7441   WGL_TEXTURE_FORMAT_ARB = $2072;
7442   WGL_TEXTURE_TARGET_ARB = $2073;
7443   WGL_MIPMAP_TEXTURE_ARB = $2074;
7444   WGL_TEXTURE_RGB_ARB = $2075;
7445   WGL_TEXTURE_RGBA_ARB = $2076;
7446   WGL_NO_TEXTURE_ARB = $2077;
7447   WGL_TEXTURE_CUBE_MAP_ARB = $2078;
7448   WGL_TEXTURE_1D_ARB = $2079;
7449   WGL_TEXTURE_2D_ARB = $207A;
7450   WGL_MIPMAP_LEVEL_ARB = $207B;
7451   WGL_CUBE_MAP_FACE_ARB = $207C;
7452   WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $207D;
7453   WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $207E;
7454   WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $207F;
7455   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $2080;
7456   WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $2081;
7457   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $2082;
7458   WGL_FRONT_LEFT_ARB = $2083;
7459   WGL_FRONT_RIGHT_ARB = $2084;
7460   WGL_BACK_LEFT_ARB = $2085;
7461   WGL_BACK_RIGHT_ARB = $2086;
7462   WGL_AUX0_ARB = $2087;
7463   WGL_AUX1_ARB = $2088;
7464   WGL_AUX2_ARB = $2089;
7465   WGL_AUX3_ARB = $208A;
7466   WGL_AUX4_ARB = $208B;
7467   WGL_AUX5_ARB = $208C;
7468   WGL_AUX6_ARB = $208D;
7469   WGL_AUX7_ARB = $208E;
7470   WGL_AUX8_ARB = $208F;
7471   WGL_AUX9_ARB = $2090;
7472
7473   // WGL_ARB_create_context
7474   WGL_CONTEXT_DEBUG_BIT_ARB = $00000001;
7475   WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7476   WGL_CONTEXT_MAJOR_VERSION_ARB = $2091;
7477   WGL_CONTEXT_MINOR_VERSION_ARB = $2092;
7478   WGL_CONTEXT_LAYER_PLANE_ARB = $2093;
7479   WGL_CONTEXT_FLAGS_ARB = $2094;
7480   ERROR_INVALID_VERSION_ARB = $2095;
7481
7482   // WGL_ARB_create_context_profile
7483   WGL_CONTEXT_PROFILE_MASK_ARB = $9126;
7484   WGL_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7485   WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7486   ERROR_INVALID_PROFILE_ARB = $2096;
7487
7488   // WGL_ARB_framebuffer_sRGB
7489   WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20A9;
7490
7491   // WGL_ARB_create_context_robustness
7492   WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7493   WGL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7494   WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7495   WGL_NO_RESET_NOTIFICATION_ARB = $8261;
7496
7497   // WGL_ATI_pixel_format_float
7498   WGL_TYPE_RGBA_FLOAT_ATI = $21A0;
7499   GL_TYPE_RGBA_FLOAT_ATI = $8820;
7500   GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = $8835;
7501
7502   // WGL_AMD_gpu_association
7503   WGL_GPU_VENDOR_AMD = $1F00;
7504   WGL_GPU_RENDERER_STRING_AMD = $1F01;
7505   WGL_GPU_OPENGL_VERSION_STRING_AMD = $1F02;
7506   WGL_GPU_FASTEST_TARGET_GPUS_AMD = $21A2;
7507   WGL_GPU_RAM_AMD = $21A3;
7508   WGL_GPU_CLOCK_AMD = $21A4;
7509   WGL_GPU_NUM_PIPES_AMD = $21A5;
7510   WGL_GPU_NUM_SIMD_AMD = $21A6;
7511   WGL_GPU_NUM_RB_AMD = $21A7;
7512   WGL_GPU_NUM_SPI_AMD = $21A8;
7513
7514   // WGL_EXT_depth_float
7515   WGL_DEPTH_FLOAT_EXT = $2040;
7516
7517   // WGL_EXT_make_current_read
7518   ERROR_INVALID_PIXEL_TYPE_EXT = $2043;
7519
7520   // WGL_EXT_multisample
7521   WGL_SAMPLE_BUFFERS_EXT = $2041;
7522   WGL_SAMPLES_EXT = $2042;
7523
7524   // WGL_EXT_pbuffer
7525   WGL_DRAW_TO_PBUFFER_EXT = $202D;
7526   WGL_MAX_PBUFFER_PIXELS_EXT = $202E;
7527   WGL_MAX_PBUFFER_WIDTH_EXT = $202F;
7528   WGL_MAX_PBUFFER_HEIGHT_EXT = $2030;
7529   WGL_OPTIMAL_PBUFFER_WIDTH_EXT = $2031;
7530   WGL_OPTIMAL_PBUFFER_HEIGHT_EXT = $2032;
7531   WGL_PBUFFER_LARGEST_EXT = $2033;
7532   WGL_PBUFFER_WIDTH_EXT = $2034;
7533   WGL_PBUFFER_HEIGHT_EXT = $2035;
7534
7535   // WGL_EXT_pixel_format
7536   WGL_NUMBER_PIXEL_FORMATS_EXT = $2000;
7537   WGL_DRAW_TO_WINDOW_EXT = $2001;
7538   WGL_DRAW_TO_BITMAP_EXT = $2002;
7539   WGL_ACCELERATION_EXT = $2003;
7540   WGL_NEED_PALETTE_EXT = $2004;
7541   WGL_NEED_SYSTEM_PALETTE_EXT = $2005;
7542   WGL_SWAP_LAYER_BUFFERS_EXT = $2006;
7543   WGL_SWAP_METHOD_EXT = $2007;
7544   WGL_NUMBER_OVERLAYS_EXT = $2008;
7545   WGL_NUMBER_UNDERLAYS_EXT = $2009;
7546   WGL_TRANSPARENT_EXT = $200A;
7547   WGL_TRANSPARENT_VALUE_EXT = $200B;
7548   WGL_SHARE_DEPTH_EXT = $200C;
7549   WGL_SHARE_STENCIL_EXT = $200D;
7550   WGL_SHARE_ACCUM_EXT = $200E;
7551   WGL_SUPPORT_GDI_EXT = $200F;
7552   WGL_SUPPORT_OPENGL_EXT = $2010;
7553   WGL_DOUBLE_BUFFER_EXT = $2011;
7554   WGL_STEREO_EXT = $2012;
7555   WGL_PIXEL_TYPE_EXT = $2013;
7556   WGL_COLOR_BITS_EXT = $2014;
7557   WGL_RED_BITS_EXT = $2015;
7558   WGL_RED_SHIFT_EXT = $2016;
7559   WGL_GREEN_BITS_EXT = $2017;
7560   WGL_GREEN_SHIFT_EXT = $2018;
7561   WGL_BLUE_BITS_EXT = $2019;
7562   WGL_BLUE_SHIFT_EXT = $201A;
7563   WGL_ALPHA_BITS_EXT = $201B;
7564   WGL_ALPHA_SHIFT_EXT = $201C;
7565   WGL_ACCUM_BITS_EXT = $201D;
7566   WGL_ACCUM_RED_BITS_EXT = $201E;
7567   WGL_ACCUM_GREEN_BITS_EXT = $201F;
7568   WGL_ACCUM_BLUE_BITS_EXT = $2020;
7569   WGL_ACCUM_ALPHA_BITS_EXT = $2021;
7570   WGL_DEPTH_BITS_EXT = $2022;
7571   WGL_STENCIL_BITS_EXT = $2023;
7572   WGL_AUX_BUFFERS_EXT = $2024;
7573   WGL_NO_ACCELERATION_EXT = $2025;
7574   WGL_GENERIC_ACCELERATION_EXT = $2026;
7575   WGL_FULL_ACCELERATION_EXT = $2027;
7576   WGL_SWAP_EXCHANGE_EXT = $2028;
7577   WGL_SWAP_COPY_EXT = $2029;
7578   WGL_SWAP_UNDEFINED_EXT = $202A;
7579   WGL_TYPE_RGBA_EXT = $202B;
7580   WGL_TYPE_COLORINDEX_EXT = $202C;
7581
7582   // WGL_I3D_digital_video_control
7583   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D = $2050;
7584   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D = $2051;
7585   WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D = $2052;
7586   WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D = $2053;
7587
7588   // WGL_I3D_gamma
7589   WGL_GAMMA_TABLE_SIZE_I3D = $204E;
7590   WGL_GAMMA_EXCLUDE_DESKTOP_I3D = $204F;
7591
7592   // WGL_I3D_genlock
7593   WGL_GENLOCK_SOURCE_MULTIVIEW_I3D = $2044;
7594   WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D = $2045;
7595   WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D = $2046;
7596   WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D = $2047;
7597   WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D = $2048;
7598   WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D = $2049;
7599   WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D = $204A;
7600   WGL_GENLOCK_SOURCE_EDGE_RISING_I3D = $204B;
7601   WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D = $204C;
7602
7603   // WGL_I3D_image_buffer
7604   WGL_IMAGE_BUFFER_MIN_ACCESS_I3D = $00000001;
7605   WGL_IMAGE_BUFFER_LOCK_I3D = $00000002;
7606
7607   // WGL_NV_float_buffer
7608   WGL_FLOAT_COMPONENTS_NV = $20B0;
7609   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV = $20B1;
7610   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV = $20B2;
7611   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV = $20B3;
7612   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV = $20B4;
7613   WGL_TEXTURE_FLOAT_R_NV = $20B5;
7614   WGL_TEXTURE_FLOAT_RG_NV = $20B6;
7615   WGL_TEXTURE_FLOAT_RGB_NV = $20B7;
7616   WGL_TEXTURE_FLOAT_RGBA_NV = $20B8;
7617
7618   // WGL_NV_render_depth_texture
7619   WGL_BIND_TO_TEXTURE_DEPTH_NV = $20A3;
7620   WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV = $20A4;
7621   WGL_DEPTH_TEXTURE_FORMAT_NV = $20A5;
7622   WGL_TEXTURE_DEPTH_COMPONENT_NV = $20A6;
7623   WGL_DEPTH_COMPONENT_NV = $20A7;
7624
7625   // WGL_NV_render_texture_rectangle
7626   WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV = $20A0;
7627   WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV = $20A1;
7628   WGL_TEXTURE_RECTANGLE_NV = $20A2;
7629
7630   // WGL_NV_present_video
7631   WGL_NUM_VIDEO_SLOTS_NV = $20F0;
7632   
7633   // WGL_NV_video_output
7634   WGL_BIND_TO_VIDEO_RGB_NV = $20C0;
7635   WGL_BIND_TO_VIDEO_RGBA_NV = $20C1;
7636   WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV = $20C2;
7637   WGL_VIDEO_OUT_COLOR_NV = $20C3;
7638   WGL_VIDEO_OUT_ALPHA_NV = $20C4;
7639   WGL_VIDEO_OUT_DEPTH_NV = $20C5;
7640   WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV = $20C6;
7641   WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV = $20C7;
7642   WGL_VIDEO_OUT_FRAME = $20C8;
7643   WGL_VIDEO_OUT_FIELD_1 = $20C9;
7644   WGL_VIDEO_OUT_FIELD_2 = $20CA;
7645   WGL_VIDEO_OUT_STACKED_FIELDS_1_2 = $20CB;
7646   WGL_VIDEO_OUT_STACKED_FIELDS_2_1 = $20CC;
7647
7648   // WGL_NV_gpu_affinity
7649   WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV = $20D0;
7650   WGL_ERROR_MISSING_AFFINITY_MASK_NV = $20D1;
7651
7652   // WGL_NV_video_capture
7653   WGL_UNIQUE_ID_NV = $20CE;
7654   WGL_NUM_VIDEO_CAPTURE_SLOTS_NV = $20CF;
7655   
7656   // WGL_NV_multisample_coverage
7657   WGL_COVERAGE_SAMPLES_NV = $2042;
7658   WGL_COLOR_SAMPLES_NV = $20B9;
7659
7660   // WGL_EXT_create_context_es2_profile
7661   WGL_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7662
7663   // WGL_NV_DX_interop
7664   WGL_ACCESS_READ_ONLY_NV        = $00000000;
7665   WGL_ACCESS_READ_WRITE_NV       = $00000001;
7666   WGL_ACCESS_WRITE_DISCARD_NV    = $00000002;
7667
7668   // WIN_draw_range_elements
7669   GL_MAX_ELEMENTS_VERTICES_WIN = $80E8;
7670   GL_MAX_ELEMENTS_INDICES_WIN = $80E9;
7671
7672   // GLX 1.1 and later:
7673   GLX_VENDOR = 1;
7674   GLX_VERSION = 2;
7675   GLX_EXTENSIONS = 3;
7676
7677   GLX_USE_GL = 1;
7678   GLX_BUFFER_SIZE = 2;
7679   GLX_LEVEL = 3;
7680   GLX_RGBA = 4;
7681   GLX_DOUBLEBUFFER = 5;
7682   GLX_STEREO = 6;
7683   GLX_AUX_BUFFERS = 7;
7684   GLX_RED_SIZE = 8;
7685   GLX_GREEN_SIZE = 9;
7686   GLX_BLUE_SIZE = 10;
7687   GLX_ALPHA_SIZE = 11;
7688   GLX_DEPTH_SIZE = 12;
7689   GLX_STENCIL_SIZE = 13;
7690   GLX_ACCUM_RED_SIZE = 14;
7691   GLX_ACCUM_GREEN_SIZE = 15;
7692   GLX_ACCUM_BLUE_SIZE = 16;
7693   GLX_ACCUM_ALPHA_SIZE = 17;
7694
7695   // GLX_VERSION_1_3
7696   GLX_WINDOW_BIT = $00000001;
7697   GLX_PIXMAP_BIT = $00000002;
7698   GLX_PBUFFER_BIT = $00000004;
7699   GLX_RGBA_BIT = $00000001;
7700   GLX_COLOR_INDEX_BIT = $00000002;
7701   GLX_PBUFFER_CLOBBER_MASK = $08000000;
7702   GLX_FRONT_LEFT_BUFFER_BIT = $00000001;
7703   GLX_FRONT_RIGHT_BUFFER_BIT = $00000002;
7704   GLX_BACK_LEFT_BUFFER_BIT = $00000004;
7705   GLX_BACK_RIGHT_BUFFER_BIT = $00000008;
7706   GLX_AUX_BUFFERS_BIT = $00000010;
7707   GLX_DEPTH_BUFFER_BIT = $00000020;
7708   GLX_STENCIL_BUFFER_BIT = $00000040;
7709   GLX_ACCUM_BUFFER_BIT = $00000080;
7710   GLX_CONFIG_CAVEAT = $20;
7711   GLX_X_VISUAL_TYPE = $22;
7712   GLX_TRANSPARENT_TYPE = $23;
7713   GLX_TRANSPARENT_INDEX_VALUE = $24;
7714   GLX_TRANSPARENT_RED_VALUE = $25;
7715   GLX_TRANSPARENT_GREEN_VALUE = $26;
7716   GLX_TRANSPARENT_BLUE_VALUE = $27;
7717   GLX_TRANSPARENT_ALPHA_VALUE = $28;
7718   GLX_DONT_CARE = $FFFFFFFF;
7719   GLX_NONE = $8000;
7720   GLX_SLOW_CONFIG = $8001;
7721   GLX_TRUE_COLOR = $8002;
7722   GLX_DIRECT_COLOR = $8003;
7723   GLX_PSEUDO_COLOR = $8004;
7724   GLX_STATIC_COLOR = $8005;
7725   GLX_GRAY_SCALE = $8006;
7726   GLX_STATIC_GRAY = $8007;
7727   GLX_TRANSPARENT_RGB = $8008;
7728   GLX_TRANSPARENT_INDEX = $8009;
7729   GLX_VISUAL_ID = $800B;
7730   GLX_SCREEN = $800C;
7731   GLX_NON_CONFORMANT_CONFIG = $800D;
7732   GLX_DRAWABLE_TYPE = $8010;
7733   GLX_RENDER_TYPE = $8011;
7734   GLX_X_RENDERABLE = $8012;
7735   GLX_FBCONFIG_ID = $8013;
7736   GLX_RGBA_TYPE = $8014;
7737   GLX_COLOR_INDEX_TYPE = $8015;
7738   GLX_MAX_PBUFFER_WIDTH = $8016;
7739   GLX_MAX_PBUFFER_HEIGHT = $8017;
7740   GLX_MAX_PBUFFER_PIXELS = $8018;
7741   GLX_PRESERVED_CONTENTS = $801B;
7742   GLX_LARGEST_PBUFFER = $801C;
7743   GLX_WIDTH = $801D;
7744   GLX_HEIGHT = $801E;
7745   GLX_EVENT_MASK = $801F;
7746   GLX_DAMAGED = $8020;
7747   GLX_SAVED = $8021;
7748   GLX_WINDOW = $8022;
7749   GLX_PBUFFER = $8023;
7750   GLX_PBUFFER_HEIGHT = $8040;
7751   GLX_PBUFFER_WIDTH = $8041;
7752
7753   // GLX_VERSION_1_4
7754   GLX_SAMPLE_BUFFERS = 100000;
7755   GLX_SAMPLES = 100001;
7756
7757   // GLX_ARB_multisample
7758   GLX_SAMPLE_BUFFERS_ARB = 100000;
7759   GLX_SAMPLES_ARB = 100001;
7760
7761   // GLX_ARB_fbconfig_float
7762   GLX_RGBA_FLOAT_TYPE_ARB = $20B9;
7763   GLX_RGBA_FLOAT_BIT_ARB = $00000004;
7764
7765   // GLX_ARB_create_context
7766   GLX_CONTEXT_DEBUG_BIT_ARB = $00000001;
7767   GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7768   GLX_CONTEXT_MAJOR_VERSION_ARB = $2091;
7769   GLX_CONTEXT_MINOR_VERSION_ARB = $2092;
7770   GLX_CONTEXT_FLAGS_ARB = $2094;
7771
7772   // GLX_ARB_create_context_profile
7773   GLX_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7774   GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7775   GLX_CONTEXT_PROFILE_MASK_ARB = $9126;
7776
7777   // GLX_ARB_vertex_buffer_object
7778   GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB = $2095;
7779
7780   // GLX_ARB_framebuffer_sRGB
7781   GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20B2;
7782
7783   // GLX_ARB_create_context_robustness
7784   GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7785   GLX_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7786   GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7787   GLX_NO_RESET_NOTIFICATION_ARB = $8261;
7788
7789   // GLX_EXT_visual_info
7790   GLX_X_VISUAL_TYPE_EXT = $22;
7791   GLX_TRANSPARENT_TYPE_EXT = $23;
7792   GLX_TRANSPARENT_INDEX_VALUE_EXT = $24;
7793   GLX_TRANSPARENT_RED_VALUE_EXT = $25;
7794   GLX_TRANSPARENT_GREEN_VALUE_EXT = $26;
7795   GLX_TRANSPARENT_BLUE_VALUE_EXT = $27;
7796   GLX_TRANSPARENT_ALPHA_VALUE_EXT = $28;
7797   GLX_NONE_EXT = $8000;
7798   GLX_TRUE_COLOR_EXT = $8002;
7799   GLX_DIRECT_COLOR_EXT = $8003;
7800   GLX_PSEUDO_COLOR_EXT = $8004;
7801   GLX_STATIC_COLOR_EXT = $8005;
7802   GLX_GRAY_SCALE_EXT = $8006;
7803   GLX_STATIC_GRAY_EXT = $8007;
7804   GLX_TRANSPARENT_RGB_EXT = $8008;
7805   GLX_TRANSPARENT_INDEX_EXT = $8009;
7806   
7807   // GLX_EXT_visual_rating
7808   GLX_VISUAL_CAVEAT_EXT = $20;
7809   GLX_SLOW_VISUAL_EXT = $8001;
7810   GLX_NON_CONFORMANT_VISUAL_EXT = $800D;
7811   (* reuse GLX_NONE_EXT *)
7812   
7813   // GLX_EXT_import_context
7814   GLX_SHARE_CONTEXT_EXT = $800A;
7815   GLX_VISUAL_ID_EXT = $800B;
7816   GLX_SCREEN_EXT = $800C;
7817
7818   // GLX_EXT_fbconfig_packed_float
7819 //  GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
7820 //  GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
7821
7822   // GLX_EXT_framebuffer_sRGB
7823 //  GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
7824
7825   // GLX_EXT_texture_from_pixmap
7826   GLX_TEXTURE_1D_BIT_EXT = $00000001;
7827   GLX_TEXTURE_2D_BIT_EXT = $00000002;
7828   GLX_TEXTURE_RECTANGLE_BIT_EXT = $00000004;
7829   GLX_BIND_TO_TEXTURE_RGB_EXT = $20D0;
7830   GLX_BIND_TO_TEXTURE_RGBA_EXT = $20D1;
7831   GLX_BIND_TO_MIPMAP_TEXTURE_EXT = $20D2;
7832   GLX_BIND_TO_TEXTURE_TARGETS_EXT = $20D3;
7833   GLX_Y_INVERTED_EXT = $20D4;
7834   GLX_TEXTURE_FORMAT_EXT = $20D5;
7835   GLX_TEXTURE_TARGET_EXT = $20D6;
7836   GLX_MIPMAP_TEXTURE_EXT = $20D7;
7837   GLX_TEXTURE_FORMAT_NONE_EXT = $20D8;
7838   GLX_TEXTURE_FORMAT_RGB_EXT = $20D9;
7839   GLX_TEXTURE_FORMAT_RGBA_EXT = $20DA;
7840   GLX_TEXTURE_1D_EXT = $20DB;
7841   GLX_TEXTURE_2D_EXT = $20DC;
7842   GLX_TEXTURE_RECTANGLE_EXT = $20DD;
7843   GLX_FRONT_LEFT_EXT = $20DE;
7844   GLX_FRONT_RIGHT_EXT = $20DF;
7845   GLX_BACK_LEFT_EXT = $20E0;
7846   GLX_BACK_RIGHT_EXT = $20E1;
7847   GLX_FRONT_EXT = GLX_FRONT_LEFT_EXT;
7848   GLX_BACK_EXT = GLX_BACK_LEFT_EXT;
7849   GLX_AUX0_EXT = $20E2;
7850   GLX_AUX1_EXT = $20E3;
7851   GLX_AUX2_EXT = $20E4;
7852   GLX_AUX3_EXT = $20E5;
7853   GLX_AUX4_EXT = $20E6;
7854   GLX_AUX5_EXT = $20E7;
7855   GLX_AUX6_EXT = $20E8;
7856   GLX_AUX7_EXT = $20E9;
7857   GLX_AUX8_EXT = $20EA;
7858   GLX_AUX9_EXT = $20EB;
7859
7860   // GLX_EXT_swap_control
7861   GLX_SWAP_INTERVAL_EXT = $20F1;
7862   GLX_MAX_SWAP_INTERVAL_EXT = $20F2;
7863
7864   // GLX_EXT_create_context_es2_profile
7865   GLX_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7866
7867   // GL_EXT_Late_Swaps
7868   GLX_LATE_SWAPS_TEAR_EXT         = $20F3;
7869
7870   // GLU
7871   GLU_INVALID_ENUM = 100900;
7872   GLU_INVALID_VALUE = 100901;
7873   GLU_OUT_OF_MEMORY = 100902;
7874   GLU_INCOMPATIBLE_GL_VERSION = 100903;
7875   GLU_VERSION = 100800;
7876   GLU_EXTENSIONS = 100801;
7877   GLU_TRUE = GL_TRUE;
7878   GLU_FALSE = GL_FALSE;
7879   GLU_SMOOTH = 100000;
7880   GLU_FLAT = 100001;
7881   GLU_NONE = 100002;
7882   GLU_POINT = 100010;
7883   GLU_LINE = 100011;
7884   GLU_FILL = 100012;
7885   GLU_SILHOUETTE = 100013;
7886   GLU_OUTSIDE = 100020;
7887   GLU_INSIDE = 100021;
7888   GLU_TESS_MAX_COORD = 1.0E150;
7889   GLU_TESS_WINDING_RULE = 100140;
7890   GLU_TESS_BOUNDARY_ONLY = 100141;
7891   GLU_TESS_TOLERANCE = 100142;
7892   GLU_TESS_WINDING_ODD = 100130;
7893   GLU_TESS_WINDING_NONZERO = 100131;
7894   GLU_TESS_WINDING_POSITIVE = 100132;
7895   GLU_TESS_WINDING_NEGATIVE = 100133;
7896   GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
7897   GLU_TESS_BEGIN = 100100; // TGLUTessBeginProc
7898   GLU_TESS_VERTEX = 100101; // TGLUTessVertexProc
7899   GLU_TESS_END = 100102; // TGLUTessEndProc
7900   GLU_TESS_ERROR = 100103; // TGLUTessErrorProc
7901   GLU_TESS_EDGE_FLAG = 100104; // TGLUTessEdgeFlagProc
7902   GLU_TESS_COMBINE = 100105; // TGLUTessCombineProc
7903   GLU_TESS_BEGIN_DATA = 100106; // TGLUTessBeginDataProc
7904   GLU_TESS_VERTEX_DATA = 100107; // TGLUTessVertexDataProc
7905   GLU_TESS_END_DATA = 100108; // TGLUTessEndDataProc
7906   GLU_TESS_ERROR_DATA = 100109; // TGLUTessErrorDataProc
7907   GLU_TESS_EDGE_FLAG_DATA = 100110; // TGLUTessEdgeFlagDataProc
7908   GLU_TESS_COMBINE_DATA = 100111; // TGLUTessCombineDataProc
7909   GLU_TESS_ERROR1 = 100151;
7910   GLU_TESS_ERROR2 = 100152;
7911   GLU_TESS_ERROR3 = 100153;
7912   GLU_TESS_ERROR4 = 100154;
7913   GLU_TESS_ERROR5 = 100155;
7914   GLU_TESS_ERROR6 = 100156;
7915   GLU_TESS_ERROR7 = 100157;
7916   GLU_TESS_ERROR8 = 100158;
7917   GLU_TESS_MISSING_BEGIN_POLYGON = GLU_TESS_ERROR1;
7918   GLU_TESS_MISSING_BEGIN_CONTOUR = GLU_TESS_ERROR2;
7919   GLU_TESS_MISSING_END_POLYGON = GLU_TESS_ERROR3;
7920   GLU_TESS_MISSING_END_CONTOUR = GLU_TESS_ERROR4;
7921   GLU_TESS_COORD_TOO_LARGE = GLU_TESS_ERROR5;
7922   GLU_TESS_NEED_COMBINE_CALLBACK = GLU_TESS_ERROR6;
7923   GLU_AUTO_LOAD_MATRIX = 100200;
7924   GLU_CULLING = 100201;
7925   GLU_SAMPLING_TOLERANCE = 100203;
7926   GLU_DISPLAY_MODE = 100204;
7927   GLU_PARAMETRIC_TOLERANCE = 100202;
7928   GLU_SAMPLING_METHOD = 100205;
7929   GLU_U_STEP = 100206;
7930   GLU_V_STEP = 100207;
7931   GLU_PATH_LENGTH = 100215;
7932   GLU_PARAMETRIC_ERROR = 100216;
7933   GLU_DOMAIN_DISTANCE = 100217;
7934   GLU_MAP1_TRIM_2 = 100210;
7935   GLU_MAP1_TRIM_3 = 100211;
7936   GLU_OUTLINE_POLYGON = 100240;
7937   GLU_OUTLINE_PATCH = 100241;
7938   GLU_NURBS_ERROR1 = 100251;
7939   GLU_NURBS_ERROR2 = 100252;
7940   GLU_NURBS_ERROR3 = 100253;
7941   GLU_NURBS_ERROR4 = 100254;
7942   GLU_NURBS_ERROR5 = 100255;
7943   GLU_NURBS_ERROR6 = 100256;
7944   GLU_NURBS_ERROR7 = 100257;
7945   GLU_NURBS_ERROR8 = 100258;
7946   GLU_NURBS_ERROR9 = 100259;
7947   GLU_NURBS_ERROR10 = 100260;
7948   GLU_NURBS_ERROR11 = 100261;
7949   GLU_NURBS_ERROR12 = 100262;
7950   GLU_NURBS_ERROR13 = 100263;
7951   GLU_NURBS_ERROR14 = 100264;
7952   GLU_NURBS_ERROR15 = 100265;
7953   GLU_NURBS_ERROR16 = 100266;
7954   GLU_NURBS_ERROR17 = 100267;
7955   GLU_NURBS_ERROR18 = 100268;
7956   GLU_NURBS_ERROR19 = 100269;
7957   GLU_NURBS_ERROR20 = 100270;
7958   GLU_NURBS_ERROR21 = 100271;
7959   GLU_NURBS_ERROR22 = 100272;
7960   GLU_NURBS_ERROR23 = 100273;
7961   GLU_NURBS_ERROR24 = 100274;
7962   GLU_NURBS_ERROR25 = 100275;
7963   GLU_NURBS_ERROR26 = 100276;
7964   GLU_NURBS_ERROR27 = 100277;
7965   GLU_NURBS_ERROR28 = 100278;
7966   GLU_NURBS_ERROR29 = 100279;
7967   GLU_NURBS_ERROR30 = 100280;
7968   GLU_NURBS_ERROR31 = 100281;
7969   GLU_NURBS_ERROR32 = 100282;
7970   GLU_NURBS_ERROR33 = 100283;
7971   GLU_NURBS_ERROR34 = 100284;
7972   GLU_NURBS_ERROR35 = 100285;
7973   GLU_NURBS_ERROR36 = 100286;
7974   GLU_NURBS_ERROR37 = 100287;
7975   GLU_CW = 100120;
7976   GLU_CCW = 100121;
7977   GLU_INTERIOR = 100122;
7978   GLU_EXTERIOR = 100123;
7979   GLU_UNKNOWN = 100124;
7980   GLU_BEGIN = GLU_TESS_BEGIN;
7981   GLU_VERTEX = GLU_TESS_VERTEX;
7982   GLU_END = GLU_TESS_END;
7983   GLU_ERROR = GLU_TESS_ERROR;
7984   GLU_EDGE_FLAG = GLU_TESS_EDGE_FLAG;
7985
7986 type
7987   // GL_VERSION_1_0
7988   TglCullFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7989   TglFrontFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7990   TglHint = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7991   TglLineWidth = procedure(width: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7992   TglPointSize = procedure(size: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7993   TglPolygonMode = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7994   TglScissor = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7995   TglTexParameterf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7996   TglTexParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7997   TglTexParameteri = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7998   TglTexParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7999   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}
8000   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}
8001   TglDrawBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8002   TglClear = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8003   TglClearColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8004   TglClearStencil = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8005   TglClearDepth = procedure(depth: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8006   TglStencilMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8007   TglColorMask = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8008   TglDepthMask = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8009   TglDisable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8010   TglEnable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8011   TglFinish = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8012   TglFlush = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8013   TglBlendFunc = procedure(sfactor: GLenum; dfactor: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8014   TglLogicOp = procedure(opcode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8015   TglStencilFunc = procedure(func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8016   TglStencilOp = procedure(fail: GLenum; zfail: GLenum; zpass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8017   TglDepthFunc = procedure(func: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8018   TglPixelStoref = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8019   TglPixelStorei = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8020   TglReadBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8021   TglReadPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8022   TglGetBooleanv = procedure(pname: GLenum; params: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8023   TglGetDoublev = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8024   TglGetError = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8025   TglGetFloatv = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8026   TglGetIntegerv = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8027   TglGetString = function(name: GLenum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8028   TglGetTexImage = procedure(target: GLenum; level: GLint; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8029   TglGetTexParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8030   TglGetTexParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8031   TglGetTexLevelParameterfv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8032   TglGetTexLevelParameteriv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8033   TglIsEnabled = function(cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8034   TglDepthRange = procedure(zNear: GLclampd; zFar: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8035   TglViewport = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8036
8037   // GL_VERSION_1_1
8038   TglDrawArrays = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8039   TglDrawElements = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8040   TglGetPointerv = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8041   TglPolygonOffset = procedure(factor: GLfloat; units: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8042   TglCopyTexImage1D = procedure(target: GLenum; level: GLint; internalFormat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8043   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}
8044   TglCopyTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8045   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}
8046   TglTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8047   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}
8048   TglBindTexture = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8049   TglDeleteTextures = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8050   TglGenTextures = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8051   
8052 {$ifdef DGL_DEPRECATED}
8053   TglAccum = procedure(op: GLenum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8054   TglAlphaFunc = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8055   TglAreTexturesResident = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8056   TglArrayElement = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8057   TglBegin = procedure(mode: GLenum); {$IFNDEF CLR}{$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}{$ENDIF}
8058   TglBitmap = procedure(width: GLsizei; height: GLsizei; xorig: GLfloat; yorig: GLfloat; xmove: GLfloat; ymove: GLfloat; const bitmap: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8059   TglCallList = procedure(list: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8060   TglCallLists = procedure(n: GLsizei; _type: GLenum; const lists: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8061   TglClearAccum = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8062   TglClearIndex = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8063   TglClipPlane = procedure(plane: GLenum; const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8064   TglColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8065   TglColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8066   TglColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8067   TglColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8068   TglColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8069   TglColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8070   TglColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8071   TglColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8072   TglColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8073   TglColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8074   TglColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8075   TglColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8076   TglColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8077   TglColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8078   TglColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8079   TglColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8080   TglColor4b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte; alpha: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8081   TglColor4bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8082   TglColor4d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble; alpha: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8083   TglColor4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8084   TglColor4f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8085   TglColor4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8086   TglColor4i = procedure(red: GLint; green: GLint; blue: GLint; alpha: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8087   TglColor4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8088   TglColor4s = procedure(red: GLshort; green: GLshort; blue: GLshort; alpha: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8089   TglColor4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8090   TglColor4ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte; alpha: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8091   TglColor4ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8092   TglColor4ui = procedure(red: GLuint; green: GLuint; blue: GLuint; alpha: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8093   TglColor4uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8094   TglColor4us = procedure(red: GLushort; green: GLushort; blue: GLushort; alpha: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8095   TglColor4usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8096   TglColorMaterial = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8097   TglColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8098   TglCopyPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; _type: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8099   TglDeleteLists = procedure(list: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8100   TglDisableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8101   TglDrawPixels = procedure(width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8102   TglEdgeFlag = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8103   TglEdgeFlagPointer = procedure(stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8104   TglEdgeFlagv = procedure(const flag: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8105   TglEnableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8106   TglEnd = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8107   TglEndList = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8108   TglEvalCoord1d = procedure(u: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8109   TglEvalCoord1dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8110   TglEvalCoord1f = procedure(u: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8111   TglEvalCoord1fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8112   TglEvalCoord2d = procedure(u: GLdouble; v: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8113   TglEvalCoord2dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8114   TglEvalCoord2f = procedure(u: GLfloat; v: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8115   TglEvalCoord2fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8116   TglEvalMesh1 = procedure(mode: GLenum; i1: GLint; i2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8117   TglEvalMesh2 = procedure(mode: GLenum; i1: GLint; i2: GLint; j1: GLint; j2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8118   TglEvalPoint1 = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8119   TglEvalPoint2 = procedure(i: GLint; j: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8120   TglFeedbackBuffer = procedure(size: GLsizei; _type: GLenum; buffer: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8121   TglFogf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8122   TglFogfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8123   TglFogi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8124   TglFogiv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8125   TglFrustum = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8126   TglGenLists = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8127   TglGetClipPlane = procedure(plane: GLenum; equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8128   TglGetLightfv = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8129   TglGetLightiv = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8130   TglGetMapdv = procedure(target: GLenum; query: GLenum; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8131   TglGetMapfv = procedure(target: GLenum; query: GLenum; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8132   TglGetMapiv = procedure(target: GLenum; query: GLenum; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8133   TglGetMaterialfv = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8134   TglGetMaterialiv = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8135   TglGetPixelMapfv = procedure(map: GLenum; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8136   TglGetPixelMapuiv = procedure(map: GLenum; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8137   TglGetPixelMapusv = procedure(map: GLenum; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8138   TglGetPolygonStipple = procedure(mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8139   TglGetTexEnvfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8140   TglGetTexEnviv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8141   TglGetTexGendv = procedure(coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8142   TglGetTexGenfv = procedure(coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8143   TglGetTexGeniv = procedure(coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8144   TglIndexMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8145   TglIndexPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8146   TglIndexd = procedure(c: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8147   TglIndexdv = procedure(const c: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8148   TglIndexf = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8149   TglIndexfv = procedure(const c: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8150   TglIndexi = procedure(c: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8151   TglIndexiv = procedure(const c: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8152   TglIndexs = procedure(c: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8153   TglIndexsv = procedure(const c: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8154   TglIndexub = procedure(c: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8155   TglIndexubv = procedure(const c: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8156   TglInitNames = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8157   TglInterleavedArrays = procedure(format: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8158   TglIsList = function(list: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8159   TglIsTexture = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8160   TglLightModelf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8161   TglLightModelfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8162   TglLightModeli = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8163   TglLightModeliv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8164   TglLightf = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8165   TglLightfv = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8166   TglLighti = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8167   TglLightiv = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8168   TglLineStipple = procedure(factor: GLint; pattern: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8169   TglListBase = procedure(base: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8170   TglLoadIdentity = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8171   TglLoadMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8172   TglLoadMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8173   TglLoadName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8174   TglMap1d = procedure(target: GLenum; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8175   TglMap1f = procedure(target: GLenum; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8176   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}
8177   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}
8178   TglMapGrid1d = procedure(un: GLint; u1: GLdouble; u2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8179   TglMapGrid1f = procedure(un: GLint; u1: GLfloat; u2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8180   TglMapGrid2d = procedure(un: GLint; u1: GLdouble; u2: GLdouble; vn: GLint; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8181   TglMapGrid2f = procedure(un: GLint; u1: GLfloat; u2: GLfloat; vn: GLint; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8182   TglMaterialf = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8183   TglMaterialfv = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8184   TglMateriali = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8185   TglMaterialiv = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8186   TglMatrixMode = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8187   TglMultMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8188   TglMultMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8189   TglNewList = procedure(list: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8190   TglNormal3b = procedure(nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8191   TglNormal3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8192   TglNormal3d = procedure(nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8193   TglNormal3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8194   TglNormal3f = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8195   TglNormal3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8196   TglNormal3i = procedure(nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8197   TglNormal3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8198   TglNormal3s = procedure(nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8199   TglNormal3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8200   TglNormalPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8201   TglOrtho = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8202   TglPassThrough = procedure(token: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8203   TglPixelMapfv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8204   TglPixelMapuiv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8205   TglPixelMapusv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8206   TglPixelTransferf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8207   TglPixelTransferi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8208   TglPixelZoom = procedure(xfactor: GLfloat; yfactor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8209   TglPolygonStipple = procedure(const mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8210   TglPopAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8211   TglPopClientAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8212   TglPopMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8213   TglPopName = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8214   TglPrioritizeTextures = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8215   TglPushAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8216   TglPushClientAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8217   TglPushMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8218   TglPushName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8219   TglRasterPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8220   TglRasterPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8221   TglRasterPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8222   TglRasterPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8223   TglRasterPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8224   TglRasterPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8225   TglRasterPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8226   TglRasterPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8227   TglRasterPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8228   TglRasterPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8229   TglRasterPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8230   TglRasterPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8231   TglRasterPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8232   TglRasterPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8233   TglRasterPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8234   TglRasterPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8235   TglRasterPos4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8236   TglRasterPos4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8237   TglRasterPos4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8238   TglRasterPos4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8239   TglRasterPos4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8240   TglRasterPos4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8241   TglRasterPos4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8242   TglRasterPos4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8243   TglRectd = procedure(x1: GLdouble; y1: GLdouble; x2: GLdouble; y2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8244   TglRectdv = procedure(const v1: PGLdouble; const v2: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8245   TglRectf = procedure(x1: GLfloat; y1: GLfloat; x2: GLfloat; y2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8246   TglRectfv = procedure(const v1: PGLfloat; const v2: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8247   TglRecti = procedure(x1: GLint; y1: GLint; x2: GLint; y2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8248   TglRectiv = procedure(const v1: PGLint; const v2: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8249   TglRects = procedure(x1: GLshort; y1: GLshort; x2: GLshort; y2: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8250   TglRectsv = procedure(const v1: PGLshort; const v2: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8251   TglRenderMode = function(mode: GLenum): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8252   TglRotated = procedure(angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8253   TglRotatef = procedure(angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8254   TglScaled = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8255   TglScalef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8256   TglSelectBuffer = procedure(size: GLsizei; buffer: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8257   TglShadeModel = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8258   TglTexCoord1d = procedure(s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8259   TglTexCoord1dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8260   TglTexCoord1f = procedure(s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8261   TglTexCoord1fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8262   TglTexCoord1i = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8263   TglTexCoord1iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8264   TglTexCoord1s = procedure(s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8265   TglTexCoord1sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8266   TglTexCoord2d = procedure(s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8267   TglTexCoord2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8268   TglTexCoord2f = procedure(s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8269   TglTexCoord2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8270   TglTexCoord2i = procedure(s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8271   TglTexCoord2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8272   TglTexCoord2s = procedure(s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8273   TglTexCoord2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8274   TglTexCoord3d = procedure(s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8275   TglTexCoord3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8276   TglTexCoord3f = procedure(s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8277   TglTexCoord3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8278   TglTexCoord3i = procedure(s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8279   TglTexCoord3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8280   TglTexCoord3s = procedure(s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8281   TglTexCoord3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8282   TglTexCoord4d = procedure(s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8283   TglTexCoord4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8284   TglTexCoord4f = procedure(s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8285   TglTexCoord4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8286   TglTexCoord4i = procedure(s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8287   TglTexCoord4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8288   TglTexCoord4s = procedure(s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8289   TglTexCoord4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8290   TglTexCoordPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8291   TglTexEnvf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8292   TglTexEnvfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8293   TglTexEnvi = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8294   TglTexEnviv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8295   TglTexGend = procedure(coord: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8296   TglTexGendv = procedure(coord: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8297   TglTexGenf = procedure(coord: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8298   TglTexGenfv = procedure(coord: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8299   TglTexGeni = procedure(coord: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8300   TglTexGeniv = procedure(coord: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8301
8302
8303   TglTranslated = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8304   TglTranslatef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8305   TglVertex2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8306   TglVertex2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8307   TglVertex2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8308   TglVertex2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8309   TglVertex2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8310   TglVertex2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8311   TglVertex2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8312   TglVertex2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8313   TglVertex3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8314   TglVertex3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8315   TglVertex3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8316   TglVertex3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8317   TglVertex3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8318   TglVertex3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8319   TglVertex3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8320   TglVertex3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8321   TglVertex4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8322   TglVertex4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8323   TglVertex4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8324   TglVertex4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8325   TglVertex4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8326   TglVertex4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8327   TglVertex4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8328   TglVertex4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8329   TglVertexPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8330 {$endif}
8331
8332   // GL_VERSION_1_2
8333   TglBlendColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8334   TglBlendEquation = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8335   TglDrawRangeElements = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8336   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}
8337   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}
8338   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}
8339 {$ifdef DGL_DEPRECATED}
8340   TglColorTable = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8341   TglColorTableParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8342   TglColorTableParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8343   TglCopyColorTable = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8344   TglGetColorTable = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8345   TglGetColorTableParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8346   TglGetColorTableParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8347   TglColorSubTable = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8348   TglCopyColorSubTable = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8349   TglConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8350   TglConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8351   TglConvolutionParameterf = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8352   TglConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8353   TglConvolutionParameteri = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8354   TglConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8355   TglCopyConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8356   TglCopyConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8357   TglGetConvolutionFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8358   TglGetConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8359   TglGetConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8360   TglGetSeparableFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8361   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}
8362   TglGetHistogram = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8363   TglGetHistogramParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8364   TglGetHistogramParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8365   TglGetMinmax = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8366   TglGetMinmaxParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8367   TglGetMinmaxParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8368   TglHistogram = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8369   TglMinmax = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8370   TglResetHistogram = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8371   TglResetMinmax = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8372 {$endif}
8373
8374   // GL_VERSION_1_3
8375   TglActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8376   TglSampleCoverage = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8377   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}
8378   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}
8379   TglCompressedTexImage1D = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8380   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}
8381   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}
8382   TglCompressedTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8383   TglGetCompressedTexImage = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8384 {$ifdef DGL_DEPRECATED}
8385   TglClientActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8386   TglMultiTexCoord1d = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8387   TglMultiTexCoord1dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8388   TglMultiTexCoord1f = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8389   TglMultiTexCoord1fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8390   TglMultiTexCoord1i = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8391   TglMultiTexCoord1iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8392   TglMultiTexCoord1s = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8393   TglMultiTexCoord1sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8394   TglMultiTexCoord2d = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8395   TglMultiTexCoord2dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8396   TglMultiTexCoord2f = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8397   TglMultiTexCoord2fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8398   TglMultiTexCoord2i = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8399   TglMultiTexCoord2iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8400   TglMultiTexCoord2s = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8401   TglMultiTexCoord2sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8402   TglMultiTexCoord3d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8403   TglMultiTexCoord3dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8404   TglMultiTexCoord3f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8405   TglMultiTexCoord3fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8406   TglMultiTexCoord3i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8407   TglMultiTexCoord3iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8408   TglMultiTexCoord3s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8409   TglMultiTexCoord3sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8410   TglMultiTexCoord4d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8411   TglMultiTexCoord4dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8412   TglMultiTexCoord4f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8413   TglMultiTexCoord4fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8414   TglMultiTexCoord4i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8415   TglMultiTexCoord4iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8416   TglMultiTexCoord4s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8417   TglMultiTexCoord4sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8418   TglLoadTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8419   TglLoadTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8420   TglMultTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8421   TglMultTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8422 {$endif}
8423
8424   // GL_VERSION_1_4
8425   TglBlendFuncSeparate = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8426   TglMultiDrawArrays = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8427   TglMultiDrawElements = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8428   TglPointParameterf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8429   TglPointParameterfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8430   TglPointParameteri = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8431   TglPointParameteriv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8432 {$ifdef DGL_DEPRECATED}
8433   TglFogCoordf = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8434   TglFogCoordfv = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8435   TglFogCoordd = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8436   TglFogCoorddv = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8437   TglFogCoordPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8438   TglSecondaryColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8439   TglSecondaryColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8440   TglSecondaryColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8441   TglSecondaryColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8442   TglSecondaryColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8443   TglSecondaryColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8444   TglSecondaryColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8445   TglSecondaryColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8446   TglSecondaryColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8447   TglSecondaryColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8448   TglSecondaryColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8449   TglSecondaryColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8450   TglSecondaryColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8451   TglSecondaryColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8452   TglSecondaryColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8453   TglSecondaryColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8454   TglSecondaryColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8455   TglWindowPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8456   TglWindowPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8457   TglWindowPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8458   TglWindowPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8459   TglWindowPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8460   TglWindowPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8461   TglWindowPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8462   TglWindowPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8463   TglWindowPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8464   TglWindowPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8465   TglWindowPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8466   TglWindowPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8467   TglWindowPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8468   TglWindowPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8469   TglWindowPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8470   TglWindowPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8471 {$endif}
8472
8473   // GL_VERSION_1_5
8474   TglGenQueries = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8475   TglDeleteQueries = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8476   TglIsQuery = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8477   TglBeginQuery = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8478   TglEndQuery = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8479   TglGetQueryiv = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8480   TglGetQueryObjectiv = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8481   TglGetQueryObjectuiv = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8482   TglBindBuffer = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8483   TglDeleteBuffers = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8484   TglGenBuffers = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8485   TglIsBuffer = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8486   TglBufferData = procedure(target: GLenum; size: GLsizeiptr; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8487   TglBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8488   TglGetBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8489   TglMapBuffer = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8490   TglUnmapBuffer = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8491   TglGetBufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8492   TglGetBufferPointerv = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8493
8494   // GL_VERSION_2_0
8495   TglBlendEquationSeparate = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8496   TglDrawBuffers = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8497   TglStencilOpSeparate = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8498   TglStencilFuncSeparate = procedure(face: GLenum; func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8499   TglStencilMaskSeparate = procedure(face: GLenum; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8500   TglAttachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8501   TglBindAttribLocation = procedure(programObj: GLhandle; index: GLuint; name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8502   TglCompileShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8503   TglCreateProgram = function: GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8504   TglCreateShader = function(shaderType: GLenum): GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8505   TglDeleteProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8506   TglDeleteShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8507   TglDetachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8508   TglDisableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8509   TglEnableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8510   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}
8511   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}
8512   TglGetAttachedShaders = procedure(programObj: GLhandle; MaxCount: GLsizei; var Count: GLint; shaders: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8513   TglGetAttribLocation = function(programObj: GLhandle; char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8514   TglGetProgramiv = procedure(programObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8515   TglGetProgramInfoLog = procedure(programObj: GLHandle; maxLength: glsizei; var length: PGLsizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8516   TglGetShaderiv = procedure(shaderObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8517   TglGetShaderInfoLog = procedure(shaderObj: GLHandle; maxLength: glsizei; var length: glint; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8518   TglGetShaderSource = procedure(shaderObj: GLhandle; maxlength: GLsizei; var length: GLsizei; source: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8519   TglGetUniformLocation = function(programObj: GLhandle; const char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8520   TglGetUniformfv = procedure(programObj: GLhandle; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8521   TglGetUniformiv = procedure(programObj: GLhandle; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8522   TglGetVertexAttribfv = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8523   TglGetVertexAttribiv = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8524   TglGetVertexAttribPointerv = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8525   TglIsProgram = function(programObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8526   TglIsShader = function(shaderObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8527   TglLinkProgram = procedure(programObj: GLHandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8528   TglShaderSource = procedure(shaderObj: GLHandle; count: glsizei; const _string: PPGLChar; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8529   TglUseProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8530   TglUniform1f = procedure(location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8531   TglUniform2f = procedure(location: GLint; v0, v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8532   TglUniform3f = procedure(location: GLint; v0, v1, v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8533   TglUniform4f = procedure(location: GLint; v0, v1, v2, v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8534   TglUniform1i = procedure(location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8535   TglUniform2i = procedure(location: GLint; v0, v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8536   TglUniform3i = procedure(location: GLint; v0, v1, v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8537   TglUniform4i = procedure(location: GLint; v0, v1, v2, v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8538   TglUniform1fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8539   TglUniform2fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8540   TglUniform3fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8541   TglUniform4fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8542   TglUniform1iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8543   TglUniform2iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8544   TglUniform3iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8545   TglUniform4iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8546   TglUniformMatrix2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8547   TglUniformMatrix3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8548   TglUniformMatrix4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8549   TglValidateProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8550   TglVertexAttrib1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8551   TglVertexAttrib1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8552   TglVertexAttrib1f = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8553   TglVertexAttrib1fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8554   TglVertexAttrib1s = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8555   TglVertexAttrib1sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8556   TglVertexAttrib2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8557   TglVertexAttrib2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8558   TglVertexAttrib2f = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8559   TglVertexAttrib2fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8560   TglVertexAttrib2s = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8561   TglVertexAttrib2sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8562   TglVertexAttrib3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8563   TglVertexAttrib3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8564   TglVertexAttrib3f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8565   TglVertexAttrib3fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8566   TglVertexAttrib3s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8567   TglVertexAttrib3sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8568   TglVertexAttrib4Nbv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8569   TglVertexAttrib4Niv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8570   TglVertexAttrib4Nsv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8571   TglVertexAttrib4Nub = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8572   TglVertexAttrib4Nubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8573   TglVertexAttrib4Nuiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8574   TglVertexAttrib4Nusv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8575   TglVertexAttrib4bv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8576   TglVertexAttrib4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8577   TglVertexAttrib4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8578   TglVertexAttrib4f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8579   TglVertexAttrib4fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8580   TglVertexAttrib4iv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8581   TglVertexAttrib4s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8582   TglVertexAttrib4sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8583   TglVertexAttrib4ubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8584   TglVertexAttrib4uiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8585   TglVertexAttrib4usv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8586   TglVertexAttribPointer = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8587
8588   // GL_VERSION_2_1
8589   TglUniformMatrix2x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8590   TglUniformMatrix3x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8591   TglUniformMatrix2x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8592   TglUniformMatrix4x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8593   TglUniformMatrix3x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8594   TglUniformMatrix4x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8595
8596   // GL_VERSION_3_0
8597   { OpenGL 3.0 also reuses entry points from these extensions: }
8598   { ARB_framebuffer_object }
8599   { ARB_map_buffer_range }
8600   { ARB_vertex_array_object }
8601   TglColorMaski = procedure(index_: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8602   TglGetBooleani_v = procedure(target: GLenum; index_: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8603   TglGetIntegeri_v = procedure(target: GLenum; index_: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8604   TglEnablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8605   TglDisablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8606   TglIsEnabledi = function(target: GLenum; index_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8607   TglBeginTransformFeedback = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8608   TglEndTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8609   TglBindBufferRange = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8610   TglBindBufferBase = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8611   TglTransformFeedbackVaryings = procedure(program_: GLuint; count: GLsizei; const varyings: PPGLchar; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8612   TglGetTransformFeedbackVarying = procedure(program_: GLuint; index_: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; type_: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8613   TglClampColor = procedure(targe: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8614   TglBeginConditionalRender = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8615   TglEndConditionalRender = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8616   TglVertexAttribIPointer = procedure(index_: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8617   TglGetVertexAttribIiv = procedure(index_: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8618   TglGetVertexAttribIuiv = procedure(index_: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8619   TglVertexAttribI1i = procedure(index_: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8620   TglVertexAttribI2i = procedure(index_: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8621   TglVertexAttribI3i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8622   TglVertexAttribI4i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8623   TglVertexAttribI1ui = procedure(index_: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8624   TglVertexAttribI2ui = procedure(index_: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8625   TglVertexAttribI3ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8626   TglVertexAttribI4ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8627   TglVertexAttribI1iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8628   TglVertexAttribI2iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8629   TglVertexAttribI3iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8630   TglVertexAttribI4iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8631   TglVertexAttribI1uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8632   TglVertexAttribI2uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8633   TglVertexAttribI3uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8634   TglVertexAttribI4uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8635   TglVertexAttribI4bv = procedure(index_: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8636   TglVertexAttribI4sv = procedure(index_: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8637   TglVertexAttribI4ubv = procedure(index_: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8638   TglVertexAttribI4usv = procedure(index_: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8639   TglGetUniformuiv = procedure(program_: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8640   TglBindFragDataLocation = procedure(program_: GLuint; color: GLuint; const name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8641   TglGetFragDataLocation = function(program_: GLuint; const name: PGLChar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8642   TglUniform1ui = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8643   TglUniform2ui = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8644   TglUniform3ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8645   TglUniform4ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8646   TglUniform1uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8647   TglUniform2uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8648   TglUniform3uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8649   TglUniform4uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8650   TglTexParameterIiv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8651   TglTexParameterIuiv = procedure(target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8652   TglGetTexParameterIiv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8653   TglGetTexParameterIuiv = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8654   TglClearBufferiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8655   TglClearBufferuiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8656   TglClearBufferfv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8657   TglClearBufferfi = procedure(buffer: GLenum; drawbuffer: GLint; depth: GLfloat; stencil: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8658   TglGetStringi = function(name: GLenum; index: GLuint): PGLubyte; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8659
8660   // GL_VERSION_2_1
8661   TglEnableVertexArrayEXT = procedure(vaobj: GLuint; array_: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8662   TglEnableVertexArrayAttribEXT = procedure(vaobj: GLuint; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8663   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}
8664
8665   // GL_VERSION_3_1
8666   { OpenGL 3.1 also reuses entry points from these extensions: }
8667   { ARB_copy_buffer }
8668   { ARB_uniform_buffer_object }
8669   TglDrawArraysInstanced = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8670   TglDrawElementsInstanced = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8671   TglTexBuffer = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8672   TglPrimitiveRestartIndex = procedure(index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8673
8674   // GL_VERSION_3_2
8675   { OpenGL 3.2 also reuses entry points from these extensions: }
8676   { ARB_draw_elements_base_vertex }
8677   { ARB_provoking_vertex }
8678   { ARB_sync }
8679   { ARB_texture_multisample }
8680   TglGetInteger64i_v = procedure(target: GLenum; index_: GLuint; data: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8681   TglGetBufferParameteri64v = procedure(target: GLenum; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8682   TglFramebufferTexture = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8683 //  TglFramebufferTextureFace = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8684
8685   // GL_VERSION_3_3
8686   { OpenGL 3.3 also reuses entry points from these extensions: }
8687   { ARB_blend_func_extended }
8688   { ARB_sampler_objects }
8689   { ARB_explicit_attrib_location, but it has none }
8690   { ARB_occlusion_query2 (no entry points) }
8691   { ARB_shader_bit_encoding (no entry points) }
8692   { ARB_texture_rgb10_a2ui (no entry points) }
8693   { ARB_texture_swizzle (no entry points) }
8694   { ARB_timer_query }
8695   { ARB_vertex_type_2_10_10_10_rev }
8696   TglVertexAttribDivisor = procedure(index: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8697   
8698   // GL_VERSION_4_0
8699   { OpenGL 4.0 also reuses entry points from these extensions: }
8700   { ARB_texture_query_lod (no entry points) }
8701   { ARB_draw_indirect }
8702   { ARB_gpu_shader5 (no entry points) }
8703   { ARB_gpu_shader_fp64 }
8704   { ARB_shader_subroutine }
8705   { ARB_tessellation_shader }
8706   { ARB_texture_buffer_object_rgb32 (no entry points) }
8707   { ARB_texture_cube_map_array (no entry points) }
8708   { ARB_texture_gather (no entry points) }
8709   { ARB_transform_feedback2 }
8710   { ARB_transform_feedback3 }
8711   TglMinSampleShading = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8712   TglBlendEquationi = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8713   TglBlendEquationSeparatei = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8714   TglBlendFunci = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8715   TglBlendFuncSeparatei = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8716
8717   // GL_VERSION_4_1
8718   { OpenGL 4.1 also reuses entry points from these extensions: }
8719   { ARB_ES2_compatibility }
8720   { ARB_get_program_binary }
8721   { ARB_separate_shader_objects }
8722   { ARB_shader_precision (no entry points) }
8723   { ARB_vertex_attrib_64bit }
8724   { ARB_viewport_array }
8725
8726   // GL_3DFX_tbuffer
8727   TglTbufferMask3DFX = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8728
8729   // GL_APPLE_element_array
8730   TglElementPointerAPPLE = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8731   TglDrawElementArrayAPPLE = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8732   TglDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8733   TglMultiDrawElementArrayAPPLE = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8734   TglMultiDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8735
8736   // GL_APPLE_fence
8737   TglGenFencesAPPLE = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8738   TglDeleteFencesAPPLE = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8739   TglSetFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8740   TglIsFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8741   TglTestFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8742   TglFinishFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8743   TglTestObjectAPPLE = function(_object: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8744   TglFinishObjectAPPLE = procedure(_object: GLenum; name: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8745
8746   // GL_APPLE_vertex_array_object
8747   TglBindVertexArrayAPPLE = procedure(_array: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8748   TglDeleteVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8749   TglGenVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8750   TglIsVertexArrayAPPLE = function(_array: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8751
8752   // GL_APPLE_vertex_array_range
8753   TglVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8754   TglFlushVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8755   TglVertexArrayParameteriAPPLE = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8756
8757   // GL_APPLE_texture_range
8758   TglTextureRangeAPPLE = procedure(target: GLenum; length: GLsizei; const Pointer_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8759   TglGetTexParameterPointervAPPLE = procedure(target: GLenum; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8760
8761   // GL_APPLE_vertex_program_evaluators
8762   TglEnableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8763   TglDisableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8764   TglIsVertexAttribEnabledAPPLE = function(index_: GLuint; pname: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8765   TglMapVertexAttrib1dAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8766   TglMapVertexAttrib1fAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8767   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}
8768   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}
8769
8770   // GL_APPLE_object_purgeable
8771   TglObjectPurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8772   TglObjectUnpurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8773   TglGetObjectParameterivAPPLE = procedure(objectType: GLenum; name: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8774
8775   // GL_ARB_matrix_palette
8776   TglCurrentPaletteMatrixARB = procedure(index: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8777   TglMatrixIndexubvARB = procedure(size: GLint; const indices: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8778   TglMatrixIndexusvARB = procedure(size: GLint; const indices: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8779   TglMatrixIndexuivARB = procedure(size: GLint; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8780   TglMatrixIndexPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8781
8782   // GL_ARB_multisample
8783   TglSampleCoverageARB = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8784
8785   // GL_ARB_multitexture
8786   TglActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8787   TglClientActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8788   TglMultiTexCoord1dARB = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8789   TglMultiTexCoord1dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8790   TglMultiTexCoord1fARB = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8791   TglMultiTexCoord1fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8792   TglMultiTexCoord1iARB = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8793   TglMultiTexCoord1ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8794   TglMultiTexCoord1sARB = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8795   TglMultiTexCoord1svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8796   TglMultiTexCoord2dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8797   TglMultiTexCoord2dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8798   TglMultiTexCoord2fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8799   TglMultiTexCoord2fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8800   TglMultiTexCoord2iARB = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8801   TglMultiTexCoord2ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8802   TglMultiTexCoord2sARB = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8803   TglMultiTexCoord2svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8804   TglMultiTexCoord3dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8805   TglMultiTexCoord3dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8806   TglMultiTexCoord3fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8807   TglMultiTexCoord3fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8808   TglMultiTexCoord3iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8809   TglMultiTexCoord3ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8810   TglMultiTexCoord3sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8811   TglMultiTexCoord3svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8812   TglMultiTexCoord4dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8813   TglMultiTexCoord4dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8814   TglMultiTexCoord4fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8815   TglMultiTexCoord4fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8816   TglMultiTexCoord4iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8817   TglMultiTexCoord4ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8818   TglMultiTexCoord4sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8819   TglMultiTexCoord4svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8820
8821   // GL_ARB_point_parameters
8822   TglPointParameterfARB = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8823   TglPointParameterfvARB = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8824
8825   // GL_ARB_texture_compression
8826   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}
8827   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}
8828   TglCompressedTexImage1DARB = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8829   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}
8830   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}
8831   TglCompressedTexSubImage1DARB = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8832   TglGetCompressedTexImageARB = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8833
8834   // GL_ARB_transpose_matrix
8835   TglLoadTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8836   TglLoadTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8837   TglMultTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8838   TglMultTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8839
8840   // GL_ARB_vertex_blend
8841   TglWeightbvARB = procedure(size: GLint; const weights: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8842   TglWeightsvARB = procedure(size: GLint; const weights: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8843   TglWeightivARB = procedure(size: GLint; const weights: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8844   TglWeightfvARB = procedure(size: GLint; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8845   TglWeightdvARB = procedure(size: GLint; const weights: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8846   TglWeightubvARB = procedure(size: GLint; const weights: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8847   TglWeightusvARB = procedure(size: GLint; const weights: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8848   TglWeightuivARB = procedure(size: GLint; const weights: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8849   TglWeightPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8850   TglVertexBlendARB = procedure(count: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8851
8852   // GL_ARB_vertex_buffer_object
8853   TglBindBufferARB = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8854   TglDeleteBuffersARB = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8855   TglGenBuffersARB = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8856   TglIsBufferARB = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8857   TglBufferDataARB = procedure(target: GLenum; size: GLsizeiptrARB; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8858   TglBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8859   TglGetBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8860   TglMapBufferARB = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8861   TglUnmapBufferARB = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8862   TglGetBufferParameterivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8863   TglGetBufferPointervARB = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8864
8865   // GL_ARB_vertex_program
8866   TglVertexAttrib1dARB = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8867   TglVertexAttrib1dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8868   TglVertexAttrib1fARB = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8869   TglVertexAttrib1fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8870   TglVertexAttrib1sARB = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8871   TglVertexAttrib1svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8872   TglVertexAttrib2dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8873   TglVertexAttrib2dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8874   TglVertexAttrib2fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8875   TglVertexAttrib2fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8876   TglVertexAttrib2sARB = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8877   TglVertexAttrib2svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8878   TglVertexAttrib3dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8879   TglVertexAttrib3dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8880   TglVertexAttrib3fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8881   TglVertexAttrib3fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8882   TglVertexAttrib3sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8883   TglVertexAttrib3svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8884   TglVertexAttrib4NbvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8885   TglVertexAttrib4NivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8886   TglVertexAttrib4NsvARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8887   TglVertexAttrib4NubARB = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8888   TglVertexAttrib4NubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8889   TglVertexAttrib4NuivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8890   TglVertexAttrib4NusvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8891   TglVertexAttrib4bvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8892   TglVertexAttrib4dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8893   TglVertexAttrib4dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8894   TglVertexAttrib4fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8895   TglVertexAttrib4fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8896   TglVertexAttrib4ivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8897   TglVertexAttrib4sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8898   TglVertexAttrib4svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8899   TglVertexAttrib4ubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8900   TglVertexAttrib4uivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8901   TglVertexAttrib4usvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8902   TglVertexAttribPointerARB = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8903   TglEnableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8904   TglDisableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8905   TglProgramStringARB = procedure(target: GLenum; format: GLenum; len: GLsizei; const _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8906   TglBindProgramARB = procedure(target: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8907   TglDeleteProgramsARB = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8908   TglGenProgramsARB = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8909   TglProgramEnvParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8910   TglProgramEnvParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8911   TglProgramEnvParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8912   TglProgramEnvParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8913   TglProgramLocalParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8914   TglProgramLocalParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8915   TglProgramLocalParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8916   TglProgramLocalParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8917   TglGetProgramEnvParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8918   TglGetProgramEnvParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8919   TglGetProgramLocalParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8920   TglGetProgramLocalParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8921   TglGetProgramivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8922   TglGetProgramStringARB = procedure(target: GLenum; pname: GLenum; _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8923   TglGetVertexAttribdvARB = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8924   TglGetVertexAttribfvARB = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8925   TglGetVertexAttribivARB = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8926   TglGetVertexAttribPointervARB = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8927   TglIsProgramARB = function(_program: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8928
8929   // GL_ARB_window_pos
8930   TglWindowPos2dARB = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8931   TglWindowPos2dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8932   TglWindowPos2fARB = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8933   TglWindowPos2fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8934   TglWindowPos2iARB = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8935   TglWindowPos2ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8936   TglWindowPos2sARB = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8937   TglWindowPos2svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8938   TglWindowPos3dARB = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8939   TglWindowPos3dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8940   TglWindowPos3fARB = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8941   TglWindowPos3fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8942   TglWindowPos3iARB = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8943   TglWindowPos3ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8944   TglWindowPos3sARB = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8945   TglWindowPos3svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8946
8947   // GL_ARB_draw_buffers
8948   TglDrawBuffersARB = procedure(n: GLsizei; bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8949
8950   // GL_ARB_color_buffer_float
8951   TglClampColorARB = procedure(target: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8952
8953   // GL_ARB_vertex_shader
8954   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}
8955   TglGetAttribLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8956   TglBindAttribLocationARB = procedure(programObj: GLhandleARB; index: GLuint; const name: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8957
8958   // GL_ARB_shader_objects
8959   TglDeleteObjectARB = procedure(Obj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8960   TglGetHandleARB = function(pname: GlEnum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8961   TglDetachObjectARB = procedure(container, attached: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8962   TglCreateShaderObjectARB = function(shaderType: glenum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8963   TglShaderSourceARB = procedure(shaderObj: GLHandleARB; count: glsizei; const _string: PPGLCharARB; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8964   TglCompileShaderARB = procedure(shaderObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8965   TglCreateProgramObjectARB = function: GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8966   TglAttachObjectARB = procedure(programObj, shaderObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8967   TglLinkProgramARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8968   TglUseProgramObjectARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8969   TglValidateProgramARB = procedure(programObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8970   TglUniform1fARB = procedure(location: glint; v0: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8971   TglUniform2fARB = procedure(location: glint; v0, v1: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8972   TglUniform3fARB = procedure(location: glint; v0, v1, v2: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8973   TglUniform4fARB = procedure(location: glint; v0, v1, v2, v3: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8974   TglUniform1iARB = procedure(location: glint; v0: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8975   TglUniform2iARB = procedure(location: glint; v0, v1: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8976   TglUniform3iARB = procedure(location: glint; v0, v1, v2: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8977   TglUniform4iARB = procedure(location: glint; v0, v1, v2, v3: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8978   TglUniform1fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8979   TglUniform2fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8980   TglUniform3fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8981   TglUniform4fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8982   TglUniform1ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8983   TglUniform2ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8984   TglUniform3ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8985   TglUniform4ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8986   TglUniformMatrix2fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8987   TglUniformMatrix3fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8988   TglUniformMatrix4fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8989   TglGetObjectParameterfvARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8990   TglGetObjectParameterivARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8991   TglGetInfoLogARB = procedure(shaderObj: GLHandleARB; maxLength: glsizei; var length: glint; infoLog: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8992   TglGetAttachedObjectsARB = procedure(programobj: GLhandleARB; maxCount: GLsizei; var count: GLsizei; objects: PGLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8993   TglGetUniformLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8994   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}
8995   TglGetUniformfvARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8996   TglGetUniformivARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8997   TglGetShaderSourceARB = procedure(shader: GLhandleARB; maxLength: GLsizei; var length: GLsizei; source: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8998
8999   // GL_ARB_Occlusion_Query
9000   TglGenQueriesARB = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9001   TglDeleteQueriesARB = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9002   TglIsQueryARB = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9003   TglBeginQueryARB = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9004   TglEndQueryARB = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9005   TglGetQueryivARB = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9006   TglGetQueryObjectivARB = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9007   TglGetQueryObjectuivARB = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9008
9009   // GL_ARB_draw_instanced
9010   TglDrawArraysInstancedARB = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9011   TglDrawElementsInstancedARB = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9012
9013   // GL_ARB_framebuffer_object
9014   TglIsRenderbuffer = function(renderbuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9015   TglBindRenderbuffer = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9016   TglDeleteRenderbuffers = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9017   TglGenRenderbuffers = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9018   TglRenderbufferStorage = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9019   TglGetRenderbufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9020   TglIsFramebuffer = function(framebuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9021   TglBindFramebuffer = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9022   TglDeleteFramebuffers = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9023   TglGenFramebuffers = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9024   TglCheckFramebufferStatus = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9025   TglFramebufferTexture1D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9026   TglFramebufferTexture2D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9027   TglFramebufferTexture3D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9028   TglFramebufferRenderbuffer = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9029   TglGetFramebufferAttachmentParameteriv = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9030   TglGenerateMipmap = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9031   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}
9032   TglRenderbufferStorageMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9033   TglFramebufferTextureLayer = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9034
9035   // GL_ARB_geometry_shader4
9036   TglProgramParameteriARB = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9037   TglFramebufferTextureARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9038   TglFramebufferTextureLayerARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9039   TglFramebufferTextureFaceARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9040
9041   // GL_ARB_instanced_arrays
9042   TglVertexAttribDivisorARB = procedure(index_: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9043
9044   // GL_ARB_map_buffer_range
9045   TglMapBufferRange = function(target: GLenum; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9046   TglFlushMappedBufferRange = procedure(target: GLenum; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9047
9048   // GL_ARB_texture_buffer_object
9049   TglTexBufferARB = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9050
9051   // GL_ARB_vertex_array_object
9052   TglBindVertexArray = procedure(array_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9053   TglDeleteVertexArrays = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9054   TglGenVertexArrays = procedure(n: GLsizei; arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9055   TglIsVertexArray = function(array_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9056
9057   // GL_ARB_uniform_buffer_object
9058   TglGetUniformIndices = procedure(program_: GLuint; uniformCount: GLsizei; const uniformNames: PPGLchar; uniformIndices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9059   TglGetActiveUniformsiv = procedure(program_: GLuint; uniformCount: GLsizei; const uniformIndices: PGLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9060   TglGetActiveUniformName = procedure(program_: GLuint; uniformIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9061   TglGetUniformBlockIndex = function(program_: GLuint; const uniformBlockName: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9062   TglGetActiveUniformBlockiv = procedure(program_: GLuint; uniformBlockIndex: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9063   TglGetActiveUniformBlockName = procedure(program_: GLuint; uniformBlockIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformBlockName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9064   TglUniformBlockBinding = procedure(program_: GLuint; uniformBlockIndex: GLuint; uniformBlockBinding: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9065
9066   // GL_ARB_copy_buffer
9067   TglCopyBufferSubData = procedure(readTarget: GLenum; writeTarget: GLenum; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9068
9069   // GL_ARB_draw_elements_base_vertex
9070   TglDrawElementsBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9071   TglDrawRangeElementsBaseVertex = procedure(mode: GLenum; start: GLuint; end_: GLuint; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9072   TglDrawElementsInstancedBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9073   TglMultiDrawElementsBaseVertex = procedure(mode: GLenum; const count: PGLsizei; type_: GLenum; const indices: PPGLvoid; primcount: GLsizei; const basevertex: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9074
9075   // GL_ARB_provoking_vertex
9076   TglProvokingVertex = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9077
9078   // GL_ARB_sync
9079   TglFenceSync = function(condition: GLenum; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9080   TglIsSync = function(sync: GLsync): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9081   TglDeleteSync = procedure(sync: GLsync); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9082   TglClientWaitSync = function(sync: GLsync; flags: GLbitfield; timeout: GLuint64): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9083   TglWaitSync = procedure(sync: GLsync; flags: GLbitfield; timeout: GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9084   TglGetInteger64v = procedure(pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9085   TglGetSynciv = procedure(sync: GLsync; pname: GLenum; butSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9086
9087   // GL_ARB_texture_multisample
9088   TglTexImage2DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9089   TglTexImage3DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9090   TglGetMultisamplefv = procedure(pname: GLenum; index_: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9091   TglSampleMaski = procedure(index_: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9092
9093   // GL_ARB_draw_buffers_blend
9094   TglBlendEquationiARB = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9095   TglBlendEquationSeparateiARB = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9096   TglBlendFunciARB = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9097   TglBlendFuncSeparateiARB = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9098
9099   // GL_ARB_sample_shading
9100   TglMinSampleShadingARB = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9101
9102   // GL_ARB_shading_language_include
9103   TglNamedStringARB = procedure(type_: GLenum; namelen: GLint; const name: PGLchar; stringlen: GLint; const string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9104   TglDeleteNamedStringARB = procedure(namelen: GLint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9105   TglCompileShaderIncludeARB = procedure (shader: GLuint; count: GLsizei; const path: PPGLchar; const length: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9106   TglIsNamedStringARB = function(namelen: GLint; const name: PGLchar): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9107   TglGetNamedStringARB = procedure(namelen: GLint; const name: PGLchar; bufSize: GLsizei; stringlen: GLint; string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9108   TglGetNamedStringivARB = procedure(namelen: GLint; const name: PGLchar; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9109
9110   // GL_ARB_blend_func_extended
9111   TglBindFragDataLocationIndexed = procedure(program_: GLuint; colorNumber: GLuint; index: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9112   TglGetFragDataIndex = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9113
9114   // GL_ARB_sampler_objects
9115   TglGenSamplers = procedure(count: GLsizei; samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9116   TglDeleteSamplers = procedure(count: GLsizei; const samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9117   TglIsSampler = function(sampler: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9118   TglBindSampler = procedure(unit_: GLuint; sampler: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9119   TglSamplerParameteri = procedure(sampler: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9120   TglSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9121   TglSamplerParameterf = procedure(sampler: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9122   TglSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9123   TglSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9124   TglSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9125   TglGetSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9126   TglGetSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9127   TglGetSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9128   TglGetSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9129
9130   // GL_ARB_timer_query
9131   TglQueryCounter = procedure(id: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9132   TglGetQueryObjecti64v = procedure(id: GLuint; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9133   TglGetQueryObjectui64v = procedure(id: GLuint; pname: GLenum; params: PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9134
9135   // GL_ARB_vertex_type_2_10_10_10_rev
9136   TglVertexP2ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9137   TglVertexP2uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9138   TglVertexP3ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9139   TglVertexP3uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9140   TglVertexP4ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9141   TglVertexP4uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9142   TglTexCoordP1ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9143   TglTexCoordP1uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9144   TglTexCoordP2ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9145   TglTexCoordP2uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9146   TglTexCoordP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9147   TglTexCoordP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9148   TglTexCoordP4ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9149   TglTexCoordP4uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9150   TglMultiTexCoordP1ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9151   TglMultiTexCoordP1uiv = procedure(texture: GLenum; type_: GLenum; const coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9152   TglMultiTexCoordP2ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9153   TglMultiTexCoordP2uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9154   TglMultiTexCoordP3ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9155   TglMultiTexCoordP3uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9156   TglMultiTexCoordP4ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9157   TglMultiTexCoordP4uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9158   TglNormalP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9159   TglNormalP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9160   TglColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9161   TglColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9162   TglColorP4ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9163   TglColorP4uiv = procedure(type_: GLenum; const color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9164   TglSecondaryColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9165   TglSecondaryColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9166   TglVertexAttribP1ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9167   TglVertexAttribP1uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9168   TglVertexAttribP2ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9169   TglVertexAttribP2uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9170   TglVertexAttribP3ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9171   TglVertexAttribP3uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9172   TglVertexAttribP4ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9173   TglVertexAttribP4uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9174
9175   // GL_ARB_draw_indirect
9176   TglDrawArraysIndirect = procedure(mode: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9177   TglDrawElementsIndirect = procedure(mode: GLenum; type_: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9178
9179   // GL_ARB_gpu_shader_fp64
9180   TglUniform1d = procedure(location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9181   TglUniform2d = procedure(location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9182   TglUniform3d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9183   TglUniform4d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9184   TglUniform1dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9185   TglUniform2dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9186   TglUniform3dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9187   TglUniform4dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9188   TglUniformMatrix2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9189   TglUniformMatrix3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9190   TglUniformMatrix4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9191   TglUniformMatrix2x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9192   TglUniformMatrix2x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9193   TglUniformMatrix3x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9194   TglUniformMatrix3x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9195   TglUniformMatrix4x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9196   TglUniformMatrix4x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9197   TglGetUniformdv = procedure(program_: GLuint; location: GLint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9198
9199   // GL_ARB_shader_subroutine
9200   TglGetSubroutineUniformLocation = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9201   TglGetSubroutineIndex = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9202   TglGetActiveSubroutineUniformiv = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9203   TglGetActiveSubroutineUniformName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9204   TglGetActiveSubroutineName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9205   TglUniformSubroutinesuiv = procedure(shadertype: GLenum; count: GLsizei; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9206   TglGetUniformSubroutineuiv = procedure(shadertype: GLenum; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9207   TglGetProgramStageiv = procedure(program_: GLuint; shadertype: GLenum; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9208
9209   // GL_ARB_tessellation_shader
9210   TglPatchParameteri = procedure(pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9211   TglPatchParameterfv = procedure(pname: GLenum; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9212
9213   // GL_ARB_transform_feedback2
9214   TglBindTransformFeedback = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9215   TglDeleteTransformFeedbacks = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9216   TglGenTransformFeedbacks = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9217   TglIsTransformFeedback = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9218   TglPauseTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9219   TglResumeTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9220   TglDrawTransformFeedback = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9221
9222   // GL_ARB_transform_feedback3
9223   TglDrawTransformFeedbackStream = procedure(mode: GLenum; id: GLuint; stream: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9224   TglBeginQueryIndexed = procedure(target: GLenum; index: GLuint; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9225   TglEndQueryIndexed = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9226   TglGetQueryIndexediv = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9227
9228   // GL_ARB_ES2_compatibility
9229   TglReleaseShaderCompiler = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9230   TglShaderBinary = procedure(count: GLsizei; const shaders: PGLuint; binaryformat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9231   TglGetShaderPrecisionFormat = procedure(shadertype: GLenum; precisiontype: GLenum; range: PGLint; precision: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9232   TglDepthRangef = procedure(n: GLclampf; f: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9233   TglClearDepthf = procedure(d: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9234
9235   // GL_ARB_get_program_binary
9236   TglGetProgramBinary = procedure(program_: GLuint; bufSize: GLsizei; length: PGLsizei; binaryFormat: PGLenum; binary: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9237   TglProgramBinary = procedure(program_: GLuint; binaryFormat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9238   TglProgramParameteri = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9239   
9240   // GL_ARB_separate_shader_objects
9241   TglUseProgramStages = procedure(pipeline: GLuint; stages: GLbitfield; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9242   TglActiveShaderProgram = procedure(pipeline: GLuint; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9243   TglCreateShaderProgramv = function(type_: GLenum; count: GLsizei; const strings: PPGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9244   TglBindProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9245   TglDeleteProgramPipelines = procedure(n: GLsizei; const pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9246   TglGenProgramPipelines = procedure(n: GLsizei; pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9247   TglIsProgramPipeline = function(pipeline: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9248   TglGetProgramPipelineiv = procedure(pipeline: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9249   TglProgramUniform1i = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9250   TglProgramUniform1iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9251   TglProgramUniform1f = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9252   TglProgramUniform1fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9253   TglProgramUniform1d = procedure(program_: GLuint; location: GLint; v0: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9254   TglProgramUniform1dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9255   TglProgramUniform1ui = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9256   TglProgramUniform1uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9257   TglProgramUniform2i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9258   TglProgramUniform2iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9259   TglProgramUniform2f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9260   TglProgramUniform2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9261   TglProgramUniform2d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9262   TglProgramUniform2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9263   TglProgramUniform2ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9264   TglProgramUniform2uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9265   TglProgramUniform3i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9266   TglProgramUniform3iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9267   TglProgramUniform3f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9268   TglProgramUniform3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9269   TglProgramUniform3d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9270   TglProgramUniform3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9271   TglProgramUniform3ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9272   TglProgramUniform3uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9273   TglProgramUniform4i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9274   TglProgramUniform4iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9275   TglProgramUniform4f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9276   TglProgramUniform4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9277   TglProgramUniform4d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble; v3: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9278   TglProgramUniform4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9279   TglProgramUniform4ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9280   TglProgramUniform4uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9281   TglProgramUniformMatrix2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9282   TglProgramUniformMatrix3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9283   TglProgramUniformMatrix4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9284   TglProgramUniformMatrix2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9285   TglProgramUniformMatrix3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9286   TglProgramUniformMatrix4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9287   TglProgramUniformMatrix2x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9288   TglProgramUniformMatrix3x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9289   TglProgramUniformMatrix2x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9290   TglProgramUniformMatrix4x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9291   TglProgramUniformMatrix3x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9292   TglProgramUniformMatrix4x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9293   TglProgramUniformMatrix2x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9294   TglProgramUniformMatrix3x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9295   TglProgramUniformMatrix2x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9296   TglProgramUniformMatrix4x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9297   TglProgramUniformMatrix3x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9298   TglProgramUniformMatrix4x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9299   TglValidateProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9300   TglGetProgramPipelineInfoLog = procedure(pipeline: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9301
9302   // GL_ARB_vertex_attrib_64bit
9303   TglVertexAttribL1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9304   TglVertexAttribL2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9305   TglVertexAttribL3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9306   TglVertexAttribL4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9307   TglVertexAttribL1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9308   TglVertexAttribL2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9309   TglVertexAttribL3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9310   TglVertexAttribL4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9311   TglVertexAttribLPointer = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9312   TglGetVertexAttribLdv = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9313
9314   // GL_ARB_viewport_array
9315   TglViewportArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9316   TglViewportIndexedf = procedure(index: GLuint; x: GLfloat; y: GLfloat; w: GLfloat; h: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9317   TglViewportIndexedfv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9318   TglScissorArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9319   TglScissorIndexed = procedure(index: GLuint; left: GLint; bottom: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9320   TglScissorIndexedv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9321   TglDepthRangeArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9322   TglDepthRangeIndexed = procedure(index: GLuint; n: GLclampd; f: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9323   TglGetFloati_v = procedure(target: GLenum; index: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9324   TglGetDoublei_v = procedure(target: GLenum; index: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9325
9326   // GL 4.2
9327
9328   // GL_ARB_base_instance
9329   TglDrawArraysInstancedBaseInstance = procedure(mode : GLenum; first : GLint; count :GLsizei; primcount : GLsizei; baseinstance : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9330   TglDrawElementsInstancedBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount : GLsizei; baseinstance : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9331   TglDrawElementsInstancedBaseVertexBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount :GLsizei; basevertex : GLint; baseinstance : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9332
9333   // GL_ARB_transform_feedback_instanced
9334   TglDrawTransformFeedbackInstanced = procedure(mode : GLenum; id : GLuint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9335   TglDrawTransformFeedbackStreamInstanced = procedure(mode : GLenum; id : GLUInt; stream : GLUint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9336
9337   // GL_ARB_internalformat_query
9338   TglGetInternalformativ = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9339
9340   // GL_ARB_shader_atomic_counters
9341   TglGetActiveAtomicCounterBufferiv = procedure(_program : GLuint; bufferIndex : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9342
9343   /// GL_ARB_shader_image_load_store
9344   TglBindImageTexture = procedure(_unit : GLuint; texture : GLuint; level :GLint; layered : GLboolean; layer : GLint; access : GLenum; format : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9345   TglMemoryBarrier = procedure(barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9346
9347   // GL_ARB_texture_storage
9348   TglTexStorage1D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9349   TglTexStorage2D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9350   TglTexStorage3D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9351   TglTextureStorage1DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9352   TglTextureStorage2DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9353   TglTextureStorage3DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9354
9355
9356   // GL 4.3
9357
9358   // GL_KHR_debug
9359   TglDebugMessageControl = procedure(source : GLenum; type_ : GLenum; severity : TGLenum; count : GLsizei; const ids : PGLUInt; enabled : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9360   TglDebugMessageInsert = procedure(source : GLenum;  type_ : GLenum; id : GLuint; sverity : GLenum; length : GLsizei; const buf : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9361   TglDebugMessageCallback = procedure(callback : TGLDEBUGPROC; const userParam : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9362   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}
9363   TglPushDebugGroup = procedure(source : GLenum; id : GLuint; length : GLsizei; const message_ : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9364   TglPopDebugGroup = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9365   TglObjectLabel = procedure(identifier : GLenum; name : GLuint; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9366   TglGetObjectLabel = procedure(identifier : GLenum; name : GLuint; bufsize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9367   TglObjectPtrLabel = procedure(const ptr : Pointer; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9368   TglGetObjectPtrLabel = procedure(const ptr : Pointer; bufSize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9369
9370   // GL_ARB_clear_buffer_object
9371   TglClearBufferData = procedure(target : GLenum; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9372   TglClearBufferSubData = procedure(target : GLenum; internalformat : GLenum; offset : GLintptr; size : GLsizeiptr; format : GLenum; type_ : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9373   TglClearNamedBufferDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9374   TglClearNamedBufferSubDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLenum; type_ : GLenum; offset : GLsizeiptr; size : GLsizeiptr; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9375
9376   // GL_ARB_compute_shader 1
9377   TglDispatchCompute = procedure(num_groups_x : GLuint; num_groups_y : GLuint; num_groups_z : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9378   TglDispatchComputeIndirect = procedure(indirect : GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9379
9380   // GL_ARB_copy_image
9381   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}
9382
9383   // GL_ARB_debug_group
9384   // ARB_debug_group reuses entry points from KHR_debug
9385
9386   // GL_ARB_debug_label
9387   // ARB_debug_label reuses entry points from KHR_debug
9388
9389   // GL_ARB_debug_output2
9390
9391   // GL_ARB_ES3_compatibility
9392
9393   // GL_ARB_explicit_uniform_location
9394
9395   // GL_ARB_fragment_layer_viewport
9396
9397   // GL_ARB_framebuffer_no_attachments
9398   TglFramebufferParameteri = procedure(target : GLenum; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9399   TglGetFramebufferParameteriv = procedure(target : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9400   TglNamedFramebufferParameteriEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9401   TglGetNamedFramebufferParameterivEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9402
9403   // GL_ARB_internalformat_query2
9404   TglGetInternalformati64v = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9405
9406   // GL_ARB_invalidate_subdata
9407   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}
9408   TglInvalidateTexImage = procedure(texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9409   TglInvalidateBufferSubData = procedure(buffer : GLuint; offset : GLintptr; length : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9410   TglInvalidateBufferData = procedure(buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9411   TglInvalidateFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9412   TglInvalidateSubFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9413
9414   // GL_ARB_multi_draw_indirect
9415   TglMultiDrawArraysIndirect = procedure(mode : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9416   TglMultiDrawElementsIndirect = procedure(mode : GLenum; type_ : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9417
9418   // GL_ARB_program_interface_query
9419   TglGetProgramInterfaceiv = procedure(program_ : GLUInt;programInterface : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9420   TglGetProgramResourceIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLUInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9421   TglGetProgramResourceName = procedure(program_ : GLUInt;programInterface : GLenum; index : GLuint; bufSize : GLsizei; length : PGLsizei; name : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9422   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}
9423   TglGetProgramResourceLocation = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9424   TglGetProgramResourceLocationIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9425
9426   // GL_ARB_robust_buffer_access_behavior
9427
9428   // GL_ARB_shader_image_size
9429
9430   // GL_ARB_shader_storage_buffer_object
9431   TglShaderStorageBlockBinding = procedure(program_ : GLuint; storageBlockIndex : GLuint; storageBlockBinding : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9432
9433   // GL_ARB_stencil_texturing
9434
9435   // GL_ARB_texture_buffer_range
9436   TglTexBufferRange = procedure(target : GLenum; internalformat : GLenum; buffer : GLuint; offset :GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9437   TglTextureBufferRangeEXT = procedure(texture : GLuint; target : GLenum; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9438
9439   // GL_ARB_texture_query_levels
9440
9441   // GL_ARB_texture_storage_multisample
9442   TglTexStorage2DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9443   TglTexStorage3DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9444   TglTextureStorage2DMultisampleEXT = procedure(texture : GLuint; target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9445   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}
9446
9447   // GL 4.4
9448
9449   TglBufferStorage = procedure(target : GLenum; size : GLsizeiptr; const data : pointer; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9450         TglClearTexImage = procedure(texture : GLuint; level : GLint; format : GLenum; _type : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9451         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}
9452         TglBindBuffersBase = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9453         TglBindBuffersRange = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : GLintptr; const sizes : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9454         TglBindTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9455         TglBindSamplers = procedure(first : GLuint; count : GLsizei; const samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9456         TglBindImageTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9457         TglBindVertexBuffers = procedure(first : GLuint; count : GLsizei; const buffers : GLuint; const offsets : GLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9458
9459   // END GL 4.4
9460
9461
9462   // GL_ARB_texture_view
9463   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}
9464
9465   // GL_ARB_vertex_attrib_binding
9466   TglBindVertexBuffer = procedure(bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9467   TglVertexAttribFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9468   TglVertexAttribIFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9469   TglVertexAttribLFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9470   TglVertexAttribBinding = procedure(attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9471   TglVertexBindingDivisor = procedure(bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9472   TglVertexArrayBindVertexBufferEXT = procedure(vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9473   TglVertexArrayVertexAttribFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9474   TglVertexArrayVertexAttribIFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9475   TglVertexArrayVertexAttribLFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9476   TglVertexArrayVertexAttribBindingEXT = procedure(vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9477   TglVertexArrayVertexBindingDivisorEXT = procedure(vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9478
9479   // GL_ARB_robustness_isolation
9480
9481   //
9482
9483   // GL_ARB_cl_event
9484   TglCreateSyncFromCLeventARB = function(context: p_cl_context; event: p_cl_event; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9485
9486   // GL_ARB_debug_output
9487   TglDebugMessageControlARB = procedure(source: GLenum; type_: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9488   TglDebugMessageInsertARB = procedure(source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9489   TglDebugMessageCallbackARB = procedure(callback: TglDebugProcARB; const userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9490   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}
9491
9492   // GL_ARB_robustness
9493   TglGetGraphicsResetStatusARB = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9494   TglGetnMapdvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9495   TglGetnMapfvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9496   TglGetnMapivARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9497   TglGetnPixelMapfvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9498   TglGetnPixelMapuivARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9499   TglGetnPixelMapusvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9500   TglGetnPolygonStippleARB = procedure(bufSize: GLsizei; pattern: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9501   TglGetnColorTableARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9502   TglGetnConvolutionFilterARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9503   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}
9504   TglGetnHistogramARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9505   TglGetnMinmaxARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9506   TglGetnTexImageARB = procedure(target: GLenum; level: GLint; format: GLenum; type_: GLenum; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9507   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}
9508   TglGetnCompressedTexImageARB = procedure(target: GLenum; lod: GLint; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9509   TglGetnUniformfvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9510   TglGetnUniformivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9511   TglGetnUniformuivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9512   TglGetnUniformdvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9513
9514   // GL_ATI_draw_buffers
9515   TglDrawBuffersATI = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9516
9517   // GL_ATI_element_array
9518   TglElementPointerATI = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9519   TglDrawElementArrayATI = procedure(mode: GLenum; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9520   TglDrawRangeElementArrayATI = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9521
9522   // GL_ATI_envmap_bumpmap
9523   TglTexBumpParameterivATI = procedure(pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9524   TglTexBumpParameterfvATI = procedure(pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9525   TglGetTexBumpParameterivATI = procedure(pname: GLenum; param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9526   TglGetTexBumpParameterfvATI = procedure(pname: GLenum; param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9527
9528   // GL_ATI_fragment_shader
9529   TglGenFragmentShadersATI = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9530   TglBindFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9531   TglDeleteFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9532   TglBeginFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9533   TglEndFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9534   TglPassTexCoordATI = procedure(dst: GLuint; coord: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9535   TglSampleMapATI = procedure(dst: GLuint; interp: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9536   TglColorFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9537   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}
9538   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}
9539   TglAlphaFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9540   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}
9541   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}
9542   TglSetFragmentShaderConstantATI = procedure(dst: GLuint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9543
9544   // GL_ATI_map_object_buffer
9545   TglMapObjectBufferATI = function(buffer: GLuint): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9546   TglUnmapObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9547
9548   // GL_ATI_pn_triangles
9549   TglPNTrianglesiATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9550   TglPNTrianglesfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9551
9552   // GL_ATI_separate_stencil
9553   TglStencilOpSeparateATI = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9554   TglStencilFuncSeparateATI = procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9555
9556   // GL_ATI_vertex_array_object
9557   TglNewObjectBufferATI = function(size: GLsizei; const _pointer: PGLvoid; usage: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9558   TglIsObjectBufferATI = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9559   TglUpdateObjectBufferATI = procedure(buffer: GLuint; offset: GLuint; size: GLsizei; const _pointer: PGLvoid; preserve: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9560   TglGetObjectBufferfvATI = procedure(buffer: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9561   TglGetObjectBufferivATI = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9562   TglFreeObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9563   TglArrayObjectATI = procedure(_array: GLenum; size: GLint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9564   TglGetArrayObjectfvATI = procedure(_array: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9565   TglGetArrayObjectivATI = procedure(_array: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9566   TglVariantArrayObjectATI = procedure(id: GLuint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9567   TglGetVariantArrayObjectfvATI = procedure(id: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9568   TglGetVariantArrayObjectivATI = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9569
9570   // GL_ATI_vertex_attrib_array_object
9571   TglVertexAttribArrayObjectATI = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9572   TglGetVertexAttribArrayObjectfvATI = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9573   TglGetVertexAttribArrayObjectivATI = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9574
9575   // GL_ATI_vertex_streams
9576   TglVertexStream1sATI = procedure(stream: GLenum; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9577   TglVertexStream1svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9578   TglVertexStream1iATI = procedure(stream: GLenum; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9579   TglVertexStream1ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9580   TglVertexStream1fATI = procedure(stream: GLenum; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9581   TglVertexStream1fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9582   TglVertexStream1dATI = procedure(stream: GLenum; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9583   TglVertexStream1dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9584   TglVertexStream2sATI = procedure(stream: GLenum; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9585   TglVertexStream2svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9586   TglVertexStream2iATI = procedure(stream: GLenum; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9587   TglVertexStream2ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9588   TglVertexStream2fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9589   TglVertexStream2fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9590   TglVertexStream2dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9591   TglVertexStream2dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9592   TglVertexStream3sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9593   TglVertexStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9594   TglVertexStream3iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9595   TglVertexStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9596   TglVertexStream3fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9597   TglVertexStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9598   TglVertexStream3dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9599   TglVertexStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9600   TglVertexStream4sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9601   TglVertexStream4svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9602   TglVertexStream4iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9603   TglVertexStream4ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9604   TglVertexStream4fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9605   TglVertexStream4fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9606   TglVertexStream4dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9607   TglVertexStream4dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9608   TglNormalStream3bATI = procedure(stream: GLenum; nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9609   TglNormalStream3bvATI = procedure(stream: GLenum; const coords: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9610   TglNormalStream3sATI = procedure(stream: GLenum; nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9611   TglNormalStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9612   TglNormalStream3iATI = procedure(stream: GLenum; nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9613   TglNormalStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9614   TglNormalStream3fATI = procedure(stream: GLenum; nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9615   TglNormalStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9616   TglNormalStream3dATI = procedure(stream: GLenum; nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9617   TglNormalStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9618   TglClientActiveVertexStreamATI = procedure(stream: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9619   TglVertexBlendEnviATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9620   TglVertexBlendEnvfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9621
9622   // GL_AMD_performance_monitor
9623   TglGetPerfMonitorGroupsAMD = procedure(numGroups: PGLint; groupsSize: GLsizei; groups: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9624   TglGetPerfMonitorCountersAMD = procedure(group: GLuint; numCounters: PGLint; maxActiveCouters: PGLint; counterSize: GLsizei; counters: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9625   TglGetPerfMonitorGroupStringAMD = procedure(group: GLuint; bufSize: GLsizei; length: PGLsizei; groupString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9626   TglGetPerfMonitorCounterStringAMD = procedure(group: GLuint; counter: GLuint; bufSize: GLsizei; length: PGLsizei; counterString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9627   TglGetPerfMonitorCounterInfoAMD = procedure(group: GLuint; counter: GLuint; pname: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9628   TglGenPerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9629   TglDeletePerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9630   TglSelectPerfMonitorCountersAMD = procedure(monitor: GLuint; enable: GLboolean; group: GLuint; numCounters: GLint; counterList: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9631   TglBeginPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9632   TglEndPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9633   TglGetPerfMonitorCounterDataAMD = procedure(monitor: GLuint; pname: GLenum; dataSize: GLsizei; data: PGLuint; bytesWritten: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9634
9635   // GL_AMD_vertex_shader_tesselator
9636   TglTessellationFactorAMD = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9637   TglTessellationModeAMD = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9638
9639   // GL_AMD_draw_buffers_blend
9640   TglBlendFuncIndexedAMD = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9641   TglBlendFuncSeparateIndexedAMD = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9642   TglBlendEquationIndexedAMD = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9643   TglBlendEquationSeparateIndexedAMD = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9644
9645   // GL_AMD_name_gen_delete
9646   TglGenNamesAMD = procedure(identifier: GLenum; num: GLuint; names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9647   TglDeleteNamesAMD = procedure(identifier: GLenum; num: GLuint; const names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9648   TglIsNameAMD = function(identifier: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9649
9650   // GL_AMD_debug_output
9651   TglDebugMessageEnableAMD = procedure(category: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9652   TglDebugMessageInsertAMD = procedure(category: GLenum; severity: GLenum; id: GLuint; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9653   TglDebugMessageCallbackAMD = procedure(callback: TGLDebugProcAMD; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9654   TglGetDebugMessageLogAMD = function(count: GLuint; bufsize: GLsizei; categories: PGLenum; severities: PGLuint; ids: PGLuint; lengths: PGLsizei; message: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9655
9656   // GL_EXT_blend_color
9657   TglBlendColorEXT = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9658
9659   // GL_EXT_blend_func_separate
9660   TglBlendFuncSeparateEXT = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9661
9662   // GL_EXT_blend_minmax
9663   TglBlendEquationEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9664
9665   // GL_EXT_color_subtable
9666   TglColorSubTableEXT = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9667   TglCopyColorSubTableEXT = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9668
9669   // GL_EXT_compiled_vertex_array
9670   TglLockArraysEXT = procedure(first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9671   TglUnlockArraysEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9672
9673   // GL_EXT_convolution
9674   TglConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9675   TglConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9676   TglConvolutionParameterfEXT = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9677   TglConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9678   TglConvolutionParameteriEXT = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9679   TglConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9680   TglCopyConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9681   TglCopyConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9682   TglGetConvolutionFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9683   TglGetConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9684   TglGetConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9685   TglGetSeparableFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9686   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}
9687
9688   // GL_EXT_coordinate_frame
9689   TglTangent3bEXT = procedure(tx: GLbyte; ty: GLbyte; tz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9690   TglTangent3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9691   TglTangent3dEXT = procedure(tx: GLdouble; ty: GLdouble; tz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9692   TglTangent3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9693   TglTangent3fEXT = procedure(tx: GLfloat; ty: GLfloat; tz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9694   TglTangent3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9695   TglTangent3iEXT = procedure(tx: GLint; ty: GLint; tz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9696   TglTangent3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9697   TglTangent3sEXT = procedure(tx: GLshort; ty: GLshort; tz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9698   TglTangent3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9699   TglBinormal3bEXT = procedure(bx: GLbyte; by: GLbyte; bz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9700   TglBinormal3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9701   TglBinormal3dEXT = procedure(bx: GLdouble; by: GLdouble; bz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9702   TglBinormal3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9703   TglBinormal3fEXT = procedure(bx: GLfloat; by: GLfloat; bz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9704   TglBinormal3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9705   TglBinormal3iEXT = procedure(bx: GLint; by: GLint; bz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9706   TglBinormal3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9707   TglBinormal3sEXT = procedure(bx: GLshort; by: GLshort; bz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9708   TglBinormal3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9709   TglTangentPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9710   TglBinormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9711
9712   // GL_EXT_copy_texture
9713   TglCopyTexImage1DEXT = procedure(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9714   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}
9715   TglCopyTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9716   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}
9717   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}
9718
9719   // GL_EXT_cull_vertex
9720   TglCullParameterdvEXT = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9721   TglCullParameterfvEXT = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9722
9723   // GL_EXT_draw_range_elements
9724   TglDrawRangeElementsEXT = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9725
9726   // GL_EXT_fog_coord
9727   TglFogCoordfEXT = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9728   TglFogCoordfvEXT = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9729   TglFogCoorddEXT = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9730   TglFogCoorddvEXT = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9731   TglFogCoordPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9732
9733   // GL_EXT_framebuffer_object
9734   TglIsRenderbufferEXT = function(renderbuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9735   TglBindRenderbufferEXT = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9736   TglDeleteRenderbuffersEXT = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9737   TglGenRenderbuffersEXT = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9738   TglRenderbufferStorageEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9739   TglGetRenderbufferParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9740   TglIsFramebufferEXT = function(framebuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9741   TglBindFramebufferEXT = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9742   TglDeleteFramebuffersEXT = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9743   TglGenFramebuffersEXT = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9744   TglCheckFramebufferStatusEXT = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9745   TglFramebufferTexture1DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9746   TglFramebufferTexture2DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9747   TglFramebufferTexture3DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9748   TglFramebufferRenderbufferEXT = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9749   TglGetFramebufferAttachmentParameterivEXT = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9750   TglGenerateMipmapEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9751
9752   // GL_EXT_histogram
9753   TglGetHistogramEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9754   TglGetHistogramParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9755   TglGetHistogramParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9756   TglGetMinmaxEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9757   TglGetMinmaxParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9758   TglGetMinmaxParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9759   TglHistogramEXT = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9760   TglMinmaxEXT = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9761   TglResetHistogramEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9762   TglResetMinmaxEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9763
9764   // GL_EXT_index_func
9765   TglIndexFuncEXT = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9766
9767   // GL_EXT_index_material
9768   TglIndexMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9769
9770   // GL_EXT_light_texture
9771   TglApplyTextureEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9772   TglTextureLightEXT = procedure(pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9773   TglTextureMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9774
9775   // GL_EXT_multi_draw_arrays
9776   TglMultiDrawArraysEXT = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9777   TglMultiDrawElementsEXT = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9778
9779   // GL_EXT_multisample
9780   TglSampleMaskEXT = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9781   TglSamplePatternEXT = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9782
9783   // GL_EXT_paletted_texture
9784   TglColorTableEXT = procedure(target: GLenum; internalFormat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9785   TglGetColorTableEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9786   TglGetColorTableParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9787   TglGetColorTableParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9788
9789   // GL_EXT_pixel_transform
9790   TglPixelTransformParameteriEXT = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9791   TglPixelTransformParameterfEXT = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9792   TglPixelTransformParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9793   TglPixelTransformParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9794
9795   // GL_EXT_point_parameters
9796   TglPointParameterfEXT = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9797   TglPointParameterfvEXT = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9798
9799   // GL_EXT_polygon_offset
9800   TglPolygonOffsetEXT = procedure(factor: GLfloat; bias: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9801
9802   // GL_EXT_secondary_color
9803   TglSecondaryColor3bEXT = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9804   TglSecondaryColor3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9805   TglSecondaryColor3dEXT = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9806   TglSecondaryColor3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9807   TglSecondaryColor3fEXT = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9808   TglSecondaryColor3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9809   TglSecondaryColor3iEXT = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9810   TglSecondaryColor3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9811   TglSecondaryColor3sEXT = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9812   TglSecondaryColor3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9813   TglSecondaryColor3ubEXT = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9814   TglSecondaryColor3ubvEXT = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9815   TglSecondaryColor3uiEXT = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9816   TglSecondaryColor3uivEXT = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9817   TglSecondaryColor3usEXT = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9818   TglSecondaryColor3usvEXT = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9819   TglSecondaryColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9820
9821   // GL_EXT_stencil_two_side
9822   TglActiveStencilFaceEXT = procedure(face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9823
9824   // GL_EXT_subtexture
9825   TglTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9826   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}
9827
9828   // GL_EXT_texture3D
9829   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}
9830   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}
9831
9832   // GL_EXT_texture_object
9833   TglAreTexturesResidentEXT = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9834   TglBindTextureEXT = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9835   TglDeleteTexturesEXT = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9836   TglGenTexturesEXT = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9837   TglIsTextureEXT = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9838   TglPrioritizeTexturesEXT = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9839
9840   // GL_EXT_texture_perturb_normal
9841   TglTextureNormalEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9842
9843   // GL_EXT_vertex_array
9844   TglArrayElementEXT = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9845   TglColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9846   TglDrawArraysEXT = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9847   TglEdgeFlagPointerEXT = procedure(stride: GLsizei; count: GLsizei; const _pointer: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9848   TglGetPointervEXT = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9849   TglIndexPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9850   TglNormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9851   TglTexCoordPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9852   TglVertexPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9853
9854   // GL_EXT_vertex_shader
9855   TglBeginVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9856   TglEndVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9857   TglBindVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9858   TglGenVertexShadersEXT = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9859   TglDeleteVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9860   TglShaderOp1EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9861   TglShaderOp2EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9862   TglShaderOp3EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint; arg3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9863   TglSwizzleEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9864   TglWriteMaskEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9865   TglInsertComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9866   TglExtractComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9867   TglGenSymbolsEXT = function(datatype: GLenum; storagetype: GLenum; range: GLenum; components: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9868   TglSetInvariantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9869   TglSetLocalConstantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9870   TglVariantbvEXT = procedure(id: GLuint; const addr: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9871   TglVariantsvEXT = procedure(id: GLuint; const addr: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9872   TglVariantivEXT = procedure(id: GLuint; const addr: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9873   TglVariantfvEXT = procedure(id: GLuint; const addr: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9874   TglVariantdvEXT = procedure(id: GLuint; const addr: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9875   TglVariantubvEXT = procedure(id: GLuint; const addr: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9876   TglVariantusvEXT = procedure(id: GLuint; const addr: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9877   TglVariantuivEXT = procedure(id: GLuint; const addr: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9878   TglVariantPointerEXT = procedure(id: GLuint; _type: GLenum; stride: GLuint; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9879   TglEnableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9880   TglDisableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9881   TglBindLightParameterEXT = function(light: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9882   TglBindMaterialParameterEXT = function(face: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9883   TglBindTexGenParameterEXT = function(_unit: GLenum; coord: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9884   TglBindTextureUnitParameterEXT = function(_unit: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9885   TglBindParameterEXT = function(value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9886   TglIsVariantEnabledEXT = function(id: GLuint; cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9887   TglGetVariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9888   TglGetVariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9889   TglGetVariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9890   TglGetVariantPointervEXT = procedure(id: GLuint; value: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9891   TglGetInvariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9892   TglGetInvariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9893   TglGetInvariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9894   TglGetLocalConstantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9895   TglGetLocalConstantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9896   TglGetLocalConstantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9897
9898   // GL_EXT_vertex_weighting
9899   TglVertexWeightfEXT = procedure(weight: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9900   TglVertexWeightfvEXT = procedure(const weight: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9901   TglVertexWeightPointerEXT = procedure(size: GLsizei; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9902
9903   // GL_EXT_stencil_clear_tag
9904   TglStencilClearTagEXT = procedure(stencilTagBits: GLsizei; stencilClearTag: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9905
9906   // GL_EXT_framebuffer_blit
9907   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}
9908
9909   // GL_EXT_framebuffer_multisample
9910   TglRenderbufferStorageMultisampleEXT = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9911
9912   // GL_EXT_timer_query
9913   TglGetQueryObjecti64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9914   TglGetQueryObjectui64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9915
9916   // GL_EXT_gpu_program_parameters
9917   TglProgramEnvParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9918   TglProgramLocalParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9919
9920   // GL_EXT_bindable_uniform
9921   TglUniformBufferEXT = procedure(_program: GLuint; location: GLint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9922   TglGetUniformBufferSizeEXT = function(_program: GLuint; location: GLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9923   TglGetUniformOffsetEXT = function(_program: GLuint; location: GLint): GLintptr; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9924
9925   // GL_EXT_draw_buffers2
9926   TglColorMaskIndexedEXT = procedure(buf: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9927   TglGetBooleanIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9928   TglGetIntegerIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9929   TglEnableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9930   TglDisableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9931   TglIsEnabledIndexedEXT = function(target: GLenum; index: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9932
9933   // GL_EXT_draw_instanced
9934   TglDrawArraysInstancedEXT = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9935   TglDrawElementsInstancedEXT = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: Pointer; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9936
9937   // GL_EXT_geometry_shader4
9938   TglProgramParameteriEXT = procedure (_program: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9939   TglFramebufferTextureEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9940 //  TglFramebufferTextureLayerEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9941   TglFramebufferTextureFaceEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9942
9943   // GL_EXT_gpu_shader4
9944   TglVertexAttribI1iEXT = procedure(index: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9945   TglVertexAttribI2iEXT = procedure(index: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9946   TglVertexAttribI3iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9947   TglVertexAttribI4iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9948   TglVertexAttribI1uiEXT = procedure(index: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9949   TglVertexAttribI2uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9950   TglVertexAttribI3uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9951   TglVertexAttribI4uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9952   TglVertexAttribI1ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9953   TglVertexAttribI2ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9954   TglVertexAttribI3ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9955   TglVertexAttribI4ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9956   TglVertexAttribI1uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9957   TglVertexAttribI2uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9958   TglVertexAttribI3uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9959   TglVertexAttribI4uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9960   TglVertexAttribI4bvEXT = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9961   TglVertexAttribI4svEXT = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9962   TglVertexAttribI4ubvEXT = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9963   TglVertexAttribI4usvEXT = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9964   TglVertexAttribIPointerEXT = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const _pointer: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9965   TglGetVertexAttribIivEXT = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9966   TglGetVertexAttribIuivEXT = procedure(index: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9967   TglUniform1uiEXT = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9968   TglUniform2uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9969   TglUniform3uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9970   TglUniform4uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9971   TglUniform1uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9972   TglUniform2uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9973   TglUniform3uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9974   TglUniform4uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9975   TglGetUniformuivEXT = procedure(_program: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9976   TglBindFragDataLocationEXT = procedure(_program: GLuint; colorNumber: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9977   TglGetFragDataLocationEXT = function(_program: GLuint; const name: PGLchar): GLint;
9978
9979   // GL_EXT_texture_array
9980   TglFramebufferTextureLayerEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9981
9982   // GL_EXT_texture_buffer_object
9983   TglTexBufferEXT = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9984
9985   // GL_EXT_texture_integer
9986   TglClearColorIiEXT = procedure(r: GLint; g: GLint; b: GLint; a: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9987   TglClearColorIuiEXT = procedure(r: GLuint; g: GLuint; b: GLuint; a: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9988   TglTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9989   TglTexParameterIuivEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9990   TglGetTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9991   TglGetTexParameterIiuvEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9992
9993   // GL_HP_image_transform
9994   TglImageTransformParameteriHP = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9995   TglImageTransformParameterfHP = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9996   TglImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9997   TglImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9998   TglGetImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9999   TglGetImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10000
10001   // GL_EXT_depth_bounds_test
10002   TglDepthBoundsEXT = procedure(zmin: GLclampd; zmax: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10003
10004   // GL_EXT_blend_equation_separate
10005   TglBlendEquationSeparateEXT = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10006
10007   // GL_EXT_transform_feedback
10008   TglBeginTransformFeedbackEXT = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10009   TglEndTransformFeedbackEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10010   TglBindBufferRangeEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10011   TglBindBufferOffsetEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10012   TglBindBufferBaseEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10013   TglTransformFeedbackVaryingsEXT = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10014   TglGetTransformFeedbackVaryingEXT = procedure(program_: GLuint; index_: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10015
10016   // GL_EXT_direct_state_access
10017   TglClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10018   TglPushClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10019   TglMatrixLoadfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10020   TglMatrixLoaddEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10021   TglMatrixMultfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10022   TglMatrixMultdEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10023   TglMatrixLoadIdentityEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10024   TglMatrixRotatefEXT = procedure(mode: GLenum; angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10025   TglMatrixRotatedEXT = procedure(mode: GLenum; angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10026   TglMatrixScalefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10027   TglMatrixScaledEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10028   TglMatrixTranslatefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10029   TglMatrixTranslatedEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10030   TglMatrixFrustumEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10031   TglMatrixOrthoEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10032   TglMatrixPopEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10033   TglMatrixPushEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10034   TglMatrixLoadTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10035   TglMatrixLoadTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10036   TglMatrixMultTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10037   TglMatrixMultTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10038   TglTextureParameterfEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10039   TglTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10040   TglTextureParameteriEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10041   TglTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10042   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}
10043   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}
10044   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}
10045   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}
10046   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}
10047   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}
10048   TglCopyTextureSubImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10049   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}
10050   TglGetTextureImageEXT = procedure(texture: GLuint; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10051   TglGetTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10052   TglGetTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10053   TglGetTextureLevelParameterfvEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10054   TglGetTextureLevelParameterivEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10055   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}
10056   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}
10057   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}
10058   TglMultiTexParameterfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10059   TglMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10060   TglMultiTexParameteriEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10061   TglMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10062   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}
10063   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}
10064   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}
10065   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}
10066   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}
10067   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}
10068   TglCopyMultiTexSubImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10069   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}
10070   TglGetMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10071   TglGetMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10072   TglGetMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10073   TglGetMultiTexLevelParameterfvEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10074   TglGetMultiTexLevelParameterivEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10075   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}
10076   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}
10077   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}
10078   TglBindMultiTextureEXT = procedure(texunit: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10079   TglEnableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10080   TglDisableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10081   TglMultiTexCoordPointerEXT = procedure(texunit: GLenum; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10082   TglMultiTexEnvfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10083   TglMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10084   TglMultiTexEnviEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10085   TglMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10086   TglMultiTexGendEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10087   TglMultiTexGendvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10088   TglMultiTexGenfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10089   TglMultiTexGenfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10090   TglMultiTexGeniEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10091   TglMultiTexGenivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10092   TglGetMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10093   TglGetMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10094   TglGetMultiTexGendvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10095   TglGetMultiTexGenfvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10096   TglGetMultiTexGenivEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10097   TglGetFloatIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10098   TglGetDoubleIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10099   TglGetPointerIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10100   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}
10101   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}
10102   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}
10103   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}
10104   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}
10105   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}
10106   TglGetCompressedTextureImageEXT = procedure(texture: GLuint; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10107   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}
10108   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}
10109   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}
10110   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}
10111   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}
10112   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}
10113   TglGetCompressedMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10114   TglNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; format: GLenum; len: GLsizei; const string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10115   TglNamedProgramLocalParameter4dEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10116   TglNamedProgramLocalParameter4dvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10117   TglNamedProgramLocalParameter4fEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10118   TglNamedProgramLocalParameter4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10119   TglGetNamedProgramLocalParameterdvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10120   TglGetNamedProgramLocalParameterfvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10121   TglGetNamedProgramivEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10122   TglGetNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10123   TglNamedProgramLocalParameters4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10124   TglNamedProgramLocalParameterI4iEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10125   TglNamedProgramLocalParameterI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10126   TglNamedProgramLocalParametersI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10127   TglNamedProgramLocalParameterI4uiEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10128   TglNamedProgramLocalParameterI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10129   TglNamedProgramLocalParametersI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10130   TglGetNamedProgramLocalParameterIivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10131   TglGetNamedProgramLocalParameterIuivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10132   TglTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10133   TglTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10134   TglGetTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10135   TglGetTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10136   TglMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10137   TglMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10138   TglGetMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10139   TglGetMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10140   TglProgramUniform1fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10141   TglProgramUniform2fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10142   TglProgramUniform3fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10143   TglProgramUniform4fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10144   TglProgramUniform1iEXT = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10145   TglProgramUniform2iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10146   TglProgramUniform3iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10147   TglProgramUniform4iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10148   TglProgramUniform1fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10149   TglProgramUniform2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10150   TglProgramUniform3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10151   TglProgramUniform4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10152   TglProgramUniform1ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10153   TglProgramUniform2ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10154   TglProgramUniform3ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10155   TglProgramUniform4ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10156   TglProgramUniformMatrix2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10157   TglProgramUniformMatrix3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10158   TglProgramUniformMatrix4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10159   TglProgramUniformMatrix2x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10160   TglProgramUniformMatrix3x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10161   TglProgramUniformMatrix2x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10162   TglProgramUniformMatrix4x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10163   TglProgramUniformMatrix3x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10164   TglProgramUniformMatrix4x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10165   TglProgramUniform1uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10166   TglProgramUniform2uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10167   TglProgramUniform3uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10168   TglProgramUniform4uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10169   TglProgramUniform1uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10170   TglProgramUniform2uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10171   TglProgramUniform3uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10172   TglProgramUniform4uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10173   TglNamedBufferDataEXT = procedure(buffer: GLuint; size: GLsizei; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10174   TglNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10175   TglMapNamedBufferEXT = function(buffer: GLuint; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10176   TglUnmapNamedBufferEXT = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10177   TglMapNamedBufferRangeEXT = function(buffer: GLuint; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10178   TglFlushMappedNamedBufferRangeEXT = procedure(buffer: GLuint; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10179   TglNamedCopyBufferSubDataEXT = procedure(readBuffer: GLuint; writeBuffer: GLuint; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10180   TglGetNamedBufferParameterivEXT = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10181   TglGetNamedBufferPointervEXT = procedure(buffer: GLuint; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10182   TglGetNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10183   TglTextureBufferEXT = procedure(texture: GLuint; target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10184   TglMultiTexBufferEXT = procedure(texunit: GLenum; target: GLenum; interformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10185   TglNamedRenderbufferStorageEXT = procedure(renderbuffer: GLuint; interformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10186   TglGetNamedRenderbufferParameterivEXT = procedure(renderbuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10187   TglCheckNamedFramebufferStatusEXT = function(framebuffer: GLuint; target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10188   TglNamedFramebufferTexture1DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10189   TglNamedFramebufferTexture2DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10190   TglNamedFramebufferTexture3DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10191   TglNamedFramebufferRenderbufferEXT = procedure(framebuffer: GLuint; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10192   TglGetNamedFramebufferAttachmentParameterivEXT = procedure(framebuffer: GLuint; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10193   TglGenerateTextureMipmapEXT = procedure(texture: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10194   TglGenerateMultiTexMipmapEXT = procedure(texunit: GLenum; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10195   TglFramebufferDrawBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10196   TglFramebufferDrawBuffersEXT = procedure(framebuffer: GLuint; n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10197   TglFramebufferReadBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10198   TglGetFramebufferParameterivEXT = procedure(framebuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10199   TglNamedRenderbufferStorageMultisampleEXT = procedure(renderbuffer: GLuint; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10200   TglNamedRenderbufferStorageMultisampleCoverageEXT = procedure(renderbuffer: GLuint; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10201   TglNamedFramebufferTextureEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10202   TglNamedFramebufferTextureLayerEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10203   TglNamedFramebufferTextureFaceEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10204   TglTextureRenderbufferEXT = procedure(texture: GLuint; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10205   TglMultiTexRenderbufferEXT = procedure(texunit: GLenum; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10206   TglProgramUniform1dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10207   TglProgramUniform2dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10208   TglProgramUniform3dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10209   TglProgramUniform4dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10210   TglProgramUniform1dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10211   TglProgramUniform2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10212   TglProgramUniform3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10213   TglProgramUniform4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10214   TglProgramUniformMatrix2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10215   TglProgramUniformMatrix3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10216   TglProgramUniformMatrix4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10217   TglProgramUniformMatrix2x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10218   TglProgramUniformMatrix2x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10219   TglProgramUniformMatrix3x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10220   TglProgramUniformMatrix3x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10221   TglProgramUniformMatrix4x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10222   TglProgramUniformMatrix4x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10223
10224   // GL_EXT_separate_shader_objects
10225   TglUseShaderProgramEXT = procedure(_type: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10226   TglActiveProgramEXT = procedure(_program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10227   TglCreateShaderProgramEXT = function(_type: GLenum; const _string: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10228
10229   // GL_EXT_shader_image_load_store
10230   TglBindImageTextureEXT = procedure(index: GLuint; texture: GLuint; level: GLint; layered: GLboolean; layer: GLint; access: GLenum; format: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10231   TglMemoryBarrierEXT = procedure(barriers: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10232
10233   // GL_EXT_vertex_attrib_64bit
10234   TglVertexAttribL1dEXT = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10235   TglVertexAttribL2dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10236   TglVertexAttribL3dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10237   TglVertexAttribL4dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10238   TglVertexAttribL1dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10239   TglVertexAttribL2dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10240   TglVertexAttribL3dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10241   TglVertexAttribL4dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10242   TglVertexAttribLPointerEXT = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10243   TglGetVertexAttribLdvEXT = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10244   TglVertexArrayVertexAttribLOffsetEXT = procedure(vaobj: GLuint; buffer: GLuint; index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10245
10246   // GL_IBM_multimode_draw_arrays
10247   TglMultiModeDrawArraysIBM = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10248   TglMultiModeDrawElementsIBM = procedure(const mode: PGLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10249
10250   // GL_IBM_vertex_array_lists
10251   TglColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10252   TglSecondaryColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10253   TglEdgeFlagPointerListIBM = procedure(stride: GLint; const _pointer: PGLboolean; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10254   TglFogCoordPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10255   TglIndexPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10256   TglNormalPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10257   TglTexCoordPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10258   TglVertexPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10259
10260   // GL_INGR_blend_func_separate
10261   TglBlendFuncSeparateINGR = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10262
10263   // GL_INTEL_parallel_arrays
10264   TglVertexPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10265   TglNormalPointervINTEL = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10266   TglColorPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10267   TglTexCoordPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10268
10269   // GL_MESA_resize_buffers
10270   TglResizeBuffersMESA = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10271
10272   // GL_MESA_window_pos
10273   TglWindowPos2dMESA = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10274   TglWindowPos2dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10275   TglWindowPos2fMESA = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10276   TglWindowPos2fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10277   TglWindowPos2iMESA = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10278   TglWindowPos2ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10279   TglWindowPos2sMESA = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10280   TglWindowPos2svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10281   TglWindowPos3dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10282   TglWindowPos3dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10283   TglWindowPos3fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10284   TglWindowPos3fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10285   TglWindowPos3iMESA = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10286   TglWindowPos3ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10287   TglWindowPos3sMESA = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10288   TglWindowPos3svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10289   TglWindowPos4dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10290   TglWindowPos4dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10291   TglWindowPos4fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10292   TglWindowPos4fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10293   TglWindowPos4iMESA = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10294   TglWindowPos4ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10295   TglWindowPos4sMESA = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10296   TglWindowPos4svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10297
10298   // GL_NV_evaluators
10299   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}
10300   TglMapParameterivNV = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10301   TglMapParameterfvNV = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10302   TglGetMapControlPointsNV = procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; _packed: GLboolean; points: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10303   TglGetMapParameterivNV = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10304   TglGetMapParameterfvNV = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10305   TglGetMapAttribParameterivNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10306   TglGetMapAttribParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10307   TglEvalMapsNV = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10308
10309   // GL_NV_fence
10310   TglDeleteFencesNV = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10311   TglGenFencesNV = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10312   TglIsFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10313   TglTestFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10314   TglGetFenceivNV = procedure(fence: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10315   TglFinishFenceNV = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10316   TglSetFenceNV = procedure(fence: GLuint; condition: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10317
10318   // GL_NV_fragment_program
10319   TglProgramNamedParameter4fNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10320   TglProgramNamedParameter4dNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10321   TglProgramNamedParameter4fvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10322   TglProgramNamedParameter4dvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10323   TglGetProgramNamedParameterfvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10324   TglGetProgramNamedParameterdvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10325
10326   // GL_NV_half_float
10327   TglVertex2hNV = procedure(x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10328   TglVertex2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10329   TglVertex3hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10330   TglVertex3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10331   TglVertex4hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10332   TglVertex4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10333   TglNormal3hNV = procedure(nx: GLhalfNV; ny: GLhalfNV; nz: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10334   TglNormal3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10335   TglColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10336   TglColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10337   TglColor4hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV; alpha: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10338   TglColor4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10339   TglTexCoord1hNV = procedure(s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10340   TglTexCoord1hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10341   TglTexCoord2hNV = procedure(s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10342   TglTexCoord2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10343   TglTexCoord3hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10344   TglTexCoord3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10345   TglTexCoord4hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10346   TglTexCoord4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10347   TglMultiTexCoord1hNV = procedure(target: GLenum; s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10348   TglMultiTexCoord1hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10349   TglMultiTexCoord2hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10350   TglMultiTexCoord2hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10351   TglMultiTexCoord3hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10352   TglMultiTexCoord3hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10353   TglMultiTexCoord4hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10354   TglMultiTexCoord4hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10355   TglFogCoordhNV = procedure(fog: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10356   TglFogCoordhvNV = procedure(const fog: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10357   TglSecondaryColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10358   TglSecondaryColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10359   TglVertexWeighthNV = procedure(weight: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10360   TglVertexWeighthvNV = procedure(const weight: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10361   TglVertexAttrib1hNV = procedure(index: GLuint; x: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10362   TglVertexAttrib1hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10363   TglVertexAttrib2hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10364   TglVertexAttrib2hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10365   TglVertexAttrib3hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10366   TglVertexAttrib3hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10367   TglVertexAttrib4hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10368   TglVertexAttrib4hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10369   TglVertexAttribs1hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10370   TglVertexAttribs2hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10371   TglVertexAttribs3hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10372   TglVertexAttribs4hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10373
10374   // GL_NV_occlusion_query
10375   TglGenOcclusionQueriesNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10376   TglDeleteOcclusionQueriesNV = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10377   TglIsOcclusionQueryNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10378   TglBeginOcclusionQueryNV = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10379   TglEndOcclusionQueryNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10380   TglGetOcclusionQueryivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10381   TglGetOcclusionQueryuivNV = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10382
10383   // GL_NV_pixel_data_range
10384   TglPixelDataRangeNV = procedure(target: GLenum; length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10385   TglFlushPixelDataRangeNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10386
10387   // GL_NV_point_sprite
10388   TglPointParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10389   TglPointParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10390
10391   // GL_NV_primitive_restart
10392   TglPrimitiveRestartNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10393   TglPrimitiveRestartIndexNV = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10394
10395   // GL_NV_register_combiners
10396   TglCombinerParameterfvNV = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10397   TglCombinerParameterfNV = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10398   TglCombinerParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10399   TglCombinerParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10400   TglCombinerInputNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10401   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}
10402   TglFinalCombinerInputNV = procedure(variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10403   TglGetCombinerInputParameterfvNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10404   TglGetCombinerInputParameterivNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10405   TglGetCombinerOutputParameterfvNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10406   TglGetCombinerOutputParameterivNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10407   TglGetFinalCombinerInputParameterfvNV = procedure(variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10408   TglGetFinalCombinerInputParameterivNV = procedure(variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10409
10410   // GL_NV_register_combiners2
10411   TglCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10412   TglGetCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10413
10414   // GL_NV_vertex_array_range
10415   TglFlushVertexArrayRangeNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10416   TglVertexArrayRangeNV = procedure(length: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10417
10418   // GL_NV_vertex_program
10419   TglAreProgramsResidentNV = function(n: GLsizei; const programs: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10420   TglBindProgramNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10421   TglDeleteProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10422   TglExecuteProgramNV = procedure(target: GLenum; id: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10423   TglGenProgramsNV = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10424   TglGetProgramParameterdvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10425   TglGetProgramParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10426   TglGetProgramivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10427   TglGetProgramStringNV = procedure(id: GLuint; pname: GLenum; _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10428   TglGetTrackMatrixivNV = procedure(target: GLenum; address: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10429   TglGetVertexAttribdvNV = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10430   TglGetVertexAttribfvNV = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10431   TglGetVertexAttribivNV = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10432   TglGetVertexAttribPointervNV = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10433   TglIsProgramNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10434   TglLoadProgramNV = procedure(target: GLenum; id: GLuint; len: GLsizei; const _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10435   TglProgramParameter4dNV = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10436   TglProgramParameter4dvNV = procedure(target: GLenum; index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10437   TglProgramParameter4fNV = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10438   TglProgramParameter4fvNV = procedure(target: GLenum; index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10439   TglProgramParameters4dvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10440   TglProgramParameters4fvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10441   TglRequestResidentProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10442   TglTrackMatrixNV = procedure(target: GLenum; address: GLuint; matrix: GLenum; transform: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10443   TglVertexAttribPointerNV = procedure(index: GLuint; fsize: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10444   TglVertexAttrib1dNV = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10445   TglVertexAttrib1dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10446   TglVertexAttrib1fNV = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10447   TglVertexAttrib1fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10448   TglVertexAttrib1sNV = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10449   TglVertexAttrib1svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10450   TglVertexAttrib2dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10451   TglVertexAttrib2dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10452   TglVertexAttrib2fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10453   TglVertexAttrib2fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10454   TglVertexAttrib2sNV = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10455   TglVertexAttrib2svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10456   TglVertexAttrib3dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10457   TglVertexAttrib3dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10458   TglVertexAttrib3fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10459   TglVertexAttrib3fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10460   TglVertexAttrib3sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10461   TglVertexAttrib3svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10462   TglVertexAttrib4dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10463   TglVertexAttrib4dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10464   TglVertexAttrib4fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10465   TglVertexAttrib4fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10466   TglVertexAttrib4sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10467   TglVertexAttrib4svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10468   TglVertexAttrib4ubNV = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10469   TglVertexAttrib4ubvNV = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10470   TglVertexAttribs1dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10471   TglVertexAttribs1fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10472   TglVertexAttribs1svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10473   TglVertexAttribs2dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10474   TglVertexAttribs2fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10475   TglVertexAttribs2svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10476   TglVertexAttribs3dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10477   TglVertexAttribs3fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10478   TglVertexAttribs3svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10479   TglVertexAttribs4dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10480   TglVertexAttribs4fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10481   TglVertexAttribs4svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10482   TglVertexAttribs4ubvNV = procedure(index: GLuint; count: GLsizei; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10483
10484   // GL_NV_depth_buffer_float
10485   TglDepthRangedNV = procedure(n: GLdouble; f: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10486   TglClearDepthdNV = procedure(d: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10487   TglDepthBoundsdNV = procedure(zmin: GLdouble; zmax: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10488
10489   // GL_NV_framebuffer_multisample_coverage
10490   TglRenderbufferStorageMultsampleCoverageNV = procedure(target: GLenum; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10491
10492   // GL_NV_geometry_program4
10493   TglProgramVertexLimitNV = procedure(target: GLenum; limit: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10494
10495   // GL_NV_gpu_program4
10496   TglProgramLocalParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10497   TglProgramLocalParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10498   TglProgramLocalParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10499   TglProgramLocalParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10500   TglProgramLocalParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10501   TglProgramLocalParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10502   TglProgramEnvParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10503   TglProgramEnvParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10504   TglProgramEnvParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10505   TglProgramEnvParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10506   TglProgramEnvParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10507   TglProgramEnvParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10508   TglGetProgramLocalParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10509   TglGetProgramLocalParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10510   TglGetProgramEnvParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10511   TglGetProgramEnvParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10512
10513   // GL_NV_parameter_buffer_object
10514   TglProgramBufferParametersfvNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10515   TglProgramBufferParametersIivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10516   TglProgramBufferParametersIuivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10517
10518   // GL_NV_transform_feedback
10519   TglBeginTransformFeedbackNV = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10520   TglEndTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10521   TglTransformFeedbackAttribsNV = procedure(count: GLsizei; const attribs: GLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10522   TglBindBufferRangeNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10523   TglBindBufferOffsetNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10524   TglBindBufferBaseNV = procedure(target: GLenum; index: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10525   TglTransformFeedbackVaryingsNV = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10526   TglActiveVaryingNV = procedure(program_: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10527   TglGetVaryingLocationNV = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10528   TglGetActiveVaryingNV = procedure(program_: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; _type: PGLenum; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10529   TglGetTransformFeedbackVaryingNV = procedure(program_: GLuint; index: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10530   TglTransformFeedbackStreamAttribsNV = procedure(count: GLsizei; const attribs: PGLint; nbuffers: GLsizei; const bufstreams: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10531
10532   // GL_NV_conditional_render
10533   TglBeginConditionalRenderNV = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10534   TglEndConditionalRenderNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10535
10536   // GL_NV_present_video
10537   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}
10538   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}
10539   TglGetVideoivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10540   TglGetVideouivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10541   TglGetVideoi64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10542   TglGetVideoui64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10543 //  TglVideoParameterivNV = procedure(video_slot: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10544   
10545   // GL_NV_explicit_multisample
10546   TglGetMultisamplefvNV = procedure (pname: GLenum; index: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10547   TglSampleMaskIndexedNV = procedure (index: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10548   TglTexRenderbufferNV = procedure (target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10549
10550   // GL_NV_transform_feedback2
10551   TglBindTransformFeedbackNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10552   TglDeleteTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10553   TglGenTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10554   TglIsTransformFeedbackNV = function (id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10555   TglPauseTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10556   TglResumeTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10557   TglDrawTransformFeedbackNV = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10558
10559   // GL_NV_video_capture
10560   TglBeginVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10561   TglBindVideoCaptureStreamBufferNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; offset: GLintptrARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10562   TglBindVideoCaptureStreamTextureNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10563   TglEndVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10564   TglGetVideoCaptureivNV = procedure(video_capture_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10565   TglGetVideoCaptureStreamivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10566   TglGetVideoCaptureStreamfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10567   TglGetVideoCaptureStreamdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10568   TglVideoCaptureNV = function(video_capture_slot: GLuint; sequence_num: PGLuint; capture_time: PGLuint64EXT): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10569   TglVideoCaptureStreamParameterivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10570   TglVideoCaptureStreamParameterfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10571   TglVideoCaptureStreamParameterdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10572
10573   // GL_NV_copy_image
10574   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}
10575
10576   // GL_NV_shader_buffer_load
10577   TglMakeBufferResidentNV = procedure(target: GLenum; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10578   TglMakeBufferNonResidentNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10579   TglIsBufferResidentNV = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10580   TglMakeNamedBufferResidentNV = procedure(buffer: GLuint; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10581   TglMakeNamedBufferNonResidentNV = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10582   TglIsNamedBufferResidentNV = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10583   TglGetBufferParameterui64vNV = procedure(target: GLenum; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10584   TglGetNamedBufferParameterui64vNV = procedure(buffer: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10585   TglGetIntegerui64vNV = procedure(value: GLenum; result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10586   TglUniformui64NV = procedure(location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10587   TglUniformui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10588   TglGetUniformui64vNV = procedure(_program: GLuint; location: GLint; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10589   TglProgramUniformui64NV = procedure(_program: GLuint; location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10590   TglProgramUniformui64vNV = procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10591
10592   // GL_NV_vertex_buffer_unified_memory
10593   TglBufferAddressRangeNV = procedure(pname: GLenum; index: GLuint; adress: GLuint64EXT; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10594   TglVertexFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10595   TglNormalFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10596   TglColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10597   TglIndexFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10598   TglTexCoordFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10599   TglEdgeFlagFormatNV = procedure(stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10600   TglSecondaryColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10601   TglFogCoordFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10602   TglVertexAttribFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10603   TglVertexAttribIFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10604   TglGetIntegerui64i_vNV = procedure(value: GLenum; index: GLuint; Result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10605
10606   // GL_NV_gpu_program5
10607   TglProgramSubroutineParametersuivNV = procedure(target: GLenum; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10608   TglGetProgramSubroutineParameteruivNV = procedure(target: GLenum; index: GLuint; param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10609
10610   // GL_NV_gpu_shader5
10611   TglUniform1i64NV = procedure(location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10612   TglUniform2i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10613   TglUniform3i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10614   TglUniform4i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10615   TglUniform1i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10616   TglUniform2i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10617   TglUniform3i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10618   TglUniform4i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10619   TglUniform1ui64NV = procedure(location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10620   TglUniform2ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10621   TglUniform3ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10622   TglUniform4ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10623   TglUniform1ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10624   TglUniform2ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10625   TglUniform3ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10626   TglUniform4ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10627   TglGetUniformi64vNV = procedure(program_: GLuint; location: GLint; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10628   TglProgramUniform1i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10629   TglProgramUniform2i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10630   TglProgramUniform3i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10631   TglProgramUniform4i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10632   TglProgramUniform1i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10633   TglProgramUniform2i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10634   TglProgramUniform3i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10635   TglProgramUniform4i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10636   TglProgramUniform1ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10637   TglProgramUniform2ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10638   TglProgramUniform3ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10639   TglProgramUniform4ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10640   TglProgramUniform1ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10641   TglProgramUniform2ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10642   TglProgramUniform3ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10643   TglProgramUniform4ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10644
10645   // GL_NV_vertex_attrib_integer_64bit
10646   TglVertexAttribL1i64NV = procedure(index: GLuint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10647   TglVertexAttribL2i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10648   TglVertexAttribL3i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10649   TglVertexAttribL4i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10650   TglVertexAttribL1i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10651   TglVertexAttribL2i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10652   TglVertexAttribL3i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10653   TglVertexAttribL4i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10654   TglVertexAttribL1ui64NV = procedure(index: GLuint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10655   TglVertexAttribL2ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10656   TglVertexAttribL3ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10657   TglVertexAttribL4ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10658   TglVertexAttribL1ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10659   TglVertexAttribL2ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10660   TglVertexAttribL3ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10661   TglVertexAttribL4ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10662   TglGetVertexAttribLi64vNV = procedure(index: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10663   TglGetVertexAttribLui64vNV = procedure(index: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10664   TglVertexAttribLFormatNV = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10665
10666   // GL_NV_vdpau_interop
10667   TglVDPAUInitNV = procedure(const vdpDevice: PGLvoid; const getProcAddress: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10668   TglVDPAUFiniNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10669   TglVDPAURegisterVideoSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10670   TglVDPAURegisterOutputSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10671   TglVDPAUIsSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10672   TglVDPAUUnregisterSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10673   TglVDPAUGetSurfaceivNV = procedure(surface: GLvdpauSurfaceNV; pname: GLenum; bufSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10674   TglVDPAUSurfaceAccessNV = procedure(surface: GLvdpauSurfaceNV; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10675   TglVDPAUMapSurfacesNV = procedure(numSurfaces: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10676   TglVDPAUUnmapSurfacesNV = procedure(numSurface: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10677
10678   // GL_NV_texture_barrier
10679   TglTextureBarrierNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10680
10681   // (4.3)
10682         // GL_NV_path_rendering
10683   TglGenPathsNV = function(range : GLsizei) : GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10684   TglDeletePathsNV = procedure(path : GLUInt; range : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10685   TglIsPathNV = function(path : GLUInt) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10686   TglPathCommandsNV = procedure(path : GLUInt; numCommands : GLsizei; const commands : PGLubyte; numCoords : GLsizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10687   TglPathCoordsNV = procedure(path : GLUInt; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10688   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}
10689   TglPathSubCoordsNV = procedure(path : GLUInt; coordStart : GLsizei; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10690   TglPathStringNV = procedure(path : GLUInt; format : GLenum; length : GLsizei; const pathString : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10691   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}
10692   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}
10693   TglWeightPathsNV = procedure(resultPath : GLUInt; numPaths : GLSizei; const paths : PGLuint; const weights : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10694   TglCopyPathNV = procedure(resultPath : GLUInt; srcPath : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10695   TglInterpolatePathsNV = procedure(resultPath : GLUInt; pathA : GLUInt; pathB : GLUInt; weight : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10696   TglTransformPathNV = procedure(resultPath : GLUInt; srcPath : GLuint; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10697   TglPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10698   TglPathParameteriNV = procedure(path : GLUInt; pname : GLEnum; value : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10699   TglPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10700   TglPathParameterfNV = procedure(path : GLUInt; pname : GLEnum; value : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10701   TglPathDashArrayNV = procedure(path : GLUInt; dashCount : GLsizei; const dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10702   TglPathStencilFuncNV = procedure(func : GLenum; ref : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10703   TglPathStencilDepthOffsetNV = procedure(factor : GLfloat; units : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10704   TglStencilFillPathNV = procedure(path : GLUInt; fillMode : GLenum; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10705   TglStencilStrokePathNV = procedure(path : GLUInt; reference : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10706   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}
10707   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}
10708   TglPathCoverDepthFuncNV = procedure(func : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10709   TglPathColorGenNV = procedure(color : GLenum; genMode : GLenum; colorFormat : GLenum; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10710   TglPathTexGenNV = procedure(texCoordSet : GLenum; genMode : GLenum; components : GLint; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10711   TglPathFogGenNV = procedure(genMode : GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10712   TglCoverFillPathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10713   TglCoverStrokePathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10714   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}
10715   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}
10716   TglGetPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10717   TglGetPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10718   TglGetPathCommandsNV = procedure(path : GLUInt; commands : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10719   TglGetPathCoordsNV = procedure(path : GLUInt; coords : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10720   TglGetPathDashArrayNV = procedure(path : GLUInt; dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10721   TglGetPathMetricsNV = procedure(metricQueryMask : GLbitfield; numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10722   TglGetPathMetricRangeNV = procedure(metricQueryMask : GLbitfield; firstPathName : GLuint; numPaths : GLSizei; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10723   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}
10724   TglGetPathColorGenivNV = procedure(color : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10725   TglGetPathColorGenfvNV = procedure(color : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10726   TglGetPathTexGenivNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10727   TglGetPathTexGenfvNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10728   TglIsPointInFillPathNV = function(path : GLUInt; mask : GLuint; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10729   TglIsPointInStrokePathNV = function (path : GLUInt; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10730   TglGetPathLengthNV = function(path : GLUInt; startSegment : GLsizei; numSegments : GLsizei) : GLfloat; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10731   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}
10732
10733   // GL_AMD_pinned_memory
10734
10735   // GL_AMD_stencil_operation_extended
10736   TglStencilOpValueAMD = procedure(face : GLEnum; value : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10737
10738   // GL_AMD_vertex_shader_viewport_index
10739
10740   // GL_AMD_vertex_shader_layer
10741
10742   // GL_NV_bindless_texture
10743   TglGetTextureHandleNV = function(texture : GLuint ) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10744   TglGetTextureSamplerHandleNV = function(texture : GLuint; sampler : GLuint) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10745   TglMakeTextureHandleResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10746   TglMakeTextureHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10747   TglGetImageHandleNV = function(texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10748   TglMakeImageHandleResidentNV = procedure(handle : GLUint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10749   TglMakeImageHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10750   TglUniformHandleui64NV = procedure(location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10751   TglUniformHandleui64vNV = procedure(location : GLint; cowunt : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10752   TglProgramUniformHandleui64NV = procedure(program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10753   TglProgramUniformHandleui64vNV = procedure(program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10754   TglIsTextureHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10755   TglIsImageHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10756
10757         // GL_NV_shader_atomic_float
10758
10759         // GL_AMD_query_buffer_object
10760
10761   //
10762
10763   // GL_PGI_misc_hints
10764   TglHintPGI = procedure(target: GLenum; mode: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10765
10766   // GL_SGIS_detail_texture
10767   TglDetailTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10768   TglGetDetailTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10769
10770   // GL_SGIS_fog_function
10771   TglFogFuncSGIS = procedure(n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10772   TglGetFogFuncSGIS = procedure(points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10773
10774   // GL_SGIS_multisample
10775   TglSampleMaskSGIS = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10776   TglSamplePatternSGIS = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10777
10778   // GL_SGIS_pixel_texture
10779   TglPixelTexGenParameteriSGIS = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10780   TglPixelTexGenParameterivSGIS = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10781   TglPixelTexGenParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10782   TglPixelTexGenParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10783   TglGetPixelTexGenParameterivSGIS = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10784   TglGetPixelTexGenParameterfvSGIS = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10785
10786   // GL_SGIS_point_parameters
10787   TglPointParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10788   TglPointParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10789
10790   // GL_SGIS_sharpen_texture
10791   TglSharpenTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10792   TglGetSharpenTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10793
10794   // GL_SGIS_texture4D
10795   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}
10796   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}
10797
10798   // GL_SGIS_texture_color_mask
10799   TglTextureColorMaskSGIS = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10800
10801   // GL_SGIS_texture_filter4
10802   TglGetTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10803   TglTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; n: GLsizei; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10804
10805   // GL_SGIX_async
10806   TglAsyncMarkerSGIX = procedure(marker: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10807   TglFinishAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10808   TglPollAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10809   TglGenAsyncMarkersSGIX = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10810   TglDeleteAsyncMarkersSGIX = procedure(marker: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10811   TglIsAsyncMarkerSGIX = function(marker: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10812
10813   // GL_SGIX_flush_raster
10814   TglFlushRasterSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10815
10816   // GL_SGIX_fragment_lighting
10817   TglFragmentColorMaterialSGIX = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10818   TglFragmentLightfSGIX = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10819   TglFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10820   TglFragmentLightiSGIX = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10821   TglFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10822   TglFragmentLightModelfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10823   TglFragmentLightModelfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10824   TglFragmentLightModeliSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10825   TglFragmentLightModelivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10826   TglFragmentMaterialfSGIX = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10827   TglFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10828   TglFragmentMaterialiSGIX = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10829   TglFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10830   TglGetFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10831   TglGetFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10832   TglGetFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10833   TglGetFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10834   TglLightEnviSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10835
10836   // GL_SGIX_framezoom
10837   TglFrameZoomSGIX = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10838
10839   // GL_SGIX_igloo_interface
10840   TglIglooInterfaceSGIX = procedure(pname: GLenum; const params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10841
10842   // GL_SGIX_instruments
10843   TglGetInstrumentsSGIX = function(): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10844   TglInstrumentsBufferSGIX = procedure(size: GLsizei; buffer: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10845   TglPollInstrumentsSGIX = function(marker_p: PGLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10846   TglReadInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10847   TglStartInstrumentsSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10848   TglStopInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10849
10850   // GL_SGIX_list_priority
10851   TglGetListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10852   TglGetListParameterivSGIX = procedure(list: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10853   TglListParameterfSGIX = procedure(list: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10854   TglListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10855   TglListParameteriSGIX = procedure(list: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10856   TglListParameterivSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10857
10858   // GL_SGIX_pixel_texture
10859   TglPixelTexGenSGIX = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10860
10861   // GL_SGIX_polynomial_ffd
10862   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}
10863   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}
10864   TglDeformSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10865   TglLoadIdentityDeformationMapSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10866
10867   // GL_SGIX_reference_plane
10868   TglReferencePlaneSGIX = procedure(const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10869
10870   // GL_SGIX_sprite
10871   TglSpriteParameterfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10872   TglSpriteParameterfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10873   TglSpriteParameteriSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10874   TglSpriteParameterivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10875
10876   // GL_SGIX_tag_sample_buffer
10877   TglTagSampleBufferSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10878
10879   // GL_SGI_color_table
10880   TglColorTableSGI = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10881   TglColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10882   TglColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10883   TglCopyColorTableSGI = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10884   TglGetColorTableSGI = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10885   TglGetColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10886   TglGetColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10887
10888   // GL_SUNX_constant_data
10889   TglFinishTextureSUNX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10890
10891   // GL_SUN_global_alpha
10892   TglGlobalAlphaFactorbSUN = procedure(factor: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10893   TglGlobalAlphaFactorsSUN = procedure(factor: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10894   TglGlobalAlphaFactoriSUN = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10895   TglGlobalAlphaFactorfSUN = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10896   TglGlobalAlphaFactordSUN = procedure(factor: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10897   TglGlobalAlphaFactorubSUN = procedure(factor: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10898   TglGlobalAlphaFactorusSUN = procedure(factor: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10899   TglGlobalAlphaFactoruiSUN = procedure(factor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10900
10901   // GL_SUN_mesh_array
10902   TglDrawMeshArraysSUN = procedure(mode: GLenum; first: GLint; count: GLsizei; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10903
10904   // GL_SUN_triangle_list
10905   TglReplacementCodeuiSUN = procedure(code: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10906   TglReplacementCodeusSUN = procedure(code: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10907   TglReplacementCodeubSUN = procedure(code: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10908   TglReplacementCodeuivSUN = procedure(const code: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10909   TglReplacementCodeusvSUN = procedure(const code: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10910   TglReplacementCodeubvSUN = procedure(const code: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10911   TglReplacementCodePointerSUN = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10912
10913   // GL_SUN_vertex
10914   TglColor4ubVertex2fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10915   TglColor4ubVertex2fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10916   TglColor4ubVertex3fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10917   TglColor4ubVertex3fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10918   TglColor3fVertex3fSUN = procedure(r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10919   TglColor3fVertex3fvSUN = procedure(const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10920   TglNormal3fVertex3fSUN = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10921   TglNormal3fVertex3fvSUN = procedure(const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10922   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}
10923   TglColor4fNormal3fVertex3fvSUN = procedure(const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10924   TglTexCoord2fVertex3fSUN = procedure(s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10925   TglTexCoord2fVertex3fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10926   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}
10927   TglTexCoord4fVertex4fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10928   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}
10929   TglTexCoord2fColor4ubVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10930   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}
10931   TglTexCoord2fColor3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10932   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}
10933   TglTexCoord2fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10934   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}
10935   TglTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10936   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}
10937   TglTexCoord4fColor4fNormal3fVertex4fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10938   TglReplacementCodeuiVertex3fSUN = procedure(rc: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10939   TglReplacementCodeuiVertex3fvSUN = procedure(const rc: PGLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10940   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}
10941   TglReplacementCodeuiColor4ubVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10942   TglReplacementCodeuiColor3fVertex3fSUN = procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10943   TglReplacementCodeuiColor3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10944   TglReplacementCodeuiNormal3fVertex3fSUN = procedure(rc: GLuint; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10945   TglReplacementCodeuiNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10946   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}
10947   TglReplacementCodeuiColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10948   TglReplacementCodeuiTexCoord2fVertex3fSUN = procedure(rc: GLuint; s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10949   TglReplacementCodeuiTexCoord2fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10950   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}
10951   TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10952   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}
10953   TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10954
10955   // window support functions
10956 {$IFDEF DGL_WIN}
10957   TwglGetProcAddress = function(ProcName: PAnsiChar): Pointer; stdcall;
10958   TwglCopyContext = function(p1: HGLRC; p2: HGLRC; p3: Cardinal): BOOL; stdcall;
10959   TwglCreateContext = function(DC: HDC): HGLRC; stdcall;
10960   TwglCreateLayerContext = function(p1: HDC; p2: Integer): HGLRC; stdcall;
10961   TwglDeleteContext = function(p1: HGLRC): BOOL; stdcall;
10962   TwglDescribeLayerPlane = function(p1: HDC; p2, p3: Integer; p4: Cardinal; p5: PLayerPlaneDescriptor): BOOL; stdcall;
10963   TwglGetCurrentContext = function: HGLRC; stdcall;
10964   TwglGetCurrentDC = function: HDC; stdcall;
10965   TwglGetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10966   TwglMakeCurrent = function(DC: HDC; p2: HGLRC): BOOL; stdcall;
10967   TwglRealizeLayerPalette = function(p1: HDC; p2: Integer; p3: BOOL): BOOL; stdcall;
10968   TwglSetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10969   TwglShareLists = function(p1, p2: HGLRC): BOOL; stdcall;
10970   TwglSwapLayerBuffers = function(p1: HDC; p2: Cardinal): BOOL; stdcall;
10971   TwglSwapMultipleBuffers = function(p1: UINT; const p2: PWGLSWAP): DWORD; stdcall;
10972   TwglUseFontBitmapsA = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10973   TwglUseFontBitmapsW = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10974   TwglUseFontBitmaps = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10975
10976   TwglUseFontOutlinesA = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10977   TwglUseFontOutlinesW = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10978   TwglUseFontOutlines = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10979
10980
10981   // WGL_ARB_buffer_region
10982   TwglCreateBufferRegionARB = function(hDC: HDC; iLayerPlane: GLint; uType: GLuint): THandle; stdcall;
10983   TwglDeleteBufferRegionARB = procedure(hRegion: THandle); stdcall;
10984   TwglSaveBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint): Boolean; stdcall;
10985   TwglRestoreBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint; xSrc: GLint; ySrc: GLint): Boolean; stdcall;
10986
10987   // WGL_ARB_extensions_string
10988   TwglGetExtensionsStringARB = function(hdc: HDC): PAnsiChar; stdcall;
10989
10990   // WGL_ARB_make_current_read
10991   TwglMakeContextCurrentARB = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10992   TwglGetCurrentReadDCARB = function(): HDC; stdcall;
10993
10994   // WGL_ARB_pbuffer
10995   TwglCreatePbufferARB = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFERARB; stdcall;
10996   TwglGetPbufferDCARB = function(hPbuffer: HPBUFFERARB): HDC; stdcall;
10997   TwglReleasePbufferDCARB = function(hPbuffer: HPBUFFERARB; hDC: HDC): GLint; stdcall;
10998   TwglDestroyPbufferARB = function(hPbuffer: HPBUFFERARB): Boolean; stdcall;
10999   TwglQueryPbufferARB = function(hPbuffer: HPBUFFERARB; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
11000
11001   // WGL_ARB_pixel_format
11002   TwglGetPixelFormatAttribivARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
11003   TwglGetPixelFormatAttribfvARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
11004   TwglChoosePixelFormatARB = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): BOOL; stdcall;
11005
11006   // WGL_ARB_color_buffer_float
11007   TwglClampColorARB = procedure(target: GLenum; clamp: GLenum); stdcall;
11008
11009   // WGL_ARB_render_texture
11010   TwglBindTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
11011   TwglReleaseTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
11012   TwglSetPbufferAttribARB = function(hPbuffer: HPBUFFERARB; const piAttribList: PGLint): Boolean; stdcall;
11013
11014   // WGL_ARB_create_context
11015   TwglCreateContextAttribsARB = function(hDC: HDC; hShareContext: HGLRC; const attribList: PGLint): HGLRC; stdcall;
11016
11017   // WGL_AMD_gpu_association
11018   TwglGetGPUIDsAMD = function(maxCount: Cardinal; ids: PCardinal): Cardinal; stdcall;
11019   TwglGetGPUInfoAMD = function(id: Cardinal; property_: Integer; dataType: GLenum; size: Cardinal; data: Pointer): Integer; stdcall;
11020   TwglGetContextGPUIDAMD = function(hglrc: HGLRC): Cardinal; stdcall;
11021   TwglCreateAssociatedContextAMD = function(id: Cardinal): HGLRC; stdcall;
11022   TwglCreateAssociatedContextAttribsAMD = function(id: Cardinal; hShareContext: HGLRC; const attribList: PInteger): HGLRC; stdcall;
11023   TwglDeleteAssociatedContextAMD = function(hglrc: HGLRC): Boolean; stdcall;
11024   TwglMakeAssociatedContextCurrentAMD = function(hglrc: HGLRC): Boolean; stdcall;
11025   TwglGetCurrentAssociatedContextAMD = function(): HGLRC; stdcall;
11026   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;
11027
11028   // WGL_EXT_display_color_table
11029   TwglCreateDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
11030   TwglLoadDisplayColorTableEXT = function(const table: PGLushort; length: GLuint): GLboolean; stdcall;
11031   TwglBindDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
11032   TwglDestroyDisplayColorTableEXT = procedure(id: GLushort); stdcall;
11033
11034   // WGL_EXT_extensions_string
11035   TwglGetExtensionsStringEXT = function(): PAnsiChar; stdcall;
11036
11037   // WGL_EXT_make_current_read
11038   TwglMakeContextCurrentEXT = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
11039   TwglGetCurrentReadDCEXT = function(): HDC; stdcall;
11040
11041   // WGL_EXT_pbuffer
11042   TwglCreatePbufferEXT = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFEREXT; stdcall;
11043   TwglGetPbufferDCEXT = function(hPbuffer: HPBUFFEREXT): HDC; stdcall;
11044   TwglReleasePbufferDCEXT = function(hPbuffer: HPBUFFEREXT; hDC: HDC): GLint; stdcall;
11045   TwglDestroyPbufferEXT = function(hPbuffer: HPBUFFEREXT): Boolean; stdcall;
11046   TwglQueryPbufferEXT = function(hPbuffer: HPBUFFEREXT; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
11047
11048   // WGL_EXT_pixel_format
11049   TwglGetPixelFormatAttribivEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
11050   TwglGetPixelFormatAttribfvEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
11051   TwglChoosePixelFormatEXT = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): Boolean; stdcall;
11052
11053   // WGL_EXT_swap_control
11054   TwglSwapIntervalEXT = function(interval: GLint): Boolean; stdcall;
11055   TwglGetSwapIntervalEXT = function(): GLint; stdcall;
11056
11057   // WGL_I3D_digital_video_control
11058   TwglGetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
11059   TwglSetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
11060
11061   // WGL_I3D_gamma
11062   TwglGetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
11063   TwglSetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
11064   TwglGetGammaTableI3D = function(hDC: HDC; iEntries: GLint; puRed: PGLushort; puGreen: PGLushort; puBlue: PGLushort): Boolean; stdcall;
11065   TwglSetGammaTableI3D = function(hDC: HDC; iEntries: GLint; const puRed: PGLushort; const puGreen: PGLushort; const puBlue: PGLushort): Boolean; stdcall;
11066
11067   // WGL_I3D_genlock
11068   TwglEnableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
11069   TwglDisableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
11070   TwglIsEnabledGenlockI3D = function(hDC: HDC; pFlag: Boolean): Boolean; stdcall;
11071   TwglGenlockSourceI3D = function(hDC: HDC; uSource: GLuint): Boolean; stdcall;
11072   TwglGetGenlockSourceI3D = function(hDC: HDC; uSource: PGLuint): Boolean; stdcall;
11073   TwglGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: GLuint): Boolean; stdcall;
11074   TwglGetGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: PGLuint): Boolean; stdcall;
11075   TwglGenlockSampleRateI3D = function(hDC: HDC; uRate: GLuint): Boolean; stdcall;
11076   TwglGetGenlockSampleRateI3D = function(hDC: HDC; uRate: PGLuint): Boolean; stdcall;
11077   TwglGenlockSourceDelayI3D = function(hDC: HDC; uDelay: GLuint): Boolean; stdcall;
11078   TwglGetGenlockSourceDelayI3D = function(hDC: HDC; uDelay: PGLuint): Boolean; stdcall;
11079   TwglQueryGenlockMaxSourceDelayI3D = function(hDC: HDC; uMaxLineDelay: PGLuint; uMaxPixelDelay: PGLuint): Boolean; stdcall;
11080
11081   // WGL_I3D_image_buffer
11082   TwglCreateImageBufferI3D = function(hDC: HDC; dwSize: GLuint; uFlags: GLuint): GLvoid; stdcall;
11083   TwglDestroyImageBufferI3D = function(hDC: HDC; pAddress: GLvoid): Boolean; stdcall;
11084   TwglAssociateImageBufferEventsI3D = function(hDC: HDC; const pEvent: THandle; const pAddress: PGLvoid; const pSize: PGLuint; count: GLuint): Boolean; stdcall;
11085   TwglReleaseImageBufferEventsI3D = function(hDC: HDC; const pAddress: PGLvoid; count: GLuint): Boolean; stdcall;
11086
11087   // WGL_I3D_swap_frame_lock
11088   TwglEnableFrameLockI3D = function(): Boolean; stdcall;
11089   TwglDisableFrameLockI3D = function(): Boolean; stdcall;
11090   TwglIsEnabledFrameLockI3D = function(pFlag: Boolean): Boolean; stdcall;
11091   TwglQueryFrameLockMasterI3D = function(pFlag: Boolean): Boolean; stdcall;
11092
11093   // WGL_I3D_swap_frame_usage
11094   TwglGetFrameUsageI3D = function(pUsage: PGLfloat): Boolean; stdcall;
11095   TwglBeginFrameTrackingI3D = function(): Boolean; stdcall;
11096   TwglEndFrameTrackingI3D = function(): Boolean; stdcall;
11097   TwglQueryFrameTrackingI3D = function(pFrameCount: PGLuint; pMissedFrames: PGLuint; pLastMissedUsage: PGLfloat): Boolean; stdcall;
11098
11099   // WGL_NV_vertex_array_range
11100   TwglAllocateMemoryNV = procedure(size: GLsizei; readfreq: GLfloat; writefreq: GLfloat; priority: GLfloat); stdcall;
11101   TwglFreeMemoryNV = procedure(_pointer: Pointer); stdcall;
11102
11103   // WGL_NV_present_video
11104   TwglEnumerateVideoDevicesNV = function(hdc: HDC; phDeviceList: PHVIDEOOUTPUTDEVICENV): Integer; stdcall;
11105   TwglBindVideoDeviceNV = function(hd: HDC; uVideoSlot: Cardinal; hVideoDevice: HVIDEOOUTPUTDEVICENV; piAttribList: PInteger): Boolean; stdcall;
11106   TwglQueryCurrentContextNV = function(iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11107
11108   // WGL_NV_video_output
11109   TwglGetVideoDeviceNV = function(hDC: HDC; numDevices: Integer; hVideoDevice: PHPVIDEODEV): Boolean; stdcall;
11110   TwglReleaseVideoDeviceNV = function(hVideoDevice: HPVIDEODEV): Boolean; stdcall;
11111   TwglBindVideoImageNV = function(hVideoDevice: HPVIDEODEV; hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11112   TwglReleaseVideoImageNV = function(hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11113   TwglSendPbufferToVideoNV = function(hPbuffer: HPBUFFERARB; iBufferType: Integer; pulCounterPbuffer: PCardinal; bBlock: Boolean): Boolean; stdcall;
11114   TwglGetVideoInfoNV = function(hpVideoDevice: HPVIDEODEV; pulCounterOutputPbuffer: PCardinal; pulCounterOutputVideo: PCardinal): Boolean; stdcall;
11115
11116   // WGL_NV_swap_group
11117   TwglJoinSwapGroupNV = function(hDC: HDC; group: GLuint): Boolean; stdcall;
11118   TwglBindSwapBarrierNV = function(group: GLuint; barrier: GLuint): Boolean; stdcall;
11119   TwglQuerySwapGroupNV = function(hDC: HDC; group: PGLuint; barrier: PGLuint): Boolean; stdcall;
11120   TwglQueryMaxSwapGroupsNV = function(hDC: HDC; mxGroups: PGLuint; maxBarriers: PGLuint): Boolean; stdcall;
11121   TwglQueryFrameCountNV = function(hDC: HDC; count: PGLuint): Boolean; stdcall;
11122   TwglResetFrameCountNV = function(hDC: HDC): Boolean; stdcall;
11123
11124   // WGL_NV_gpu_affinity
11125   TwglEnumGpusNV = function(iGpuIndex: Cardinal; phGpu: PHGPUNV): Boolean; stdcall;
11126   TwglEnumGpuDevicesNV = function(hGpu: HGPUNV; iDeviceIndex: Cardinal; lpGpuDevice: PGPU_DEVICE): Boolean; stdcall;
11127   TwglCreateAffinityDCNV = function(const phGpuList: PHGPUNV): HDC; stdcall;
11128   TwglEnumGpusFromAffinityDCNV = function(hAffinityDC: HDC; iGpuIndex: Cardinal; hGpu: PHGPUNV): Boolean; stdcall;
11129   TwglDeleteDCNV = function(hDC: HDC): Boolean; stdcall;
11130
11131   // WGL_NV_video_capture
11132   TwglBindVideoCaptureDeviceNV = function(uVideoSlot: Cardinal; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11133   TwglEnumerateVideoCaptureDevicesNV = function(hDc: HDC; phDeviceList: PHVIDEOINPUTDEVICENV): Cardinal; stdcall;
11134   TwglLockVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11135   TwglQueryVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV; iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11136   TwglReleaseVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11137
11138   // WGL_NV_copy_image
11139   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;
11140
11141   // WGL_NV_DX_interop
11142   TwglDXSetResourceShareHandleNV = function(dxObject : PGLVoid; hareHandle : Cardinal) : Boolean; stdcall;
11143   TwglDXOpenDeviceNV = function(dxDevice : PGLVoid) : Cardinal; stdcall;
11144   TwglDXCloseDeviceNV = function(hDevice : Cardinal) : Boolean; stdcall;
11145   TwglDXRegisterObjectNV = function(hDevice : Cardinal; dxObject : PGLVoid; name : GLUInt; _type : TGLEnum; access : TGLenum) : Cardinal; stdcall;
11146   TwglDXUnregisterObjectNV = function(hDevice : Cardinal; hObject : Cardinal) : Boolean; stdcall;
11147   TwglDXObjectAccessNV = function(hObject : Cardinal; access : GLenum) : Boolean; stdcall;
11148   TwglDXLockObjectsNV = function(hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11149   TwglDXUnlockObjectsNV = function (hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11150
11151   // WGL_OML_sync_control
11152   TwglGetSyncValuesOML = function(hdc: HDC; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11153   TwglGetMscRateOML = function(hdc: HDC; numerator: PGLint; denominator: PGLint): Boolean; stdcall;
11154   TwglSwapBuffersMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11155   TwglSwapLayerBuffersMscOML = function(hdc: HDC; fuPlanes: GLint; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11156   TwglWaitForMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11157   TwglWaitForSbcOML = function(hdc: HDC; target_sbc: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11158
11159   // WGL_3DL_stereo_control
11160   TwglSetStereoEmitterState3DL = function(hDC: HDC; uState: UINT): Boolean; stdcall;
11161   
11162   // WIN_draw_range_elements
11163   TglDrawRangeElementsWIN = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); stdcall;
11164
11165   // WIN_swap_hint
11166   TglAddSwapHintRectWIN = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
11167 {$ENDIF}
11168
11169 {$IFDEF DGL_LINUX}
11170   TglXChooseVisual = function(dpy: PDisplay; screen: GLint; attribList: PGLint): PXVisualInfo; cdecl;
11171   TglXCopyContext = procedure(dpy: PDisplay; src: GLXContext; dst: GLXContext; mask: GLuint); cdecl;
11172   TglXCreateContext = function(dpy: PDisplay; vis: PXVisualInfo; shareList: GLXContext; direct: GLboolean): GLXContext; cdecl;
11173   TglXCreateGLXPixmap = function(dpy: PDisplay; vis: PXVisualInfo; pixmap: Pixmap): GLXPixmap cdecl;
11174   TglXDestroyContext = procedure(dpy: PDisplay; ctx: GLXContext); cdecl;
11175   TglXDestroyGLXPixmap = procedure(dpy : PDisplay; pix: GLXPixmap); cdecl;
11176   TglXGetConfig = function(dpy : PDisplay; vis: PXVisualInfo; attrib: GLint; value: PGLint): GLint; cdecl;
11177   TglXGetCurrentContext = function: GLXContext cdecl;
11178   TglXGetCurrentDrawable = function: GLXDrawable cdecl;
11179   TglXIsDirect = function(dpy: PDisplay; ctx: GLXContext): glboolean; cdecl;
11180   TglXMakeCurrent = function(dpy: PDisplay; drawable: GLXDrawable; ctx: GLXContext): GLboolean cdecl;
11181   TglXQueryExtension = function(dpy: PDisplay; errorBase: PGLint; eventBase: PGLint): GLboolean; cdecl;
11182   TglXQueryVersion = function(dpy: PDisplay; major: PGLint; minor: PGLint): GLboolean cdecl;
11183   TglXSwapBuffers = procedure(dpy: PDisplay; drawable: GLXDrawable); cdecl;
11184   TglXUseXFont = procedure(font: Font; first: GLint; count: GLint; listBase: GLint); cdecl;
11185   TglXWaitGL = procedure; cdecl; 
11186   TglXWaitX = procedure; cdecl;
11187
11188   TglXGetClientString = function(dpy: PDisplay; name: GLint): PGLchar; cdecl;
11189   TglXQueryServerString = function(dpy: PDisplay; screen: GLint; name: GLint): PGLchar; cdecl;
11190   TglXQueryExtensionsString = function(dpy: PDisplay; screen: GLint): PGLchar; cdecl;
11191
11192   // GLX_VERSION_1_3
11193   TglXGetFBConfigs = function(dpy: PDisplay; screen: GLint; nelements: PGLint): GLXFBConfig; cdecl;
11194   TglXChooseFBConfig = function(dpy: PDisplay; screen: GLint; attrib_list: PGLint; nelements: PGLint): GLXFBConfig; cdecl;
11195   TglXGetFBConfigAttrib = function(dpy: PDisplay; config: GLXFBConfig; attribute: GLint; value: PGLint): glint; cdecl;
11196   TglXGetVisualFromFBConfig = function(dpy: PDisplay; config: GLXFBConfig) : PXVisualInfo; cdecl;
11197   TglXCreateWindow = function(dpy: PDisplay; config: GLXFBConfig; win: Window; attrib_list: PGLint): GLXWindow; cdecl;
11198   TglXDestroyWindow = procedure(dpy: PDisplay; win: GLXWindow); cdecl;
11199   TglXCreatePixmap = function(dpy: PDisplay; config: GLXFBConfig; pixmap: Pixmap; attrib_list: PGLint): GLXPixmap; cdecl;
11200
11201   TglXDestroyPixmap = procedure(dpy: PDisplay; pixmap: GLXPixmap); cdecl;
11202   TglXCreatePbuffer = function(dpy: PDisplay; config: GLXFBConfig; attrib_list: PGLint): GLXPbuffer; cdecl;
11203   TglXDestroyPbuffer = procedure(dpy: PDisplay; pbuf: GLXPbuffer); cdecl;
11204   TglXQueryDrawable = procedure(dpy: PDisplay; draw: GLXDrawable; attribute: GLint; value: PGLuint); cdecl;
11205   TglXCreateNewContext = function(dpy: PDisplay; config: GLXFBConfig; render_type: GLint; share_list: GLXContext; direct: GLboolean): GLXContext cdecl;
11206   TglXMakeContextCurrent = function(display: PDisplay; draw: GLXDrawable; read_: GLXDrawable; ctx: GLXContext): GLboolean; cdecl;
11207   TglXGetCurrentReadDrawable = function: GLXDrawable; cdecl;
11208   TglXGetCurreentDisplay = function: PDisplay;
11209
11210   TglXQueryContext = function(dpy: PDisplay; ctx: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11211   TglXSelectEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: GLuint); cdecl;
11212   TglXGetSelectedEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: PGLuint); cdecl;
11213
11214   // GLX_VERSION_1_4
11215   TglXGetProcAddress = function(const name: PAnsiChar): pointer; cdecl;
11216
11217   // GLX_ARB_get_proc_address
11218   TglXGetProcAddressARB = function(const name: PAnsiChar): pointer; cdecl;
11219
11220   // GLX_ARB_create_context
11221   TglXCreateContextAttribsARB = function(dpy: PDisplay; config: GLXFBConfig; share_context: GLXContext; direct: GLboolean; const attrib_list: PGLint): GLXContext; cdecl;
11222
11223   // GLX_EXT_import_context
11224   TglXGetCurrentDisplayEXT = function: PDisplay; cdecl;
11225   TglXQueryContextInfoEXT = function(dpy: PDisplay; context: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11226   TglXGetContextIDEXT = function(const context: GLXContext): GLXContextID; cdecl;
11227   TglXImportContextEXT = function(dpy: PDisplay; contextID: GLXContextID): GLXContext; cdecl;
11228   TglXFreeContextEXT = procedure(dpy: PDisplay; context: GLXContext); cdecl;
11229   
11230   // GLX_EXT_texture_from_pixmap
11231   TglXBindTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint; const attrib_list: PGLint); cdecl;
11232   TglXReleaseTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint); cdecl;
11233 {$ENDIF}
11234
11235   // GL utility functions and procedures
11236   TgluErrorString = function(errCode: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11237   TgluGetString = function(name: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11238   TgluOrtho2D = procedure(left, right, bottom, top: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11239   TgluPerspective = procedure(fovy, aspect, zNear, zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11240   TgluPickMatrix = procedure(x, y, width, height: GLdouble; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11241   TgluLookAt = procedure(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11242   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}
11243   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}
11244   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}
11245   TgluBuild1DMipmaps = function(target: GLEnum; components, width: GLint; format, atype: GLEnum; const data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11246   TgluBuild2DMipmaps = function(target: GLEnum; components, width, height: GLint; format, atype: GLEnum; const Data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11247   TgluNewQuadric = function: PGLUquadric; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11248   TgluDeleteQuadric = procedure(state: PGLUquadric); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11249   TgluQuadricNormals = procedure(quadObject: PGLUquadric; normals: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11250   TgluQuadricTexture = procedure(quadObject: PGLUquadric; textureCoords: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11251   TgluQuadricOrientation = procedure(quadObject: PGLUquadric; orientation: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11252   TgluQuadricDrawStyle = procedure(quadObject: PGLUquadric; drawStyle: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11253   TgluCylinder = procedure(quadObject: PGLUquadric; baseRadius, topRadius, height: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11254   TgluDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11255   TgluPartialDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint; startAngle, sweepAngle: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11256   TgluSphere = procedure(quadObject: PGLUquadric; radius: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11257   TgluQuadricCallback = procedure(quadObject: PGLUquadric; which: GLEnum; fn: TGLUQuadricErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11258   TgluNewTess = function: PGLUtesselator; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11259   TgluDeleteTess = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11260   TgluTessBeginPolygon = procedure(tess: PGLUtesselator; polygon_data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11261   TgluTessBeginContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11262   TgluTessVertex = procedure(tess: PGLUtesselator; const coords: TGLArrayd3; data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11263   TgluTessEndContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11264   TgluTessEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11265   TgluTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11266   TgluTessNormal = procedure(tess: PGLUtesselator; x, y, z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11267   TgluTessCallback = procedure(tess: PGLUtesselator; which: GLEnum; fn: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11268   TgluGetTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11269   TgluNewNurbsRenderer = function: PGLUnurbs; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11270   TgluDeleteNurbsRenderer = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11271   TgluBeginSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11272   TgluBeginCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11273   TgluEndCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11274   TgluEndSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11275   TgluBeginTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11276   TgluEndTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11277   TgluPwlCurve = procedure(nobj: PGLUnurbs; count: GLint; points: PGLfloat; stride: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11278   TgluNurbsCurve = procedure(nobj: PGLUnurbs; nknots: GLint; knot: PGLfloat; stride: GLint; ctlarray: PGLfloat; order: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11279   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}
11280   TgluLoadSamplingMatrices = procedure(nobj: PGLUnurbs; const modelMatrix, projMatrix: TGLMatrixf4; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11281   TgluNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11282   TgluGetNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11283   TgluNurbsCallback = procedure(nobj: PGLUnurbs; which: GLEnum; fn: TGLUNurbsErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11284   TgluBeginPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11285   TgluNextContour = procedure(tess: PGLUtesselator; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11286   TgluEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11287
11288 var
11289   // GL_VERSION_1_0
11290   glCullFace: TglCullFace;
11291   glFrontFace: TglFrontFace;
11292   glHint: TglHint;
11293   glLineWidth: TglLineWidth;
11294   glPointSize: TglPointSize;
11295   glPolygonMode: TglPolygonMode;
11296   glScissor: TglScissor;
11297   glTexParameterf: TglTexParameterf;
11298   glTexParameterfv: TglTexParameterfv;
11299   glTexParameteri: TglTexParameteri;
11300   glTexParameteriv: TglTexParameteriv;
11301   glTexImage1D: TglTexImage1D;
11302   glTexImage2D: TglTexImage2D;
11303   glDrawBuffer: TglDrawBuffer;
11304   glClear: TglClear;
11305   glClearColor: TglClearColor;
11306   glClearStencil: TglClearStencil;
11307   glClearDepth: TglClearDepth;
11308   glStencilMask: TglStencilMask;
11309   glColorMask: TglColorMask;
11310   glDepthMask: TglDepthMask;
11311   glDisable: TglDisable;
11312   glEnable: TglEnable;
11313   glFinish: TglFinish;
11314   glFlush: TglFlush;
11315   glBlendFunc: TglBlendFunc;
11316   glLogicOp: TglLogicOp;
11317   glStencilFunc: TglStencilFunc;
11318   glStencilOp: TglStencilOp;
11319   glDepthFunc: TglDepthFunc;
11320   glPixelStoref: TglPixelStoref;
11321   glPixelStorei: TglPixelStorei;
11322   glReadBuffer: TglReadBuffer;
11323   glReadPixels: TglReadPixels;
11324   glGetBooleanv: TglGetBooleanv;
11325   glGetDoublev: TglGetDoublev;
11326   glGetError: TglGetError;
11327   glGetFloatv: TglGetFloatv;
11328   glGetIntegerv: TglGetIntegerv;
11329   glGetString: TglGetString;
11330   glGetTexImage: TglGetTexImage;
11331   glGetTexParameteriv: TglGetTexParameteriv;
11332   glGetTexParameterfv: TglGetTexParameterfv;
11333   glGetTexLevelParameterfv: TglGetTexLevelParameterfv;
11334   glGetTexLevelParameteriv: TglGetTexLevelParameteriv;
11335   glIsEnabled: TglIsEnabled;
11336   glDepthRange: TglDepthRange;
11337   glViewport: TglViewport;
11338
11339   // GL_VERSION_1_1
11340   glDrawArrays: TglDrawArrays;
11341   glDrawElements: TglDrawElements;
11342   glGetPointerv: TglGetPointerv;
11343   glPolygonOffset: TglPolygonOffset;
11344   glCopyTexImage1D: TglCopyTexImage1D;
11345   glCopyTexImage2D: TglCopyTexImage2D;
11346   glCopyTexSubImage1D: TglCopyTexSubImage1D;
11347   glCopyTexSubImage2D: TglCopyTexSubImage2D;
11348   glTexSubImage1D: TglTexSubImage1D;
11349   glTexSubImage2D: TglTexSubImage2D;
11350   glBindTexture: TglBindTexture;
11351   glDeleteTextures: TglDeleteTextures;
11352   glGenTextures: TglGenTextures;
11353 {$ifdef DGL_DEPRECATED}
11354   glAccum: TglAccum;
11355   glAlphaFunc: TglAlphaFunc;
11356   glAreTexturesResident: TglAreTexturesResident;
11357   glArrayElement: TglArrayElement;
11358   glBegin: TglBegin;
11359   glBitmap: TglBitmap;
11360   glCallList: TglCallList;
11361   glCallLists: TglCallLists;
11362   glClearAccum: TglClearAccum;
11363   glClearIndex: TglClearIndex;
11364   glClipPlane: TglClipPlane;
11365   glColor3b: TglColor3b;
11366   glColor3bv: TglColor3bv;
11367   glColor3d: TglColor3d;
11368   glColor3dv: TglColor3dv;
11369   glColor3f: TglColor3f;
11370   glColor3fv: TglColor3fv;
11371   glColor3i: TglColor3i;
11372   glColor3iv: TglColor3iv;
11373   glColor3s: TglColor3s;
11374   glColor3sv: TglColor3sv;
11375   glColor3ub: TglColor3ub;
11376   glColor3ubv: TglColor3ubv;
11377   glColor3ui: TglColor3ui;
11378   glColor3uiv: TglColor3uiv;
11379   glColor3us: TglColor3us;
11380   glColor3usv: TglColor3usv;
11381   glColor4b: TglColor4b;
11382   glColor4bv: TglColor4bv;
11383   glColor4d: TglColor4d;
11384   glColor4dv: TglColor4dv;
11385   glColor4f: TglColor4f;
11386   glColor4fv: TglColor4fv;
11387   glColor4i: TglColor4i;
11388   glColor4iv: TglColor4iv;
11389   glColor4s: TglColor4s;
11390   glColor4sv: TglColor4sv;
11391   glColor4ub: TglColor4ub;
11392   glColor4ubv: TglColor4ubv;
11393   glColor4ui: TglColor4ui;
11394   glColor4uiv: TglColor4uiv;
11395   glColor4us: TglColor4us;
11396   glColor4usv: TglColor4usv;
11397   glColorMaterial: TglColorMaterial;
11398   glColorPointer: TglColorPointer;
11399   glCopyPixels: TglCopyPixels;
11400   glDeleteLists: TglDeleteLists;
11401   glDisableClientState: TglDisableClientState;
11402   glDrawPixels: TglDrawPixels;
11403   glEdgeFlag: TglEdgeFlag;
11404   glEdgeFlagPointer: TglEdgeFlagPointer;
11405   glEdgeFlagv: TglEdgeFlagv;
11406   glEnableClientState: TglEnableClientState;
11407   glEnd: TglEnd;
11408   glEndList: TglEndList;
11409   glEvalCoord1d: TglEvalCoord1d;
11410   glEvalCoord1dv: TglEvalCoord1dv;
11411   glEvalCoord1f: TglEvalCoord1f;
11412   glEvalCoord1fv: TglEvalCoord1fv;
11413   glEvalCoord2d: TglEvalCoord2d;
11414   glEvalCoord2dv: TglEvalCoord2dv;
11415   glEvalCoord2f: TglEvalCoord2f;
11416   glEvalCoord2fv: TglEvalCoord2fv;
11417   glEvalMesh1: TglEvalMesh1;
11418   glEvalMesh2: TglEvalMesh2;
11419   glEvalPoint1: TglEvalPoint1;
11420   glEvalPoint2: TglEvalPoint2;
11421   glFeedbackBuffer: TglFeedbackBuffer;
11422   glFogf: TglFogf;
11423   glFogfv: TglFogfv;
11424   glFogi: TglFogi;
11425   glFogiv: TglFogiv;
11426   glFrustum: TglFrustum;
11427   glGenLists: TglGenLists;
11428   glGetClipPlane: TglGetClipPlane;
11429   glGetLightfv: TglGetLightfv;
11430   glGetLightiv: TglGetLightiv;
11431   glGetMapdv: TglGetMapdv;
11432   glGetMapfv: TglGetMapfv;
11433   glGetMapiv: TglGetMapiv;
11434   glGetMaterialfv: TglGetMaterialfv;
11435   glGetMaterialiv: TglGetMaterialiv;
11436   glGetPixelMapfv: TglGetPixelMapfv;
11437   glGetPixelMapuiv: TglGetPixelMapuiv;
11438   glGetPixelMapusv: TglGetPixelMapusv;
11439   glGetPolygonStipple: TglGetPolygonStipple;
11440   glGetTexEnvfv: TglGetTexEnvfv;
11441   glGetTexEnviv: TglGetTexEnviv;
11442   glGetTexGendv: TglGetTexGendv;
11443   glGetTexGenfv: TglGetTexGenfv;
11444   glGetTexGeniv: TglGetTexGeniv;
11445   glIndexMask: TglIndexMask;
11446   glIndexPointer: TglIndexPointer;
11447   glIndexd: TglIndexd;
11448   glIndexdv: TglIndexdv;
11449   glIndexf: TglIndexf;
11450   glIndexfv: TglIndexfv;
11451   glIndexi: TglIndexi;
11452   glIndexiv: TglIndexiv;
11453   glIndexs: TglIndexs;
11454   glIndexsv: TglIndexsv;
11455   glIndexub: TglIndexub;
11456   glIndexubv: TglIndexubv;
11457   glInitNames: TglInitNames;
11458   glInterleavedArrays: TglInterleavedArrays;
11459   glIsList: TglIsList;
11460   glIsTexture: TglIsTexture;
11461   glLightModelf: TglLightModelf;
11462   glLightModelfv: TglLightModelfv;
11463   glLightModeli: TglLightModeli;
11464   glLightModeliv: TglLightModeliv;
11465   glLightf: TglLightf;
11466   glLightfv: TglLightfv;
11467   glLighti: TglLighti;
11468   glLightiv: TglLightiv;
11469   glLineStipple: TglLineStipple;
11470   glListBase: TglListBase;
11471   glLoadIdentity: TglLoadIdentity;
11472   glLoadMatrixd: TglLoadMatrixd;
11473   glLoadMatrixf: TglLoadMatrixf;
11474   glLoadName: TglLoadName;
11475   glMap1d: TglMap1d;
11476   glMap1f: TglMap1f;
11477   glMap2d: TglMap2d;
11478   glMap2f: TglMap2f;
11479   glMapGrid1d: TglMapGrid1d;
11480   glMapGrid1f: TglMapGrid1f;
11481   glMapGrid2d: TglMapGrid2d;
11482   glMapGrid2f: TglMapGrid2f;
11483   glMaterialf: TglMaterialf;
11484   glMaterialfv: TglMaterialfv;
11485   glMateriali: TglMateriali;
11486   glMaterialiv: TglMaterialiv;
11487   glMatrixMode: TglMatrixMode;
11488   glMultMatrixd: TglMultMatrixd;
11489   glMultMatrixf: TglMultMatrixf;
11490   glNewList: TglNewList;
11491   glNormal3b: TglNormal3b;
11492   glNormal3bv: TglNormal3bv;
11493   glNormal3d: TglNormal3d;
11494   glNormal3dv: TglNormal3dv;
11495   glNormal3f: TglNormal3f;
11496   glNormal3fv: TglNormal3fv;
11497   glNormal3i: TglNormal3i;
11498   glNormal3iv: TglNormal3iv;
11499   glNormal3s: TglNormal3s;
11500   glNormal3sv: TglNormal3sv;
11501   glNormalPointer: TglNormalPointer;
11502   glOrtho: TglOrtho;
11503   glPassThrough: TglPassThrough;
11504   glPixelMapfv: TglPixelMapfv;
11505   glPixelMapuiv: TglPixelMapuiv;
11506   glPixelMapusv: TglPixelMapusv;
11507   glPixelTransferf: TglPixelTransferf;
11508   glPixelTransferi: TglPixelTransferi;
11509   glPixelZoom: TglPixelZoom;
11510   glPolygonStipple: TglPolygonStipple;
11511   glPopAttrib: TglPopAttrib;
11512   glPopClientAttrib: TglPopClientAttrib;
11513   glPopMatrix: TglPopMatrix;
11514   glPopName: TglPopName;
11515   glPrioritizeTextures: TglPrioritizeTextures;
11516   glPushAttrib: TglPushAttrib;
11517   glPushClientAttrib: TglPushClientAttrib;
11518   glPushMatrix: TglPushMatrix;
11519   glPushName: TglPushName;
11520   glRasterPos2d: TglRasterPos2d;
11521   glRasterPos2dv: TglRasterPos2dv;
11522   glRasterPos2f: TglRasterPos2f;
11523   glRasterPos2fv: TglRasterPos2fv;
11524   glRasterPos2i: TglRasterPos2i;
11525   glRasterPos2iv: TglRasterPos2iv;
11526   glRasterPos2s: TglRasterPos2s;
11527   glRasterPos2sv: TglRasterPos2sv;
11528   glRasterPos3d: TglRasterPos3d;
11529   glRasterPos3dv: TglRasterPos3dv;
11530   glRasterPos3f: TglRasterPos3f;
11531   glRasterPos3fv: TglRasterPos3fv;
11532   glRasterPos3i: TglRasterPos3i;
11533   glRasterPos3iv: TglRasterPos3iv;
11534   glRasterPos3s: TglRasterPos3s;
11535   glRasterPos3sv: TglRasterPos3sv;
11536   glRasterPos4d: TglRasterPos4d;
11537   glRasterPos4dv: TglRasterPos4dv;
11538   glRasterPos4f: TglRasterPos4f;
11539   glRasterPos4fv: TglRasterPos4fv;
11540   glRasterPos4i: TglRasterPos4i;
11541   glRasterPos4iv: TglRasterPos4iv;
11542   glRasterPos4s: TglRasterPos4s;
11543   glRasterPos4sv: TglRasterPos4sv;
11544   glRectd: TglRectd;
11545   glRectdv: TglRectdv;
11546   glRectf: TglRectf;
11547   glRectfv: TglRectfv;
11548   glRecti: TglRecti;
11549   glRectiv: TglRectiv;
11550   glRects: TglRects;
11551   glRectsv: TglRectsv;
11552   glRenderMode: TglRenderMode;
11553   glRotated: TglRotated;
11554   glRotatef: TglRotatef;
11555   glScaled: TglScaled;
11556   glScalef: TglScalef;
11557   glSelectBuffer: TglSelectBuffer;
11558   glShadeModel: TglShadeModel;
11559   glTexCoord1d: TglTexCoord1d;
11560   glTexCoord1dv: TglTexCoord1dv;
11561   glTexCoord1f: TglTexCoord1f;
11562   glTexCoord1fv: TglTexCoord1fv;
11563   glTexCoord1i: TglTexCoord1i;
11564   glTexCoord1iv: TglTexCoord1iv;
11565   glTexCoord1s: TglTexCoord1s;
11566   glTexCoord1sv: TglTexCoord1sv;
11567   glTexCoord2d: TglTexCoord2d;
11568   glTexCoord2dv: TglTexCoord2dv;
11569   glTexCoord2f: TglTexCoord2f;
11570   glTexCoord2fv: TglTexCoord2fv;
11571   glTexCoord2i: TglTexCoord2i;
11572   glTexCoord2iv: TglTexCoord2iv;
11573   glTexCoord2s: TglTexCoord2s;
11574   glTexCoord2sv: TglTexCoord2sv;
11575   glTexCoord3d: TglTexCoord3d;
11576   glTexCoord3dv: TglTexCoord3dv;
11577   glTexCoord3f: TglTexCoord3f;
11578   glTexCoord3fv: TglTexCoord3fv;
11579   glTexCoord3i: TglTexCoord3i;
11580   glTexCoord3iv: TglTexCoord3iv;
11581   glTexCoord3s: TglTexCoord3s;
11582   glTexCoord3sv: TglTexCoord3sv;
11583   glTexCoord4d: TglTexCoord4d;
11584   glTexCoord4dv: TglTexCoord4dv;
11585   glTexCoord4f: TglTexCoord4f;
11586   glTexCoord4fv: TglTexCoord4fv;
11587   glTexCoord4i: TglTexCoord4i;
11588   glTexCoord4iv: TglTexCoord4iv;
11589   glTexCoord4s: TglTexCoord4s;
11590   glTexCoord4sv: TglTexCoord4sv;
11591   glTexCoordPointer: TglTexCoordPointer;
11592   glTexEnvf: TglTexEnvf;
11593   glTexEnvfv: TglTexEnvfv;
11594   glTexEnvi: TglTexEnvi;
11595   glTexEnviv: TglTexEnviv;
11596   glTexGend: TglTexGend;
11597   glTexGendv: TglTexGendv;
11598   glTexGenf: TglTexGenf;
11599   glTexGenfv: TglTexGenfv;
11600   glTexGeni: TglTexGeni;
11601   glTexGeniv: TglTexGeniv;
11602   glTranslated: TglTranslated;
11603   glTranslatef: TglTranslatef;
11604   glVertex2d: TglVertex2d;
11605   glVertex2dv: TglVertex2dv;
11606   glVertex2f: TglVertex2f;
11607   glVertex2fv: TglVertex2fv;
11608   glVertex2i: TglVertex2i;
11609   glVertex2iv: TglVertex2iv;
11610   glVertex2s: TglVertex2s;
11611   glVertex2sv: TglVertex2sv;
11612   glVertex3d: TglVertex3d;
11613   glVertex3dv: TglVertex3dv;
11614   glVertex3f: TglVertex3f;
11615   glVertex3fv: TglVertex3fv;
11616   glVertex3i: TglVertex3i;
11617   glVertex3iv: TglVertex3iv;
11618   glVertex3s: TglVertex3s;
11619   glVertex3sv: TglVertex3sv;
11620   glVertex4d: TglVertex4d;
11621   glVertex4dv: TglVertex4dv;
11622   glVertex4f: TglVertex4f;
11623   glVertex4fv: TglVertex4fv;
11624   glVertex4i: TglVertex4i;
11625   glVertex4iv: TglVertex4iv;
11626   glVertex4s: TglVertex4s;
11627   glVertex4sv: TglVertex4sv;
11628   glVertexPointer: TglVertexPointer;
11629 {$endif}
11630
11631   // GL_VERSION_1_2
11632   glBlendColor: TglBlendColor;
11633   glBlendEquation: TglBlendEquation;
11634   glDrawRangeElements: TglDrawRangeElements;
11635   glTexImage3D: TglTexImage3D;
11636   glTexSubImage3D: TglTexSubImage3D;
11637   glCopyTexSubImage3D: TglCopyTexSubImage3D;
11638 {$ifdef DGL_DEPRECATED}
11639   glColorTable: TglColorTable;
11640   glColorTableParameterfv: TglColorTableParameterfv;
11641   glColorTableParameteriv: TglColorTableParameteriv;
11642   glCopyColorTable: TglCopyColorTable;
11643   glGetColorTable: TglGetColorTable;
11644   glGetColorTableParameterfv: TglGetColorTableParameterfv;
11645   glGetColorTableParameteriv: TglGetColorTableParameteriv;
11646   glColorSubTable: TglColorSubTable;
11647   glCopyColorSubTable: TglCopyColorSubTable;
11648   glConvolutionFilter1D: TglConvolutionFilter1D;
11649   glConvolutionFilter2D: TglConvolutionFilter2D;
11650   glConvolutionParameterf: TglConvolutionParameterf;
11651   glConvolutionParameterfv: TglConvolutionParameterfv;
11652   glConvolutionParameteri: TglConvolutionParameteri;
11653   glConvolutionParameteriv: TglConvolutionParameteriv;
11654   glCopyConvolutionFilter1D: TglCopyConvolutionFilter1D;
11655   glCopyConvolutionFilter2D: TglCopyConvolutionFilter2D;
11656   glGetConvolutionFilter: TglGetConvolutionFilter;
11657   glGetConvolutionParameterfv: TglGetConvolutionParameterfv;
11658   glGetConvolutionParameteriv: TglGetConvolutionParameteriv;
11659   glGetSeparableFilter: TglGetSeparableFilter;
11660   glSeparableFilter2D: TglSeparableFilter2D;
11661   glGetHistogram: TglGetHistogram;
11662   glGetHistogramParameterfv: TglGetHistogramParameterfv;
11663   glGetHistogramParameteriv: TglGetHistogramParameteriv;
11664   glGetMinmax: TglGetMinmax;
11665   glGetMinmaxParameterfv: TglGetMinmaxParameterfv;
11666   glGetMinmaxParameteriv: TglGetMinmaxParameteriv;
11667   glHistogram: TglHistogram;
11668   glMinmax: TglMinmax;
11669   glResetHistogram: TglResetHistogram;
11670   glResetMinmax: TglResetMinmax;
11671 {$endif}
11672
11673   // GL_VERSION_1_3
11674   glActiveTexture: TglActiveTexture;
11675   glSampleCoverage: TglSampleCoverage;
11676   glCompressedTexImage3D: TglCompressedTexImage3D;
11677   glCompressedTexImage2D: TglCompressedTexImage2D;
11678   glCompressedTexImage1D: TglCompressedTexImage1D;
11679   glCompressedTexSubImage3D: TglCompressedTexSubImage3D;
11680   glCompressedTexSubImage2D: TglCompressedTexSubImage2D;
11681   glCompressedTexSubImage1D: TglCompressedTexSubImage1D;
11682   glGetCompressedTexImage: TglGetCompressedTexImage;
11683 {$ifdef DGL_DEPRECATED}
11684   glClientActiveTexture: TglClientActiveTexture;
11685   glMultiTexCoord1d: TglMultiTexCoord1d;
11686   glMultiTexCoord1dv: TglMultiTexCoord1dv;
11687   glMultiTexCoord1f: TglMultiTexCoord1f;
11688   glMultiTexCoord1fv: TglMultiTexCoord1fv;
11689   glMultiTexCoord1i: TglMultiTexCoord1i;
11690   glMultiTexCoord1iv: TglMultiTexCoord1iv;
11691   glMultiTexCoord1s: TglMultiTexCoord1s;
11692   glMultiTexCoord1sv: TglMultiTexCoord1sv;
11693   glMultiTexCoord2d: TglMultiTexCoord2d;
11694   glMultiTexCoord2dv: TglMultiTexCoord2dv;
11695   glMultiTexCoord2f: TglMultiTexCoord2f;
11696   glMultiTexCoord2fv: TglMultiTexCoord2fv;
11697   glMultiTexCoord2i: TglMultiTexCoord2i;
11698   glMultiTexCoord2iv: TglMultiTexCoord2iv;
11699   glMultiTexCoord2s: TglMultiTexCoord2s;
11700   glMultiTexCoord2sv: TglMultiTexCoord2sv;
11701   glMultiTexCoord3d: TglMultiTexCoord3d;
11702   glMultiTexCoord3dv: TglMultiTexCoord3dv;
11703   glMultiTexCoord3f: TglMultiTexCoord3f;
11704   glMultiTexCoord3fv: TglMultiTexCoord3fv;
11705   glMultiTexCoord3i: TglMultiTexCoord3i;
11706   glMultiTexCoord3iv: TglMultiTexCoord3iv;
11707   glMultiTexCoord3s: TglMultiTexCoord3s;
11708   glMultiTexCoord3sv: TglMultiTexCoord3sv;
11709   glMultiTexCoord4d: TglMultiTexCoord4d;
11710   glMultiTexCoord4dv: TglMultiTexCoord4dv;
11711   glMultiTexCoord4f: TglMultiTexCoord4f;
11712   glMultiTexCoord4fv: TglMultiTexCoord4fv;
11713   glMultiTexCoord4i: TglMultiTexCoord4i;
11714   glMultiTexCoord4iv: TglMultiTexCoord4iv;
11715   glMultiTexCoord4s: TglMultiTexCoord4s;
11716   glMultiTexCoord4sv: TglMultiTexCoord4sv;
11717   glLoadTransposeMatrixf: TglLoadTransposeMatrixf;
11718   glLoadTransposeMatrixd: TglLoadTransposeMatrixd;
11719   glMultTransposeMatrixf: TglMultTransposeMatrixf;
11720   glMultTransposeMatrixd: TglMultTransposeMatrixd;
11721 {$endif}
11722
11723   // GL_VERSION_1_4
11724   glBlendFuncSeparate: TglBlendFuncSeparate;
11725   glMultiDrawArrays: TglMultiDrawArrays;
11726   glMultiDrawElements: TglMultiDrawElements;
11727   glPointParameterf: TglPointParameterf;
11728   glPointParameterfv: TglPointParameterfv;
11729   glPointParameteri: TglPointParameteri;
11730   glPointParameteriv: TglPointParameteriv;
11731 {$ifdef DGL_DEPRECATED}
11732   glFogCoordf: TglFogCoordf;
11733   glFogCoordfv: TglFogCoordfv;
11734   glFogCoordd: TglFogCoordd;
11735   glFogCoorddv: TglFogCoorddv;
11736   glFogCoordPointer: TglFogCoordPointer;
11737   glSecondaryColor3b: TglSecondaryColor3b;
11738   glSecondaryColor3bv: TglSecondaryColor3bv;
11739   glSecondaryColor3d: TglSecondaryColor3d;
11740   glSecondaryColor3dv: TglSecondaryColor3dv;
11741   glSecondaryColor3f: TglSecondaryColor3f;
11742   glSecondaryColor3fv: TglSecondaryColor3fv;
11743   glSecondaryColor3i: TglSecondaryColor3i;
11744   glSecondaryColor3iv: TglSecondaryColor3iv;
11745   glSecondaryColor3s: TglSecondaryColor3s;
11746   glSecondaryColor3sv: TglSecondaryColor3sv;
11747   glSecondaryColor3ub: TglSecondaryColor3ub;
11748   glSecondaryColor3ubv: TglSecondaryColor3ubv;
11749   glSecondaryColor3ui: TglSecondaryColor3ui;
11750   glSecondaryColor3uiv: TglSecondaryColor3uiv;
11751   glSecondaryColor3us: TglSecondaryColor3us;
11752   glSecondaryColor3usv: TglSecondaryColor3usv;
11753   glSecondaryColorPointer: TglSecondaryColorPointer;
11754   glWindowPos2d: TglWindowPos2d;
11755   glWindowPos2dv: TglWindowPos2dv;
11756   glWindowPos2f: TglWindowPos2f;
11757   glWindowPos2fv: TglWindowPos2fv;
11758   glWindowPos2i: TglWindowPos2i;
11759   glWindowPos2iv: TglWindowPos2iv;
11760   glWindowPos2s: TglWindowPos2s;
11761   glWindowPos2sv: TglWindowPos2sv;
11762   glWindowPos3d: TglWindowPos3d;
11763   glWindowPos3dv: TglWindowPos3dv;
11764   glWindowPos3f: TglWindowPos3f;
11765   glWindowPos3fv: TglWindowPos3fv;
11766   glWindowPos3i: TglWindowPos3i;
11767   glWindowPos3iv: TglWindowPos3iv;
11768   glWindowPos3s: TglWindowPos3s;
11769   glWindowPos3sv: TglWindowPos3sv;
11770 {$endif}
11771
11772   // GL_VERSION_1_5
11773   glGenQueries: TglGenQueries;
11774   glDeleteQueries: TglDeleteQueries;
11775   glIsQuery: TglIsQuery;
11776   glBeginQuery: TglBeginQuery;
11777   glEndQuery: TglEndQuery;
11778   glGetQueryiv: TglGetQueryiv;
11779   glGetQueryObjectiv: TglGetQueryObjectiv;
11780   glGetQueryObjectuiv: TglGetQueryObjectuiv;
11781   glBindBuffer: TglBindBuffer;
11782   glDeleteBuffers: TglDeleteBuffers;
11783   glGenBuffers: TglGenBuffers;
11784   glIsBuffer: TglIsBuffer;
11785   glBufferData: TglBufferData;
11786   glBufferSubData: TglBufferSubData;
11787   glGetBufferSubData: TglGetBufferSubData;
11788   glMapBuffer: TglMapBuffer;
11789   glUnmapBuffer: TglUnmapBuffer;
11790   glGetBufferParameteriv: TglGetBufferParameteriv;
11791   glGetBufferPointerv: TglGetBufferPointerv;
11792
11793   // GL_VERSION_2_0
11794   glBlendEquationSeparate: TglBlendEquationSeparate;
11795   glDrawBuffers: TglDrawBuffers;
11796   glStencilOpSeparate: TglStencilOpSeparate;
11797   glStencilFuncSeparate: TglStencilFuncSeparate;
11798   glStencilMaskSeparate: TglStencilMaskSeparate;
11799   glAttachShader: TglAttachShader;
11800   glBindAttribLocation: TglBindAttribLocation;
11801   glCompileShader: TglCompileShader;
11802   glCreateProgram: TglCreateProgram;
11803   glCreateShader: TglCreateShader;
11804   glDeleteProgram: TglDeleteProgram;
11805   glDeleteShader: TglDeleteShader;
11806   glDetachShader: TglDetachShader;
11807   glDisableVertexAttribArray: TglDisableVertexAttribArray;
11808   glEnableVertexAttribArray: TglEnableVertexAttribArray;
11809   glGetActiveAttrib: TglGetActiveAttrib;
11810   glGetActiveUniform: TglGetActiveUniform;
11811   glGetAttachedShaders: TglGetAttachedShaders;
11812   glGetAttribLocation: TglGetAttribLocation;
11813   glGetProgramiv: TglGetProgramiv;
11814   glGetProgramInfoLog: TglGetProgramInfoLog;
11815   glGetShaderiv: TglGetShaderiv;
11816   glGetShaderInfoLog: TglGetShaderInfoLog;
11817   glGetShaderSource: TglGetShaderSource;
11818   glGetUniformLocation: TglGetUniformLocation;
11819   glGetUniformfv: TglGetUniformfv;
11820   glGetUniformiv: TglGetUniformiv;
11821   glGetVertexAttribfv: TglGetVertexAttribfv;
11822   glGetVertexAttribiv: TglGetVertexAttribiv;
11823   glGetVertexAttribPointerv: TglGetVertexAttribPointerv;
11824   glIsProgram: TglIsProgram;
11825   glIsShader: TglIsShader;
11826   glLinkProgram: TglLinkProgram;
11827   glShaderSource: TglShaderSource;
11828   glUseProgram: TglUseProgram;
11829   glUniform1f: TglUniform1f;
11830   glUniform2f: TglUniform2f;
11831   glUniform3f: TglUniform3f;
11832   glUniform4f: TglUniform4f;
11833   glUniform1i: TglUniform1i;
11834   glUniform2i: TglUniform2i;
11835   glUniform3i: TglUniform3i;
11836   glUniform4i: TglUniform4i;
11837   glUniform1fv: TglUniform1fv;
11838   glUniform2fv: TglUniform2fv;
11839   glUniform3fv: TglUniform3fv;
11840   glUniform4fv: TglUniform4fv;
11841   glUniform1iv: TglUniform1iv;
11842   glUniform2iv: TglUniform2iv;
11843   glUniform3iv: TglUniform3iv;
11844   glUniform4iv: TglUniform4iv;
11845   glUniformMatrix2fv: TglUniformMatrix2fv;
11846   glUniformMatrix3fv: TglUniformMatrix3fv;
11847   glUniformMatrix4fv: TglUniformMatrix4fv;
11848   glValidateProgram: TglValidateProgram;
11849   glVertexAttrib1d: TglVertexAttrib1d;
11850   glVertexAttrib1dv: TglVertexAttrib1dv;
11851   glVertexAttrib1f: TglVertexAttrib1f;
11852   glVertexAttrib1fv: TglVertexAttrib1fv;
11853   glVertexAttrib1s: TglVertexAttrib1s;
11854   glVertexAttrib1sv: TglVertexAttrib1sv;
11855   glVertexAttrib2d: TglVertexAttrib2d;
11856   glVertexAttrib2dv: TglVertexAttrib2dv;
11857   glVertexAttrib2f: TglVertexAttrib2f;
11858   glVertexAttrib2fv: TglVertexAttrib2fv;
11859   glVertexAttrib2s: TglVertexAttrib2s;
11860   glVertexAttrib2sv: TglVertexAttrib2sv;
11861   glVertexAttrib3d: TglVertexAttrib3d;
11862   glVertexAttrib3dv: TglVertexAttrib3dv;
11863   glVertexAttrib3f: TglVertexAttrib3f;
11864   glVertexAttrib3fv: TglVertexAttrib3fv;
11865   glVertexAttrib3s: TglVertexAttrib3s;
11866   glVertexAttrib3sv: TglVertexAttrib3sv;
11867   glVertexAttrib4Nbv: TglVertexAttrib4Nbv;
11868   glVertexAttrib4Niv: TglVertexAttrib4Niv;
11869   glVertexAttrib4Nsv: TglVertexAttrib4Nsv;
11870   glVertexAttrib4Nub: TglVertexAttrib4Nub;
11871   glVertexAttrib4Nubv: TglVertexAttrib4Nubv;
11872   glVertexAttrib4Nuiv: TglVertexAttrib4Nuiv;
11873   glVertexAttrib4Nusv: TglVertexAttrib4Nusv;
11874   glVertexAttrib4bv: TglVertexAttrib4bv;
11875   glVertexAttrib4d: TglVertexAttrib4d;
11876   glVertexAttrib4dv: TglVertexAttrib4dv;
11877   glVertexAttrib4f: TglVertexAttrib4f;
11878   glVertexAttrib4fv: TglVertexAttrib4fv;
11879   glVertexAttrib4iv: TglVertexAttrib4iv;
11880   glVertexAttrib4s: TglVertexAttrib4s;
11881   glVertexAttrib4sv: TglVertexAttrib4sv;
11882   glVertexAttrib4ubv: TglVertexAttrib4ubv;
11883   glVertexAttrib4uiv: TglVertexAttrib4uiv;
11884   glVertexAttrib4usv: TglVertexAttrib4usv;
11885   glVertexAttribPointer: TglVertexAttribPointer;
11886
11887   // GL_VERSION_2_1
11888   glUniformMatrix2x3fv: TglUniformMatrix2x3fv;
11889   glUniformMatrix3x2fv: TglUniformMatrix3x2fv;
11890   glUniformMatrix2x4fv: TglUniformMatrix2x4fv;
11891   glUniformMatrix4x2fv: TglUniformMatrix4x2fv;
11892   glUniformMatrix3x4fv: TglUniformMatrix3x4fv;
11893   glUniformMatrix4x3fv: TglUniformMatrix4x3fv;
11894
11895   // GL_VERSION_3_0
11896   glColorMaski: TglColorMaski;
11897   glGetBooleani_v: TglGetBooleani_v;
11898   glGetIntegeri_v: TglGetIntegeri_v;
11899   glEnablei: TglEnablei;
11900   glDisablei: TglDisablei;
11901   glIsEnabledi: TglIsEnabledi;
11902   glBeginTransformFeedback: TglBeginTransformFeedback;
11903   glEndTransformFeedback: TglEndTransformFeedback;
11904   glBindBufferRange: TglBindBufferRange;
11905   glBindBufferBase: TglBindBufferBase;
11906   glTransformFeedbackVaryings: TglTransformFeedbackVaryings;
11907   glGetTransformFeedbackVarying: TglGetTransformFeedbackVarying;
11908   glClampColor: TglClampColor;
11909   glBeginConditionalRender: TglBeginConditionalRender;
11910   glEndConditionalRender: TglEndConditionalRender;
11911   glVertexAttribI1i: TglVertexAttribI1i;
11912   glVertexAttribI2i: TglVertexAttribI2i;
11913   glVertexAttribI3i: TglVertexAttribI3i;
11914   glVertexAttribI4i: TglVertexAttribI4i;
11915   glVertexAttribI1ui: TglVertexAttribI1ui;
11916   glVertexAttribI2ui: TglVertexAttribI2ui;
11917   glVertexAttribI3ui: TglVertexAttribI3ui;
11918   glVertexAttribI4ui: TglVertexAttribI4ui;
11919   glVertexAttribI1iv: TglVertexAttribI1iv;
11920   glVertexAttribI2iv: TglVertexAttribI2iv;
11921   glVertexAttribI3iv: TglVertexAttribI3iv;
11922   glVertexAttribI4iv: TglVertexAttribI4iv;
11923   glVertexAttribI1uiv: TglVertexAttribI1uiv;
11924   glVertexAttribI2uiv: TglVertexAttribI2uiv;
11925   glVertexAttribI3uiv: TglVertexAttribI3uiv;
11926   glVertexAttribI4uiv: TglVertexAttribI4uiv;
11927   glVertexAttribI4bv: TglVertexAttribI4bv;
11928   glVertexAttribI4sv: TglVertexAttribI4sv;
11929   glVertexAttribI4ubv: TglVertexAttribI4ubv;
11930   glVertexAttribI4usv: TglVertexAttribI4usv;
11931   glVertexAttribIPointer: TglVertexAttribIPointer;
11932   glGetVertexAttribIiv: TglGetVertexAttribIiv;
11933   glGetVertexAttribIuiv: TglGetVertexAttribIuiv;
11934   glGetUniformuiv: TglGetUniformuiv;
11935   glBindFragDataLocation: TglBindFragDataLocation;
11936   glGetFragDataLocation: TglGetFragDataLocation;
11937   glUniform1ui: TglUniform1ui;
11938   glUniform2ui: TglUniform2ui;
11939   glUniform3ui: TglUniform3ui;
11940   glUniform4ui: TglUniform4ui;
11941   glUniform1uiv: TglUniform1uiv;
11942   glUniform2uiv: TglUniform2uiv;
11943   glUniform3uiv: TglUniform3uiv;
11944   glUniform4uiv: TglUniform4uiv;
11945   glTexParameterIiv: TglTexParameterIiv;
11946   glTexParameterIuiv: TglTexParameterIuiv;
11947   glGetTexParameterIiv: TglGetTexParameterIiv;
11948   glGetTexParameterIuiv: TglGetTexParameterIuiv;
11949   glClearBufferiv: TglClearBufferiv;
11950   glClearBufferuiv: TglClearBufferuiv;
11951   glClearBufferfv: TglClearBufferfv;
11952   glClearBufferfi: TglClearBufferfi;
11953   glGetStringi: TglGetStringi;
11954
11955   // GL_VERSION_2_1
11956   glEnableVertexArrayEXT : TglEnableVertexArrayEXT;
11957   glEnableVertexArrayAttribEXT : TglEnableVertexArrayAttribEXT;
11958   glVertexArrayVertexAttribOffsetEXT : TglVertexArrayVertexAttribOffsetEXT;
11959
11960   // GL_VERSION_3_1
11961   glDrawArraysInstanced: TglDrawArraysInstanced;
11962   glDrawElementsInstanced: TglDrawElementsInstanced;
11963   glTexBuffer: TglTexBuffer;
11964   glPrimitiveRestartIndex: TglPrimitiveRestartIndex;
11965
11966   // GL_VERSION_3_2
11967   glGetInteger64i_v: TglGetInteger64i_v;
11968   glGetBufferParameteri64v: TglGetBufferParameteri64v;
11969   glFramebufferTexture: TglFramebufferTexture;
11970
11971   // GL_VERSION_3_3
11972   glVertexAttribDivisor: TglVertexAttribDivisor;
11973   
11974   // GL_VERSION_4_0
11975   { OpenGL 4.0 also reuses entry points from these extensions: }
11976   { ARB_texture_query_lod (no entry points) }
11977   { ARB_draw_indirect }
11978   { ARB_gpu_shader5 (no entry points) }
11979   { ARB_gpu_shader_fp64 }
11980   { ARB_shader_subroutine }
11981   { ARB_tessellation_shader }
11982   { ARB_texture_buffer_object_rgb32 (no entry points) }
11983   { ARB_texture_cube_map_array (no entry points) }
11984   { ARB_texture_gather (no entry points) }
11985   { ARB_transform_feedback2 }
11986   { ARB_transform_feedback3 }
11987   glMinSampleShading: TglMinSampleShading;
11988   glBlendEquationi: TglBlendEquationi;
11989   glBlendEquationSeparatei: TglBlendEquationSeparatei;
11990   glBlendFunci: TglBlendFunci;
11991   glBlendFuncSeparatei: TglBlendFuncSeparatei;
11992
11993   // GL_3DFX_tbuffer
11994   glTbufferMask3DFX: TglTbufferMask3DFX;
11995
11996   // GL_APPLE_element_array
11997   glElementPointerAPPLE: TglElementPointerAPPLE;
11998   glDrawElementArrayAPPLE: TglDrawElementArrayAPPLE;
11999   glDrawRangeElementArrayAPPLE: TglDrawRangeElementArrayAPPLE;
12000   glMultiDrawElementArrayAPPLE: TglMultiDrawElementArrayAPPLE;
12001   glMultiDrawRangeElementArrayAPPLE: TglMultiDrawRangeElementArrayAPPLE;
12002
12003   // GL_APPLE_fence
12004   glGenFencesAPPLE: TglGenFencesAPPLE;
12005   glDeleteFencesAPPLE: TglDeleteFencesAPPLE;
12006   glSetFenceAPPLE: TglSetFenceAPPLE;
12007   glIsFenceAPPLE: TglIsFenceAPPLE;
12008   glTestFenceAPPLE: TglTestFenceAPPLE;
12009   glFinishFenceAPPLE: TglFinishFenceAPPLE;
12010   glTestObjectAPPLE: TglTestObjectAPPLE;
12011   glFinishObjectAPPLE: TglFinishObjectAPPLE;
12012
12013   // GL_APPLE_vertex_array_object
12014   glBindVertexArrayAPPLE: TglBindVertexArrayAPPLE;
12015   glDeleteVertexArraysAPPLE: TglDeleteVertexArraysAPPLE;
12016   glGenVertexArraysAPPLE: TglGenVertexArraysAPPLE;
12017   glIsVertexArrayAPPLE: TglIsVertexArrayAPPLE;
12018
12019   // GL_APPLE_vertex_array_range
12020   glVertexArrayRangeAPPLE: TglVertexArrayRangeAPPLE;
12021   glFlushVertexArrayRangeAPPLE: TglFlushVertexArrayRangeAPPLE;
12022   glVertexArrayParameteriAPPLE: TglVertexArrayParameteriAPPLE;
12023
12024   // GL_APPLE_texture_range
12025   glTextureRangeAPPLE: TglTextureRangeAPPLE;
12026   glGetTexParameterPointervAPPLE: TglGetTexParameterPointervAPPLE;
12027
12028   // GL_APPLE_vertex_program_evaluators
12029   glEnableVertexAttribAPPLE: TglEnableVertexAttribAPPLE;
12030   glDisableVertexAttribAPPLE: TglDisableVertexAttribAPPLE;
12031   glIsVertexAttribEnabledAPPLE: TglIsVertexAttribEnabledAPPLE;
12032   glMapVertexAttrib1dAPPLE: TglMapVertexAttrib1dAPPLE;
12033   glMapVertexAttrib1fAPPLE: TglMapVertexAttrib1fAPPLE;
12034   glMapVertexAttrib2dAPPLE: TglMapVertexAttrib2dAPPLE;
12035   glMapVertexAttrib2fAPPLE: TglMapVertexAttrib2fAPPLE;
12036
12037   // GL_APPLE_object_purgeable
12038   glObjectPurgeableAPPLE: TglObjectPurgeableAPPLE;
12039   glObjectUnpurgeableAPPLE: TglObjectUnpurgeableAPPLE;
12040   glGetObjectParameterivAPPLE: TglGetObjectParameterivAPPLE;
12041
12042   // GL_ARB_matrix_palette
12043   glCurrentPaletteMatrixARB: TglCurrentPaletteMatrixARB;
12044   glMatrixIndexubvARB: TglMatrixIndexubvARB;
12045   glMatrixIndexusvARB: TglMatrixIndexusvARB;
12046   glMatrixIndexuivARB: TglMatrixIndexuivARB;
12047   glMatrixIndexPointerARB: TglMatrixIndexPointerARB;
12048
12049   // GL_ARB_multisample
12050   glSampleCoverageARB: TglSampleCoverageARB;
12051
12052   // GL_ARB_multitexture
12053   glActiveTextureARB: TglActiveTextureARB;
12054   glClientActiveTextureARB: TglClientActiveTextureARB;
12055   glMultiTexCoord1dARB: TglMultiTexCoord1dARB;
12056   glMultiTexCoord1dvARB: TglMultiTexCoord1dvARB;
12057   glMultiTexCoord1fARB: TglMultiTexCoord1fARB;
12058   glMultiTexCoord1fvARB: TglMultiTexCoord1fvARB;
12059   glMultiTexCoord1iARB: TglMultiTexCoord1iARB;
12060   glMultiTexCoord1ivARB: TglMultiTexCoord1ivARB;
12061   glMultiTexCoord1sARB: TglMultiTexCoord1sARB;
12062   glMultiTexCoord1svARB: TglMultiTexCoord1svARB;
12063   glMultiTexCoord2dARB: TglMultiTexCoord2dARB;
12064   glMultiTexCoord2dvARB: TglMultiTexCoord2dvARB;
12065   glMultiTexCoord2fARB: TglMultiTexCoord2fARB;
12066   glMultiTexCoord2fvARB: TglMultiTexCoord2fvARB;
12067   glMultiTexCoord2iARB: TglMultiTexCoord2iARB;
12068   glMultiTexCoord2ivARB: TglMultiTexCoord2ivARB;
12069   glMultiTexCoord2sARB: TglMultiTexCoord2sARB;
12070   glMultiTexCoord2svARB: TglMultiTexCoord2svARB;
12071   glMultiTexCoord3dARB: TglMultiTexCoord3dARB;
12072   glMultiTexCoord3dvARB: TglMultiTexCoord3dvARB;
12073   glMultiTexCoord3fARB: TglMultiTexCoord3fARB;
12074   glMultiTexCoord3fvARB: TglMultiTexCoord3fvARB;
12075   glMultiTexCoord3iARB: TglMultiTexCoord3iARB;
12076   glMultiTexCoord3ivARB: TglMultiTexCoord3ivARB;
12077   glMultiTexCoord3sARB: TglMultiTexCoord3sARB;
12078   glMultiTexCoord3svARB: TglMultiTexCoord3svARB;
12079   glMultiTexCoord4dARB: TglMultiTexCoord4dARB;
12080   glMultiTexCoord4dvARB: TglMultiTexCoord4dvARB;
12081   glMultiTexCoord4fARB: TglMultiTexCoord4fARB;
12082   glMultiTexCoord4fvARB: TglMultiTexCoord4fvARB;
12083   glMultiTexCoord4iARB: TglMultiTexCoord4iARB;
12084   glMultiTexCoord4ivARB: TglMultiTexCoord4ivARB;
12085   glMultiTexCoord4sARB: TglMultiTexCoord4sARB;
12086   glMultiTexCoord4svARB: TglMultiTexCoord4svARB;
12087
12088   // GL_ARB_point_parameters
12089   glPointParameterfARB: TglPointParameterfARB;
12090   glPointParameterfvARB: TglPointParameterfvARB;
12091
12092   // GL_ARB_texture_compression
12093   glCompressedTexImage3DARB: TglCompressedTexImage3DARB;
12094   glCompressedTexImage2DARB: TglCompressedTexImage2DARB;
12095   glCompressedTexImage1DARB: TglCompressedTexImage1DARB;
12096   glCompressedTexSubImage3DARB: TglCompressedTexSubImage3DARB;
12097   glCompressedTexSubImage2DARB: TglCompressedTexSubImage2DARB;
12098   glCompressedTexSubImage1DARB: TglCompressedTexSubImage1DARB;
12099   glGetCompressedTexImageARB: TglGetCompressedTexImageARB;
12100
12101   // GL_ARB_transpose_matrix
12102   glLoadTransposeMatrixfARB: TglLoadTransposeMatrixfARB;
12103   glLoadTransposeMatrixdARB: TglLoadTransposeMatrixdARB;
12104   glMultTransposeMatrixfARB: TglMultTransposeMatrixfARB;
12105   glMultTransposeMatrixdARB: TglMultTransposeMatrixdARB;
12106
12107   // GL_ARB_vertex_blend
12108   glWeightbvARB: TglWeightbvARB;
12109   glWeightsvARB: TglWeightsvARB;
12110   glWeightivARB: TglWeightivARB;
12111   glWeightfvARB: TglWeightfvARB;
12112   glWeightdvARB: TglWeightdvARB;
12113   glWeightubvARB: TglWeightubvARB;
12114   glWeightusvARB: TglWeightusvARB;
12115   glWeightuivARB: TglWeightuivARB;
12116   glWeightPointerARB: TglWeightPointerARB;
12117   glVertexBlendARB: TglVertexBlendARB;
12118
12119   // GL_ARB_vertex_buffer_object
12120   glBindBufferARB: TglBindBufferARB;
12121   glDeleteBuffersARB: TglDeleteBuffersARB;
12122   glGenBuffersARB: TglGenBuffersARB;
12123   glIsBufferARB: TglIsBufferARB;
12124   glBufferDataARB: TglBufferDataARB;
12125   glBufferSubDataARB: TglBufferSubData;
12126   glGetBufferSubDataARB: TglGetBufferSubDataARB;
12127   glMapBufferARB: TglMapBufferARB;
12128   glUnmapBufferARB: TglUnmapBufferARB;
12129   glGetBufferParameterivARB: TglGetBufferParameterivARB;
12130   glGetBufferPointervARB: TglGetBufferPointervARB;
12131
12132   // GL_ARB_vertex_program
12133   glVertexAttrib1dARB: TglVertexAttrib1dARB;
12134   glVertexAttrib1dvARB: TglVertexAttrib1dvARB;
12135   glVertexAttrib1fARB: TglVertexAttrib1fARB;
12136   glVertexAttrib1fvARB: TglVertexAttrib1fvARB;
12137   glVertexAttrib1sARB: TglVertexAttrib1sARB;
12138   glVertexAttrib1svARB: TglVertexAttrib1svARB;
12139   glVertexAttrib2dARB: TglVertexAttrib2dARB;
12140   glVertexAttrib2dvARB: TglVertexAttrib2dvARB;
12141   glVertexAttrib2fARB: TglVertexAttrib2fARB;
12142   glVertexAttrib2fvARB: TglVertexAttrib2fvARB;
12143   glVertexAttrib2sARB: TglVertexAttrib2sARB;
12144   glVertexAttrib2svARB: TglVertexAttrib2svARB;
12145   glVertexAttrib3dARB: TglVertexAttrib3dARB;
12146   glVertexAttrib3dvARB: TglVertexAttrib3dvARB;
12147   glVertexAttrib3fARB: TglVertexAttrib3fARB;
12148   glVertexAttrib3fvARB: TglVertexAttrib3fvARB;
12149   glVertexAttrib3sARB: TglVertexAttrib3sARB;
12150   glVertexAttrib3svARB: TglVertexAttrib3svARB;
12151   glVertexAttrib4NbvARB: TglVertexAttrib4NbvARB;
12152   glVertexAttrib4NivARB: TglVertexAttrib4NivARB;
12153   glVertexAttrib4NsvARB: TglVertexAttrib4NsvARB;
12154   glVertexAttrib4NubARB: TglVertexAttrib4NubARB;
12155   glVertexAttrib4NubvARB: TglVertexAttrib4NubvARB;
12156   glVertexAttrib4NuivARB: TglVertexAttrib4NuivARB;
12157   glVertexAttrib4NusvARB: TglVertexAttrib4NusvARB;
12158   glVertexAttrib4bvARB: TglVertexAttrib4bvARB;
12159   glVertexAttrib4dARB: TglVertexAttrib4dARB;
12160   glVertexAttrib4dvARB: TglVertexAttrib4dvARB;
12161   glVertexAttrib4fARB: TglVertexAttrib4fARB;
12162   glVertexAttrib4fvARB: TglVertexAttrib4fvARB;
12163   glVertexAttrib4ivARB: TglVertexAttrib4ivARB;
12164   glVertexAttrib4sARB: TglVertexAttrib4sARB;
12165   glVertexAttrib4svARB: TglVertexAttrib4svARB;
12166   glVertexAttrib4ubvARB: TglVertexAttrib4ubvARB;
12167   glVertexAttrib4uivARB: TglVertexAttrib4uivARB;
12168   glVertexAttrib4usvARB: TglVertexAttrib4usvARB;
12169   glVertexAttribPointerARB: TglVertexAttribPointerARB;
12170   glEnableVertexAttribArrayARB: TglEnableVertexAttribArrayARB;
12171   glDisableVertexAttribArrayARB: TglDisableVertexAttribArrayARB;
12172   glProgramStringARB: TglProgramStringARB;
12173   glBindProgramARB: TglBindProgramARB;
12174   glDeleteProgramsARB: TglDeleteProgramsARB;
12175   glGenProgramsARB: TglGenProgramsARB;
12176
12177   glProgramEnvParameter4dARB: TglProgramEnvParameter4dARB;
12178   glProgramEnvParameter4dvARB: TglProgramEnvParameter4dvARB;
12179   glProgramEnvParameter4fARB: TglProgramEnvParameter4fARB;
12180   glProgramEnvParameter4fvARB: TglProgramEnvParameter4fvARB;
12181   glProgramLocalParameter4dARB: TglProgramLocalParameter4dARB;
12182   glProgramLocalParameter4dvARB: TglProgramLocalParameter4dvARB;
12183   glProgramLocalParameter4fARB: TglProgramLocalParameter4fARB;
12184   glProgramLocalParameter4fvARB: TglProgramLocalParameter4fvARB;
12185   glGetProgramEnvParameterdvARB: TglGetProgramEnvParameterdvARB;
12186   glGetProgramEnvParameterfvARB: TglGetProgramEnvParameterfvARB;
12187   glGetProgramLocalParameterdvARB: TglGetProgramLocalParameterdvARB;
12188   glGetProgramLocalParameterfvARB: TglGetProgramLocalParameterfvARB;
12189   glGetProgramivARB: TglGetProgramivARB;
12190   glGetProgramStringARB: TglGetProgramStringARB;
12191   glGetVertexAttribdvARB: TglGetVertexAttribdvARB;
12192   glGetVertexAttribfvARB: TglGetVertexAttribfvARB;
12193   glGetVertexAttribivARB: TglGetVertexAttribivARB;
12194   glGetVertexAttribPointervARB: TglGetVertexAttribPointervARB;
12195   glIsProgramARB: TglIsProgramARB;
12196
12197   // GL_ARB_window_pos
12198   glWindowPos2dARB: TglWindowPos2dARB;
12199   glWindowPos2dvARB: TglWindowPos2dvARB;
12200   glWindowPos2fARB: TglWindowPos2fARB;
12201   glWindowPos2fvARB: TglWindowPos2fvARB;
12202   glWindowPos2iARB: TglWindowPos2iARB;
12203   glWindowPos2ivARB: TglWindowPos2ivARB;
12204   glWindowPos2sARB: TglWindowPos2sARB;
12205   glWindowPos2svARB: TglWindowPos2svARB;
12206   glWindowPos3dARB: TglWindowPos3dARB;
12207   glWindowPos3dvARB: TglWindowPos3dvARB;
12208   glWindowPos3fARB: TglWindowPos3fARB;
12209   glWindowPos3fvARB: TglWindowPos3fvARB;
12210   glWindowPos3iARB: TglWindowPos3iARB;
12211   glWindowPos3ivARB: TglWindowPos3ivARB;
12212   glWindowPos3sARB: TglWindowPos3sARB;
12213   glWindowPos3svARB: TglWindowPos3svARB;
12214
12215   // GL_ARB_draw_buffers
12216   glDrawBuffersARB: TglDrawBuffersARB;
12217
12218   // GL_ARB_color_buffer_float
12219   glClampColorARB: TglClampColorARB;
12220
12221   // GL_ARB_vertex_shader
12222   glGetActiveAttribARB: TglGetActiveAttribARB;
12223   glGetAttribLocationARB: TglGetAttribLocationARB;
12224   glBindAttribLocationARB: TglBindAttribLocationARB;
12225
12226   // GL_ARB_shader_objects
12227   glDeleteObjectARB: TglDeleteObjectARB;
12228   glGetHandleARB: TglGetHandleARB;
12229   glDetachObjectARB: TglDetachObjectARB;
12230   glCreateShaderObjectARB: TglCreateShaderObjectARB;
12231   glShaderSourceARB: TglShaderSourceARB;
12232   glCompileShaderARB: TglCompileShaderARB;
12233   glCreateProgramObjectARB: TglCreateProgramObjectARB;
12234   glAttachObjectARB: TglAttachObjectARB;
12235   glLinkProgramARB: TglLinkProgramARB;
12236   glUseProgramObjectARB: TglUseProgramObjectARB;
12237   glValidateProgramARB: TglValidateProgramARB;
12238   glUniform1fARB: TglUniform1fARB;
12239   glUniform2fARB: TglUniform2fARB;
12240   glUniform3fARB: TglUniform3fARB;
12241   glUniform4fARB: TglUniform4fARB;
12242   glUniform1iARB: TglUniform1iARB;
12243   glUniform2iARB: TglUniform2iARB;
12244   glUniform3iARB: TglUniform3iARB;
12245   glUniform4iARB: TglUniform4iARB;
12246   glUniform1fvARB: TglUniform1fvARB;
12247   glUniform2fvARB: TglUniform2fvARB;
12248   glUniform3fvARB: TglUniform3fvARB;
12249   glUniform4fvARB: TglUniform4fvARB;
12250   glUniform1ivARB: TglUniform1ivARB;
12251   glUniform2ivARB: TglUniform2ivARB;
12252   glUniform3ivARB: TglUniform3ivARB;
12253   glUniform4ivARB: TglUniform4ivARB;
12254   glUniformMatrix2fvARB: TglUniformMatrix2fvARB;
12255   glUniformMatrix3fvARB: TglUniformMatrix3fvARB;
12256   glUniformMatrix4fvARB: TglUniformMatrix4fvARB;
12257   glGetObjectParameterfvARB: TglGetObjectParameterfvARB;
12258   glGetObjectParameterivARB: TglGetObjectParameterivARB;
12259   glGetInfoLogARB: TglGetInfoLogARB;
12260   glGetAttachedObjectsARB: TglGetAttachedObjectsARB;
12261   glGetUniformLocationARB: TglGetUniformLocationARB;
12262   glGetActiveUniformARB: TglGetActiveUniformARB;
12263   glGetUniformfvARB: TglGetUniformfvARB;
12264   glGetUniformivARB: TglGetUniformivARB;
12265   glGetShaderSourceARB: TglGetShaderSourceARB;
12266
12267   // GL_ARB_Occlusion_Query
12268   glGenQueriesARB: TglGenQueriesARB;
12269   glDeleteQueriesARB: TglDeleteQueriesARB;
12270   glIsQueryARB: TglIsQueryARB;
12271   glBeginQueryARB: TglBeginQueryARB;
12272   glEndQueryARB: TglEndQueryARB;
12273   glGetQueryivARB: TglGetQueryivARB;
12274   glGetQueryObjectivARB: TglGetQueryObjectivARB;
12275   glGetQueryObjectuivARB: TglGetQueryObjectuivARB;
12276
12277   // GL_ARB_draw_instanced
12278   glDrawArraysInstancedARB: TglDrawArraysInstancedARB;
12279   glDrawElementsInstancedARB: TglDrawElementsInstancedARB;
12280
12281   // GL_ARB_framebuffer_object
12282   glIsRenderbuffer: TglIsRenderbuffer;
12283   glBindRenderbuffer: TglBindRenderbuffer;
12284   glDeleteRenderbuffers: TglDeleteRenderbuffers;
12285   glGenRenderbuffers: TglGenRenderbuffers;
12286   glRenderbufferStorage: TglRenderbufferStorage;
12287   glGetRenderbufferParameteriv: TglGetRenderbufferParameteriv;
12288   glIsFramebuffer: TglIsFramebuffer;
12289   glBindFramebuffer: TglBindFramebuffer;
12290   glDeleteFramebuffers: TglDeleteFramebuffers;
12291   glGenFramebuffers: TglGenFramebuffers;
12292   glCheckFramebufferStatus: TglCheckFramebufferStatus;
12293   glFramebufferTexture1D: TglFramebufferTexture1D;
12294   glFramebufferTexture2D: TglFramebufferTexture2D;
12295   glFramebufferTexture3D: TglFramebufferTexture3D;
12296   glFramebufferRenderbuffer: TglFramebufferRenderbuffer;
12297   glGetFramebufferAttachmentParameteriv: TglGetFramebufferAttachmentParameteriv;
12298   glGenerateMipmap: TglGenerateMipmap;
12299   glBlitFramebuffer: TglBlitFramebuffer;
12300   glRenderbufferStorageMultisample: TglRenderbufferStorageMultisample;
12301   glFramebufferTextureLayer: TglFramebufferTextureLayer;
12302
12303   // GL_ARB_geometry_shader4
12304   glProgramParameteriARB: TglProgramParameteriARB;
12305   glFramebufferTextureARB: TglFramebufferTextureARB;
12306   glFramebufferTextureLayerARB: TglFramebufferTextureLayerARB;
12307   glFramebufferTextureFaceARB: TglFramebufferTextureFaceARB;
12308
12309   // GL_ARB_instanced_arrays
12310   glVertexAttribDivisorARB: TglVertexAttribDivisorARB;
12311
12312   // GL_ARB_map_buffer_range
12313   glMapBufferRange: TglMapBufferRange;
12314   glFlushMappedBufferRange: TglFlushMappedBufferRange;
12315
12316   // GL_ARB_texture_buffer_object
12317   glTexBufferARB: TglTexBufferARB;
12318
12319   // GL_ARB_vertex_array_object
12320   glBindVertexArray: TglBindVertexArray;
12321   glDeleteVertexArrays: TglDeleteVertexArrays;
12322   glGenVertexArrays: TglGenVertexArrays;
12323   glIsVertexArray: TglIsVertexArray;
12324
12325   // GL_ARB_uniform_buffer_object
12326   glGetUniformIndices: TglGetUniformIndices;
12327   glGetActiveUniformsiv: TglGetActiveUniformsiv;
12328   glGetActiveUniformName: TglGetActiveUniformName;
12329   glGetUniformBlockIndex: TglGetUniformBlockIndex;
12330   glGetActiveUniformBlockiv: TglGetActiveUniformBlockiv;
12331   glGetActiveUniformBlockName: TglGetActiveUniformBlockName;
12332   glUniformBlockBinding: TglUniformBlockBinding;
12333
12334   // GL_ARB_copy_buffer
12335   glCopyBufferSubData: TglCopyBufferSubData;
12336
12337   // GL_ARB_draw_elements_base_vertex
12338   glDrawElementsBaseVertex: TglDrawElementsBaseVertex;
12339   glDrawRangeElementsBaseVertex: TglDrawRangeElementsBaseVertex;
12340   glDrawElementsInstancedBaseVertex: TglDrawElementsInstancedBaseVertex;
12341   glMultiDrawElementsBaseVertex: TglMultiDrawElementsBaseVertex;
12342
12343   // GL_ARB_provoking_vertex
12344   glProvokingVertex: TglProvokingVertex;
12345
12346   // GL_ARB_sync
12347   glFenceSync: TglFenceSync;
12348   glIsSync: TglIsSync;
12349   glDeleteSync: TglDeleteSync;
12350   glClientWaitSync: TglClientWaitSync;
12351   glWaitSync: TglWaitSync;
12352   glGetInteger64v: TglGetInteger64v;
12353   glGetSynciv: TglGetSynciv;
12354
12355   // GL_ARB_texture_multisample
12356   glTexImage2DMultisample: TglTexImage2DMultisample;
12357   glTexImage3DMultisample: TglTexImage3DMultisample;
12358   glGetMultisamplefv: TglGetMultisamplefv;
12359   glSampleMaski: TglSampleMaski;
12360
12361   // GL_ARB_draw_buffers_blend
12362   glBlendEquationiARB: TglBlendEquationiARB;
12363   glBlendEquationSeparateiARB: TglBlendEquationSeparateiARB;
12364   glBlendFunciARB: TglBlendFunciARB;
12365   glBlendFuncSeparateiARB: TglBlendFuncSeparateiARB;
12366
12367   // GL_ARB_sample_shading
12368   glMinSampleShadingARB: TglMinSampleShadingARB;
12369
12370   // GL_ARB_shading_language_include
12371   glNamedStringARB: TglNamedStringARB;
12372   glDeleteNamedStringARB: TglDeleteNamedStringARB;
12373   glCompileShaderIncludeARB: TglCompileShaderIncludeARB;
12374   glIsNamedStringARB: TglIsNamedStringARB;
12375   glGetNamedStringARB: TglGetNamedStringARB;
12376   glGetNamedStringivARB: TglGetNamedStringivARB;
12377
12378   // GL_ARB_blend_func_extended
12379   glBindFragDataLocationIndexed: TglBindFragDataLocationIndexed;
12380   glGetFragDataIndex: TglGetFragDataIndex;
12381
12382   // GL_ARB_sampler_objects
12383   glGenSamplers: TglGenSamplers;
12384   glDeleteSamplers: TglDeleteSamplers;
12385   glIsSampler: TglIsSampler;
12386   glBindSampler: TglBindSampler;
12387   glSamplerParameteri: TglSamplerParameteri;
12388   glSamplerParameteriv: TglSamplerParameteriv;
12389   glSamplerParameterf: TglSamplerParameterf;
12390   glSamplerParameterfv: TglSamplerParameterfv;
12391   glSamplerParameterIiv: TglSamplerParameterIiv;
12392   glSamplerParameterIuiv: TglSamplerParameterIuiv;
12393   glGetSamplerParameteriv: TglGetSamplerParameteriv;
12394   glGetSamplerParameterIiv: TglGetSamplerParameterIiv;
12395   glGetSamplerParameterfv: TglGetSamplerParameterfv;
12396   glGetSamplerParameterIuiv: TglGetSamplerParameterIuiv;
12397
12398   // GL_ARB_timer_query
12399   glQueryCounter: TglQueryCounter;
12400   glGetQueryObjecti64v: TglGetQueryObjecti64v;
12401   glGetQueryObjectui64v: TglGetQueryObjectui64v;
12402
12403   // GL_ARB_vertex_type_2_10_10_10_rev
12404   glVertexP2ui: TglVertexP2ui;
12405   glVertexP2uiv: TglVertexP2uiv;
12406   glVertexP3ui: TglVertexP3ui;
12407   glVertexP3uiv: TglVertexP3uiv;
12408   glVertexP4ui: TglVertexP4ui;
12409   glVertexP4uiv: TglVertexP4uiv;
12410   glTexCoordP1ui: TglTexCoordP1ui;
12411   glTexCoordP1uiv: TglTexCoordP1uiv;
12412   glTexCoordP2ui: TglTexCoordP2ui;
12413   glTexCoordP2uiv: TglTexCoordP2uiv;
12414   glTexCoordP3ui: TglTexCoordP3ui;
12415   glTexCoordP3uiv: TglTexCoordP3uiv;
12416   glTexCoordP4ui: TglTexCoordP4ui;
12417   glTexCoordP4uiv: TglTexCoordP4uiv;
12418   glMultiTexCoordP1ui: TglMultiTexCoordP1ui;
12419   glMultiTexCoordP1uiv: TglMultiTexCoordP1uiv;
12420   glMultiTexCoordP2ui: TglMultiTexCoordP2ui;
12421   glMultiTexCoordP2uiv: TglMultiTexCoordP2uiv;
12422   glMultiTexCoordP3ui: TglMultiTexCoordP3ui;
12423   glMultiTexCoordP3uiv: TglMultiTexCoordP3uiv;
12424   glMultiTexCoordP4ui: TglMultiTexCoordP4ui;
12425   glMultiTexCoordP4uiv: TglMultiTexCoordP4uiv;
12426   glNormalP3ui: TglNormalP3ui;
12427   glNormalP3uiv: TglNormalP3uiv;
12428   glColorP3ui: TglColorP3ui;
12429   glColorP3uiv: TglColorP3uiv;
12430   glColorP4ui: TglColorP4ui;
12431   glColorP4uiv: TglColorP4uiv;
12432   glSecondaryColorP3ui: TglSecondaryColorP3ui;
12433   glSecondaryColorP3uiv: TglSecondaryColorP3uiv;
12434   glVertexAttribP1ui: TglVertexAttribP1ui;
12435   glVertexAttribP1uiv: TglVertexAttribP1uiv;
12436   glVertexAttribP2ui: TglVertexAttribP2ui;
12437   glVertexAttribP2uiv: TglVertexAttribP2uiv;
12438   glVertexAttribP3ui: TglVertexAttribP3ui;
12439   glVertexAttribP3uiv: TglVertexAttribP3uiv;
12440   glVertexAttribP4ui: TglVertexAttribP4ui;
12441   glVertexAttribP4uiv: TglVertexAttribP4uiv;
12442
12443   // GL_ARB_draw_indirect
12444   glDrawArraysIndirect: TglDrawArraysIndirect;
12445   glDrawElementsIndirect: TglDrawElementsIndirect;
12446
12447   // GL_ARB_gpu_shader_fp64
12448   glUniform1d: TglUniform1d;
12449   glUniform2d: TglUniform2d;
12450   glUniform3d: TglUniform3d;
12451   glUniform4d: TglUniform4d;
12452   glUniform1dv: TglUniform1dv;
12453   glUniform2dv: TglUniform2dv;
12454   glUniform3dv: TglUniform3dv;
12455   glUniform4dv: TglUniform4dv;
12456   glUniformMatrix2dv: TglUniformMatrix2dv;
12457   glUniformMatrix3dv: TglUniformMatrix3dv;
12458   glUniformMatrix4dv: TglUniformMatrix4dv;
12459   glUniformMatrix2x3dv: TglUniformMatrix2x3dv;
12460   glUniformMatrix2x4dv: TglUniformMatrix2x4dv;
12461   glUniformMatrix3x2dv: TglUniformMatrix3x2dv;
12462   glUniformMatrix3x4dv: TglUniformMatrix3x4dv;
12463   glUniformMatrix4x2dv: TglUniformMatrix4x2dv;
12464   glUniformMatrix4x3dv: TglUniformMatrix4x3dv;
12465   glGetUniformdv: TglGetUniformdv;
12466
12467   // GL_ARB_shader_subroutine
12468   glGetSubroutineUniformLocation: TglGetSubroutineUniformLocation;
12469   glGetSubroutineIndex: TglGetSubroutineIndex;
12470   glGetActiveSubroutineUniformiv: TglGetActiveSubroutineUniformiv;
12471   glGetActiveSubroutineUniformName: TglGetActiveSubroutineUniformName;
12472   glGetActiveSubroutineName: TglGetActiveSubroutineName;
12473   glUniformSubroutinesuiv: TglUniformSubroutinesuiv;
12474   glGetUniformSubroutineuiv: TglGetUniformSubroutineuiv;
12475   glGetProgramStageiv: TglGetProgramStageiv;
12476
12477   // GL_ARB_tessellation_shader
12478   glPatchParameteri: TglPatchParameteri;
12479   glPatchParameterfv: TglPatchParameterfv;
12480
12481   // GL_ARB_transform_feedback2
12482   glBindTransformFeedback: TglBindTransformFeedback;
12483   glDeleteTransformFeedbacks: TglDeleteTransformFeedbacks;
12484   glGenTransformFeedbacks: TglGenTransformFeedbacks;
12485   glIsTransformFeedback: TglIsTransformFeedback;
12486   glPauseTransformFeedback: TglPauseTransformFeedback;
12487   glResumeTransformFeedback: TglResumeTransformFeedback;
12488   glDrawTransformFeedback: TglDrawTransformFeedback;
12489
12490   // GL_ARB_transform_feedback3
12491   glDrawTransformFeedbackStream: TglDrawTransformFeedbackStream;
12492   glBeginQueryIndexed: TglBeginQueryIndexed;
12493   glEndQueryIndexed: TglEndQueryIndexed;
12494   glGetQueryIndexediv: TglGetQueryIndexediv;
12495
12496   // GL_ARB_ES2_compatibility
12497   glReleaseShaderCompiler: TglReleaseShaderCompiler;
12498   glShaderBinary: TglShaderBinary;
12499   glGetShaderPrecisionFormat: TglGetShaderPrecisionFormat;
12500   glDepthRangef: TglDepthRangef;
12501   glClearDepthf: TglClearDepthf;
12502
12503   // GL_ARB_get_program_binary
12504   glGetProgramBinary: TglGetProgramBinary;
12505   glProgramBinary: TglProgramBinary;
12506   glProgramParameteri: TglProgramParameteri;
12507   
12508   // GL_ARB_separate_shader_objects
12509   glUseProgramStages: TglUseProgramStages;
12510   glActiveShaderProgram: TglActiveShaderProgram;
12511   glCreateShaderProgramv: TglCreateShaderProgramv;
12512   glBindProgramPipeline: TglBindProgramPipeline;
12513   glDeleteProgramPipelines: TglDeleteProgramPipelines;
12514   glGenProgramPipelines: TglGenProgramPipelines;
12515   glIsProgramPipeline: TglIsProgramPipeline;
12516   glGetProgramPipelineiv: TglGetProgramPipelineiv;
12517   glProgramUniform1i: TglProgramUniform1i;
12518   glProgramUniform1iv: TglProgramUniform1iv;
12519   glProgramUniform1f: TglProgramUniform1f;
12520   glProgramUniform1fv: TglProgramUniform1fv;
12521   glProgramUniform1d: TglProgramUniform1d;
12522   glProgramUniform1dv: TglProgramUniform1dv;
12523   glProgramUniform1ui: TglProgramUniform1ui;
12524   glProgramUniform1uiv: TglProgramUniform1uiv;
12525   glProgramUniform2i: TglProgramUniform2i;
12526   glProgramUniform2iv: TglProgramUniform2iv;
12527   glProgramUniform2f: TglProgramUniform2f;
12528   glProgramUniform2fv: TglProgramUniform2fv;
12529   glProgramUniform2d: TglProgramUniform2d;
12530   glProgramUniform2dv: TglProgramUniform2dv;
12531   glProgramUniform2ui: TglProgramUniform2ui;
12532   glProgramUniform2uiv: TglProgramUniform2uiv;
12533   glProgramUniform3i: TglProgramUniform3i;
12534   glProgramUniform3iv: TglProgramUniform3iv;
12535   glProgramUniform3f: TglProgramUniform3f;
12536   glProgramUniform3fv: TglProgramUniform3fv;
12537   glProgramUniform3d: TglProgramUniform3d;
12538   glProgramUniform3dv: TglProgramUniform3dv;
12539   glProgramUniform3ui: TglProgramUniform3ui;
12540   glProgramUniform3uiv: TglProgramUniform3uiv;
12541   glProgramUniform4i: TglProgramUniform4i;
12542   glProgramUniform4iv: TglProgramUniform4iv;
12543   glProgramUniform4f: TglProgramUniform4f;
12544   glProgramUniform4fv: TglProgramUniform4fv;
12545   glProgramUniform4d: TglProgramUniform4d;
12546   glProgramUniform4dv: TglProgramUniform4dv;
12547   glProgramUniform4ui: TglProgramUniform4ui;
12548   glProgramUniform4uiv: TglProgramUniform4uiv;
12549   glProgramUniformMatrix2fv: TglProgramUniformMatrix2fv;
12550   glProgramUniformMatrix3fv: TglProgramUniformMatrix3fv;
12551   glProgramUniformMatrix4fv: TglProgramUniformMatrix4fv;
12552   glProgramUniformMatrix2dv: TglProgramUniformMatrix2dv;
12553   glProgramUniformMatrix3dv: TglProgramUniformMatrix3dv;
12554   glProgramUniformMatrix4dv: TglProgramUniformMatrix4dv;
12555   glProgramUniformMatrix2x3fv: TglProgramUniformMatrix2x3fv;
12556   glProgramUniformMatrix3x2fv: TglProgramUniformMatrix3x2fv;
12557   glProgramUniformMatrix2x4fv: TglProgramUniformMatrix2x4fv;
12558   glProgramUniformMatrix4x2fv: TglProgramUniformMatrix4x2fv;
12559   glProgramUniformMatrix3x4fv: TglProgramUniformMatrix3x4fv;
12560   glProgramUniformMatrix4x3fv: TglProgramUniformMatrix4x3fv;
12561   glProgramUniformMatrix2x3dv: TglProgramUniformMatrix2x3dv;
12562   glProgramUniformMatrix3x2dv: TglProgramUniformMatrix3x2dv;
12563   glProgramUniformMatrix2x4dv: TglProgramUniformMatrix2x4dv;
12564   glProgramUniformMatrix4x2dv: TglProgramUniformMatrix4x2dv;
12565   glProgramUniformMatrix3x4dv: TglProgramUniformMatrix3x4dv;
12566   glProgramUniformMatrix4x3dv: TglProgramUniformMatrix4x3dv;
12567   glValidateProgramPipeline: TglValidateProgramPipeline;
12568   glGetProgramPipelineInfoLog: TglGetProgramPipelineInfoLog;
12569
12570   // GL_ARB_vertex_attrib_64bit
12571   glVertexAttribL1d: TglVertexAttribL1d;
12572   glVertexAttribL2d: TglVertexAttribL2d;
12573   glVertexAttribL3d: TglVertexAttribL3d;
12574   glVertexAttribL4d: TglVertexAttribL4d;
12575   glVertexAttribL1dv: TglVertexAttribL1dv;
12576   glVertexAttribL2dv: TglVertexAttribL2dv;
12577   glVertexAttribL3dv: TglVertexAttribL3dv;
12578   glVertexAttribL4dv: TglVertexAttribL4dv;
12579   glVertexAttribLPointer: TglVertexAttribLPointer;
12580   glGetVertexAttribLdv: TglGetVertexAttribLdv;
12581
12582   // GL_ARB_viewport_array
12583   glViewportArrayv: TglViewportArrayv;
12584   glViewportIndexedf: TglViewportIndexedf;
12585   glViewportIndexedfv: TglViewportIndexedfv;
12586   glScissorArrayv: TglScissorArrayv;
12587   glScissorIndexed: TglScissorIndexed;
12588   glScissorIndexedv: TglScissorIndexedv;
12589   glDepthRangeArrayv: TglDepthRangeArrayv;
12590   glDepthRangeIndexed: TglDepthRangeIndexed;
12591   glGetFloati_v: TglGetFloati_v;
12592   glGetDoublei_v: TglGetDoublei_v;
12593
12594   // GL 4.2
12595
12596   // GL_ARB_base_instance
12597   glDrawArraysInstancedBaseInstance : TglDrawArraysInstancedBaseInstance;
12598   glDrawElementsInstancedBaseInstance : TglDrawElementsInstancedBaseInstance;
12599   glDrawElementsInstancedBaseVertexBaseInstance : TglDrawElementsInstancedBaseVertexBaseInstance;
12600
12601   // GL_ARB_transform_feedback_instanced
12602   glDrawTransformFeedbackInstanced : TglDrawTransformFeedbackInstanced;
12603   glDrawTransformFeedbackStreamInstanced : TglDrawTransformFeedbackStreamInstanced;
12604
12605   // GL_ARB_internalformat_query
12606   glGetInternalformativ : TglGetInternalformativ;
12607
12608   // GL_ARB_shader_atomic_counters
12609   glGetActiveAtomicCounterBufferiv : TglGetActiveAtomicCounterBufferiv;
12610
12611   /// GL_ARB_shader_image_load_store
12612   glBindImageTexture : TglBindImageTexture;
12613   glMemoryBarrier : TglMemoryBarrier;
12614
12615   // GL_ARB_texture_storage
12616   glTexStorage1D : TglTexStorage1D;
12617   glTexStorage2D : TglTexStorage2D;
12618   glTexStorage3D : TglTexStorage3D;
12619   glTextureStorage1DEXT : TglTextureStorage1DEXT;
12620   glTextureStorage2DEXT : TglTextureStorage2DEXT;
12621   glTextureStorage3DEXT : TglTextureStorage3DEXT;
12622
12623
12624   // GL 4.3
12625     // GL_KHR_debug
12626     glDebugMessageControl : TglDebugMessageControl;
12627     glDebugMessageInsert : TglDebugMessageInsert;
12628     glDebugMessageCallback : TglDebugMessageCallback;
12629     glGetDebugMessageLog : TglGetDebugMessageLog;
12630     glPushDebugGroup : TglPushDebugGroup;
12631     glPopDebugGroup : TglPopDebugGroup;
12632     glObjectLabel : TglObjectLabel;
12633     glGetObjectLabel : TglGetObjectLabel;
12634     glObjectPtrLabel : TglObjectPtrLabel;
12635     glGetObjectPtrLabel : TglGetObjectPtrLabel;
12636     // GL_ARB_clear_buffer_object
12637     glClearBufferData : TglClearBufferData;
12638     glClearBufferSubData : TglClearBufferSubData;
12639     glClearNamedBufferDataEXT : TglClearNamedBufferDataEXT;
12640     glClearNamedBufferSubDataEXT : TglClearNamedBufferSubDataEXT;
12641     // GL_ARB_compute_shader
12642     glDispatchCompute : TglDispatchCompute;
12643     glDispatchComputeIndirect : TglDispatchComputeIndirect;
12644     // GL_ARB_copy_image
12645     glCopyImageSubData : TglCopyImageSubData;
12646     // GL_ARB_framebuffer_no_attachments
12647     glFramebufferParameteri : TglFramebufferParameteri;
12648     glGetFramebufferParameteriv : TglGetFramebufferParameteriv;
12649     glNamedFramebufferParameteriEXT : TglNamedFramebufferParameteriEXT;
12650     glGetNamedFramebufferParameterivEXT : TglGetNamedFramebufferParameterivEXT;
12651     // GL_ARB_internalformat_query2
12652     glGetInternalformati64v : TglGetInternalformati64v;
12653     // GL_ARB_invalidate_subdata
12654     glInvalidateTexSubImage : TglInvalidateTexSubImage;
12655     glInvalidateTexImage : TglInvalidateTexImage;
12656     glInvalidateBufferSubData : TglInvalidateBufferSubData;
12657     glInvalidateBufferData : TglInvalidateBufferData;
12658     glInvalidateFramebuffer : TglInvalidateFramebuffer;
12659     glInvalidateSubFramebuffer : TglInvalidateSubFramebuffer;
12660     // GL_ARB_multi_draw_indirect
12661     glMultiDrawArraysIndirect : TglMultiDrawArraysIndirect;
12662     glMultiDrawElementsIndirect : TglMultiDrawElementsIndirect;
12663     // GL_ARB_program_interface_query
12664     glGetProgramInterfaceiv : TglGetProgramInterfaceiv;
12665     glGetProgramResourceIndex : TglGetProgramResourceIndex;
12666     glGetProgramResourceName : TglGetProgramResourceName;
12667     glGetProgramResourceiv : TglGetProgramResourceiv;
12668     glGetProgramResourceLocation : TglGetProgramResourceLocation;
12669     glGetProgramResourceLocationIndex : TglGetProgramResourceLocationIndex;
12670     // GL_ARB_shader_storage_buffer_object
12671     glShaderStorageBlockBinding : TglShaderStorageBlockBinding;
12672     // GL_ARB_texture_buffer_range
12673     glTexBufferRange : TglTexBufferRange;
12674     glTextureBufferRangeEXT : TglTextureBufferRangeEXT;
12675     // GL_ARB_texture_storage_multisample
12676     glTexStorage2DMultisample : TglTexStorage2DMultisample;
12677     glTexStorage3DMultisample : TglTexStorage3DMultisample;
12678     glTextureStorage2DMultisampleEXT : TglTextureStorage2DMultisampleEXT;
12679     glTextureStorage3DMultisampleEXT : TglTextureStorage3DMultisampleEXT;
12680     // GL_ARB_texture_view
12681     glTextureView : TglTextureView;
12682     // GL_ARB_vertex_attrib_binding
12683     glBindVertexBuffer : TglBindVertexBuffer;
12684     glVertexAttribFormat : TglVertexAttribFormat;
12685     glVertexAttribIFormat : TglVertexAttribIFormat;
12686     glVertexAttribLFormat : TglVertexAttribLFormat;
12687     glVertexAttribBinding : TglVertexAttribBinding;
12688     glVertexBindingDivisor : TglVertexBindingDivisor;
12689     glVertexArrayBindVertexBufferEXT : TglVertexArrayBindVertexBufferEXT;
12690     glVertexArrayVertexAttribFormatEXT : TglVertexArrayVertexAttribFormatEXT;
12691     glVertexArrayVertexAttribIFormatEXT : TglVertexArrayVertexAttribIFormatEXT;
12692     glVertexArrayVertexAttribLFormatEXT : TglVertexArrayVertexAttribLFormatEXT;
12693     glVertexArrayVertexAttribBindingEXT : TglVertexArrayVertexAttribBindingEXT;
12694     glVertexArrayVertexBindingDivisorEXT : TglVertexArrayVertexBindingDivisorEXT;
12695   // END GL 4.3
12696
12697
12698   // GL 4.4
12699     glBufferStorage : TglBufferStorage;
12700     glClearTexImage : TglClearTexImage;
12701     glClearTexSubImage : TglClearTexSubImage;
12702     glBindBuffersBase : TglBindBuffersBase;
12703     glBindBuffersRange : TglBindBuffersRange;
12704     glBindTextures : TglBindTextures;
12705     glBindSamplers : TglBindSamplers;
12706     glBindImageTextures : TglBindImageTextures;
12707     glBindVertexBuffers : TglBindVertexBuffers;
12708   // END GL 4.4
12709
12710
12711   // GL_ARB_cl_event
12712   glCreateSyncFromCLeventARB: TglCreateSyncFromCLeventARB;
12713
12714   // GL_ARB_debug_output
12715   glDebugMessageControlARB: TglDebugMessageControlARB;
12716   glDebugMessageInsertARB: TglDebugMessageInsertARB;
12717   glDebugMessageCallbackARB: TglDebugMessageCallbackARB;
12718   glGetDebugMessageLogARB: TglGetDebugMessageLogARB;
12719
12720   // GL_ARB_robustness
12721   glGetGraphicsResetStatusARB: TglGetGraphicsResetStatusARB;
12722   glGetnMapdvARB: TglGetnMapdvARB;
12723   glGetnMapfvARB: TglGetnMapfvARB;
12724   glGetnMapivARB: TglGetnMapivARB;
12725   glGetnPixelMapfvARB: TglGetnPixelMapfvARB;
12726   glGetnPixelMapuivARB: TglGetnPixelMapuivARB;
12727   glGetnPixelMapusvARB: TglGetnPixelMapusvARB;
12728   glGetnPolygonStippleARB: TglGetnPolygonStippleARB;
12729   glGetnColorTableARB: TglGetnColorTableARB;
12730   glGetnConvolutionFilterARB: TglGetnConvolutionFilterARB;
12731   glGetnSeparableFilterARB: TglGetnSeparableFilterARB;
12732   glGetnHistogramARB: TglGetnHistogramARB;
12733   glGetnMinmaxARB: TglGetnMinmaxARB;
12734   glGetnTexImageARB: TglGetnTexImageARB;
12735   glReadnPixelsARB: TglReadnPixelsARB;
12736   glGetnCompressedTexImageARB: TglGetnCompressedTexImageARB;
12737   glGetnUniformfvARB: TglGetnUniformfvARB;
12738   glGetnUniformivARB: TglGetnUniformivARB;
12739   glGetnUniformuivARB: TglGetnUniformuivARB;
12740   glGetnUniformdvARB: TglGetnUniformdvARB;
12741
12742   // GL_ATI_draw_buffers
12743   glDrawBuffersATI: TglDrawBuffersATI;
12744
12745   // GL_ATI_element_array
12746   glElementPointerATI: TglElementPointerATI;
12747   glDrawElementArrayATI: TglDrawElementArrayATI;
12748   glDrawRangeElementArrayATI: TglDrawRangeElementArrayATI;
12749
12750   // GL_ATI_envmap_bumpmap
12751   glTexBumpParameterivATI: TglTexBumpParameterivATI;
12752   glTexBumpParameterfvATI: TglTexBumpParameterfvATI;
12753   glGetTexBumpParameterivATI: TglGetTexBumpParameterivATI;
12754   glGetTexBumpParameterfvATI: TglGetTexBumpParameterfvATI;
12755
12756   // GL_ATI_fragment_shader
12757   glGenFragmentShadersATI: TglGenFragmentShadersATI;
12758   glBindFragmentShaderATI: TglBindFragmentShaderATI;
12759   glDeleteFragmentShaderATI: TglDeleteFragmentShaderATI;
12760   glBeginFragmentShaderATI: TglBeginFragmentShaderATI;
12761   glEndFragmentShaderATI: TglEndFragmentShaderATI;
12762   glPassTexCoordATI: TglPassTexCoordATI;
12763   glSampleMapATI: TglSampleMapATI;
12764   glColorFragmentOp1ATI: TglColorFragmentOp1ATI;
12765   glColorFragmentOp2ATI: TglColorFragmentOp2ATI;
12766   glColorFragmentOp3ATI: TglColorFragmentOp3ATI;
12767   glAlphaFragmentOp1ATI: TglAlphaFragmentOp1ATI;
12768   glAlphaFragmentOp2ATI: TglAlphaFragmentOp2ATI;
12769   glAlphaFragmentOp3ATI: TglAlphaFragmentOp3ATI;
12770   glSetFragmentShaderConstantATI: TglSetFragmentShaderConstantATI;
12771
12772   // GL_ATI_map_object_buffer
12773   glMapObjectBufferATI: TglMapObjectBufferATI;
12774   glUnmapObjectBufferATI: TglUnmapObjectBufferATI;
12775
12776   // GL_ATI_pn_triangles
12777   glPNTrianglesiATI: TglPNTrianglesiATI;
12778   glPNTrianglesfATI: TglPNTrianglesfATI;
12779
12780   // GL_ATI_separate_stencil
12781   glStencilOpSeparateATI: TglStencilOpSeparateATI;
12782   glStencilFuncSeparateATI: TglStencilFuncSeparateATI;
12783
12784   // GL_ATI_vertex_array_object
12785   glNewObjectBufferATI: TglNewObjectBufferATI;
12786   glIsObjectBufferATI: TglIsObjectBufferATI;
12787   glUpdateObjectBufferATI: TglUpdateObjectBufferATI;
12788   glGetObjectBufferfvATI: TglGetObjectBufferfvATI;
12789   glGetObjectBufferivATI: TglGetObjectBufferivATI;
12790   glFreeObjectBufferATI: TglFreeObjectBufferATI;
12791   glArrayObjectATI: TglArrayObjectATI;
12792   glGetArrayObjectfvATI: TglGetArrayObjectfvATI;
12793   glGetArrayObjectivATI: TglGetArrayObjectivATI;
12794   glVariantArrayObjectATI: TglVariantArrayObjectATI;
12795   glGetVariantArrayObjectfvATI: TglGetVariantArrayObjectfvATI;
12796   glGetVariantArrayObjectivATI: TglGetVariantArrayObjectivATI;
12797   glVertexAttribArrayObjectATI: TglVertexAttribArrayObjectATI;
12798   glGetVertexAttribArrayObjectfvATI: TglGetVertexAttribArrayObjectfvATI;
12799   glGetVertexAttribArrayObjectivATI: TglGetVertexAttribArrayObjectivATI;
12800
12801   // GL_ATI_vertex_streams
12802   glVertexStream1sATI: TglVertexStream1sATI;
12803   glVertexStream1svATI: TglVertexStream1svATI;
12804   glVertexStream1iATI: TglVertexStream1iATI;
12805   glVertexStream1ivATI: TglVertexStream1ivATI;
12806   glVertexStream1fATI: TglVertexStream1fATI;
12807   glVertexStream1fvATI: TglVertexStream1fvATI;
12808   glVertexStream1dATI: TglVertexStream1dATI;
12809   glVertexStream1dvATI: TglVertexStream1dvATI;
12810   glVertexStream2sATI: TglVertexStream2sATI;
12811   glVertexStream2svATI: TglVertexStream2svATI;
12812   glVertexStream2iATI: TglVertexStream2iATI;
12813   glVertexStream2ivATI: TglVertexStream2ivATI;
12814   glVertexStream2fATI: TglVertexStream2fATI;
12815   glVertexStream2fvATI: TglVertexStream2fvATI;
12816   glVertexStream2dATI: TglVertexStream2dATI;
12817   glVertexStream2dvATI: TglVertexStream2dvATI;
12818   glVertexStream3sATI: TglVertexStream3sATI;
12819   glVertexStream3svATI: TglVertexStream3svATI;
12820   glVertexStream3iATI: TglVertexStream3iATI;
12821   glVertexStream3ivATI: TglVertexStream3ivATI;
12822   glVertexStream3fATI: TglVertexStream3fATI;
12823   glVertexStream3fvATI: TglVertexStream3fvATI;
12824   glVertexStream3dATI: TglVertexStream3dATI;
12825   glVertexStream3dvATI: TglVertexStream3dvATI;
12826   glVertexStream4sATI: TglVertexStream4sATI;
12827   glVertexStream4svATI: TglVertexStream4svATI;
12828   glVertexStream4iATI: TglVertexStream4iATI;
12829   glVertexStream4ivATI: TglVertexStream4ivATI;
12830   glVertexStream4fATI: TglVertexStream4fATI;
12831   glVertexStream4fvATI: TglVertexStream4fvATI;
12832   glVertexStream4dATI: TglVertexStream4dATI;
12833   glVertexStream4dvATI: TglVertexStream4dvATI;
12834   glNormalStream3bATI: TglNormalStream3bATI;
12835   glNormalStream3bvATI: TglNormalStream3bvATI;
12836   glNormalStream3sATI: TglNormalStream3sATI;
12837   glNormalStream3svATI: TglNormalStream3svATI;
12838   glNormalStream3iATI: TglNormalStream3iATI;
12839   glNormalStream3ivATI: TglNormalStream3ivATI;
12840   glNormalStream3fATI: TglNormalStream3fATI;
12841   glNormalStream3fvATI: TglNormalStream3fvATI;
12842   glNormalStream3dATI: TglNormalStream3dATI;
12843   glNormalStream3dvATI: TglNormalStream3dvATI;
12844   glClientActiveVertexStreamATI: TglClientActiveVertexStreamATI;
12845   glVertexBlendEnviATI: TglVertexBlendEnviATI;
12846   glVertexBlendEnvfATI: TglVertexBlendEnvfATI;
12847
12848   // GL_AMD_performance_monitor
12849   glGetPerfMonitorGroupsAMD: TglGetPerfMonitorGroupsAMD;
12850   glGetPerfMonitorCountersAMD: TglGetPerfMonitorCountersAMD;
12851   glGetPerfMonitorGroupStringAMD: TglGetPerfMonitorGroupStringAMD;
12852   glGetPerfMonitorCounterStringAMD: TglGetPerfMonitorCounterStringAMD;
12853   glGetPerfMonitorCounterInfoAMD: TglGetPerfMonitorCounterInfoAMD;
12854   glGenPerfMonitorsAMD: TglGenPerfMonitorsAMD;
12855   glDeletePerfMonitorsAMD: TglDeletePerfMonitorsAMD;
12856   glSelectPerfMonitorCountersAMD: TglSelectPerfMonitorCountersAMD;
12857   glBeginPerfMonitorAMD: TglBeginPerfMonitorAMD;
12858   glEndPerfMonitorAMD: TglEndPerfMonitorAMD;
12859   glGetPerfMonitorCounterDataAMD: TglGetPerfMonitorCounterDataAMD;
12860
12861   // GL_AMD_vertex_shader_tesselator
12862   glTessellationFactorAMD: TglTessellationFactorAMD;
12863   glTessellationModeAMD: TglTessellationModeAMD;
12864   
12865   // GL_AMD_draw_buffers_blend
12866   glBlendFuncIndexedAMD: TglBlendFuncIndexedAMD;
12867   glBlendFuncSeparateIndexedAMD: TglBlendFuncSeparateIndexedAMD;
12868   glBlendEquationIndexedAMD: TglBlendEquationIndexedAMD;
12869   glBlendEquationSeparateIndexedAMD: TglBlendEquationSeparateIndexedAMD;
12870
12871   // GL_AMD_name_gen_delete
12872   glGenNamesAMD: TglGenNamesAMD;
12873   glDeleteNamesAMD: TglDeleteNamesAMD;
12874   glIsNameAMD: TglIsNameAMD;
12875
12876   // GL_AMD_debug_output
12877   glDebugMessageEnableAMD: TglDebugMessageEnableAMD;
12878   glDebugMessageInsertAMD: TglDebugMessageInsertAMD;
12879   glDebugMessageCallbackAMD: TglDebugMessageCallbackAMD;
12880   glGetDebugMessageLogAMD: TglGetDebugMessageLogAMD;
12881
12882   // GL_EXT_blend_color
12883   glBlendColorEXT: TglBlendColorEXT;
12884
12885   // GL_EXT_blend_func_separate
12886   glBlendFuncSeparateEXT: TglBlendFuncSeparateEXT;
12887
12888   // GL_EXT_blend_minmax
12889   glBlendEquationEXT: TglBlendEquationEXT;
12890
12891   // GL_EXT_color_subtable
12892   glColorSubTableEXT: TglColorSubTableEXT;
12893   glCopyColorSubTableEXT: TglCopyColorSubTableEXT;
12894
12895   // GL_EXT_compiled_vertex_array
12896   glLockArraysEXT: TglLockArraysEXT;
12897   glUnlockArraysEXT: TglUnlockArraysEXT;
12898
12899   // GL_EXT_convolution
12900   glConvolutionFilter1DEXT: TglConvolutionFilter1DEXT;
12901   glConvolutionFilter2DEXT: TglConvolutionFilter2DEXT;
12902   glConvolutionParameterfEXT: TglConvolutionParameterfEXT;
12903   glConvolutionParameterfvEXT: TglConvolutionParameterfvEXT;
12904   glConvolutionParameteriEXT: TglConvolutionParameteriEXT;
12905   glConvolutionParameterivEXT: TglConvolutionParameterivEXT;
12906   glCopyConvolutionFilter1DEXT: TglCopyConvolutionFilter1DEXT;
12907   glCopyConvolutionFilter2DEXT: TglCopyConvolutionFilter2DEXT;
12908   glGetConvolutionFilterEXT: TglGetConvolutionFilterEXT;
12909   glGetConvolutionParameterfvEXT: TglGetConvolutionParameterfvEXT;
12910   glGetConvolutionParameterivEXT: TglGetConvolutionParameterivEXT;
12911   glGetSeparableFilterEXT: TglGetSeparableFilterEXT;
12912   glSeparableFilter2DEXT: TglSeparableFilter2DEXT;
12913
12914   // GL_EXT_coordinate_frame
12915   glTangent3bEXT: TglTangent3bEXT;
12916   glTangent3bvEXT: TglTangent3bvEXT;
12917   glTangent3dEXT: TglTangent3dEXT;
12918   glTangent3dvEXT: TglTangent3dvEXT;
12919   glTangent3fEXT: TglTangent3fEXT;
12920   glTangent3fvEXT: TglTangent3fvEXT;
12921   glTangent3iEXT: TglTangent3iEXT;
12922   glTangent3ivEXT: TglTangent3ivEXT;
12923   glTangent3sEXT: TglTangent3sEXT;
12924   glTangent3svEXT: TglTangent3svEXT;
12925   glBinormal3bEXT: TglBinormal3bEXT;
12926   glBinormal3bvEXT: TglBinormal3bvEXT;
12927   glBinormal3dEXT: TglBinormal3dEXT;
12928   glBinormal3dvEXT: TglBinormal3dvEXT;
12929   glBinormal3fEXT: TglBinormal3fEXT;
12930   glBinormal3fvEXT: TglBinormal3fvEXT;
12931   glBinormal3iEXT: TglBinormal3iEXT;
12932   glBinormal3ivEXT: TglBinormal3ivEXT;
12933   glBinormal3sEXT: TglBinormal3sEXT;
12934   glBinormal3svEXT: TglBinormal3svEXT;
12935   glTangentPointerEXT: TglTangentPointerEXT;
12936   glBinormalPointerEXT: TglBinormalPointerEXT;
12937
12938   // GL_EXT_copy_texture
12939   glCopyTexImage1DEXT: TglCopyTexImage1DEXT;
12940   glCopyTexImage2DEXT: TglCopyTexImage2DEXT;
12941   glCopyTexSubImage1DEXT: TglCopyTexSubImage1DEXT;
12942   glCopyTexSubImage2DEXT: TglCopyTexSubImage2DEXT;
12943   glCopyTexSubImage3DEXT: TglCopyTexSubImage3DEXT;
12944
12945   // GL_EXT_cull_vertex
12946   glCullParameterdvEXT: TglCullParameterdvEXT;
12947   glCullParameterfvEXT: TglCullParameterfvEXT;
12948
12949   // GL_EXT_draw_range_elements
12950   glDrawRangeElementsEXT: TglDrawRangeElementsEXT;
12951
12952   // GL_EXT_fog_coord
12953   glFogCoordfEXT: TglFogCoordfEXT;
12954   glFogCoordfvEXT: TglFogCoordfvEXT;
12955   glFogCoorddEXT: TglFogCoorddEXT;
12956   glFogCoorddvEXT: TglFogCoorddvEXT;
12957   glFogCoordPointerEXT: TglFogCoordPointerEXT;
12958
12959   // GL_EXT_framebuffer_object
12960   glIsRenderbufferEXT: TglIsRenderbufferEXT;
12961   glBindRenderbufferEXT: TglBindRenderbufferEXT;
12962   glDeleteRenderbuffersEXT: TglDeleteRenderbuffersEXT;
12963   glGenRenderbuffersEXT: TglGenRenderbuffersEXT;
12964   glRenderbufferStorageEXT: TglRenderbufferStorageEXT;
12965   glGetRenderbufferParameterivEXT: TglGetRenderbufferParameterivEXT;
12966   glIsFramebufferEXT: TglIsFramebufferEXT;
12967   glBindFramebufferEXT: TglBindFramebufferEXT;
12968   glDeleteFramebuffersEXT: TglDeleteFramebuffersEXT;
12969   glGenFramebuffersEXT: TglGenFramebuffersEXT;
12970   glCheckFramebufferStatusEXT: TglCheckFramebufferStatusEXT;
12971   glFramebufferTexture1DEXT: TglFramebufferTexture1DEXT;
12972   glFramebufferTexture2DEXT: TglFramebufferTexture2DEXT;
12973   glFramebufferTexture3DEXT: TglFramebufferTexture3DEXT;
12974   glFramebufferRenderbufferEXT: TglFramebufferRenderbufferEXT;
12975   glGetFramebufferAttachmentParameterivEXT: TglGetFramebufferAttachmentParameterivEXT;
12976   glGenerateMipmapEXT: TglGenerateMipmapEXT;
12977
12978   // GL_EXT_histogram
12979   glGetHistogramEXT: TglGetHistogramEXT;
12980   glGetHistogramParameterfvEXT: TglGetHistogramParameterfvEXT;
12981   glGetHistogramParameterivEXT: TglGetHistogramParameterivEXT;
12982   glGetMinmaxEXT: TglGetMinmaxEXT;
12983   glGetMinmaxParameterfvEXT: TglGetMinmaxParameterfvEXT;
12984   glGetMinmaxParameterivEXT: TglGetMinmaxParameterivEXT;
12985   glHistogramEXT: TglHistogramEXT;
12986   glMinmaxEXT: TglMinmaxEXT;
12987   glResetHistogramEXT: TglResetHistogramEXT;
12988   glResetMinmaxEXT: TglResetMinmaxEXT;
12989
12990   // GL_EXT_index_func
12991   glIndexFuncEXT: TglIndexFuncEXT;
12992
12993   // GL_EXT_index_material
12994   glIndexMaterialEXT: TglIndexMaterialEXT;
12995
12996   // GL_EXT_light_texture
12997   glApplyTextureEXT: TglApplyTextureEXT;
12998   glTextureLightEXT: TglTextureLightEXT;
12999   glTextureMaterialEXT: TglTextureMaterialEXT;
13000
13001   // GL_EXT_multi_draw_arrays
13002   glMultiDrawArraysEXT: TglMultiDrawArraysEXT;
13003   glMultiDrawElementsEXT: TglMultiDrawElementsEXT;
13004
13005   // GL_EXT_multisample
13006   glSampleMaskEXT: TglSampleMaskEXT;
13007   glSamplePatternEXT: TglSamplePatternEXT;
13008
13009   // GL_EXT_paletted_texture
13010   glColorTableEXT: TglColorTableEXT;
13011   glGetColorTableEXT: TglGetColorTableEXT;
13012   glGetColorTableParameterivEXT: TglGetColorTableParameterivEXT;
13013   glGetColorTableParameterfvEXT: TglGetColorTableParameterfvEXT;
13014
13015   // GL_EXT_pixel_transform
13016   glPixelTransformParameteriEXT: TglPixelTransformParameteriEXT;
13017   glPixelTransformParameterfEXT: TglPixelTransformParameterfEXT;
13018   glPixelTransformParameterivEXT: TglPixelTransformParameterivEXT;
13019   glPixelTransformParameterfvEXT: TglPixelTransformParameterfvEXT;
13020
13021   // GL_EXT_point_parameters
13022   glPointParameterfEXT: TglPointParameterfEXT;
13023   glPointParameterfvEXT: TglPointParameterfvEXT;
13024
13025   // GL_EXT_polygon_offset
13026   glPolygonOffsetEXT: TglPolygonOffsetEXT;
13027
13028   // GL_EXT_secondary_color
13029   glSecondaryColor3bEXT: TglSecondaryColor3bEXT;
13030   glSecondaryColor3bvEXT: TglSecondaryColor3bvEXT;
13031   glSecondaryColor3dEXT: TglSecondaryColor3dEXT;
13032   glSecondaryColor3dvEXT: TglSecondaryColor3dvEXT;
13033   glSecondaryColor3fEXT: TglSecondaryColor3fEXT;
13034   glSecondaryColor3fvEXT: TglSecondaryColor3fvEXT;
13035   glSecondaryColor3iEXT: TglSecondaryColor3iEXT;
13036   glSecondaryColor3ivEXT: TglSecondaryColor3ivEXT;
13037   glSecondaryColor3sEXT: TglSecondaryColor3sEXT;
13038   glSecondaryColor3svEXT: TglSecondaryColor3svEXT;
13039   glSecondaryColor3ubEXT: TglSecondaryColor3ubEXT;
13040   glSecondaryColor3ubvEXT: TglSecondaryColor3ubvEXT;
13041   glSecondaryColor3uiEXT: TglSecondaryColor3uiEXT;
13042   glSecondaryColor3uivEXT: TglSecondaryColor3uivEXT;
13043   glSecondaryColor3usEXT: TglSecondaryColor3usEXT;
13044   glSecondaryColor3usvEXT: TglSecondaryColor3usvEXT;
13045   glSecondaryColorPointerEXT: TglSecondaryColorPointerEXT;
13046
13047   // GL_EXT_stencil_two_side
13048   glActiveStencilFaceEXT: TglActiveStencilFaceEXT;
13049
13050   // GL_EXT_subtexture
13051   glTexSubImage1DEXT: TglTexSubImage1DEXT;
13052   glTexSubImage2DEXT: TglTexSubImage2DEXT;
13053
13054   // GL_EXT_texture3D
13055   glTexImage3DEXT: TglTexImage3DEXT;
13056   glTexSubImage3DEXT: TglTexSubImage3DEXT;
13057
13058   // GL_EXT_texture_object
13059   glAreTexturesResidentEXT: TglAreTexturesResidentEXT;
13060   glBindTextureEXT: TglBindTextureEXT;
13061   glDeleteTexturesEXT: TglDeleteTexturesEXT;
13062   glGenTexturesEXT: TglGenTexturesEXT;
13063   glIsTextureEXT: TglIsTextureEXT;
13064   glPrioritizeTexturesEXT: TglPrioritizeTexturesEXT;
13065
13066   // GL_EXT_texture_perturb_normal
13067   glTextureNormalEXT: TglTextureNormalEXT;
13068
13069   // GL_EXT_vertex_array
13070   glArrayElementEXT: TglArrayElementEXT;
13071   glColorPointerEXT: TglColorPointerEXT;
13072   glDrawArraysEXT: TglDrawArraysEXT;
13073   glEdgeFlagPointerEXT: TglEdgeFlagPointerEXT;
13074   glGetPointervEXT: TglGetPointervEXT;
13075   glIndexPointerEXT: TglIndexPointerEXT;
13076   glNormalPointerEXT: TglNormalPointerEXT;
13077   glTexCoordPointerEXT: TglTexCoordPointerEXT;
13078   glVertexPointerEXT: TglVertexPointerEXT;
13079
13080   // GL_EXT_vertex_shader
13081   glBeginVertexShaderEXT: TglBeginVertexShaderEXT;
13082   glEndVertexShaderEXT: TglEndVertexShaderEXT;
13083   glBindVertexShaderEXT: TglBindVertexShaderEXT;
13084   glGenVertexShadersEXT: TglGenVertexShadersEXT;
13085   glDeleteVertexShaderEXT: TglDeleteVertexShaderEXT;
13086   glShaderOp1EXT: TglShaderOp1EXT;
13087   glShaderOp2EXT: TglShaderOp2EXT;
13088   glShaderOp3EXT: TglShaderOp3EXT;
13089   glSwizzleEXT: TglSwizzleEXT;
13090   glWriteMaskEXT: TglWriteMaskEXT;
13091   glInsertComponentEXT: TglInsertComponentEXT;
13092   glExtractComponentEXT: TglExtractComponentEXT;
13093   glGenSymbolsEXT: TglGenSymbolsEXT;
13094   glSetInvariantEXT: TglSetInvariantEXT;
13095   glSetLocalConstantEXT: TglSetLocalConstantEXT;
13096   glVariantbvEXT: TglVariantbvEXT;
13097   glVariantsvEXT: TglVariantsvEXT;
13098   glVariantivEXT: TglVariantivEXT;
13099   glVariantfvEXT: TglVariantfvEXT;
13100   glVariantdvEXT: TglVariantdvEXT;
13101   glVariantubvEXT: TglVariantubvEXT;
13102   glVariantusvEXT: TglVariantusvEXT;
13103   glVariantuivEXT: TglVariantuivEXT;
13104   glVariantPointerEXT: TglVariantPointerEXT;
13105   glEnableVariantClientStateEXT: TglEnableVariantClientStateEXT;
13106   glDisableVariantClientStateEXT: TglDisableVariantClientStateEXT;
13107   glBindLightParameterEXT: TglBindLightParameterEXT;
13108   glBindMaterialParameterEXT: TglBindMaterialParameterEXT;
13109   glBindTexGenParameterEXT: TglBindTexGenParameterEXT;
13110   glBindTextureUnitParameterEXT: TglBindTextureUnitParameterEXT;
13111   glBindParameterEXT: TglBindParameterEXT;
13112   glIsVariantEnabledEXT: TglIsVariantEnabledEXT;
13113   glGetVariantBooleanvEXT: TglGetVariantBooleanvEXT;
13114   glGetVariantIntegervEXT: TglGetVariantIntegervEXT;
13115   glGetVariantFloatvEXT: TglGetVariantFloatvEXT;
13116   glGetVariantPointervEXT: TglGetVariantPointervEXT;
13117   glGetInvariantBooleanvEXT: TglGetInvariantBooleanvEXT;
13118   glGetInvariantIntegervEXT: TglGetInvariantIntegervEXT;
13119   glGetInvariantFloatvEXT: TglGetInvariantFloatvEXT;
13120   glGetLocalConstantBooleanvEXT: TglGetLocalConstantBooleanvEXT;
13121   glGetLocalConstantIntegervEXT: TglGetLocalConstantIntegervEXT;
13122   glGetLocalConstantFloatvEXT: TglGetLocalConstantFloatvEXT;
13123
13124   // GL_EXT_vertex_weighting
13125   glVertexWeightfEXT: TglVertexWeightfEXT;
13126   glVertexWeightfvEXT: TglVertexWeightfvEXT;
13127   glVertexWeightPointerEXT: TglVertexWeightPointerEXT;
13128
13129   // GL_EXT_stencil_clear_tag
13130   glStencilClearTagEXT: TglStencilClearTagEXT;
13131
13132   // GL_EXT_framebuffer_blit
13133   glBlitFramebufferEXT: TglBlitFramebufferEXT;
13134
13135   // GL_EXT_framebuffer_multisample
13136   glRenderbufferStorageMultisampleEXT: TglRenderbufferStorageMultisampleEXT;
13137
13138   // GL_EXT_timer_query
13139   glGetQueryObjecti64vEXT: TglGetQueryObjecti64vEXT;
13140   glGetQueryObjectui64vEXT: TglGetQueryObjectui64vEXT;
13141
13142   // GL_EXT_gpu_program_parameters
13143   glProgramEnvParameters4fvEXT: TglProgramEnvParameters4fvEXT;
13144   glProgramLocalParameters4fvEXT: TglProgramLocalParameters4fvEXT;
13145
13146   // GL_EXT_bindable_uniform
13147   glUniformBufferEXT: TglUniformBufferEXT;
13148   glGetUniformBufferSizeEXT: TglGetUniformBufferSizeEXT;
13149   glGetUniformOffsetEXT: TglGetUniformOffsetEXT;
13150
13151   // GL_EXT_draw_buffers2
13152   glColorMaskIndexedEXT: TglColorMaskIndexedEXT;
13153   glGetBooleanIndexedvEXT: TglGetBooleanIndexedvEXT;
13154   glGetIntegerIndexedvEXT: TglGetIntegerIndexedvEXT;
13155   glEnableIndexedEXT: TglEnableIndexedEXT;
13156   glDisableIndexedEXT: TglDisableIndexedEXT;
13157   glIsEnabledIndexedEXT: TglIsEnabledIndexedEXT;
13158
13159   // GL_EXT_draw_instanced
13160   glDrawArraysInstancedEXT: TglDrawArraysInstancedEXT;
13161   glDrawElementsInstancedEXT: TglDrawElementsInstancedEXT;
13162
13163   // GL_EXT_geometry_shader4
13164   glProgramParameteriEXT: TglProgramParameteriEXT;
13165   glFramebufferTextureEXT: TglFramebufferTextureEXT;
13166 //  glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13167   glFramebufferTextureFaceEXT: TglFramebufferTextureFaceEXT;
13168
13169   // GL_EXT_gpu_shader4
13170   glVertexAttribI1iEXT: TglVertexAttribI1iEXT;
13171   glVertexAttribI2iEXT: TglVertexAttribI2iEXT;
13172   glVertexAttribI3iEXT: TglVertexAttribI3iEXT;
13173   glVertexAttribI4iEXT: TglVertexAttribI4iEXT;
13174   glVertexAttribI1uiEXT: TglVertexAttribI1uiEXT;
13175   glVertexAttribI2uiEXT: TglVertexAttribI2uiEXT;
13176   glVertexAttribI3uiEXT: TglVertexAttribI3uiEXT;
13177   glVertexAttribI4uiEXT: TglVertexAttribI4uiEXT;
13178   glVertexAttribI1ivEXT: TglVertexAttribI1ivEXT;
13179   glVertexAttribI2ivEXT: TglVertexAttribI2ivEXT;
13180   glVertexAttribI3ivEXT: TglVertexAttribI3ivEXT;
13181   glVertexAttribI4ivEXT: TglVertexAttribI4ivEXT;
13182   glVertexAttribI1uivEXT: TglVertexAttribI1uivEXT;
13183   glVertexAttribI2uivEXT: TglVertexAttribI2uivEXT;
13184   glVertexAttribI3uivEXT: TglVertexAttribI3uivEXT;
13185   glVertexAttribI4uivEXT: TglVertexAttribI4uivEXT;
13186   glVertexAttribI4bvEXT: TglVertexAttribI4bvEXT;
13187   glVertexAttribI4svEXT: TglVertexAttribI4svEXT;
13188   glVertexAttribI4ubvEXT: TglVertexAttribI4ubvEXT;
13189   glVertexAttribI4usvEXT: TglVertexAttribI4usvEXT;
13190   glVertexAttribIPointerEXT: TglVertexAttribIPointerEXT;
13191   glGetVertexAttribIivEXT: TglGetVertexAttribIivEXT;
13192   glGetVertexAttribIuivEXT: TglGetVertexAttribIuivEXT;
13193   glUniform1uiEXT: TglUniform1uiEXT;
13194   glUniform2uiEXT: TglUniform2uiEXT;
13195   glUniform3uiEXT: TglUniform3uiEXT;
13196   glUniform4uiEXT: TglUniform4uiEXT;
13197   glUniform1uivEXT: TglUniform1uivEXT;
13198   glUniform2uivEXT: TglUniform2uivEXT;
13199   glUniform3uivEXT: TglUniform3uivEXT;
13200   glUniform4uivEXT: TglUniform4uivEXT;
13201   glGetUniformuivEXT: TglGetUniformuivEXT;
13202   glBindFragDataLocationEXT: TglBindFragDataLocationEXT;
13203   glGetFragDataLocationEXT: TglGetFragDataLocationEXT;
13204
13205   // GL_EXT_texture_array
13206   glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13207
13208   // GL_EXT_texture_buffer_object
13209   glTexBufferEXT: TglTexBufferEXT;
13210
13211   // GL_EXT_texture_integer
13212   glClearColorIiEXT: TglClearColorIiEXT;
13213   glClearColorIuiEXT: TglClearColorIuiEXT;
13214   glTexParameterIivEXT: TglTexParameterIivEXT;
13215   glTexParameterIuivEXT: TglTexParameterIuivEXT;
13216   glGetTexParameterIivEXT: TglGetTexParameterIivEXT;
13217   glGetTexParameterIiuvEXT: TglGetTexParameterIiuvEXT;
13218
13219   // GL_EXT_transform_feedback
13220   glBeginTransformFeedbackEXT: TglBeginTransformFeedbackEXT;
13221   glEndTransformFeedbackEXT: TglEndTransformFeedbackEXT;
13222   glBindBufferRangeEXT: TglBindBufferRangeEXT;
13223   glBindBufferOffsetEXT: TglBindBufferOffsetEXT;
13224   glBindBufferBaseEXT: TglBindBufferBaseEXT;
13225   glTransformFeedbackVaryingsEXT: TglTransformFeedbackVaryingsEXT;
13226   glGetTransformFeedbackVaryingEXT: TglGetTransformFeedbackVaryingEXT;
13227
13228   // GL_EXT_direct_state_access
13229   glClientAttribDefaultEXT: TglClientAttribDefaultEXT;
13230   glPushClientAttribDefaultEXT: TglPushClientAttribDefaultEXT;
13231   glMatrixLoadfEXT: TglMatrixLoadfEXT;
13232   glMatrixLoaddEXT: TglMatrixLoaddEXT;
13233   glMatrixMultfEXT: TglMatrixMultfEXT;
13234   glMatrixMultdEXT: TglMatrixMultdEXT;
13235   glMatrixLoadIdentityEXT: TglMatrixLoadIdentityEXT;
13236   glMatrixRotatefEXT: TglMatrixRotatefEXT;
13237   glMatrixRotatedEXT: TglMatrixRotatedEXT;
13238   glMatrixScalefEXT: TglMatrixScalefEXT;
13239   glMatrixScaledEXT: TglMatrixScaledEXT;
13240   glMatrixTranslatefEXT: TglMatrixTranslatefEXT;
13241   glMatrixTranslatedEXT: TglMatrixTranslatedEXT;
13242   glMatrixFrustumEXT: TglMatrixFrustumEXT;
13243   glMatrixOrthoEXT: TglMatrixOrthoEXT;
13244   glMatrixPopEXT: TglMatrixPopEXT;
13245   glMatrixPushEXT: TglMatrixPushEXT;
13246   glMatrixLoadTransposefEXT: TglMatrixLoadTransposefEXT;
13247   glMatrixLoadTransposedEXT: TglMatrixLoadTransposedEXT;
13248   glMatrixMultTransposefEXT: TglMatrixMultTransposefEXT;
13249   glMatrixMultTransposedEXT: TglMatrixMultTransposedEXT;
13250   glTextureParameterfEXT: TglTextureParameterfEXT;
13251   glTextureParameterfvEXT: TglTextureParameterfvEXT;
13252   glTextureParameteriEXT: TglTextureParameteriEXT;
13253   glTextureParameterivEXT: TglTextureParameterivEXT;
13254   glTextureImage1DEXT: TglTextureImage1DEXT;
13255   glTextureImage2DEXT: TglTextureImage2DEXT;
13256   glTextureSubImage1DEXT: TglTextureSubImage1DEXT;
13257   glTextureSubImage2DEXT: TglTextureSubImage2DEXT;
13258   glCopyTextureImage1DEXT: TglCopyTextureImage1DEXT;
13259   glCopyTextureImage2DEXT: TglCopyTextureImage2DEXT;
13260   glCopyTextureSubImage1DEXT: TglCopyTextureSubImage1DEXT;
13261   glCopyTextureSubImage2DEXT: TglCopyTextureSubImage2DEXT;
13262   glGetTextureImageEXT: TglGetTextureImageEXT;
13263   glGetTextureParameterfvEXT: TglGetTextureParameterfvEXT;
13264   glGetTextureParameterivEXT: TglGetTextureParameterivEXT;
13265   glGetTextureLevelParameterfvEXT: TglGetTextureLevelParameterfvEXT;
13266   glGetTextureLevelParameterivEXT: TglGetTextureLevelParameterivEXT;
13267   glTextureImage3DEXT: TglTextureImage3DEXT;
13268   glTextureSubImage3DEXT: TglTextureSubImage3DEXT;
13269   glCopyTextureSubImage3DEXT: TglCopyTextureSubImage3DEXT;
13270   glMultiTexParameterfEXT: TglMultiTexParameterfEXT;
13271   glMultiTexParameterfvEXT: TglMultiTexParameterfvEXT;
13272   glMultiTexParameteriEXT: TglMultiTexParameteriEXT;
13273   glMultiTexParameterivEXT: TglMultiTexParameterivEXT;
13274   glMultiTexImage1DEXT: TglMultiTexImage1DEXT;
13275   glMultiTexImage2DEXT: TglMultiTexImage2DEXT;
13276   glMultiTexSubImage1DEXT: TglMultiTexSubImage1DEXT;
13277   glMultiTexSubImage2DEXT: TglMultiTexSubImage2DEXT;
13278   glCopyMultiTexImage1DEXT: TglCopyMultiTexImage1DEXT;
13279   glCopyMultiTexImage2DEXT: TglCopyMultiTexImage2DEXT;
13280   glCopyMultiTexSubImage1DEXT: TglCopyMultiTexSubImage1DEXT;
13281   glCopyMultiTexSubImage2DEXT: TglCopyMultiTexSubImage2DEXT;
13282   glGetMultiTexImageEXT: TglGetMultiTexImageEXT;
13283   glGetMultiTexParameterfvEXT: TglGetMultiTexParameterfvEXT;
13284   glGetMultiTexParameterivEXT: TglGetMultiTexParameterivEXT;
13285   glGetMultiTexLevelParameterfvEXT: TglGetMultiTexLevelParameterfvEXT;
13286   glGetMultiTexLevelParameterivEXT: TglGetMultiTexLevelParameterivEXT;
13287   glMultiTexImage3DEXT: TglMultiTexImage3DEXT;
13288   glMultiTexSubImage3DEXT: TglMultiTexSubImage3DEXT;
13289   glCopyMultiTexSubImage3DEXT: TglCopyMultiTexSubImage3DEXT;
13290   glBindMultiTextureEXT: TglBindMultiTextureEXT;
13291   glEnableClientStateIndexedEXT: TglEnableClientStateIndexedEXT;
13292   glDisableClientStateIndexedEXT: TglDisableClientStateIndexedEXT;
13293   glMultiTexCoordPointerEXT: TglMultiTexCoordPointerEXT;
13294   glMultiTexEnvfEXT: TglMultiTexEnvfEXT;
13295   glMultiTexEnvfvEXT: TglMultiTexEnvfvEXT;
13296   glMultiTexEnviEXT: TglMultiTexEnviEXT;
13297   glMultiTexEnvivEXT: TglMultiTexEnvivEXT;
13298   glMultiTexGendEXT: TglMultiTexGendEXT;
13299   glMultiTexGendvEXT: TglMultiTexGendvEXT;
13300   glMultiTexGenfEXT: TglMultiTexGenfEXT;
13301   glMultiTexGenfvEXT: TglMultiTexGenfvEXT;
13302   glMultiTexGeniEXT: TglMultiTexGeniEXT;
13303   glMultiTexGenivEXT: TglMultiTexGenivEXT;
13304   glGetMultiTexEnvfvEXT: TglGetMultiTexEnvfvEXT;
13305   glGetMultiTexEnvivEXT: TglGetMultiTexEnvivEXT;
13306   glGetMultiTexGendvEXT: TglGetMultiTexGendvEXT;
13307   glGetMultiTexGenfvEXT: TglGetMultiTexGenfvEXT;
13308   glGetMultiTexGenivEXT: TglGetMultiTexGenivEXT;
13309   glGetFloatIndexedvEXT: TglGetFloatIndexedvEXT;
13310   glGetDoubleIndexedvEXT: TglGetDoubleIndexedvEXT;
13311   glGetPointerIndexedvEXT: TglGetPointerIndexedvEXT;
13312   glCompressedTextureImage3DEXT: TglCompressedTextureImage3DEXT;
13313   glCompressedTextureImage2DEXT: TglCompressedTextureImage2DEXT;
13314   glCompressedTextureImage1DEXT: TglCompressedTextureImage1DEXT;
13315   glCompressedTextureSubImage3DEXT: TglCompressedTextureSubImage3DEXT;
13316   glCompressedTextureSubImage2DEXT: TglCompressedTextureSubImage2DEXT;
13317   glCompressedTextureSubImage1DEXT: TglCompressedTextureSubImage1DEXT;
13318   glGetCompressedTextureImageEXT: TglGetCompressedTextureImageEXT;
13319   glCompressedMultiTexImage3DEXT: TglCompressedMultiTexImage3DEXT;
13320   glCompressedMultiTexImage2DEXT: TglCompressedMultiTexImage2DEXT;
13321   glCompressedMultiTexImage1DEXT: TglCompressedMultiTexImage1DEXT;
13322   glCompressedMultiTexSubImage3DEXT: TglCompressedMultiTexSubImage3DEXT;
13323   glCompressedMultiTexSubImage2DEXT: TglCompressedMultiTexSubImage2DEXT;
13324   glCompressedMultiTexSubImage1DEXT: TglCompressedMultiTexSubImage1DEXT;
13325   glGetCompressedMultiTexImageEXT: TglGetCompressedMultiTexImageEXT;
13326   glNamedProgramStringEXT: TglNamedProgramStringEXT;
13327   glNamedProgramLocalParameter4dEXT: TglNamedProgramLocalParameter4dEXT;
13328   glNamedProgramLocalParameter4dvEXT: TglNamedProgramLocalParameter4dvEXT;
13329   glNamedProgramLocalParameter4fEXT: TglNamedProgramLocalParameter4fEXT;
13330   glNamedProgramLocalParameter4fvEXT: TglNamedProgramLocalParameter4fvEXT;
13331   glGetNamedProgramLocalParameterdvEXT: TglGetNamedProgramLocalParameterdvEXT;
13332   glGetNamedProgramLocalParameterfvEXT: TglGetNamedProgramLocalParameterfvEXT;
13333   glGetNamedProgramivEXT: TglGetNamedProgramivEXT;
13334   glGetNamedProgramStringEXT: TglGetNamedProgramStringEXT;
13335   glNamedProgramLocalParameters4fvEXT: TglNamedProgramLocalParameters4fvEXT;
13336   glNamedProgramLocalParameterI4iEXT: TglNamedProgramLocalParameterI4iEXT;
13337   glNamedProgramLocalParameterI4ivEXT: TglNamedProgramLocalParameterI4ivEXT;
13338   glNamedProgramLocalParametersI4ivEXT: TglNamedProgramLocalParametersI4ivEXT;
13339   glNamedProgramLocalParameterI4uiEXT: TglNamedProgramLocalParameterI4uiEXT;
13340   glNamedProgramLocalParameterI4uivEXT: TglNamedProgramLocalParameterI4uivEXT;
13341   glNamedProgramLocalParametersI4uivEXT: TglNamedProgramLocalParametersI4uivEXT;
13342   glGetNamedProgramLocalParameterIivEXT: TglGetNamedProgramLocalParameterIivEXT;
13343   glGetNamedProgramLocalParameterIuivEXT: TglGetNamedProgramLocalParameterIuivEXT;
13344   glTextureParameterIivEXT: TglTextureParameterIivEXT;
13345   glTextureParameterIuivEXT: TglTextureParameterIuivEXT;
13346   glGetTextureParameterIivEXT: TglGetTextureParameterIivEXT;
13347   glGetTextureParameterIuivEXT: TglGetTextureParameterIuivEXT;
13348   glMultiTexParameterIivEXT: TglMultiTexParameterIivEXT;
13349   glMultiTexParameterIuivEXT: TglMultiTexParameterIuivEXT;
13350   glGetMultiTexParameterIivEXT: TglGetMultiTexParameterIivEXT;
13351   glGetMultiTexParameterIuivEXT: TglGetMultiTexParameterIuivEXT;
13352   glProgramUniform1fEXT: TglProgramUniform1fEXT;
13353   glProgramUniform2fEXT: TglProgramUniform2fEXT;
13354   glProgramUniform3fEXT: TglProgramUniform3fEXT;
13355   glProgramUniform4fEXT: TglProgramUniform4fEXT;
13356   glProgramUniform1iEXT: TglProgramUniform1iEXT;
13357   glProgramUniform2iEXT: TglProgramUniform2iEXT;
13358   glProgramUniform3iEXT: TglProgramUniform3iEXT;
13359   glProgramUniform4iEXT: TglProgramUniform4iEXT;
13360   glProgramUniform1fvEXT: TglProgramUniform1fvEXT;
13361   glProgramUniform2fvEXT: TglProgramUniform2fvEXT;
13362   glProgramUniform3fvEXT: TglProgramUniform3fvEXT;
13363   glProgramUniform4fvEXT: TglProgramUniform4fvEXT;
13364   glProgramUniform1ivEXT: TglProgramUniform1ivEXT;
13365   glProgramUniform2ivEXT: TglProgramUniform2ivEXT;
13366   glProgramUniform3ivEXT: TglProgramUniform3ivEXT;
13367   glProgramUniform4ivEXT: TglProgramUniform4ivEXT;
13368   glProgramUniformMatrix2fvEXT: TglProgramUniformMatrix2fvEXT;
13369   glProgramUniformMatrix3fvEXT: TglProgramUniformMatrix3fvEXT;
13370   glProgramUniformMatrix4fvEXT: TglProgramUniformMatrix4fvEXT;
13371   glProgramUniformMatrix2x3fvEXT: TglProgramUniformMatrix2x3fvEXT;
13372   glProgramUniformMatrix3x2fvEXT: TglProgramUniformMatrix3x2fvEXT;
13373   glProgramUniformMatrix2x4fvEXT: TglProgramUniformMatrix2x4fvEXT;
13374   glProgramUniformMatrix4x2fvEXT: TglProgramUniformMatrix4x2fvEXT;
13375   glProgramUniformMatrix3x4fvEXT: TglProgramUniformMatrix3x4fvEXT;
13376   glProgramUniformMatrix4x3fvEXT: TglProgramUniformMatrix4x3fvEXT;
13377   glProgramUniform1uiEXT: TglProgramUniform1uiEXT;
13378   glProgramUniform2uiEXT: TglProgramUniform2uiEXT;
13379   glProgramUniform3uiEXT: TglProgramUniform3uiEXT;
13380   glProgramUniform4uiEXT: TglProgramUniform4uiEXT;
13381   glProgramUniform1uivEXT: TglProgramUniform1uivEXT;
13382   glProgramUniform2uivEXT: TglProgramUniform2uivEXT;
13383   glProgramUniform3uivEXT: TglProgramUniform3uivEXT;
13384   glProgramUniform4uivEXT: TglProgramUniform4uivEXT;
13385   glNamedBufferDataEXT: TglNamedBufferDataEXT;
13386   glNamedBufferSubDataEXT: TglNamedBufferSubDataEXT;
13387   glMapNamedBufferEXT: TglMapNamedBufferEXT;
13388   glUnmapNamedBufferEXT: TglUnmapNamedBufferEXT;
13389   glMapNamedBufferRangeEXT: TglMapNamedBufferRangeEXT;
13390   glFlushMappedNamedBufferRangeEXT: TglFlushMappedNamedBufferRangeEXT;
13391   glNamedCopyBufferSubDataEXT: TglNamedCopyBufferSubDataEXT;
13392   glGetNamedBufferParameterivEXT: TglGetNamedBufferParameterivEXT;
13393   glGetNamedBufferPointervEXT: TglGetNamedBufferPointervEXT;
13394   glGetNamedBufferSubDataEXT: TglGetNamedBufferSubDataEXT;
13395   glTextureBufferEXT: TglTextureBufferEXT;
13396   glMultiTexBufferEXT: TglMultiTexBufferEXT;
13397   glNamedRenderbufferStorageEXT: TglNamedRenderbufferStorageEXT;
13398   glGetNamedRenderbufferParameterivEXT: TglGetNamedRenderbufferParameterivEXT;
13399   glCheckNamedFramebufferStatusEXT: TglCheckNamedFramebufferStatusEXT;
13400   glNamedFramebufferTexture1DEXT: TglNamedFramebufferTexture1DEXT;
13401   glNamedFramebufferTexture2DEXT: TglNamedFramebufferTexture2DEXT;
13402   glNamedFramebufferTexture3DEXT: TglNamedFramebufferTexture3DEXT;
13403   glNamedFramebufferRenderbufferEXT: TglNamedFramebufferRenderbufferEXT;
13404   glGetNamedFramebufferAttachmentParameterivEXT: TglGetNamedFramebufferAttachmentParameterivEXT;
13405   glGenerateTextureMipmapEXT: TglGenerateTextureMipmapEXT;
13406   glGenerateMultiTexMipmapEXT: TglGenerateMultiTexMipmapEXT;
13407   glFramebufferDrawBufferEXT: TglFramebufferDrawBufferEXT;
13408   glFramebufferDrawBuffersEXT: TglFramebufferDrawBuffersEXT;
13409   glFramebufferReadBufferEXT: TglFramebufferReadBufferEXT;
13410   glGetFramebufferParameterivEXT: TglGetFramebufferParameterivEXT;
13411   glNamedRenderbufferStorageMultisampleEXT: TglNamedRenderbufferStorageMultisampleEXT;
13412   glNamedRenderbufferStorageMultisampleCoverageEXT: TglNamedRenderbufferStorageMultisampleCoverageEXT;
13413   glNamedFramebufferTextureEXT: TglNamedFramebufferTextureEXT;
13414   glNamedFramebufferTextureLayerEXT: TglNamedFramebufferTextureLayerEXT;
13415   glNamedFramebufferTextureFaceEXT: TglNamedFramebufferTextureFaceEXT;
13416   glTextureRenderbufferEXT: TglTextureRenderbufferEXT;
13417   glMultiTexRenderbufferEXT: TglMultiTexRenderbufferEXT;
13418   glProgramUniform1dEXT: TglProgramUniform1dEXT;
13419   glProgramUniform2dEXT: TglProgramUniform2dEXT;
13420   glProgramUniform3dEXT: TglProgramUniform3dEXT;
13421   glProgramUniform4dEXT: TglProgramUniform4dEXT;
13422   glProgramUniform1dvEXT: TglProgramUniform1dvEXT;
13423   glProgramUniform2dvEXT: TglProgramUniform2dvEXT;
13424   glProgramUniform3dvEXT: TglProgramUniform3dvEXT;
13425   glProgramUniform4dvEXT: TglProgramUniform4dvEXT;
13426   glProgramUniformMatrix2dvEXT: TglProgramUniformMatrix2dvEXT;
13427   glProgramUniformMatrix3dvEXT: TglProgramUniformMatrix3dvEXT;
13428   glProgramUniformMatrix4dvEXT: TglProgramUniformMatrix4dvEXT;
13429   glProgramUniformMatrix2x3dvEXT: TglProgramUniformMatrix2x3dvEXT;
13430   glProgramUniformMatrix2x4dvEXT: TglProgramUniformMatrix2x4dvEXT;
13431   glProgramUniformMatrix3x2dvEXT: TglProgramUniformMatrix3x2dvEXT;
13432   glProgramUniformMatrix3x4dvEXT: TglProgramUniformMatrix3x4dvEXT;
13433   glProgramUniformMatrix4x2dvEXT: TglProgramUniformMatrix4x2dvEXT;
13434   glProgramUniformMatrix4x3dvEXT: TglProgramUniformMatrix4x3dvEXT;
13435
13436   // GL_EXT_separate_shader_objects
13437   glUseShaderProgramEXT: TglUseShaderProgramEXT;
13438   glActiveProgramEXT: TglActiveProgramEXT;
13439   glCreateShaderProgramEXT: TglCreateShaderProgramEXT;
13440
13441   // GL_EXT_shader_image_load_store
13442   glBindImageTextureEXT: TglBindImageTextureEXT;
13443   glMemoryBarrierEXT: TglMemoryBarrierEXT;
13444
13445   // GL_EXT_vertex_attrib_64bit
13446   glVertexAttribL1dEXT: TglVertexAttribL1dEXT;
13447   glVertexAttribL2dEXT: TglVertexAttribL2dEXT;
13448   glVertexAttribL3dEXT: TglVertexAttribL3dEXT;
13449   glVertexAttribL4dEXT: TglVertexAttribL4dEXT;
13450   glVertexAttribL1dvEXT: TglVertexAttribL1dvEXT;
13451   glVertexAttribL2dvEXT: TglVertexAttribL2dvEXT;
13452   glVertexAttribL3dvEXT: TglVertexAttribL3dvEXT;
13453   glVertexAttribL4dvEXT: TglVertexAttribL4dvEXT;
13454   glVertexAttribLPointerEXT: TglVertexAttribLPointerEXT;
13455   glGetVertexAttribLdvEXT: TglGetVertexAttribLdvEXT;
13456   glVertexArrayVertexAttribLOffsetEXT: TglVertexArrayVertexAttribLOffsetEXT;
13457   
13458   // GL_HP_image_transform
13459   glImageTransformParameteriHP: TglImageTransformParameteriHP;
13460   glImageTransformParameterfHP: TglImageTransformParameterfHP;
13461   glImageTransformParameterivHP: TglImageTransformParameterivHP;
13462   glImageTransformParameterfvHP: TglImageTransformParameterfvHP;
13463   glGetImageTransformParameterivHP: TglGetImageTransformParameterivHP;
13464   glGetImageTransformParameterfvHP: TglGetImageTransformParameterfvHP;
13465
13466   // GL_EXT_depth_bounds_test
13467   glDepthBoundsEXT: TglDepthBoundsEXT;
13468
13469   // GL_EXT_blend_equation_separate
13470   glBlendEquationSeparateEXT: TglBlendEquationSeparateEXT;
13471
13472   // GL_IBM_multimode_draw_arrays
13473   glMultiModeDrawArraysIBM: TglMultiModeDrawArraysIBM;
13474   glMultiModeDrawElementsIBM: TglMultiModeDrawElementsIBM;
13475
13476   // GL_IBM_vertex_array_lists
13477   glColorPointerListIBM: TglColorPointerListIBM;
13478   glSecondaryColorPointerListIBM: TglSecondaryColorPointerListIBM;
13479   glEdgeFlagPointerListIBM: TglEdgeFlagPointerListIBM;
13480   glFogCoordPointerListIBM: TglFogCoordPointerListIBM;
13481   glIndexPointerListIBM: TglIndexPointerListIBM;
13482   glNormalPointerListIBM: TglNormalPointerListIBM;
13483   glTexCoordPointerListIBM: TglTexCoordPointerListIBM;
13484   glVertexPointerListIBM: TglVertexPointerListIBM;
13485
13486   // GL_INGR_blend_func_separate
13487   glBlendFuncSeparateINGR: TglBlendFuncSeparateINGR;
13488
13489   // GL_INTEL_parallel_arrays
13490   glVertexPointervINTEL: TglVertexPointervINTEL;
13491   glNormalPointervINTEL: TglNormalPointervINTEL;
13492   glColorPointervINTEL: TglColorPointervINTEL;
13493   glTexCoordPointervINTEL: TglTexCoordPointervINTEL;
13494
13495   // GL_MESA_resize_buffers
13496   glResizeBuffersMESA: TglResizeBuffersMESA;
13497
13498   // GL_MESA_window_pos
13499   glWindowPos2dMESA: TglWindowPos2dMESA;
13500   glWindowPos2dvMESA: TglWindowPos2dvMESA;
13501   glWindowPos2fMESA: TglWindowPos2fMESA;
13502   glWindowPos2fvMESA: TglWindowPos2fvMESA;
13503   glWindowPos2iMESA: TglWindowPos2iMESA;
13504   glWindowPos2ivMESA: TglWindowPos2ivMESA;
13505   glWindowPos2sMESA: TglWindowPos2sMESA;
13506   glWindowPos2svMESA: TglWindowPos2svMESA;
13507   glWindowPos3dMESA: TglWindowPos3dMESA;
13508   glWindowPos3dvMESA: TglWindowPos3dvMESA;
13509   glWindowPos3fMESA: TglWindowPos3fMESA;
13510   glWindowPos3fvMESA: TglWindowPos3fvMESA;
13511   glWindowPos3iMESA: TglWindowPos3iMESA;
13512   glWindowPos3ivMESA: TglWindowPos3ivMESA;
13513   glWindowPos3sMESA: TglWindowPos3sMESA;
13514   glWindowPos3svMESA: TglWindowPos3svMESA;
13515   glWindowPos4dMESA: TglWindowPos4dMESA;
13516   glWindowPos4dvMESA: TglWindowPos4dvMESA;
13517   glWindowPos4fMESA: TglWindowPos4fMESA;
13518   glWindowPos4fvMESA: TglWindowPos4fvMESA;
13519   glWindowPos4iMESA: TglWindowPos4iMESA;
13520   glWindowPos4ivMESA: TglWindowPos4ivMESA;
13521   glWindowPos4sMESA: TglWindowPos4sMESA;
13522   glWindowPos4svMESA: TglWindowPos4svMESA;
13523
13524   // GL_NV_evaluators
13525   glMapControlPointsNV: TglMapControlPointsNV;
13526   glMapParameterivNV: TglMapParameterivNV;
13527   glMapParameterfvNV: TglMapParameterfvNV;
13528   glGetMapControlPointsNV: TglGetMapControlPointsNV;
13529   glGetMapParameterivNV: TglGetMapParameterivNV;
13530   glGetMapParameterfvNV: TglGetMapParameterfvNV;
13531   glGetMapAttribParameterivNV: TglGetMapAttribParameterivNV;
13532   glGetMapAttribParameterfvNV: TglGetMapAttribParameterfvNV;
13533   glEvalMapsNV: TglEvalMapsNV;
13534
13535   // GL_NV_fence
13536   glDeleteFencesNV: TglDeleteFencesNV;
13537   glGenFencesNV: TglGenFencesNV;
13538   glIsFenceNV: TglIsFenceNV;
13539   glTestFenceNV: TglTestFenceNV;
13540   glGetFenceivNV: TglGetFenceivNV;
13541   glFinishFenceNV: TglFinishFenceNV;
13542   glSetFenceNV: TglSetFenceNV;
13543
13544   // GL_NV_fragment_program
13545   glProgramNamedParameter4fNV: TglProgramNamedParameter4fNV;
13546   glProgramNamedParameter4dNV: TglProgramNamedParameter4dNV;
13547   glProgramNamedParameter4fvNV: TglProgramNamedParameter4fvNV;
13548   glProgramNamedParameter4dvNV: TglProgramNamedParameter4dvNV;
13549   glGetProgramNamedParameterfvNV: TglGetProgramNamedParameterfvNV;
13550   glGetProgramNamedParameterdvNV: TglGetProgramNamedParameterdvNV;
13551
13552   // GL_NV_half_float
13553   glVertex2hNV: TglVertex2hNV;
13554   glVertex2hvNV: TglVertex2hvNV;
13555   glVertex3hNV: TglVertex3hNV;
13556   glVertex3hvNV: TglVertex3hvNV;
13557   glVertex4hNV: TglVertex4hNV;
13558   glVertex4hvNV: TglVertex4hvNV;
13559   glNormal3hNV: TglNormal3hNV;
13560   glNormal3hvNV: TglNormal3hvNV;
13561   glColor3hNV: TglColor3hNV;
13562   glColor3hvNV: TglColor3hvNV;
13563   glColor4hNV: TglColor4hNV;
13564   glColor4hvNV: TglColor4hvNV;
13565   glTexCoord1hNV: TglTexCoord1hNV;
13566   glTexCoord1hvNV: TglTexCoord1hvNV;
13567   glTexCoord2hNV: TglTexCoord2hNV;
13568   glTexCoord2hvNV: TglTexCoord2hvNV;
13569   glTexCoord3hNV: TglTexCoord3hNV;
13570   glTexCoord3hvNV: TglTexCoord3hvNV;
13571   glTexCoord4hNV: TglTexCoord4hNV;
13572   glTexCoord4hvNV: TglTexCoord4hvNV;
13573   glMultiTexCoord1hNV: TglMultiTexCoord1hNV;
13574   glMultiTexCoord1hvNV: TglMultiTexCoord1hvNV;
13575   glMultiTexCoord2hNV: TglMultiTexCoord2hNV;
13576   glMultiTexCoord2hvNV: TglMultiTexCoord2hvNV;
13577   glMultiTexCoord3hNV: TglMultiTexCoord3hNV;
13578   glMultiTexCoord3hvNV: TglMultiTexCoord3hvNV;
13579   glMultiTexCoord4hNV: TglMultiTexCoord4hNV;
13580   glMultiTexCoord4hvNV: TglMultiTexCoord4hvNV;
13581   glFogCoordhNV: TglFogCoordhNV;
13582   glFogCoordhvNV: TglFogCoordhvNV;
13583   glSecondaryColor3hNV: TglSecondaryColor3hNV;
13584   glSecondaryColor3hvNV: TglSecondaryColor3hvNV;
13585   glVertexWeighthNV: TglVertexWeighthNV;
13586   glVertexWeighthvNV: TglVertexWeighthvNV;
13587   glVertexAttrib1hNV: TglVertexAttrib1hNV;
13588   glVertexAttrib1hvNV: TglVertexAttrib1hvNV;
13589   glVertexAttrib2hNV: TglVertexAttrib2hNV;
13590   glVertexAttrib2hvNV: TglVertexAttrib2hvNV;
13591   glVertexAttrib3hNV: TglVertexAttrib3hNV;
13592   glVertexAttrib3hvNV: TglVertexAttrib3hvNV;
13593   glVertexAttrib4hNV: TglVertexAttrib4hNV;
13594   glVertexAttrib4hvNV: TglVertexAttrib4hvNV;
13595   glVertexAttribs1hvNV: TglVertexAttribs1hvNV;
13596   glVertexAttribs2hvNV: TglVertexAttribs2hvNV;
13597   glVertexAttribs3hvNV: TglVertexAttribs3hvNV;
13598   glVertexAttribs4hvNV: TglVertexAttribs4hvNV;
13599
13600   // GL_NV_occlusion_query
13601   glGenOcclusionQueriesNV: TglGenOcclusionQueriesNV;
13602   glDeleteOcclusionQueriesNV: TglDeleteOcclusionQueriesNV;
13603   glIsOcclusionQueryNV: TglIsOcclusionQueryNV;
13604   glBeginOcclusionQueryNV: TglBeginOcclusionQueryNV;
13605   glEndOcclusionQueryNV: TglEndOcclusionQueryNV;
13606   glGetOcclusionQueryivNV: TglGetOcclusionQueryivNV;
13607   glGetOcclusionQueryuivNV: TglGetOcclusionQueryuivNV;
13608
13609   // GL_NV_pixel_data_range
13610   glPixelDataRangeNV: TglPixelDataRangeNV;
13611   glFlushPixelDataRangeNV: TglFlushPixelDataRangeNV;
13612
13613   // GL_NV_point_sprite
13614   glPointParameteriNV: TglPointParameteriNV;
13615   glPointParameterivNV: TglPointParameterivNV;
13616
13617   // GL_NV_primitive_restart
13618   glPrimitiveRestartNV: TglPrimitiveRestartNV;
13619   glPrimitiveRestartIndexNV: TglPrimitiveRestartIndexNV;
13620
13621   // GL_NV_register_combiners
13622   glCombinerParameterfvNV: TglCombinerParameterfvNV;
13623   glCombinerParameterfNV: TglCombinerParameterfNV;
13624   glCombinerParameterivNV: TglCombinerParameterivNV;
13625   glCombinerParameteriNV: TglCombinerParameteriNV;
13626   glCombinerInputNV: TglCombinerInputNV;
13627   glCombinerOutputNV: TglCombinerOutputNV;
13628   glFinalCombinerInputNV: TglFinalCombinerInputNV;
13629   glGetCombinerInputParameterfvNV: TglGetCombinerInputParameterfvNV;
13630   glGetCombinerInputParameterivNV: TglGetCombinerInputParameterivNV;
13631   glGetCombinerOutputParameterfvNV: TglGetCombinerOutputParameterfvNV;
13632   glGetCombinerOutputParameterivNV: TglGetCombinerOutputParameterivNV;
13633   glGetFinalCombinerInputParameterfvNV: TglGetFinalCombinerInputParameterfvNV;
13634   glGetFinalCombinerInputParameterivNV: TglGetFinalCombinerInputParameterivNV;
13635
13636   // GL_NV_register_combiners2
13637   glCombinerStageParameterfvNV: TglCombinerStageParameterfvNV;
13638   glGetCombinerStageParameterfvNV: TglGetCombinerStageParameterfvNV;
13639
13640   // GL_NV_vertex_array_range
13641   glFlushVertexArrayRangeNV: TglFlushVertexArrayRangeNV;
13642   glVertexArrayRangeNV: TglVertexArrayRangeNV;
13643
13644   // GL_NV_vertex_program
13645   glAreProgramsResidentNV: TglAreProgramsResidentNV;
13646   glBindProgramNV: TglBindProgramNV;
13647   glDeleteProgramsNV: TglDeleteProgramsNV;
13648   glExecuteProgramNV: TglExecuteProgramNV;
13649   glGenProgramsNV: TglGenProgramsNV;
13650   glGetProgramParameterdvNV: TglGetProgramParameterdvNV;
13651   glGetProgramParameterfvNV: TglGetProgramParameterfvNV;
13652   glGetProgramivNV: TglGetProgramivNV;
13653   glGetProgramStringNV: TglGetProgramStringNV;
13654   glGetTrackMatrixivNV: TglGetTrackMatrixivNV;
13655   glGetVertexAttribdvNV: TglGetVertexAttribdvNV;
13656   glGetVertexAttribfvNV: TglGetVertexAttribfvNV;
13657   glGetVertexAttribivNV: TglGetVertexAttribivNV;
13658   glGetVertexAttribPointervNV: TglGetVertexAttribPointervNV;
13659   glIsProgramNV: TglIsProgramNV;
13660   glLoadProgramNV: TglLoadProgramNV;
13661   glProgramParameter4dNV: TglProgramParameter4dNV;
13662   glProgramParameter4dvNV: TglProgramParameter4dvNV;
13663   glProgramParameter4fNV: TglProgramParameter4fNV;
13664   glProgramParameter4fvNV: TglProgramParameter4fvNV;
13665   glProgramParameters4dvNV: TglProgramParameters4dvNV;
13666   glProgramParameters4fvNV: TglProgramParameters4fvNV;
13667   glRequestResidentProgramsNV: TglRequestResidentProgramsNV;
13668   glTrackMatrixNV: TglTrackMatrixNV;
13669   glVertexAttribPointerNV: TglVertexAttribPointerNV;
13670   glVertexAttrib1dNV: TglVertexAttrib1dNV;
13671   glVertexAttrib1dvNV: TglVertexAttrib1dvNV;
13672   glVertexAttrib1fNV: TglVertexAttrib1fNV;
13673   glVertexAttrib1fvNV: TglVertexAttrib1fvNV;
13674   glVertexAttrib1sNV: TglVertexAttrib1sNV;
13675   glVertexAttrib1svNV: TglVertexAttrib1svNV;
13676   glVertexAttrib2dNV: TglVertexAttrib2dNV;
13677   glVertexAttrib2dvNV: TglVertexAttrib2dvNV;
13678   glVertexAttrib2fNV: TglVertexAttrib2fNV;
13679   glVertexAttrib2fvNV: TglVertexAttrib2fvNV;
13680   glVertexAttrib2sNV: TglVertexAttrib2sNV;
13681   glVertexAttrib2svNV: TglVertexAttrib2svNV;
13682   glVertexAttrib3dNV: TglVertexAttrib3dNV;
13683   glVertexAttrib3dvNV: TglVertexAttrib3dvNV;
13684   glVertexAttrib3fNV: TglVertexAttrib3fNV;
13685   glVertexAttrib3fvNV: TglVertexAttrib3fvNV;
13686   glVertexAttrib3sNV: TglVertexAttrib3sNV;
13687   glVertexAttrib3svNV: TglVertexAttrib3svNV;
13688   glVertexAttrib4dNV: TglVertexAttrib4dNV;
13689   glVertexAttrib4dvNV: TglVertexAttrib4dvNV;
13690   glVertexAttrib4fNV: TglVertexAttrib4fNV;
13691   glVertexAttrib4fvNV: TglVertexAttrib4fvNV;
13692   glVertexAttrib4sNV: TglVertexAttrib4sNV;
13693   glVertexAttrib4svNV: TglVertexAttrib4svNV;
13694   glVertexAttrib4ubNV: TglVertexAttrib4ubNV;
13695   glVertexAttrib4ubvNV: TglVertexAttrib4ubvNV;
13696   glVertexAttribs1dvNV: TglVertexAttribs1dvNV;
13697   glVertexAttribs1fvNV: TglVertexAttribs1fvNV;
13698   glVertexAttribs1svNV: TglVertexAttribs1svNV;
13699   glVertexAttribs2dvNV: TglVertexAttribs2dvNV;
13700   glVertexAttribs2fvNV: TglVertexAttribs2fvNV;
13701   glVertexAttribs2svNV: TglVertexAttribs2svNV;
13702   glVertexAttribs3dvNV: TglVertexAttribs3dvNV;
13703   glVertexAttribs3fvNV: TglVertexAttribs3fvNV;
13704   glVertexAttribs3svNV: TglVertexAttribs3svNV;
13705   glVertexAttribs4dvNV: TglVertexAttribs4dvNV;
13706   glVertexAttribs4fvNV: TglVertexAttribs4fvNV;
13707   glVertexAttribs4svNV: TglVertexAttribs4svNV;
13708   glVertexAttribs4ubvNV: TglVertexAttribs4ubvNV;
13709
13710   // GL_NV_depth_buffer_float
13711   glDepthRangedNV: TglDepthRangedNV;
13712   glClearDepthdNV: TglClearDepthdNV;
13713   glDepthBoundsdNV: TglDepthBoundsdNV;
13714
13715   // GL_NV_framebuffer_multisample_coverage
13716   glRenderbufferStorageMultsampleCoverageNV: TglRenderbufferStorageMultsampleCoverageNV;
13717
13718   // GL_NV_geometry_program4
13719   glProgramVertexLimitNV: TglProgramVertexLimitNV;
13720
13721   // GL_NV_gpu_program4
13722   glProgramLocalParameterI4iNV: TglProgramLocalParameterI4iNV;
13723   glProgramLocalParameterI4ivNV: TglProgramLocalParameterI4ivNV;
13724   glProgramLocalParametersI4ivNV: TglProgramLocalParametersI4ivNV;
13725   glProgramLocalParameterI4uiNV: TglProgramLocalParameterI4uiNV;
13726   glProgramLocalParameterI4uivNV: TglProgramLocalParameterI4uivNV;
13727   glProgramLocalParametersI4uivNV: TglProgramLocalParametersI4uivNV;
13728   glProgramEnvParameterI4iNV: TglProgramEnvParameterI4iNV;
13729   glProgramEnvParameterI4ivNV: TglProgramEnvParameterI4ivNV;
13730   glProgramEnvParametersI4ivNV: TglProgramEnvParametersI4ivNV;
13731   glProgramEnvParameterI4uiNV: TglProgramEnvParameterI4uiNV;
13732   glProgramEnvParameterI4uivNV: TglProgramEnvParameterI4uivNV;
13733   glProgramEnvParametersI4uivNV: TglProgramEnvParametersI4uivNV;
13734   glGetProgramLocalParameterIivNV: TglGetProgramLocalParameterIivNV;
13735   glGetProgramLocalParameterIuivNV: TglGetProgramLocalParameterIuivNV;
13736   glGetProgramEnvParameterIivNV: TglGetProgramEnvParameterIivNV;
13737   glGetProgramEnvParameterIuivNV: TglGetProgramEnvParameterIuivNV;
13738
13739   // GL_NV_parameter_buffer_object
13740   glProgramBufferParametersfvNV: TglProgramBufferParametersfvNV;
13741   glProgramBufferParametersIivNV: TglProgramBufferParametersIivNV;
13742   glProgramBufferParametersIuivNV: TglProgramBufferParametersIuivNV;
13743
13744   // GL_NV_transform_feedback
13745   glBeginTransformFeedbackNV: TglBeginTransformFeedbackNV;
13746   glEndTransformFeedbackNV: TglEndTransformFeedbackNV;
13747   glTransformFeedbackAttribsNV: TglTransformFeedbackAttribsNV;
13748   glBindBufferRangeNV: TglBindBufferRangeNV;
13749   glBindBufferOffsetNV: TglBindBufferOffsetNV;
13750   glBindBufferBaseNV: TglBindBufferBaseNV;
13751   glTransformFeedbackVaryingsNV: TglTransformFeedbackVaryingsNV;
13752   glActiveVaryingNV: TglActiveVaryingNV;
13753   glGetVaryingLocationNV: TglGetVaryingLocationNV;
13754   glGetActiveVaryingNV: TglGetActiveVaryingNV;
13755   glGetTransformFeedbackVaryingNV: TglGetTransformFeedbackVaryingNV;
13756   glTransformFeedbackStreamAttribsNV: TglTransformFeedbackStreamAttribsNV;
13757
13758   // GL_NV_conditional_render
13759   glBeginConditionalRenderNV: TglBeginConditionalRenderNV;
13760   glEndConditionalRenderNV: TglEndConditionalRenderNV;
13761
13762   // GL_NV_present_video
13763   glPresentFrameKeyedNV: TglPresentFrameKeyedNV;
13764   glPresentFrameDualFillNV: TglPresentFrameDualFillNV;
13765   glGetVideoivNV: TglGetVideoivNV;
13766   glGetVideouivNV: TglGetVideouivNV;
13767   glGetVideoi64vNV: TglGetVideoi64vNV;
13768   glGetVideoui64vNV: TglGetVideoui64vNV;
13769 //  glVideoParameterivNV: TglVideoParameterivNV;
13770
13771   // GL_NV_explicit_multisample
13772   glGetMultisamplefvNV: TglGetMultisamplefvNV;
13773   glSampleMaskIndexedNV: TglSampleMaskIndexedNV;
13774   glTexRenderbufferNV: TglTexRenderbufferNV;
13775
13776   // GL_NV_transform_feedback2
13777   glBindTransformFeedbackNV: TglBindTransformFeedbackNV;
13778   glDeleteTransformFeedbacksNV: TglDeleteTransformFeedbacksNV;
13779   glGenTransformFeedbacksNV: TglGenTransformFeedbacksNV;
13780   glIsTransformFeedbackNV: TglIsTransformFeedbackNV;
13781   glPauseTransformFeedbackNV: TglPauseTransformFeedbackNV;
13782   glResumeTransformFeedbackNV: TglResumeTransformFeedbackNV;
13783   glDrawTransformFeedbackNV: TglDrawTransformFeedbackNV;
13784
13785   // GL_NV_video_capture
13786   glBeginVideoCaptureNV: TglBeginVideoCaptureNV;
13787   glBindVideoCaptureStreamBufferNV: TglBindVideoCaptureStreamBufferNV;
13788   glBindVideoCaptureStreamTextureNV: TglBindVideoCaptureStreamTextureNV;
13789   glEndVideoCaptureNV: TglEndVideoCaptureNV;
13790   glGetVideoCaptureivNV: TglGetVideoCaptureivNV;
13791   glGetVideoCaptureStreamivNV: TglGetVideoCaptureStreamivNV;
13792   glGetVideoCaptureStreamfvNV: TglGetVideoCaptureStreamfvNV;
13793   glGetVideoCaptureStreamdvNV: TglGetVideoCaptureStreamdvNV;
13794   glVideoCaptureNV: TglVideoCaptureNV;
13795   glVideoCaptureStreamParameterivNV: TglVideoCaptureStreamParameterivNV;
13796   glVideoCaptureStreamParameterfvNV: TglVideoCaptureStreamParameterfvNV;
13797   glVideoCaptureStreamParameterdvNV: TglVideoCaptureStreamParameterdvNV;
13798
13799   // GL_NV_copy_image
13800   glCopyImageSubDataNV: TglCopyImageSubDataNV;
13801
13802   // GL_NV_shader_buffer_load
13803   glMakeBufferResidentNV: TglMakeBufferResidentNV;
13804   glMakeBufferNonResidentNV: TglMakeBufferNonResidentNV;
13805   glIsBufferResidentNV: TglIsBufferResidentNV;
13806   glMakeNamedBufferResidentNV: TglMakeNamedBufferResidentNV;
13807   glMakeNamedBufferNonResidentNV: TglMakeNamedBufferNonResidentNV;
13808   glIsNamedBufferResidentNV: TglIsNamedBufferResidentNV;
13809   glGetBufferParameterui64vNV: TglGetBufferParameterui64vNV;
13810   glGetNamedBufferParameterui64vNV: TglGetNamedBufferParameterui64vNV;
13811   glGetIntegerui64vNV: TglGetIntegerui64vNV;
13812   glUniformui64NV: TglUniformui64NV;
13813   glUniformui64vNV: TglUniformui64vNV;
13814   glGetUniformui64vNV: TglGetUniformui64vNV;
13815   glProgramUniformui64NV: TglProgramUniformui64NV;
13816   glProgramUniformui64vNV: TglProgramUniformui64vNV;
13817
13818   // GL_NV_vertex_buffer_unified_memory
13819   glBufferAddressRangeNV: TglBufferAddressRangeNV;
13820   glVertexFormatNV: TglVertexFormatNV;
13821   glNormalFormatNV: TglNormalFormatNV;
13822   glColorFormatNV: TglColorFormatNV;
13823   glIndexFormatNV: TglIndexFormatNV;
13824   glTexCoordFormatNV: TglTexCoordFormatNV;
13825   glEdgeFlagFormatNV: TglEdgeFlagFormatNV;
13826   glSecondaryColorFormatNV: TglSecondaryColorFormatNV;
13827   glFogCoordFormatNV: TglFogCoordFormatNV;
13828   glVertexAttribFormatNV: TglVertexAttribFormatNV;
13829   glVertexAttribIFormatNV: TglVertexAttribIFormatNV;
13830   glGetIntegerui64i_vNV: TglGetIntegerui64i_vNV;
13831
13832   // GL_NV_gpu_program5
13833   glProgramSubroutineParametersuivNV: TglProgramSubroutineParametersuivNV;
13834   glGetProgramSubroutineParameteruivNV: TglGetProgramSubroutineParameteruivNV;
13835
13836   // GL_NV_gpu_shader5
13837   glUniform1i64NV: TglUniform1i64NV;
13838   glUniform2i64NV: TglUniform2i64NV;
13839   glUniform3i64NV: TglUniform3i64NV;
13840   glUniform4i64NV: TglUniform4i64NV;
13841   glUniform1i64vNV: TglUniform1i64vNV;
13842   glUniform2i64vNV: TglUniform2i64vNV;
13843   glUniform3i64vNV: TglUniform3i64vNV;
13844   glUniform4i64vNV: TglUniform4i64vNV;
13845   glUniform1ui64NV: TglUniform1ui64NV;
13846   glUniform2ui64NV: TglUniform2ui64NV;
13847   glUniform3ui64NV: TglUniform3ui64NV;
13848   glUniform4ui64NV: TglUniform4ui64NV;
13849   glUniform1ui64vNV: TglUniform1ui64vNV;
13850   glUniform2ui64vNV: TglUniform2ui64vNV;
13851   glUniform3ui64vNV: TglUniform3ui64vNV;
13852   glUniform4ui64vNV: TglUniform4ui64vNV;
13853   glGetUniformi64vNV: TglGetUniformi64vNV;
13854   glProgramUniform1i64NV: TglProgramUniform1i64NV;
13855   glProgramUniform2i64NV: TglProgramUniform2i64NV;
13856   glProgramUniform3i64NV: TglProgramUniform3i64NV;
13857   glProgramUniform4i64NV: TglProgramUniform4i64NV;
13858   glProgramUniform1i64vNV: TglProgramUniform1i64vNV;
13859   glProgramUniform2i64vNV: TglProgramUniform2i64vNV;
13860   glProgramUniform3i64vNV: TglProgramUniform3i64vNV;
13861   glProgramUniform4i64vNV: TglProgramUniform4i64vNV;
13862   glProgramUniform1ui64NV: TglProgramUniform1ui64NV;
13863   glProgramUniform2ui64NV: TglProgramUniform2ui64NV;
13864   glProgramUniform3ui64NV: TglProgramUniform3ui64NV;
13865   glProgramUniform4ui64NV: TglProgramUniform4ui64NV;
13866   glProgramUniform1ui64vNV: TglProgramUniform1ui64vNV;
13867   glProgramUniform2ui64vNV: TglProgramUniform2ui64vNV;
13868   glProgramUniform3ui64vNV: TglProgramUniform3ui64vNV;
13869   glProgramUniform4ui64vNV: TglProgramUniform4ui64vNV;
13870
13871   // GL_NV_vertex_attrib_integer_64bit
13872   glVertexAttribL1i64NV: TglVertexAttribL1i64NV;
13873   glVertexAttribL2i64NV: TglVertexAttribL2i64NV;
13874   glVertexAttribL3i64NV: TglVertexAttribL3i64NV;
13875   glVertexAttribL4i64NV: TglVertexAttribL4i64NV;
13876   glVertexAttribL1i64vNV: TglVertexAttribL1i64vNV;
13877   glVertexAttribL2i64vNV: TglVertexAttribL2i64vNV;
13878   glVertexAttribL3i64vNV: TglVertexAttribL3i64vNV;
13879   glVertexAttribL4i64vNV: TglVertexAttribL4i64vNV;
13880   glVertexAttribL1ui64NV: TglVertexAttribL1ui64NV;
13881   glVertexAttribL2ui64NV: TglVertexAttribL2ui64NV;
13882   glVertexAttribL3ui64NV: TglVertexAttribL3ui64NV;
13883   glVertexAttribL4ui64NV: TglVertexAttribL4ui64NV;
13884   glVertexAttribL1ui64vNV: TglVertexAttribL1ui64vNV;
13885   glVertexAttribL2ui64vNV: TglVertexAttribL2ui64vNV;
13886   glVertexAttribL3ui64vNV: TglVertexAttribL3ui64vNV;
13887   glVertexAttribL4ui64vNV: TglVertexAttribL4ui64vNV;
13888   glGetVertexAttribLi64vNV: TglGetVertexAttribLi64vNV;
13889   glGetVertexAttribLui64vNV: TglGetVertexAttribLui64vNV;
13890   glVertexAttribLFormatNV: TglVertexAttribLFormatNV;
13891
13892   // GL_NV_vdpau_interop
13893   glVDPAUInitNV: TglVDPAUInitNV;
13894   glVDPAUFiniNV: TglVDPAUFiniNV;
13895   glVDPAURegisterVideoSurfaceNV: TglVDPAURegisterVideoSurfaceNV;
13896   glVDPAURegisterOutputSurfaceNV: TglVDPAURegisterOutputSurfaceNV;
13897   glVDPAUIsSurfaceNV: TglVDPAUIsSurfaceNV;
13898   glVDPAUUnregisterSurfaceNV: TglVDPAUUnregisterSurfaceNV;
13899   glVDPAUGetSurfaceivNV: TglVDPAUGetSurfaceivNV;
13900   glVDPAUSurfaceAccessNV: TglVDPAUSurfaceAccessNV;
13901   glVDPAUMapSurfacesNV: TglVDPAUMapSurfacesNV;
13902   glVDPAUUnmapSurfacesNV: TglVDPAUUnmapSurfacesNV;
13903
13904   // GL_NV_texture_barrier
13905   glTextureBarrierNV: TglTextureBarrierNV;
13906
13907   // (4.3) GL_NV_path_rendering
13908   glGenPathsNV : TglGenPathsNV;
13909   glDeletePathsNV : TglDeletePathsNV;
13910   glIsPathNV : TglIsPathNV;
13911   glPathCommandsNV : TglPathCommandsNV;
13912   glPathCoordsNV : TglPathCoordsNV;
13913   glPathSubCommandsNV : TglPathSubCommandsNV;
13914   glPathSubCoordsNV : TglPathSubCoordsNV;
13915   glPathStringNV : TglPathStringNV;
13916   glPathGlyphsNV : TglPathGlyphsNV;
13917   glPathGlyphRangeNV : TglPathGlyphRangeNV;
13918   glWeightPathsNV : TglWeightPathsNV;
13919   glCopyPathNV : TglCopyPathNV;
13920   glInterpolatePathsNV : TglInterpolatePathsNV;
13921   glTransformPathNV : TglTransformPathNV;
13922   glPathParameterivNV : TglPathParameterivNV;
13923   glPathParameteriNV : TglPathParameteriNV;
13924   glPathParameterfvNV : TglPathParameterfvNV;
13925   glPathParameterfNV : TglPathParameterfNV;
13926   glPathDashArrayNV : TglPathDashArrayNV;
13927   glPathStencilFuncNV : TglPathStencilFuncNV;
13928   glPathStencilDepthOffsetNV : TglPathStencilDepthOffsetNV;
13929   glStencilFillPathNV : TglStencilFillPathNV;
13930   glStencilStrokePathNV : TglStencilStrokePathNV;
13931   glStencilFillPathInstancedNV : TglStencilFillPathInstancedNV;
13932   glStencilStrokePathInstancedNV : TglStencilStrokePathInstancedNV;
13933   glPathCoverDepthFuncNV : TglPathCoverDepthFuncNV;
13934   glPathColorGenNV : TglPathColorGenNV;
13935   glPathTexGenNV : TglPathTexGenNV;
13936   glPathFogGenNV : TglPathFogGenNV;
13937   glCoverFillPathNV : TglCoverFillPathNV;
13938   glCoverStrokePathNV : TglCoverStrokePathNV;
13939   glCoverFillPathInstancedNV : TglCoverFillPathInstancedNV;
13940   glCoverStrokePathInstancedNV : TglCoverStrokePathInstancedNV;
13941   glGetPathParameterivNV : TglGetPathParameterivNV;
13942   glGetPathParameterfvNV : TglGetPathParameterfvNV;
13943   glGetPathCommandsNV : TglGetPathCommandsNV;
13944   glGetPathCoordsNV : TglGetPathCoordsNV;
13945   glGetPathDashArrayNV : TglGetPathDashArrayNV;
13946   glGetPathMetricsNV : TglGetPathMetricsNV;
13947   glGetPathMetricRangeNV : TglGetPathMetricRangeNV;
13948   glGetPathSpacingNV : TglGetPathSpacingNV;
13949   glGetPathColorGenivNV : TglGetPathColorGenivNV;
13950   glGetPathColorGenfvNV : TglGetPathColorGenfvNV;
13951   glGetPathTexGenivNV : TglGetPathTexGenivNV;
13952   glGetPathTexGenfvNV : TglGetPathTexGenfvNV;
13953   glIsPointInFillPathNV : TglIsPointInFillPathNV;
13954   glIsPointInStrokePathNV : TglIsPointInStrokePathNV;
13955   glGetPathLengthNV : TglGetPathLengthNV;
13956   glPointAlongPathNV : TglPointAlongPathNV;
13957
13958   // GL_AMD_pinned_memory
13959
13960   // GL_AMD_stencil_operation_extended
13961   glStencilOpValueAMD : TglStencilOpValueAMD;
13962
13963   // GL_AMD_vertex_shader_viewport_index
13964
13965   // GL_AMD_vertex_shader_layer
13966
13967   // GL_NV_bindless_texture
13968   glGetTextureHandleNV : TglGetTextureHandleNV;
13969   glGetTextureSamplerHandleNV : TglGetTextureSamplerHandleNV;
13970   glMakeTextureHandleResidentNV : TglMakeTextureHandleResidentNV;
13971   glMakeTextureHandleNonResidentNV : TglMakeTextureHandleNonResidentNV;
13972   glGetImageHandleNV : TglGetImageHandleNV;
13973   glMakeImageHandleResidentNV : TglMakeImageHandleResidentNV;
13974   glMakeImageHandleNonResidentNV : TglMakeImageHandleNonResidentNV;
13975   glUniformHandleui64NV : TglUniformHandleui64NV;
13976   glUniformHandleui64vNV : TglUniformHandleui64vNV;
13977   glProgramUniformHandleui64NV : TglProgramUniformHandleui64NV;
13978   glProgramUniformHandleui64vNV : TglProgramUniformHandleui64vNV;
13979   glIsTextureHandleResidentNV : TglIsTextureHandleResidentNV;
13980   glIsImageHandleResidentNV : TglIsImageHandleResidentNV;
13981
13982   //
13983
13984   // GL_PGI_misc_hints
13985   glHintPGI: TglHintPGI;
13986
13987   // GL_SGIS_detail_texture
13988   glDetailTexFuncSGIS: TglDetailTexFuncSGIS;
13989   glGetDetailTexFuncSGIS: TglGetDetailTexFuncSGIS;
13990
13991   // GL_SGIS_fog_function
13992   glFogFuncSGIS: TglFogFuncSGIS;
13993   glGetFogFuncSGIS: TglGetFogFuncSGIS;
13994
13995   // GL_SGIS_multisample
13996   glSampleMaskSGIS: TglSampleMaskSGIS;
13997   glSamplePatternSGIS: TglSamplePatternSGIS;
13998
13999   // GL_SGIS_pixel_texture
14000   glPixelTexGenParameteriSGIS: TglPixelTexGenParameteriSGIS;
14001   glPixelTexGenParameterivSGIS: TglPixelTexGenParameterivSGIS;
14002   glPixelTexGenParameterfSGIS: TglPixelTexGenParameterfSGIS;
14003   glPixelTexGenParameterfvSGIS: TglPixelTexGenParameterfvSGIS;
14004   glGetPixelTexGenParameterivSGIS: TglGetPixelTexGenParameterivSGIS;
14005   glGetPixelTexGenParameterfvSGIS: TglGetPixelTexGenParameterfvSGIS;
14006
14007   // GL_SGIS_point_parameters
14008   glPointParameterfSGIS: TglPointParameterfSGIS;
14009   glPointParameterfvSGIS: TglPointParameterfvSGIS;
14010
14011   // GL_SGIS_sharpen_texture
14012   glSharpenTexFuncSGIS: TglSharpenTexFuncSGIS;
14013   glGetSharpenTexFuncSGIS: TglGetSharpenTexFuncSGIS;
14014
14015   // GL_SGIS_texture4D
14016   glTexImage4DSGIS: TglTexImage4DSGIS;
14017   glTexSubImage4DSGIS: TglTexSubImage4DSGIS;
14018
14019   // GL_SGIS_texture_color_mask
14020   glTextureColorMaskSGIS: TglTextureColorMaskSGIS;
14021
14022   // GL_SGIS_texture_filter4
14023   glGetTexFilterFuncSGIS: TglGetTexFilterFuncSGIS;
14024   glTexFilterFuncSGIS: TglTexFilterFuncSGIS;
14025
14026   // GL_SGIX_async
14027   glAsyncMarkerSGIX: TglAsyncMarkerSGIX;
14028   glFinishAsyncSGIX: TglFinishAsyncSGIX;
14029   glPollAsyncSGIX: TglPollAsyncSGIX;
14030   glGenAsyncMarkersSGIX: TglGenAsyncMarkersSGIX;
14031   glDeleteAsyncMarkersSGIX: TglDeleteAsyncMarkersSGIX;
14032   glIsAsyncMarkerSGIX: TglIsAsyncMarkerSGIX;
14033
14034   // GL_SGIX_flush_raster
14035   glFlushRasterSGIX: TglFlushRasterSGIX;
14036
14037   // GL_SGIX_fragment_lighting
14038   glFragmentColorMaterialSGIX: TglFragmentColorMaterialSGIX;
14039   glFragmentLightfSGIX: TglFragmentLightfSGIX;
14040   glFragmentLightfvSGIX: TglFragmentLightfvSGIX;
14041   glFragmentLightiSGIX: TglFragmentLightiSGIX;
14042   glFragmentLightivSGIX: TglFragmentLightivSGIX;
14043   glFragmentLightModelfSGIX: TglFragmentLightModelfSGIX;
14044   glFragmentLightModelfvSGIX: TglFragmentLightModelfvSGIX;
14045   glFragmentLightModeliSGIX: TglFragmentLightModeliSGIX;
14046   glFragmentLightModelivSGIX: TglFragmentLightModelivSGIX;
14047   glFragmentMaterialfSGIX: TglFragmentMaterialfSGIX;
14048   glFragmentMaterialfvSGIX: TglFragmentMaterialfvSGIX;
14049   glFragmentMaterialiSGIX: TglFragmentMaterialiSGIX;
14050   glFragmentMaterialivSGIX: TglFragmentMaterialivSGIX;
14051   glGetFragmentLightfvSGIX: TglGetFragmentLightfvSGIX;
14052   glGetFragmentLightivSGIX: TglGetFragmentLightivSGIX;
14053   glGetFragmentMaterialfvSGIX: TglGetFragmentMaterialfvSGIX;
14054   glGetFragmentMaterialivSGIX: TglGetFragmentMaterialivSGIX;
14055   glLightEnviSGIX: TglLightEnviSGIX;
14056
14057   // GL_SGIX_framezoom
14058   glFrameZoomSGIX: TglFrameZoomSGIX;
14059
14060   // GL_SGIX_igloo_interface
14061   glIglooInterfaceSGIX: TglIglooInterfaceSGIX;
14062
14063   // GL_SGIX_instruments
14064   glGetInstrumentsSGIX: TglGetInstrumentsSGIX;
14065   glInstrumentsBufferSGIX: TglInstrumentsBufferSGIX;
14066   glPollInstrumentsSGIX: TglPollInstrumentsSGIX;
14067   glReadInstrumentsSGIX: TglReadInstrumentsSGIX;
14068   glStartInstrumentsSGIX: TglStartInstrumentsSGIX;
14069   glStopInstrumentsSGIX: TglStopInstrumentsSGIX;
14070
14071   // GL_SGIX_list_priority
14072   glGetListParameterfvSGIX: TglGetListParameterfvSGIX;
14073   glGetListParameterivSGIX: TglGetListParameterivSGIX;
14074   glListParameterfSGIX: TglListParameterfSGIX;
14075   glListParameterfvSGIX: TglListParameterfvSGIX;
14076   glListParameteriSGIX: TglListParameteriSGIX;
14077   glListParameterivSGIX: TglListParameterivSGIX;
14078
14079   // GL_SGIX_pixel_texture
14080   glPixelTexGenSGIX: TglPixelTexGenSGIX;
14081
14082   // GL_SGIX_polynomial_ffd
14083   glDeformationMap3dSGIX: TglDeformationMap3dSGIX;
14084   glDeformationMap3fSGIX: TglDeformationMap3fSGIX;
14085   glDeformSGIX: TglDeformSGIX;
14086   glLoadIdentityDeformationMapSGIX: TglLoadIdentityDeformationMapSGIX;
14087
14088   // GL_SGIX_reference_plane
14089   glReferencePlaneSGIX: TglReferencePlaneSGIX;
14090
14091   // GL_SGIX_sprite
14092   glSpriteParameterfSGIX: TglSpriteParameterfSGIX;
14093   glSpriteParameterfvSGIX: TglSpriteParameterfvSGIX;
14094   glSpriteParameteriSGIX: TglSpriteParameteriSGIX;
14095   glSpriteParameterivSGIX: TglSpriteParameterivSGIX;
14096
14097   // GL_SGIX_tag_sample_buffer
14098   glTagSampleBufferSGIX: TglTagSampleBufferSGIX;
14099
14100   // GL_SGI_color_table
14101   glColorTableSGI: TglColorTableSGI;
14102   glColorTableParameterfvSGI: TglColorTableParameterfvSGI;
14103   glColorTableParameterivSGI: TglColorTableParameterivSGI;
14104   glCopyColorTableSGI: TglCopyColorTableSGI;
14105   glGetColorTableSGI: TglGetColorTableSGI;
14106   glGetColorTableParameterfvSGI: TglGetColorTableParameterfvSGI;
14107   glGetColorTableParameterivSGI: TglGetColorTableParameterivSGI;
14108
14109   // GL_SUNX_constant_data
14110   glFinishTextureSUNX: TglFinishTextureSUNX;
14111
14112   // GL_SUN_global_alpha
14113   glGlobalAlphaFactorbSUN: TglGlobalAlphaFactorbSUN;
14114   glGlobalAlphaFactorsSUN: TglGlobalAlphaFactorsSUN;
14115   glGlobalAlphaFactoriSUN: TglGlobalAlphaFactoriSUN;
14116   glGlobalAlphaFactorfSUN: TglGlobalAlphaFactorfSUN;
14117   glGlobalAlphaFactordSUN: TglGlobalAlphaFactordSUN;
14118   glGlobalAlphaFactorubSUN: TglGlobalAlphaFactorubSUN;
14119   glGlobalAlphaFactorusSUN: TglGlobalAlphaFactorusSUN;
14120   glGlobalAlphaFactoruiSUN: TglGlobalAlphaFactoruiSUN;
14121
14122   // GL_SUN_mesh_array
14123   glDrawMeshArraysSUN: TglDrawMeshArraysSUN;
14124
14125   // GL_SUN_triangle_list
14126   glReplacementCodeuiSUN: TglReplacementCodeuiSUN;
14127   glReplacementCodeusSUN: TglReplacementCodeusSUN;
14128   glReplacementCodeubSUN: TglReplacementCodeubSUN;
14129   glReplacementCodeuivSUN: TglReplacementCodeuivSUN;
14130   glReplacementCodeusvSUN: TglReplacementCodeusvSUN;
14131   glReplacementCodeubvSUN: TglReplacementCodeubvSUN;
14132   glReplacementCodePointerSUN: TglReplacementCodePointerSUN;
14133
14134   // GL_SUN_vertex
14135   glColor4ubVertex2fSUN: TglColor4ubVertex2fSUN;
14136   glColor4ubVertex2fvSUN: TglColor4ubVertex2fvSUN;
14137   glColor4ubVertex3fSUN: TglColor4ubVertex3fSUN;
14138   glColor4ubVertex3fvSUN: TglColor4ubVertex3fvSUN;
14139   glColor3fVertex3fSUN: TglColor3fVertex3fSUN;
14140   glColor3fVertex3fvSUN: TglColor3fVertex3fvSUN;
14141   glNormal3fVertex3fSUN: TglNormal3fVertex3fSUN;
14142   glNormal3fVertex3fvSUN: TglNormal3fVertex3fvSUN;
14143   glColor4fNormal3fVertex3fSUN: TglColor4fNormal3fVertex3fSUN;
14144   glColor4fNormal3fVertex3fvSUN: TglColor4fNormal3fVertex3fvSUN;
14145   glTexCoord2fVertex3fSUN: TglTexCoord2fVertex3fSUN;
14146   glTexCoord2fVertex3fvSUN: TglTexCoord2fVertex3fvSUN;
14147   glTexCoord4fVertex4fSUN: TglTexCoord4fVertex4fSUN;
14148   glTexCoord4fVertex4fvSUN: TglTexCoord4fVertex4fvSUN;
14149   glTexCoord2fColor4ubVertex3fSUN: TglTexCoord2fColor4ubVertex3fSUN;
14150   glTexCoord2fColor4ubVertex3fvSUN: TglTexCoord2fColor4ubVertex3fvSUN;
14151   glTexCoord2fColor3fVertex3fSUN: TglTexCoord2fColor3fVertex3fSUN;
14152   glTexCoord2fColor3fVertex3fvSUN: TglTexCoord2fColor3fVertex3fvSUN;
14153   glTexCoord2fNormal3fVertex3fSUN: TglTexCoord2fNormal3fVertex3fSUN;
14154   glTexCoord2fNormal3fVertex3fvSUN: TglTexCoord2fNormal3fVertex3fvSUN;
14155   glTexCoord2fColor4fNormal3fVertex3fSUN: TglTexCoord2fColor4fNormal3fVertex3fSUN;
14156   glTexCoord2fColor4fNormal3fVertex3fvSUN: TglTexCoord2fColor4fNormal3fVertex3fvSUN;
14157   glTexCoord4fColor4fNormal3fVertex4fSUN: TglTexCoord4fColor4fNormal3fVertex4fSUN;
14158   glTexCoord4fColor4fNormal3fVertex4fvSUN: TglTexCoord4fColor4fNormal3fVertex4fvSUN;
14159   glReplacementCodeuiVertex3fSUN: TglReplacementCodeuiVertex3fSUN;
14160   glReplacementCodeuiVertex3fvSUN: TglReplacementCodeuiVertex3fvSUN;
14161   glReplacementCodeuiColor4ubVertex3fSUN: TglReplacementCodeuiColor4ubVertex3fSUN;
14162   glReplacementCodeuiColor4ubVertex3fvSUN: TglReplacementCodeuiColor4ubVertex3fvSUN;
14163   glReplacementCodeuiColor3fVertex3fSUN: TglReplacementCodeuiColor3fVertex3fSUN;
14164   glReplacementCodeuiColor3fVertex3fvSUN: TglReplacementCodeuiColor3fVertex3fvSUN;
14165   glReplacementCodeuiNormal3fVertex3fSUN: TglReplacementCodeuiNormal3fVertex3fSUN;
14166   glReplacementCodeuiNormal3fVertex3fvSUN: TglReplacementCodeuiNormal3fVertex3fvSUN;
14167   glReplacementCodeuiColor4fNormal3fVertex3fSUN: TglReplacementCodeuiColor4fNormal3fVertex3fSUN;
14168   glReplacementCodeuiColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiColor4fNormal3fVertex3fvSUN;
14169   glReplacementCodeuiTexCoord2fVertex3fSUN: TglReplacementCodeuiTexCoord2fVertex3fSUN;
14170   glReplacementCodeuiTexCoord2fVertex3fvSUN: TglReplacementCodeuiTexCoord2fVertex3fvSUN;
14171   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
14172   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
14173   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
14174   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
14175
14176 {$IFDEF DGL_WIN}
14177   wglGetProcAddress: TwglGetProcAddress;
14178   wglCopyContext: TwglCopyContext;
14179   wglCreateContext: TwglCreateContext;
14180   wglCreateLayerContext: TwglCreateLayerContext;
14181   wglDeleteContext: TwglDeleteContext;
14182   wglDescribeLayerPlane: TwglDescribeLayerPlane;
14183   wglGetCurrentContext: TwglGetCurrentContext;
14184   wglGetCurrentDC: TwglGetCurrentDC;
14185   wglGetLayerPaletteEntries: TwglGetLayerPaletteEntries;
14186   wglMakeCurrent: TwglMakeCurrent;
14187   wglRealizeLayerPalette: TwglRealizeLayerPalette;
14188   wglSetLayerPaletteEntries: TwglSetLayerPaletteEntries;
14189   wglShareLists: TwglShareLists;
14190   wglSwapLayerBuffers: TwglSwapLayerBuffers;
14191   wglSwapMultipleBuffers: TwglSwapMultipleBuffers;
14192   wglUseFontBitmapsA: TwglUseFontBitmapsA;
14193   wglUseFontOutlinesA: TwglUseFontOutlinesA;
14194   wglUseFontBitmapsW: TwglUseFontBitmapsW;
14195   wglUseFontOutlinesW: TwglUseFontOutlinesW;
14196   wglUseFontBitmaps: TwglUseFontBitmaps;
14197   wglUseFontOutlines: TwglUseFontOutlines;
14198
14199    // WGL_ARB_buffer_region
14200   wglCreateBufferRegionARB: TwglCreateBufferRegionARB;
14201   wglDeleteBufferRegionARB: TwglDeleteBufferRegionARB;
14202   wglSaveBufferRegionARB: TwglSaveBufferRegionARB;
14203   wglRestoreBufferRegionARB: TwglRestoreBufferRegionARB;
14204
14205   // WGL_ARB_extensions_string
14206   wglGetExtensionsStringARB: TwglGetExtensionsStringARB;
14207
14208   // WGL_ARB_make_current_read
14209   wglMakeContextCurrentARB: TwglMakeContextCurrentARB;
14210   wglGetCurrentReadDCARB: TwglGetCurrentReadDCARB;
14211
14212   // WGL_ARB_pbuffer
14213   wglCreatePbufferARB: TwglCreatePbufferARB;
14214   wglGetPbufferDCARB: TwglGetPbufferDCARB;
14215   wglReleasePbufferDCARB: TwglReleasePbufferDCARB;
14216   wglDestroyPbufferARB: TwglDestroyPbufferARB;
14217   wglQueryPbufferARB: TwglQueryPbufferARB;
14218
14219   // WGL_ARB_pixel_format
14220   wglGetPixelFormatAttribivARB: TwglGetPixelFormatAttribivARB;
14221   wglGetPixelFormatAttribfvARB: TwglGetPixelFormatAttribfvARB;
14222   wglChoosePixelFormatARB: TwglChoosePixelFormatARB;
14223   // WGL_ARB_color_buffer_float
14224   wglClampColorARB: TwglClampColorARB;
14225
14226   // WGL_ARB_render_texture
14227   wglBindTexImageARB: TwglBindTexImageARB;
14228   wglReleaseTexImageARB: TwglReleaseTexImageARB;
14229   wglSetPbufferAttribARB: TwglSetPbufferAttribARB;
14230
14231   // WGL_ARB_create_context
14232   wglCreateContextAttribsARB: TwglCreateContextAttribsARB;
14233
14234   // WGL_AMD_gpu_association
14235   wglGetGPUIDsAMD: TwglGetGPUIDsAMD;
14236   wglGetGPUInfoAMD: TwglGetGPUInfoAMD;
14237   wglGetContextGPUIDAMD: TwglGetContextGPUIDAMD;
14238   wglCreateAssociatedContextAMD: TwglCreateAssociatedContextAMD;
14239   wglCreateAssociatedContextAttribsAMD: TwglCreateAssociatedContextAttribsAMD;
14240   wglDeleteAssociatedContextAMD: TwglDeleteAssociatedContextAMD;
14241   wglMakeAssociatedContextCurrentAMD: TwglMakeAssociatedContextCurrentAMD;
14242   wglGetCurrentAssociatedContextAMD: TwglGetCurrentAssociatedContextAMD;
14243   wglBlitContextFramebufferAMD: TwglBlitContextFramebufferAMD;
14244
14245   // WGL_EXT_display_color_table
14246   wglCreateDisplayColorTableEXT: TwglCreateDisplayColorTableEXT;
14247   wglLoadDisplayColorTableEXT: TwglLoadDisplayColorTableEXT;
14248   wglBindDisplayColorTableEXT: TwglBindDisplayColorTableEXT;
14249   wglDestroyDisplayColorTableEXT: TwglDestroyDisplayColorTableEXT;
14250
14251   // WGL_EXT_extensions_string
14252   wglGetExtensionsStringEXT: TwglGetExtensionsStringEXT;
14253
14254   // WGL_EXT_make_current_read
14255   wglMakeContextCurrentEXT: TwglMakeContextCurrentEXT;
14256   wglGetCurrentReadDCEXT: TwglGetCurrentReadDCEXT;
14257
14258   // WGL_EXT_pbuffer
14259   wglCreatePbufferEXT: TwglCreatePbufferEXT;
14260   wglGetPbufferDCEXT: TwglGetPbufferDCEXT;
14261   wglReleasePbufferDCEXT: TwglReleasePbufferDCEXT;
14262   wglDestroyPbufferEXT: TwglDestroyPbufferEXT;
14263   wglQueryPbufferEXT: TwglQueryPbufferEXT;
14264
14265   // WGL_EXT_pixel_format
14266   wglGetPixelFormatAttribivEXT: TwglGetPixelFormatAttribivEXT;
14267   wglGetPixelFormatAttribfvEXT: TwglGetPixelFormatAttribfvEXT;
14268   wglChoosePixelFormatEXT: TwglChoosePixelFormatEXT;
14269
14270   // WGL_EXT_swap_control
14271   wglSwapIntervalEXT: TwglSwapIntervalEXT;
14272   wglGetSwapIntervalEXT: TwglGetSwapIntervalEXT;
14273
14274   // WGL_I3D_digital_video_control
14275   wglGetDigitalVideoParametersI3D: TwglGetDigitalVideoParametersI3D;
14276   wglSetDigitalVideoParametersI3D: TwglSetDigitalVideoParametersI3D;
14277
14278   // WGL_I3D_gamma
14279   wglGetGammaTableParametersI3D: TwglGetGammaTableParametersI3D;
14280   wglSetGammaTableParametersI3D: TwglSetGammaTableParametersI3D;
14281   wglGetGammaTableI3D: TwglGetGammaTableI3D;
14282   wglSetGammaTableI3D: TwglSetGammaTableI3D;
14283
14284   // WGL_I3D_genlock
14285   wglEnableGenlockI3D: TwglEnableGenlockI3D;
14286   wglDisableGenlockI3D: TwglDisableGenlockI3D;
14287   wglIsEnabledGenlockI3D: TwglIsEnabledGenlockI3D;
14288   wglGenlockSourceI3D: TwglGenlockSourceI3D;
14289   wglGetGenlockSourceI3D: TwglGetGenlockSourceI3D;
14290   wglGenlockSourceEdgeI3D: TwglGenlockSourceEdgeI3D;
14291   wglGetGenlockSourceEdgeI3D: TwglGetGenlockSourceEdgeI3D;
14292   wglGenlockSampleRateI3D: TwglGenlockSampleRateI3D;
14293   wglGetGenlockSampleRateI3D: TwglGetGenlockSampleRateI3D;
14294   wglGenlockSourceDelayI3D: TwglGenlockSourceDelayI3D;
14295   wglGetGenlockSourceDelayI3D: TwglGetGenlockSourceDelayI3D;
14296   wglQueryGenlockMaxSourceDelayI3D: TwglQueryGenlockMaxSourceDelayI3D;
14297
14298   // WGL_I3D_image_buffer
14299   wglCreateImageBufferI3D: TwglCreateImageBufferI3D;
14300   wglDestroyImageBufferI3D: TwglDestroyImageBufferI3D;
14301   wglAssociateImageBufferEventsI3D: TwglAssociateImageBufferEventsI3D;
14302   wglReleaseImageBufferEventsI3D: TwglReleaseImageBufferEventsI3D;
14303
14304   // WGL_I3D_swap_frame_lock
14305   wglEnableFrameLockI3D: TwglEnableFrameLockI3D;
14306   wglDisableFrameLockI3D: TwglDisableFrameLockI3D;
14307   wglIsEnabledFrameLockI3D: TwglIsEnabledFrameLockI3D;
14308   wglQueryFrameLockMasterI3D: TwglQueryFrameLockMasterI3D;
14309
14310   // WGL_I3D_swap_frame_usage
14311   wglGetFrameUsageI3D: TwglGetFrameUsageI3D;
14312   wglBeginFrameTrackingI3D: TwglBeginFrameTrackingI3D;
14313   wglEndFrameTrackingI3D: TwglEndFrameTrackingI3D;
14314   wglQueryFrameTrackingI3D: TwglQueryFrameTrackingI3D;
14315
14316   // WGL_NV_vertex_array_range
14317   wglAllocateMemoryNV: TwglAllocateMemoryNV;
14318   wglFreeMemoryNV: TwglFreeMemoryNV;
14319
14320   // WGL_NV_present_video
14321   wglEnumerateVideoDevicesNV: TwglEnumerateVideoDevicesNV;
14322   wglBindVideoDeviceNV: TwglBindVideoDeviceNV;
14323   wglQueryCurrentContextNV: TwglQueryCurrentContextNV;
14324
14325   // WGL_NV_video_output
14326   wglGetVideoDeviceNV: TwglGetVideoDeviceNV;
14327   wglReleaseVideoDeviceNV: TwglReleaseVideoDeviceNV;
14328   wglBindVideoImageNV: TwglBindVideoImageNV;
14329   wglReleaseVideoImageNV: TwglReleaseVideoImageNV;
14330   wglSendPbufferToVideoNV: TwglSendPbufferToVideoNV;
14331   wglGetVideoInfoNV: TwglGetVideoInfoNV;
14332
14333   // WGL_NV_swap_group
14334   wglJoinSwapGroupNV: TwglJoinSwapGroupNV;
14335   wglBindSwapBarrierNV: TwglBindSwapBarrierNV;
14336   wglQuerySwapGroupNV: TwglQuerySwapGroupNV;
14337   wglQueryMaxSwapGroupsNV: TwglQueryMaxSwapGroupsNV;
14338   wglQueryFrameCountNV: TwglQueryFrameCountNV;
14339   wglResetFrameCountNV: TwglResetFrameCountNV;
14340
14341   // WGL_NV_gpu_affinity
14342   wglEnumGpusNV: TwglEnumGpusNV;
14343   wglEnumGpuDevicesNV: TwglEnumGpuDevicesNV;
14344   wglCreateAffinityDCNV: TwglCreateAffinityDCNV;
14345   wglEnumGpusFromAffinityDCNV: TwglEnumGpusFromAffinityDCNV;
14346   wglDeleteDCNV: TwglDeleteDCNV;
14347
14348   // WGL_NV_video_capture
14349   wglBindVideoCaptureDeviceNV: TwglBindVideoCaptureDeviceNV;
14350   wglEnumerateVideoCaptureDevicesNV: TwglEnumerateVideoCaptureDevicesNV;
14351   wglLockVideoCaptureDeviceNV: TwglLockVideoCaptureDeviceNV;
14352   wglQueryVideoCaptureDeviceNV: TwglQueryVideoCaptureDeviceNV;
14353   wglReleaseVideoCaptureDeviceNV: TwglReleaseVideoCaptureDeviceNV;
14354
14355   // WGL_NV_copy_image
14356   wglCopyImageSubDataNV: TwglCopyImageSubDataNV;
14357
14358   // WGL_NV_DX_interop
14359   wglDXSetResourceShareHandleNV : TwglDXSetResourceShareHandleNV;
14360   wglDXOpenDeviceNV : TwglDXOpenDeviceNV;
14361   wglDXCloseDeviceNV : TwglDXCloseDeviceNV;
14362   wglDXRegisterObjectNV : TwglDXRegisterObjectNV;
14363   wglDXUnregisterObjectNV : TwglDXUnregisterObjectNV;
14364   wglDXObjectAccessNV : TwglDXObjectAccessNV;
14365   wglDXLockObjectsNV : TwglDXLockObjectsNV;
14366   wglDXUnlockObjectsNV : TwglDXUnlockObjectsNV;
14367
14368   // WGL_OML_sync_control
14369   wglGetSyncValuesOML: TwglGetSyncValuesOML;
14370   wglGetMscRateOML: TwglGetMscRateOML;
14371   wglSwapBuffersMscOML: TwglSwapBuffersMscOML;
14372   wglSwapLayerBuffersMscOML: TwglSwapLayerBuffersMscOML;
14373   wglWaitForMscOML: TwglWaitForMscOML;
14374   wglWaitForSbcOML: TwglWaitForSbcOML;
14375
14376   // WGL_3DL_stereo_control
14377   wglSetStereoEmitterState3DL: TwglSetStereoEmitterState3DL;
14378
14379   // WIN_draw_range_elements
14380   glDrawRangeElementsWIN: TglDrawRangeElementsWIN;
14381
14382   // WIN_swap_hint
14383   glAddSwapHintRectWIN: TglAddSwapHintRectWIN;
14384 {$ENDIF}
14385
14386 {$IFDEF DGL_LINUX}
14387   glXChooseVisual: TglXChooseVisual;
14388   glXCopyContext: TglXCopyContext;
14389   glXCreateContext: TglXCreateContext;
14390   glXCreateGLXPixmap: TglXCreateGLXPixmap;
14391   glXDestroyContext: TglXDestroyContext;
14392   glXDestroyGLXPixmap: TglXDestroyGLXPixmap;
14393   glXGetConfig: TglXGetConfig;
14394   glXGetCurrentContext: TglXGetCurrentContext;
14395   glXGetCurrentDrawable: TglXGetCurrentDrawable;
14396   glXIsDirect: TglXIsDirect;
14397   glXMakeCurrent: TglXMakeCurrent;
14398   glXQueryExtension: TglXQueryExtension;
14399   glXQueryVersion: TglXQueryVersion;
14400   glXSwapBuffers: TglXSwapBuffers;
14401   glXUseXFont: TglXUseXFont;
14402   glXWaitGL: TglXWaitGL;
14403   glXWaitX: TglXWaitX;
14404
14405   glXGetClientString: TglXGetClientString;
14406   glXQueryServerString: TglXQueryServerString;
14407   glXQueryExtensionsString: TglXQueryExtensionsString;
14408
14409   // GLX_VERSION_1_3
14410   glXGetFBConfigs: TglXGetFBConfigs;
14411   glXChooseFBConfig: TglXChooseFBConfig;
14412   glXGetFBConfigAttrib: TglXGetFBConfigAttrib;
14413   glXGetVisualFromFBConfig: TglXGetVisualFromFBConfig;
14414   glXCreateWindow: TglXCreateWindow;
14415   glXDestroyWindow: TglXDestroyWindow;
14416   glXCreatePixmap: TglXCreatePixmap;
14417
14418   glXDestroyPixmap: TglXDestroyPixmap;
14419   glXCreatePbuffer: TglXCreatePbuffer;
14420   glXDestroyPbuffer: TglXDestroyPbuffer;
14421   glXQueryDrawable: TglXQueryDrawable;
14422   glXCreateNewContext: TglXCreateNewContext;
14423   glXMakeContextCurrent: TglXMakeContextCurrent;
14424   glXGetCurrentReadDrawable: TglXGetCurrentReadDrawable;
14425   glXGetCurreentDisplay: TglXGetCurreentDisplay;
14426
14427   glXQueryContext: TglXQueryContext;
14428   glXSelectEvent: TglXSelectEvent;
14429   glXGetSelectedEvent: TglXGetSelectedEvent;
14430
14431   // GLX_VERSION_1_4
14432   glXGetProcAddress: TglXGetProcAddress;
14433
14434   // GLX_ARB_get_proc_address
14435   glXGetProcAddressARB: TglXGetProcAddressARB;
14436
14437   // GLX_ARB_create_context
14438   glXCreateContextAttribsARB: TglXCreateContextAttribsARB;
14439   
14440   // GLX_EXT_import_context
14441   glXGetCurrentDisplayEXT: TglXGetCurrentDisplayEXT;
14442   glXQueryContextInfoEXT: TglXQueryContextInfoEXT;
14443   glXGetContextIDEXT: TglXGetContextIDEXT;
14444   glXImportContextEXT: TglXImportContextEXT;
14445   glXFreeContextEXT: TglXFreeContextEXT;
14446   
14447   // GLX_EXT_texture_from_pixmap
14448   glXBindTexImageEXT: TglXBindTexImageEXT;
14449   glXReleaseTexImageEXT: TglXReleaseTexImageEXT;
14450 {$ENDIF}
14451
14452   // GL utility functions and procedures
14453   gluErrorString: TgluErrorString;
14454   gluGetString: TgluGetString;
14455   gluOrtho2D: TgluOrtho2D;
14456   gluPerspective: TgluPerspective;
14457   gluPickMatrix: TgluPickMatrix;
14458   gluLookAt: TgluLookAt;
14459   gluProject: TgluProject;
14460   gluUnProject: TgluUnProject;
14461   gluScaleImage: TgluScaleImage;
14462   gluBuild1DMipmaps: TgluBuild1DMipmaps;
14463   gluBuild2DMipmaps: TgluBuild2DMipmaps;
14464   gluNewQuadric: TgluNewQuadric;
14465   gluDeleteQuadric: TgluDeleteQuadric;
14466   gluQuadricNormals: TgluQuadricNormals;
14467   gluQuadricTexture: TgluQuadricTexture;
14468   gluQuadricOrientation: TgluQuadricOrientation;
14469   gluQuadricDrawStyle: TgluQuadricDrawStyle;
14470   gluCylinder: TgluCylinder;
14471   gluDisk: TgluDisk;
14472   gluPartialDisk: TgluPartialDisk;
14473   gluSphere: TgluSphere;
14474   gluQuadricCallback: TgluQuadricCallback;
14475   gluNewTess: TgluNewTess;
14476   gluDeleteTess: TgluDeleteTess;
14477   gluTessBeginPolygon: TgluTessBeginPolygon;
14478   gluTessBeginContour: TgluTessBeginContour;
14479   gluTessVertex: TgluTessVertex;
14480   gluTessEndContour: TgluTessEndContour;
14481   gluTessEndPolygon: TgluTessEndPolygon;
14482   gluTessProperty: TgluTessProperty;
14483   gluTessNormal: TgluTessNormal;
14484   gluTessCallback: TgluTessCallback;
14485   gluGetTessProperty: TgluGetTessProperty;
14486   gluNewNurbsRenderer: TgluNewNurbsRenderer;
14487   gluDeleteNurbsRenderer: TgluDeleteNurbsRenderer;
14488   gluBeginSurface: TgluBeginSurface;
14489   gluBeginCurve: TgluBeginCurve;
14490   gluEndCurve: TgluEndCurve;
14491   gluEndSurface: TgluEndSurface;
14492   gluBeginTrim: TgluBeginTrim;
14493   gluEndTrim: TgluEndTrim;
14494   gluPwlCurve: TgluPwlCurve;
14495   gluNurbsCurve: TgluNurbsCurve;
14496   gluNurbsSurface: TgluNurbsSurface;
14497   gluLoadSamplingMatrices: TgluLoadSamplingMatrices;
14498   gluNurbsProperty: TgluNurbsProperty;
14499   gluGetNurbsProperty: TgluGetNurbsProperty;
14500   gluNurbsCallback: TgluNurbsCallback;
14501   gluBeginPolygon: TgluBeginPolygon;
14502   gluNextContour: TgluNextContour;
14503   gluEndPolygon: TgluEndPolygon;
14504
14505
14506 type
14507   TRCOptions = set of (opDoubleBuffered, opGDI, opStereo);
14508
14509 var
14510   GL_LibHandle: Pointer = nil;
14511   GLU_LibHandle: Pointer = nil;
14512
14513   LastPixelFormat: Integer;
14514   ExtensionsRead: Boolean;
14515   ImplementationRead: Boolean;
14516
14517
14518 const
14519 {$IFDEF DGL_WIN}
14520   OPENGL_LIBNAME = 'OpenGL32.dll';
14521   GLU_LIBNAME = 'GLU32.dll';
14522 {$ELSE}
14523   {$IFDEF darwin}
14524     OPENGL_LIBNAME = 'libGL.dylib';
14525     GLU_LIBNAME = 'libGLU.dylib';
14526   {$ELSE}
14527     OPENGL_LIBNAME = 'libGL.so.1';
14528     GLU_LIBNAME = 'libGLU.so.1';
14529   {$ENDIF}
14530 {$ENDIF}
14531
14532 function InitOpenGL(LibName: String = OPENGL_LIBNAME; GLULibName: String = GLU_LIBNAME): Boolean;
14533
14534 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14535 function dglCheckExtension(Extension: AnsiString): Boolean;
14536
14537 procedure ReadExtensions;
14538 procedure ReadImplementationProperties;
14539
14540 // =============================================================================
14541 // Helper-Functions
14542 // =============================================================================
14543 {$IFDEF DGL_WIN}
14544   function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14545   function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14546   procedure DestroyRenderingContext(RC: HGLRC);
14547
14548   procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
14549   procedure DeactivateRenderingContext;
14550 {$ENDIF}
14551
14552
14553 procedure ReadOpenGLCore;
14554 procedure Read_GL_3DFX_tbuffer;
14555 procedure Read_GL_APPLE_element_array;
14556 procedure Read_GL_APPLE_fence;
14557 procedure Read_GL_APPLE_vertex_array_object;
14558 procedure Read_GL_APPLE_vertex_array_range;
14559 procedure Read_GL_APPLE_texture_range;
14560 procedure Read_GL_APPLE_vertex_program_evaluators;
14561 procedure Read_GL_APPLE_object_purgeable;
14562 procedure Read_GL_ARB_matrix_palette;
14563 procedure Read_GL_ARB_multitexture;
14564 procedure Read_GL_ARB_point_parameters;
14565 procedure Read_GL_ARB_texture_compression;
14566 procedure Read_GL_ARB_transpose_matrix;
14567 procedure Read_GL_ARB_vertex_blend;
14568 procedure Read_GL_ARB_vertex_buffer_object;
14569 procedure Read_GL_ARB_vertex_program;
14570 procedure Read_GL_ARB_window_pos;
14571 procedure Read_GL_ARB_color_buffer_float;
14572 procedure Read_GL_ARB_Shader_Objects;
14573 procedure Read_GL_ARB_occlusion_query;
14574 procedure Read_GL_ARB_draw_instanced;
14575 procedure Read_GL_ARB_framebuffer_object;
14576 procedure Read_GL_ARB_geometry_shader4;
14577 procedure Read_GL_ARB_instanced_arrays;
14578 procedure Read_GL_ARB_map_buffer_range;
14579 procedure Read_GL_ARB_texture_buffer_object;
14580 procedure Read_GL_ARB_vertex_array_object;
14581 procedure Read_GL_ARB_uniform_buffer_object;
14582 procedure Read_GL_ARB_copy_buffer;
14583 procedure Read_GL_ARB_draw_elements_base_vertex;
14584 procedure Read_GL_ARB_provoking_vertex;
14585 procedure Read_GL_ARB_sync;
14586 procedure Read_GL_ARB_texture_multisample;
14587 procedure Read_GL_ARB_draw_buffers_blend;
14588 procedure Read_GL_ARB_sample_shading;
14589 procedure Read_GL_ARB_shading_language_include;
14590 procedure Read_GL_ARB_blend_func_extended;
14591 procedure Read_GL_ARB_sampler_objects;
14592 procedure Read_GL_ARB_timer_query;
14593 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
14594 procedure Read_GL_ARB_draw_indirect;
14595 procedure Read_GL_ARB_gpu_shader_fp64;
14596 procedure Read_GL_ARB_shader_subroutine;
14597 procedure Read_GL_ARB_tessellation_shader;
14598 procedure Read_GL_ARB_transform_feedback2;
14599 procedure Read_GL_ARB_transform_feedback3;
14600 procedure Read_GL_ARB_ES2_compatibility;
14601 procedure Read_GL_ARB_get_program_binary;
14602 procedure Read_GL_ARB_separate_shader_objects;
14603 procedure Read_GL_ARB_vertex_attrib_64bit;
14604 procedure Read_GL_ARB_viewport_array;
14605 // GL 4.2
14606 procedure Read_GL_ARB_base_instance;
14607 procedure Read_GL_ARB_transform_feedback_instanced;
14608 procedure Read_GL_ARB_internalformat_query;
14609 procedure Read_GL_ARB_shader_atomic_counters;
14610 procedure Read_GL_ARB_shader_image_load_store;
14611 procedure Read_GL_ARB_texture_storage;
14612 // GL 4.3
14613 procedure Read_GL_KHR_debug;
14614 procedure Read_GL_ARB_clear_buffer_object;
14615 procedure Read_GL_ARB_compute_shader;
14616 procedure Read_GL_ARB_copy_image;
14617 procedure Read_GL_ARB_framebuffer_no_attachments;
14618 procedure Read_GL_ARB_internalformat_query2;
14619 procedure Read_GL_ARB_invalidate_subdata;
14620 procedure Read_GL_ARB_multi_draw_indirect;
14621 procedure Read_GL_ARB_program_interface_query;
14622 procedure Read_GL_ARB_shader_storage_buffer_object;
14623 procedure Read_GL_ARB_texture_buffer_range;
14624 procedure Read_GL_ARB_texture_storage_multisample;
14625 procedure Read_GL_ARB_texture_view;
14626 procedure Read_GL_ARB_vertex_attrib_binding;
14627
14628 // GL 4.4
14629 procedure Read_GL_4_4;
14630
14631 //
14632 procedure Read_GL_ARB_cl_event;
14633 procedure Read_GL_ARB_debug_output;
14634 procedure Read_GL_ARB_robustness;
14635 procedure Read_GL_ATI_draw_buffers;
14636 procedure Read_GL_ATI_element_array;
14637 procedure Read_GL_ATI_envmap_bumpmap;
14638 procedure Read_GL_ATI_fragment_shader;
14639 procedure Read_GL_ATI_map_object_buffer;
14640 procedure Read_GL_ATI_pn_triangles;
14641 procedure Read_GL_ATI_separate_stencil;
14642 procedure Read_GL_ATI_vertex_array_object;
14643 procedure Read_GL_ATI_vertex_attrib_array_object;
14644 procedure Read_GL_ATI_vertex_streams;
14645 procedure Read_GL_AMD_performance_monitor;
14646 procedure Read_GL_AMD_vertex_shader_tesselator;
14647 procedure Read_GL_AMD_draw_buffers_blend;
14648 procedure Read_GL_AMD_name_gen_delete;
14649 procedure Read_GL_AMD_debug_output;
14650 procedure Read_GL_EXT_blend_color;
14651 procedure Read_GL_EXT_blend_func_separate;
14652 procedure Read_GL_EXT_blend_minmax;
14653 procedure Read_GL_EXT_color_subtable;
14654 procedure Read_GL_EXT_compiled_vertex_array;
14655 procedure Read_GL_EXT_convolution;
14656 procedure Read_GL_EXT_coordinate_frame;
14657 procedure Read_GL_EXT_copy_texture;
14658 procedure Read_GL_EXT_cull_vertex;
14659 procedure Read_GL_EXT_draw_range_elements;
14660 procedure Read_GL_EXT_fog_coord;
14661 procedure Read_GL_EXT_framebuffer_object;
14662 procedure Read_GL_EXT_histogram;
14663 procedure Read_GL_EXT_index_func;
14664 procedure Read_GL_EXT_index_material;
14665 procedure Read_GL_EXT_multi_draw_arrays;
14666 procedure Read_GL_EXT_multisample;
14667 procedure Read_GL_EXT_paletted_texture;
14668 procedure Read_GL_EXT_pixel_transform;
14669 procedure Read_GL_EXT_point_parameters;
14670 procedure Read_GL_EXT_polygon_offset;
14671 procedure Read_GL_EXT_secondary_color;
14672 procedure Read_GL_EXT_stencil_two_side;
14673 procedure Read_GL_EXT_subtexture;
14674 procedure Read_GL_EXT_texture3D;
14675 procedure Read_GL_EXT_texture_object;
14676 procedure Read_GL_EXT_texture_perturb_normal;
14677 procedure Read_GL_EXT_vertex_array;
14678 procedure Read_GL_EXT_vertex_shader;
14679 procedure Read_GL_EXT_vertex_weighting;
14680 procedure Read_GL_EXT_depth_bounds_test;
14681 procedure Read_GL_EXT_blend_equation_separate;
14682 procedure Read_GL_EXT_stencil_clear_tag;
14683 procedure Read_GL_EXT_framebuffer_blit;
14684 procedure Read_GL_EXT_framebuffer_multisample;
14685 procedure Read_GL_EXT_timer_query;
14686 procedure Read_GL_EXT_gpu_program_parameters;
14687 procedure Read_GL_EXT_bindable_uniform;
14688 procedure Read_GL_EXT_draw_buffers2;
14689 procedure Read_GL_EXT_draw_instanced;
14690 procedure Read_GL_EXT_geometry_shader4;
14691 procedure Read_GL_EXT_gpu_shader4;
14692 procedure Read_GL_EXT_texture_array;
14693 procedure Read_GL_EXT_texture_buffer_object;
14694 procedure Read_GL_EXT_texture_integer;
14695 procedure Read_GL_EXT_transform_feedback;
14696 procedure Read_GL_EXT_direct_state_access;
14697 procedure Read_GL_EXT_separate_shader_objects;
14698 procedure Read_GL_EXT_shader_image_load_store;
14699 procedure Read_GL_EXT_vertex_attrib_64bit;
14700 procedure Read_GL_HP_image_transform;
14701 procedure Read_GL_IBM_multimode_draw_arrays;
14702 procedure Read_GL_IBM_vertex_array_lists;
14703 procedure Read_GL_INGR_blend_func_separate;
14704 procedure Read_GL_INTEL_parallel_arrays;
14705 procedure Read_GL_MESA_resize_buffers;
14706 procedure Read_GL_MESA_window_pos;
14707 procedure Read_GL_NV_evaluators;
14708 procedure Read_GL_NV_fence;
14709 procedure Read_GL_NV_fragment_program;
14710 procedure Read_GL_NV_half_float;
14711 procedure Read_GL_NV_occlusion_query;
14712 procedure Read_GL_NV_pixel_data_range;
14713 procedure Read_GL_NV_point_sprite;
14714 procedure Read_GL_NV_primitive_restart;
14715 procedure Read_GL_NV_register_combiners;
14716 procedure Read_GL_NV_register_combiners2;
14717 procedure Read_GL_NV_vertex_array_range;
14718 procedure Read_GL_NV_vertex_program;
14719 procedure Read_GL_NV_depth_buffer_float;
14720 procedure Read_GL_NV_framebuffer_multisample_coverage;
14721 procedure Read_GL_NV_geometry_program4;
14722 procedure Read_GL_NV_gpu_program4;
14723 procedure Read_GL_NV_parameter_buffer_object;
14724 procedure Read_GL_NV_transform_feedback;
14725 procedure Read_GL_NV_conditional_render;
14726 procedure Read_GL_NV_present_video;
14727 procedure Read_GL_NV_explicit_multisample;
14728 procedure Read_GL_NV_transform_feedback2;
14729 procedure Read_GL_NV_video_capture;
14730 procedure Read_GL_NV_copy_image;
14731 procedure Read_GL_NV_shader_buffer_load;
14732 procedure Read_GL_NV_vertex_buffer_unified_memory;
14733 procedure Read_GL_NV_gpu_program5;
14734 procedure Read_GL_NV_gpu_shader5;
14735 procedure Read_GL_NV_vertex_attrib_integer_64bit;
14736 procedure Read_GL_NV_vdpau_interop;
14737 procedure Read_GL_NV_texture_barrier;
14738 procedure Read_GL_PGI_misc_hints;
14739 procedure Read_GL_SGIS_detail_texture;
14740 procedure Read_GL_SGIS_fog_function;
14741 procedure Read_GL_SGIS_multisample;
14742 procedure Read_GL_SGIS_pixel_texture;
14743 procedure Read_GL_SGIS_point_parameters;
14744 procedure Read_GL_SGIS_sharpen_texture;
14745 procedure Read_GL_SGIS_texture4D;
14746 procedure Read_GL_SGIS_texture_color_mask;
14747 procedure Read_GL_SGIS_texture_filter4;
14748 procedure Read_GL_SGIX_async;
14749 procedure Read_GL_SGIX_flush_raster;
14750 procedure Read_GL_SGIX_fragment_lighting;
14751 procedure Read_GL_SGIX_framezoom;
14752 procedure Read_GL_SGIX_igloo_interface;
14753 procedure Read_GL_SGIX_instruments;
14754 procedure Read_GL_SGIX_list_priority;
14755 procedure Read_GL_SGIX_pixel_texture;
14756 procedure Read_GL_SGIX_polynomial_ffd;
14757 procedure Read_GL_SGIX_reference_plane;
14758 procedure Read_GL_SGIX_sprite;
14759 procedure Read_GL_SGIX_tag_sample_buffer;
14760 procedure Read_GL_SGI_color_table;
14761 procedure Read_GL_SUNX_constant_data;
14762 procedure Read_GL_SUN_global_alpha;
14763 procedure Read_GL_SUN_mesh_array;
14764 procedure Read_GL_SUN_triangle_list;
14765 procedure Read_GL_SUN_vertex;
14766
14767 {$IFDEF DGL_WIN}
14768 procedure Read_WGL_ARB_buffer_region;
14769 procedure Read_WGL_ARB_extensions_string;
14770 procedure Read_WGL_ARB_make_current_read;
14771 procedure Read_WGL_ARB_pbuffer;
14772 procedure Read_WGL_ARB_pixel_format;
14773 procedure Read_WGL_ARB_pixel_format_float;
14774 procedure Read_WGL_ARB_render_texture;
14775 procedure Read_WGL_ARB_create_context;
14776 procedure Read_WGL_AMD_gpu_association;
14777 procedure Read_WGL_EXT_display_color_table;
14778 procedure Read_WGL_EXT_extensions_string;
14779 procedure Read_WGL_EXT_make_current_read;
14780 procedure Read_WGL_EXT_pbuffer;
14781 procedure Read_WGL_EXT_pixel_format;
14782 procedure Read_WGL_EXT_swap_control;
14783 procedure Read_WGL_I3D_digital_video_control;
14784 procedure Read_WGL_I3D_gamma;
14785 procedure Read_WGL_I3D_genlock;
14786 procedure Read_WGL_I3D_image_buffer;
14787 procedure Read_WGL_I3D_swap_frame_lock;
14788 procedure Read_WGL_I3D_swap_frame_usage;
14789 procedure Read_WGL_NV_vertex_array_range;
14790 procedure Read_WGL_NV_present_video;
14791 procedure Read_WGL_NV_video_output;
14792 procedure Read_WGL_NV_swap_group;
14793 procedure Read_WGL_NV_gpu_affinity;
14794 procedure Read_WGL_NV_video_capture;
14795 procedure Read_WGL_NV_copy_image;
14796 procedure Read_WGL_OML_sync_control;
14797 procedure Read_WGL_3DL_stereo_control;
14798
14799 procedure Read_WIN_draw_range_elements;
14800 procedure Read_WIN_swap_hint;
14801 {$ENDIF}
14802
14803
14804 implementation
14805
14806
14807 {$IFDEF DGL_LINUX}
14808 const
14809   RTLD_LAZY = $001;
14810   RTLD_NOW = $002;
14811   RTLD_BINDING_MASK = $003;
14812
14813   // Seems to work on Debian / Fedora
14814   LibraryLib = {$IFDEF Linux} 'libdl.so.2'{$ELSE} 'c'{$ENDIF};
14815
14816 function dlopen(Name: PAnsiChar; Flags: LongInt): Pointer; cdecl; external LibraryLib name 'dlopen';
14817 function dlclose(Lib: Pointer): LongInt; cdecl; external LibraryLib name 'dlclose';
14818
14819 function dlsym(Lib: Pointer; Name: PAnsiChar): Pointer; cdecl; external LibraryLib name 'dlsym';
14820 {$ENDIF}
14821
14822 {$IFDEF DGL_MAC}{$IFDEF OPENGL_FRAMEWORK}  // OpenGL framework used
14823 const
14824   RTLD_DEFAULT = Pointer(-2);
14825 {$ENDIF}{$ENDIF}
14826
14827 function dglLoadLibrary(Name: PChar): Pointer;
14828 begin
14829   {$IFDEF DGL_WIN}
14830   Result := Pointer(LoadLibrary(Name));
14831   {$ENDIF}
14832
14833   {$IFDEF DGL_LINUX}
14834   Result := dlopen(Name, RTLD_LAZY);
14835   {$ENDIF}
14836   
14837   {$IFDEF DGL_MAC}
14838   {$IFDEF OPENGL_FRAMEWORK}
14839   Result := RTLD_DEFAULT;
14840   {$ELSE}
14841   Result := Pointer(LoadLibrary(Name));
14842   {$ENDIF}  
14843   {$ENDIF}  
14844 end;
14845
14846
14847 function dglFreeLibrary(LibHandle: Pointer): Boolean;
14848 begin
14849   if LibHandle = nil then
14850     Result := False
14851   else
14852     {$IFDEF DGL_WIN}
14853     Result := FreeLibrary(HMODULE(LibHandle));
14854     {$ENDIF}
14855
14856     {$IFDEF DGL_LINUX}
14857     Result := dlclose(LibHandle) = 0;
14858     {$ENDIF}
14859         
14860     {$IFDEF DGL_MAC}
14861     {$IFDEF OPENGL_FRAMEWORK}
14862         Result := true;
14863         {$ELSE}
14864     Result := FreeLibrary(HMODULE(LibHandle));
14865     {$ENDIF}    
14866         {$ENDIF}
14867 end;
14868
14869
14870 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14871 begin
14872   if LibHandle = nil then
14873     LibHandle := GL_LibHandle;
14874
14875   Result :=  nil;
14876
14877   {$IFDEF DGL_WIN}
14878     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14879
14880     if result <> nil then
14881       exit;
14882
14883     if Addr(wglGetProcAddress) <> nil then
14884       Result := wglGetProcAddress(ProcName);
14885   {$ENDIF}
14886
14887   {$IFDEF DGL_LINUX}
14888     if not ForceDLSym then begin
14889       if Addr(glXGetProcAddress) <> nil then
14890         Result := glXGetProcAddress(ProcName);
14891
14892       if result <> nil then
14893         exit;
14894
14895       if Addr(glXGetProcAddressARB) <> nil then
14896         Result := glXGetProcAddressARB(ProcName);
14897
14898       if result <> nil then
14899         exit;
14900     end;
14901
14902     Result := dlsym(LibHandle, ProcName);
14903   {$ENDIF}
14904   
14905   {$IFDEF DGL_MAC}
14906     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14907   {$ENDIF}  
14908 end;
14909
14910
14911 function Int_GetExtensionString: AnsiString;
14912 var
14913         ExtensionCount : GLuint;
14914   i : Integer;
14915 begin
14916   if GL_VERSION_3_0
14917     then
14918       begin
14919         if not Assigned(@glGetIntegerv) then glGetIntegerv := dglGetProcAddress('glGetIntegerv');
14920         if not Assigned(@glGetStringi)  then glGetStringi  := dglGetProcAddress('glGetStringi');
14921
14922         result := '';
14923
14924         if Assigned(@glGetIntegerv) and Assigned(@glGetStringi)
14925           then
14926             begin
14927               glGetIntegerv(GL_NUM_EXTENSIONS, @extensionCount);
14928
14929               For I := 0 to extensionCount - 1 do
14930                 result := result + #32 + PAnsiChar(glGetStringi(GL_EXTENSIONS, I));
14931             end;
14932       end
14933     else
14934       begin
14935         if not Assigned(@glGetString) then glGetString := dglGetProcAddress('glGetString');
14936
14937         if Assigned(@glGetString)
14938           then result := glGetString(GL_EXTENSIONS)
14939           else result := '';
14940       end;
14941
14942   if (GL_LibHandle <> nil) then begin
14943     {$IFDEF DGL_WIN}
14944       // wglGetExtensionsStringEXT
14945       if not Assigned(@wglGetExtensionsStringEXT) then
14946         wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
14947
14948       if Assigned(@wglGetExtensionsStringEXT) then
14949         Result := Result + #32 + wglGetExtensionsStringEXT;
14950
14951       // wglGetExtensionsStringARB
14952       if not Assigned(@wglGetExtensionsStringARB) then
14953         wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
14954
14955       if Assigned(@wglGetExtensionsStringARB) then
14956         Result := Result + #32 + wglGetExtensionsStringARB(wglGetCurrentDC);
14957     {$ENDIF}
14958   end;
14959
14960   Result := #32 + Result + #32;
14961 end;
14962
14963
14964 function Int_CheckExtension(AllExtensions, CheckExtension: AnsiString): Boolean;
14965 begin
14966   Result := Pos(#32 + CheckExtension + #32, AllExtensions) > 0;
14967 end;
14968
14969
14970 function dglCheckExtension(Extension: AnsiString): Boolean;
14971 var
14972   Extensions: AnsiString;
14973 begin
14974   Extensions := Int_GetExtensionString;
14975   Result := Int_CheckExtension(Extensions, Extension);
14976 end;
14977
14978
14979
14980 function InitOpenGL(LibName: String; GLULibName: String): Boolean;
14981 begin
14982   Result := False;
14983
14984   // free opened libraries
14985   if GL_LibHandle <> nil then
14986     dglFreeLibrary(GL_LibHandle);
14987
14988   if GLU_LibHandle <> nil then
14989     dglFreeLibrary(GLU_LibHandle);
14990
14991   // load library
14992   GL_LibHandle := dglLoadLibrary(PChar(LibName));
14993   GLU_LibHandle := dglLoadLibrary(PChar(GLULibName));
14994
14995   // load GL functions
14996   if (GL_LibHandle <> nil) then begin
14997     {$IFDEF DGL_WIN}
14998       wglCopyContext := dglGetProcAddress('wglCopyContext');
14999       wglCreateLayerContext := dglGetProcAddress('wglCreateLayerContext');
15000       wglCreateContext := dglGetProcAddress('wglCreateContext');
15001       wglDeleteContext := dglGetProcAddress('wglDeleteContext');
15002       wglDescribeLayerPlane := dglGetProcAddress('wglDescribeLayerPlane');
15003       wglGetCurrentContext := dglGetProcAddress('wglGetCurrentContext');
15004       wglGetCurrentDC := dglGetProcAddress('wglGetCurrentDC');
15005       wglGetLayerPaletteEntries := dglGetProcAddress('wglGetLayerPaletteEntries');
15006       wglGetProcAddress := dglGetProcAddress('wglGetProcAddress');
15007       wglMakeCurrent := dglGetProcAddress('wglMakeCurrent');
15008       wglRealizeLayerPalette := dglGetProcAddress('wglRealizeLayerPalette');
15009       wglSetLayerPaletteEntries := dglGetProcAddress('wglSetLayerPaletteEntries');
15010       wglShareLists := dglGetProcAddress('wglShareLists');
15011       wglSwapLayerBuffers := dglGetProcAddress('wglSwapLayerBuffers');
15012       wglSwapMultipleBuffers := dglGetProcAddress('wglSwapMultipleBuffers');
15013       wglUseFontBitmapsA := dglGetProcAddress('wglUseFontBitmapsA');
15014       wglUseFontOutlinesA := dglGetProcAddress('wglUseFontOutlinesA');
15015       wglUseFontBitmapsW := dglGetProcAddress('wglUseFontBitmapsW');
15016       wglUseFontOutlinesW := dglGetProcAddress('wglUseFontOutlinesW');
15017       wglUseFontBitmaps := dglGetProcAddress('wglUseFontBitmapsA');
15018       wglUseFontOutlines := dglGetProcAddress('wglUseFontOutlinesA');
15019     {$ENDIF}
15020
15021     {$IFDEF DGL_LINUX}
15022       // GLX_VERSION_1_4 (needs to be first)
15023       glXGetProcAddress := dglGetProcAddress('glXGetProcAddress', nil, True);
15024
15025       // GLX_ARB_get_proc_address  (also needs to be first)
15026       glXGetProcAddressARB := dglGetProcAddress('glXGetProcAddressARB', nil, True);
15027
15028       glXChooseVisual := dglGetProcAddress('glXChooseVisual');
15029       glXCopyContext := dglGetProcAddress('glXCopyContext');
15030       glXCreateContext := dglGetProcAddress('glXCreateContext');
15031       glXCreateGLXPixmap := dglGetProcAddress('glXCreateGLXPixmap');
15032       glXDestroyContext := dglGetProcAddress('glXDestroyContext');
15033       glXDestroyGLXPixmap := dglGetProcAddress('glXDestroyGLXPixmap');
15034       glXGetConfig := dglGetProcAddress('glXGetConfig');
15035       glXGetCurrentContext := dglGetProcAddress('glXGetCurrentContext');
15036       glXGetCurrentDrawable := dglGetProcAddress('glXGetCurrentDrawable');
15037       glXIsDirect := dglGetProcAddress('glXIsDirect');
15038       glXMakeCurrent := dglGetProcAddress('glXMakeCurrent');
15039       glXQueryExtension := dglGetProcAddress('glXQueryExtension');
15040       glXQueryVersion := dglGetProcAddress('glXQueryVersion');
15041       glXSwapBuffers := dglGetProcAddress('glXSwapBuffers');
15042       glXUseXFont := dglGetProcAddress('glXUseXFont');
15043       glXWaitGL := dglGetProcAddress('glXWaitGL');
15044       glXWaitX := dglGetProcAddress('glXWaitX');
15045
15046       glXGetClientString := dglGetProcAddress('glXGetClientString');
15047       glXQueryServerString := dglGetProcAddress('glXQueryServerString');
15048       glXQueryExtensionsString := dglGetProcAddress('glXQueryExtensionsString');
15049
15050       // GLX_VERSION_1_3
15051       glXGetFBConfigs := dglGetProcAddress('glXGetFBConfigs');
15052       glXChooseFBConfig := dglGetProcAddress('glXChooseFBConfig');
15053       glXGetFBConfigAttrib := dglGetProcAddress('glXGetFBConfigAttrib');
15054       glXGetVisualFromFBConfig := dglGetProcAddress('glXGetVisualFromFBConfig');
15055       glXCreateWindow := dglGetProcAddress('glXCreateWindow');
15056       glXDestroyWindow := dglGetProcAddress('glXDestroyWindow');
15057       glXCreatePixmap := dglGetProcAddress('glXCreatePixmap');
15058
15059       glXDestroyPixmap := dglGetProcAddress('glXDestroyPixmap');
15060       glXCreatePbuffer := dglGetProcAddress('glXCreatePbuffer');
15061       glXDestroyPbuffer := dglGetProcAddress('glXDestroyPbuffer');
15062       glXQueryDrawable := dglGetProcAddress('glXQueryDrawable');
15063       glXCreateNewContext := dglGetProcAddress('glXCreateNewContext');
15064       glXMakeContextCurrent := dglGetProcAddress('glXMakeContextCurrent');
15065       glXGetCurrentReadDrawable := dglGetProcAddress('glXGetCurrentReadDrawable');
15066       glXGetCurreentDisplay := dglGetProcAddress('glXGetCurreentDisplay');
15067
15068       glXQueryContext := dglGetProcAddress('glXQueryContext');
15069       glXSelectEvent := dglGetProcAddress('glXSelectEvent');
15070       glXGetSelectedEvent := dglGetProcAddress('glXGetSelectedEvent');
15071
15072       // GLX_ARB_create_context
15073       glXCreateContextAttribsARB := dglGetProcAddress('glXCreateContextAttribsARB');
15074
15075       // GLX_EXT_import_context
15076       glXGetCurrentDisplayEXT := dglGetProcAddress('glXGetCurrentDisplayEXT');
15077       glXQueryContextInfoEXT := dglGetProcAddress('glXQueryContextInfoEXT');
15078       glXGetContextIDEXT := dglGetProcAddress('glXGetContextIDEXT');
15079       glXImportContextEXT := dglGetProcAddress('glXImportContextEXT');
15080       glXFreeContextEXT := dglGetProcAddress('glXFreeContextEXT');
15081       
15082       // GLX_EXT_texture_from_pixmap
15083       glXBindTexImageEXT := dglGetProcAddress('glXBindTexImageEXT');
15084       glXReleaseTexImageEXT := dglGetProcAddress('glXReleaseTexImageEXT');
15085     {$ENDIF}
15086
15087     Result := True;
15088   end;
15089
15090   // load GLU functions
15091   if GLU_LibHandle <> nil then begin
15092     // GLU ========================================================================
15093     gluBeginCurve := dglGetProcAddress('gluBeginCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15094     gluBeginPolygon := dglGetProcAddress('gluBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15095     gluBeginSurface := dglGetProcAddress('gluBeginSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15096     gluBeginTrim := dglGetProcAddress('gluBeginTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15097     gluBuild1DMipmaps := dglGetProcAddress('gluBuild1DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15098     gluBuild2DMipmaps := dglGetProcAddress('gluBuild2DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15099     gluCylinder := dglGetProcAddress('gluCylinder', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15100     gluDeleteNurbsRenderer := dglGetProcAddress('gluDeleteNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15101     gluDeleteQuadric := dglGetProcAddress('gluDeleteQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15102     gluDeleteTess := dglGetProcAddress('gluDeleteTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15103     gluDisk := dglGetProcAddress('gluDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15104     gluEndCurve := dglGetProcAddress('gluEndCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15105     gluEndPolygon := dglGetProcAddress('gluEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15106     gluEndSurface := dglGetProcAddress('gluEndSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15107     gluEndTrim := dglGetProcAddress('gluEndTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15108     gluErrorString := dglGetProcAddress('gluErrorString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15109     gluGetNurbsProperty := dglGetProcAddress('gluGetNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15110     gluGetString := dglGetProcAddress('gluGetString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15111     gluGetTessProperty := dglGetProcAddress('gluGetTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15112     gluLoadSamplingMatrices := dglGetProcAddress('gluLoadSamplingMatrices', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15113     gluLookAt := dglGetProcAddress('gluLookAt', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15114     gluNewNurbsRenderer := dglGetProcAddress('gluNewNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15115     gluNewQuadric := dglGetProcAddress('gluNewQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15116     gluNewTess := dglGetProcAddress('gluNewTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15117     gluNextContour := dglGetProcAddress('gluNextContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15118     gluNurbsCallback := dglGetProcAddress('gluNurbsCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15119     gluNurbsCurve := dglGetProcAddress('gluNurbsCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15120     gluNurbsProperty := dglGetProcAddress('gluNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15121     gluNurbsSurface := dglGetProcAddress('gluNurbsSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15122     gluOrtho2D := dglGetProcAddress('gluOrtho2D', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15123     gluPartialDisk := dglGetProcAddress('gluPartialDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15124     gluPerspective := dglGetProcAddress('gluPerspective', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15125     gluPickMatrix := dglGetProcAddress('gluPickMatrix', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15126     gluProject := dglGetProcAddress('gluProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15127     gluPwlCurve := dglGetProcAddress('gluPwlCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15128     gluQuadricCallback := dglGetProcAddress('gluQuadricCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15129     gluQuadricDrawStyle := dglGetProcAddress('gluQuadricDrawStyle', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15130     gluQuadricNormals := dglGetProcAddress('gluQuadricNormals', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15131     gluQuadricOrientation := dglGetProcAddress('gluQuadricOrientation', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15132     gluQuadricTexture := dglGetProcAddress('gluQuadricTexture', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15133     gluScaleImage := dglGetProcAddress('gluScaleImage', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15134     gluSphere := dglGetProcAddress('gluSphere', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15135     gluTessBeginContour := dglGetProcAddress('gluTessBeginContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15136     gluTessBeginPolygon := dglGetProcAddress('gluTessBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15137     gluTessCallback := dglGetProcAddress('gluTessCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15138     gluTessEndContour := dglGetProcAddress('gluTessEndContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15139     gluTessEndPolygon := dglGetProcAddress('gluTessEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15140     gluTessNormal := dglGetProcAddress('gluTessNormal', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15141     gluTessProperty := dglGetProcAddress('gluTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15142     gluTessVertex := dglGetProcAddress('gluTessVertex', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15143     gluUnProject := dglGetProcAddress('gluUnProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15144   end;
15145 end;
15146
15147 procedure ReadOpenGLCore;
15148 begin
15149   // GL_VERSION_1_0
15150   glCullFace := dglGetProcAddress('glCullFace');
15151   glFrontFace := dglGetProcAddress('glFrontFace');
15152   glHint := dglGetProcAddress('glHint');
15153   glLineWidth := dglGetProcAddress('glLineWidth');
15154   glPointSize := dglGetProcAddress('glPointSize');
15155   glPolygonMode := dglGetProcAddress('glPolygonMode');
15156   glScissor := dglGetProcAddress('glScissor');
15157   glTexParameterf := dglGetProcAddress('glTexParameterf');
15158   glTexParameterfv := dglGetProcAddress('glTexParameterfv');
15159   glTexParameteri := dglGetProcAddress('glTexParameteri');
15160   glTexParameteriv := dglGetProcAddress('glTexParameteriv');
15161   glTexImage1D := dglGetProcAddress('glTexImage1D');
15162   glTexImage2D := dglGetProcAddress('glTexImage2D');
15163   glDrawBuffer := dglGetProcAddress('glDrawBuffer');
15164   glClear := dglGetProcAddress('glClear');
15165   glClearColor := dglGetProcAddress('glClearColor');
15166   glClearStencil := dglGetProcAddress('glClearStencil');
15167   glClearDepth := dglGetProcAddress('glClearDepth');
15168   glStencilMask := dglGetProcAddress('glStencilMask');
15169   glColorMask := dglGetProcAddress('glColorMask');
15170   glDepthMask := dglGetProcAddress('glDepthMask');
15171   glDisable := dglGetProcAddress('glDisable');
15172   glEnable := dglGetProcAddress('glEnable');
15173   glFinish := dglGetProcAddress('glFinish');
15174   glFlush := dglGetProcAddress('glFlush');
15175   glBlendFunc := dglGetProcAddress('glBlendFunc');
15176   glLogicOp := dglGetProcAddress('glLogicOp');
15177   glStencilFunc := dglGetProcAddress('glStencilFunc');
15178   glStencilOp := dglGetProcAddress('glStencilOp');
15179   glDepthFunc := dglGetProcAddress('glDepthFunc');
15180   glPixelStoref := dglGetProcAddress('glPixelStoref');
15181   glPixelStorei := dglGetProcAddress('glPixelStorei');
15182   glReadBuffer := dglGetProcAddress('glReadBuffer');
15183   glReadPixels := dglGetProcAddress('glReadPixels');
15184   glGetBooleanv := dglGetProcAddress('glGetBooleanv');
15185   glGetDoublev := dglGetProcAddress('glGetDoublev');
15186   glGetError := dglGetProcAddress('glGetError');
15187   glGetFloatv := dglGetProcAddress('glGetFloatv');
15188   glGetIntegerv := dglGetProcAddress('glGetIntegerv');
15189   glGetString := dglGetProcAddress('glGetString');
15190   glGetTexImage := dglGetProcAddress('glGetTexImage');
15191   glGetTexParameteriv := dglGetProcAddress('glGetTexParameteriv');
15192   glGetTexParameterfv := dglGetProcAddress('glGetTexParameterfv');
15193   glGetTexLevelParameterfv := dglGetProcAddress('glGetTexLevelParameterfv');
15194   glGetTexLevelParameteriv := dglGetProcAddress('glGetTexLevelParameteriv');
15195   glIsEnabled := dglGetProcAddress('glIsEnabled');
15196   glDepthRange := dglGetProcAddress('glDepthRange');
15197   glViewport := dglGetProcAddress('glViewport');
15198
15199   // GL_VERSION_1_1
15200   glDrawArrays := dglGetProcAddress('glDrawArrays');
15201   glDrawElements := dglGetProcAddress('glDrawElements');
15202   glGetPointerv := dglGetProcAddress('glGetPointerv');
15203   glPolygonOffset := dglGetProcAddress('glPolygonOffset');
15204   glCopyTexImage1D := dglGetProcAddress('glCopyTexImage1D');
15205   glCopyTexImage2D := dglGetProcAddress('glCopyTexImage2D');
15206   glCopyTexSubImage1D := dglGetProcAddress('glCopyTexSubImage1D');
15207   glCopyTexSubImage2D := dglGetProcAddress('glCopyTexSubImage2D');
15208   glTexSubImage1D := dglGetProcAddress('glTexSubImage1D');
15209   glTexSubImage2D := dglGetProcAddress('glTexSubImage2D');
15210   glBindTexture := dglGetProcAddress('glBindTexture');
15211   glDeleteTextures := dglGetProcAddress('glDeleteTextures');
15212   glGenTextures := dglGetProcAddress('glGenTextures');
15213
15214 {$ifdef DGL_DEPRECATED}
15215   glAccum := dglGetProcAddress('glAccum');
15216   glAlphaFunc := dglGetProcAddress('glAlphaFunc');
15217   glAreTexturesResident := dglGetProcAddress('glAreTexturesResident');
15218   glArrayElement := dglGetProcAddress('glArrayElement');
15219   glBegin := dglGetProcAddress('glBegin');
15220   glBitmap := dglGetProcAddress('glBitmap');
15221   glCallList := dglGetProcAddress('glCallList');
15222   glCallLists := dglGetProcAddress('glCallLists');
15223   glClearAccum := dglGetProcAddress('glClearAccum');
15224   glClearIndex := dglGetProcAddress('glClearIndex');
15225   glClipPlane := dglGetProcAddress('glClipPlane');
15226   glColor3b := dglGetProcAddress('glColor3b');
15227   glColor3bv := dglGetProcAddress('glColor3bv');
15228   glColor3d := dglGetProcAddress('glColor3d');
15229   glColor3dv := dglGetProcAddress('glColor3dv');
15230   glColor3f := dglGetProcAddress('glColor3f');
15231   glColor3fv := dglGetProcAddress('glColor3fv');
15232   glColor3i := dglGetProcAddress('glColor3i');
15233   glColor3iv := dglGetProcAddress('glColor3iv');
15234   glColor3s := dglGetProcAddress('glColor3s');
15235   glColor3sv := dglGetProcAddress('glColor3sv');
15236   glColor3ub := dglGetProcAddress('glColor3ub');
15237   glColor3ubv := dglGetProcAddress('glColor3ubv');
15238   glColor3ui := dglGetProcAddress('glColor3ui');
15239   glColor3uiv := dglGetProcAddress('glColor3uiv');
15240   glColor3us := dglGetProcAddress('glColor3us');
15241   glColor3usv := dglGetProcAddress('glColor3usv');
15242   glColor4b := dglGetProcAddress('glColor4b');
15243   glColor4bv := dglGetProcAddress('glColor4bv');
15244   glColor4d := dglGetProcAddress('glColor4d');
15245   glColor4dv := dglGetProcAddress('glColor4dv');
15246   glColor4f := dglGetProcAddress('glColor4f');
15247   glColor4fv := dglGetProcAddress('glColor4fv');
15248   glColor4i := dglGetProcAddress('glColor4i');
15249   glColor4iv := dglGetProcAddress('glColor4iv');
15250   glColor4s := dglGetProcAddress('glColor4s');
15251   glColor4sv := dglGetProcAddress('glColor4sv');
15252   glColor4ub := dglGetProcAddress('glColor4ub');
15253   glColor4ubv := dglGetProcAddress('glColor4ubv');
15254   glColor4ui := dglGetProcAddress('glColor4ui');
15255   glColor4uiv := dglGetProcAddress('glColor4uiv');
15256   glColor4us := dglGetProcAddress('glColor4us');
15257   glColor4usv := dglGetProcAddress('glColor4usv');
15258   glColorMaterial := dglGetProcAddress('glColorMaterial');
15259   glColorPointer := dglGetProcAddress('glColorPointer');
15260   glCopyPixels := dglGetProcAddress('glCopyPixels');
15261   glDeleteLists := dglGetProcAddress('glDeleteLists');
15262   glDisableClientState := dglGetProcAddress('glDisableClientState');
15263   glDrawPixels := dglGetProcAddress('glDrawPixels');
15264   glEdgeFlag := dglGetProcAddress('glEdgeFlag');
15265   glEdgeFlagPointer := dglGetProcAddress('glEdgeFlagPointer');
15266   glEdgeFlagv := dglGetProcAddress('glEdgeFlagv');
15267   glEnableClientState := dglGetProcAddress('glEnableClientState');
15268   glEnd := dglGetProcAddress('glEnd');
15269   glEndList := dglGetProcAddress('glEndList');
15270   glEvalCoord1d := dglGetProcAddress('glEvalCoord1d');
15271   glEvalCoord1dv := dglGetProcAddress('glEvalCoord1dv');
15272   glEvalCoord1f := dglGetProcAddress('glEvalCoord1f');
15273   glEvalCoord1fv := dglGetProcAddress('glEvalCoord1fv');
15274   glEvalCoord2d := dglGetProcAddress('glEvalCoord2d');
15275   glEvalCoord2dv := dglGetProcAddress('glEvalCoord2dv');
15276   glEvalCoord2f := dglGetProcAddress('glEvalCoord2f');
15277   glEvalCoord2fv := dglGetProcAddress('glEvalCoord2fv');
15278   glEvalMesh1 := dglGetProcAddress('glEvalMesh1');
15279   glEvalMesh2 := dglGetProcAddress('glEvalMesh2');
15280   glEvalPoint1 := dglGetProcAddress('glEvalPoint1');
15281   glEvalPoint2 := dglGetProcAddress('glEvalPoint2');
15282   glFeedbackBuffer := dglGetProcAddress('glFeedbackBuffer');
15283   glFogf := dglGetProcAddress('glFogf');
15284   glFogfv := dglGetProcAddress('glFogfv');
15285   glFogi := dglGetProcAddress('glFogi');
15286   glFogiv := dglGetProcAddress('glFogiv');
15287   glFrustum := dglGetProcAddress('glFrustum');
15288   glGenLists := dglGetProcAddress('glGenLists');
15289   glGetClipPlane := dglGetProcAddress('glGetClipPlane');
15290   glGetLightfv := dglGetProcAddress('glGetLightfv');
15291   glGetLightiv := dglGetProcAddress('glGetLightiv');
15292   glGetMapdv := dglGetProcAddress('glGetMapdv');
15293   glGetMapfv := dglGetProcAddress('glGetMapfv');
15294   glGetMapiv := dglGetProcAddress('glGetMapiv');
15295   glGetMaterialfv := dglGetProcAddress('glGetMaterialfv');
15296   glGetMaterialiv := dglGetProcAddress('glGetMaterialiv');
15297   glGetPixelMapfv := dglGetProcAddress('glGetPixelMapfv');
15298   glGetPixelMapuiv := dglGetProcAddress('glGetPixelMapuiv');
15299   glGetPixelMapusv := dglGetProcAddress('glGetPixelMapusv');
15300   glGetPolygonStipple := dglGetProcAddress('glGetPolygonStipple');
15301   glGetTexEnvfv := dglGetProcAddress('glGetTexEnvfv');
15302   glGetTexEnviv := dglGetProcAddress('glGetTexEnviv');
15303   glGetTexGendv := dglGetProcAddress('glGetTexGendv');
15304   glGetTexGenfv := dglGetProcAddress('glGetTexGenfv');
15305   glGetTexGeniv := dglGetProcAddress('glGetTexGeniv');
15306   glIndexMask := dglGetProcAddress('glIndexMask');
15307   glIndexPointer := dglGetProcAddress('glIndexPointer');
15308   glIndexd := dglGetProcAddress('glIndexd');
15309   glIndexdv := dglGetProcAddress('glIndexdv');
15310   glIndexf := dglGetProcAddress('glIndexf');
15311   glIndexfv := dglGetProcAddress('glIndexfv');
15312   glIndexi := dglGetProcAddress('glIndexi');
15313   glIndexiv := dglGetProcAddress('glIndexiv');
15314   glIndexs := dglGetProcAddress('glIndexs');
15315   glIndexsv := dglGetProcAddress('glIndexsv');
15316   glIndexub := dglGetProcAddress('glIndexub');
15317   glIndexubv := dglGetProcAddress('glIndexubv');
15318   glInitNames := dglGetProcAddress('glInitNames');
15319   glInterleavedArrays := dglGetProcAddress('glInterleavedArrays');
15320   glIsList := dglGetProcAddress('glIsList');
15321   glIsTexture := dglGetProcAddress('glIsTexture');
15322   glLightModelf := dglGetProcAddress('glLightModelf');
15323   glLightModelfv := dglGetProcAddress('glLightModelfv');
15324   glLightModeli := dglGetProcAddress('glLightModeli');
15325   glLightModeliv := dglGetProcAddress('glLightModeliv');
15326   glLightf := dglGetProcAddress('glLightf');
15327   glLightfv := dglGetProcAddress('glLightfv');
15328   glLighti := dglGetProcAddress('glLighti');
15329   glLightiv := dglGetProcAddress('glLightiv');
15330   glLineStipple := dglGetProcAddress('glLineStipple');
15331   glListBase := dglGetProcAddress('glListBase');
15332   glLoadIdentity := dglGetProcAddress('glLoadIdentity');
15333   glLoadMatrixd := dglGetProcAddress('glLoadMatrixd');
15334   glLoadMatrixf := dglGetProcAddress('glLoadMatrixf');
15335   glLoadName := dglGetProcAddress('glLoadName');
15336   glMap1d := dglGetProcAddress('glMap1d');
15337   glMap1f := dglGetProcAddress('glMap1f');
15338   glMap2d := dglGetProcAddress('glMap2d');
15339   glMap2f := dglGetProcAddress('glMap2f');
15340   glMapGrid1d := dglGetProcAddress('glMapGrid1d');
15341   glMapGrid1f := dglGetProcAddress('glMapGrid1f');
15342   glMapGrid2d := dglGetProcAddress('glMapGrid2d');
15343   glMapGrid2f := dglGetProcAddress('glMapGrid2f');
15344   glMaterialf := dglGetProcAddress('glMaterialf');
15345   glMaterialfv := dglGetProcAddress('glMaterialfv');
15346   glMateriali := dglGetProcAddress('glMateriali');
15347   glMaterialiv := dglGetProcAddress('glMaterialiv');
15348   glMatrixMode := dglGetProcAddress('glMatrixMode');
15349   glMultMatrixd := dglGetProcAddress('glMultMatrixd');
15350   glMultMatrixf := dglGetProcAddress('glMultMatrixf');
15351   glNewList := dglGetProcAddress('glNewList');
15352   glNormal3b := dglGetProcAddress('glNormal3b');
15353   glNormal3bv := dglGetProcAddress('glNormal3bv');
15354   glNormal3d := dglGetProcAddress('glNormal3d');
15355   glNormal3dv := dglGetProcAddress('glNormal3dv');
15356   glNormal3f := dglGetProcAddress('glNormal3f');
15357   glNormal3fv := dglGetProcAddress('glNormal3fv');
15358   glNormal3i := dglGetProcAddress('glNormal3i');
15359   glNormal3iv := dglGetProcAddress('glNormal3iv');
15360   glNormal3s := dglGetProcAddress('glNormal3s');
15361   glNormal3sv := dglGetProcAddress('glNormal3sv');
15362   glNormalPointer := dglGetProcAddress('glNormalPointer');
15363   glOrtho := dglGetProcAddress('glOrtho');
15364   glPassThrough := dglGetProcAddress('glPassThrough');
15365   glPixelMapfv := dglGetProcAddress('glPixelMapfv');
15366   glPixelMapuiv := dglGetProcAddress('glPixelMapuiv');
15367   glPixelMapusv := dglGetProcAddress('glPixelMapusv');
15368   glPixelTransferf := dglGetProcAddress('glPixelTransferf');
15369   glPixelTransferi := dglGetProcAddress('glPixelTransferi');
15370   glPixelZoom := dglGetProcAddress('glPixelZoom');
15371   glPolygonStipple := dglGetProcAddress('glPolygonStipple');
15372   glPopAttrib := dglGetProcAddress('glPopAttrib');
15373   glPopClientAttrib := dglGetProcAddress('glPopClientAttrib');
15374   glPopMatrix := dglGetProcAddress('glPopMatrix');
15375   glPopName := dglGetProcAddress('glPopName');
15376   glPrioritizeTextures := dglGetProcAddress('glPrioritizeTextures');
15377   glPushAttrib := dglGetProcAddress('glPushAttrib');
15378   glPushClientAttrib := dglGetProcAddress('glPushClientAttrib');
15379   glPushMatrix := dglGetProcAddress('glPushMatrix');
15380   glPushName := dglGetProcAddress('glPushName');
15381   glRasterPos2d := dglGetProcAddress('glRasterPos2d');
15382   glRasterPos2dv := dglGetProcAddress('glRasterPos2dv');
15383   glRasterPos2f := dglGetProcAddress('glRasterPos2f');
15384   glRasterPos2fv := dglGetProcAddress('glRasterPos2fv');
15385   glRasterPos2i := dglGetProcAddress('glRasterPos2i');
15386   glRasterPos2iv := dglGetProcAddress('glRasterPos2iv');
15387   glRasterPos2s := dglGetProcAddress('glRasterPos2s');
15388   glRasterPos2sv := dglGetProcAddress('glRasterPos2sv');
15389   glRasterPos3d := dglGetProcAddress('glRasterPos3d');
15390   glRasterPos3dv := dglGetProcAddress('glRasterPos3dv');
15391   glRasterPos3f := dglGetProcAddress('glRasterPos3f');
15392   glRasterPos3fv := dglGetProcAddress('glRasterPos3fv');
15393   glRasterPos3i := dglGetProcAddress('glRasterPos3i');
15394   glRasterPos3iv := dglGetProcAddress('glRasterPos3iv');
15395   glRasterPos3s := dglGetProcAddress('glRasterPos3s');
15396   glRasterPos3sv := dglGetProcAddress('glRasterPos3sv');
15397   glRasterPos4d := dglGetProcAddress('glRasterPos4d');
15398   glRasterPos4dv := dglGetProcAddress('glRasterPos4dv');
15399   glRasterPos4f := dglGetProcAddress('glRasterPos4f');
15400   glRasterPos4fv := dglGetProcAddress('glRasterPos4fv');
15401   glRasterPos4i := dglGetProcAddress('glRasterPos4i');
15402   glRasterPos4iv := dglGetProcAddress('glRasterPos4iv');
15403   glRasterPos4s := dglGetProcAddress('glRasterPos4s');
15404   glRasterPos4sv := dglGetProcAddress('glRasterPos4sv');
15405   glRectd := dglGetProcAddress('glRectd');
15406   glRectdv := dglGetProcAddress('glRectdv');
15407   glRectf := dglGetProcAddress('glRectf');
15408   glRectfv := dglGetProcAddress('glRectfv');
15409   glRecti := dglGetProcAddress('glRecti');
15410   glRectiv := dglGetProcAddress('glRectiv');
15411   glRects := dglGetProcAddress('glRects');
15412   glRectsv := dglGetProcAddress('glRectsv');
15413   glRenderMode := dglGetProcAddress('glRenderMode');
15414   glRotated := dglGetProcAddress('glRotated');
15415   glRotatef := dglGetProcAddress('glRotatef');
15416   glScaled := dglGetProcAddress('glScaled');
15417   glScalef := dglGetProcAddress('glScalef');
15418   glSelectBuffer := dglGetProcAddress('glSelectBuffer');
15419   glShadeModel := dglGetProcAddress('glShadeModel');
15420   glTexCoord1d := dglGetProcAddress('glTexCoord1d');
15421   glTexCoord1dv := dglGetProcAddress('glTexCoord1dv');
15422   glTexCoord1f := dglGetProcAddress('glTexCoord1f');
15423   glTexCoord1fv := dglGetProcAddress('glTexCoord1fv');
15424   glTexCoord1i := dglGetProcAddress('glTexCoord1i');
15425   glTexCoord1iv := dglGetProcAddress('glTexCoord1iv');
15426   glTexCoord1s := dglGetProcAddress('glTexCoord1s');
15427   glTexCoord1sv := dglGetProcAddress('glTexCoord1sv');
15428   glTexCoord2d := dglGetProcAddress('glTexCoord2d');
15429   glTexCoord2dv := dglGetProcAddress('glTexCoord2dv');
15430   glTexCoord2f := dglGetProcAddress('glTexCoord2f');
15431   glTexCoord2fv := dglGetProcAddress('glTexCoord2fv');
15432   glTexCoord2i := dglGetProcAddress('glTexCoord2i');
15433   glTexCoord2iv := dglGetProcAddress('glTexCoord2iv');
15434   glTexCoord2s := dglGetProcAddress('glTexCoord2s');
15435   glTexCoord2sv := dglGetProcAddress('glTexCoord2sv');
15436   glTexCoord3d := dglGetProcAddress('glTexCoord3d');
15437   glTexCoord3dv := dglGetProcAddress('glTexCoord3dv');
15438   glTexCoord3f := dglGetProcAddress('glTexCoord3f');
15439   glTexCoord3fv := dglGetProcAddress('glTexCoord3fv');
15440   glTexCoord3i := dglGetProcAddress('glTexCoord3i');
15441   glTexCoord3iv := dglGetProcAddress('glTexCoord3iv');
15442   glTexCoord3s := dglGetProcAddress('glTexCoord3s');
15443   glTexCoord3sv := dglGetProcAddress('glTexCoord3sv');
15444   glTexCoord4d := dglGetProcAddress('glTexCoord4d');
15445   glTexCoord4dv := dglGetProcAddress('glTexCoord4dv');
15446   glTexCoord4f := dglGetProcAddress('glTexCoord4f');
15447   glTexCoord4fv := dglGetProcAddress('glTexCoord4fv');
15448   glTexCoord4i := dglGetProcAddress('glTexCoord4i');
15449   glTexCoord4iv := dglGetProcAddress('glTexCoord4iv');
15450   glTexCoord4s := dglGetProcAddress('glTexCoord4s');
15451   glTexCoord4sv := dglGetProcAddress('glTexCoord4sv');
15452   glTexCoordPointer := dglGetProcAddress('glTexCoordPointer');
15453   glTexEnvf := dglGetProcAddress('glTexEnvf');
15454   glTexEnvfv := dglGetProcAddress('glTexEnvfv');
15455   glTexEnvi := dglGetProcAddress('glTexEnvi');
15456   glTexEnviv := dglGetProcAddress('glTexEnviv');
15457   glTexGend := dglGetProcAddress('glTexGend');
15458   glTexGendv := dglGetProcAddress('glTexGendv');
15459   glTexGenf := dglGetProcAddress('glTexGenf');
15460   glTexGenfv := dglGetProcAddress('glTexGenfv');
15461   glTexGeni := dglGetProcAddress('glTexGeni');
15462   glTexGeniv := dglGetProcAddress('glTexGeniv');
15463   glTranslated := dglGetProcAddress('glTranslated');
15464   glTranslatef := dglGetProcAddress('glTranslatef');
15465   glVertex2d := dglGetProcAddress('glVertex2d');
15466   glVertex2dv := dglGetProcAddress('glVertex2dv');
15467   glVertex2f := dglGetProcAddress('glVertex2f');
15468   glVertex2fv := dglGetProcAddress('glVertex2fv');
15469   glVertex2i := dglGetProcAddress('glVertex2i');
15470   glVertex2iv := dglGetProcAddress('glVertex2iv');
15471   glVertex2s := dglGetProcAddress('glVertex2s');
15472   glVertex2sv := dglGetProcAddress('glVertex2sv');
15473   glVertex3d := dglGetProcAddress('glVertex3d');
15474   glVertex3dv := dglGetProcAddress('glVertex3dv');
15475   glVertex3f := dglGetProcAddress('glVertex3f');
15476   glVertex3fv := dglGetProcAddress('glVertex3fv');
15477   glVertex3i := dglGetProcAddress('glVertex3i');
15478   glVertex3iv := dglGetProcAddress('glVertex3iv');
15479   glVertex3s := dglGetProcAddress('glVertex3s');
15480   glVertex3sv := dglGetProcAddress('glVertex3sv');
15481   glVertex4d := dglGetProcAddress('glVertex4d');
15482   glVertex4dv := dglGetProcAddress('glVertex4dv');
15483   glVertex4f := dglGetProcAddress('glVertex4f');
15484   glVertex4fv := dglGetProcAddress('glVertex4fv');
15485   glVertex4i := dglGetProcAddress('glVertex4i');
15486   glVertex4iv := dglGetProcAddress('glVertex4iv');
15487   glVertex4s := dglGetProcAddress('glVertex4s');
15488   glVertex4sv := dglGetProcAddress('glVertex4sv');
15489   glVertexPointer := dglGetProcAddress('glVertexPointer');
15490 {$endif}
15491
15492   // GL_VERSION_1_2
15493   glBlendColor := dglGetProcAddress('glBlendColor');
15494   glBlendEquation := dglGetProcAddress('glBlendEquation');
15495   glDrawRangeElements := dglGetProcAddress('glDrawRangeElements');
15496   glTexImage3D := dglGetProcAddress('glTexImage3D');
15497   glTexSubImage3D := dglGetProcAddress('glTexSubImage3D');
15498   glCopyTexSubImage3D := dglGetProcAddress('glCopyTexSubImage3D');
15499 {$ifdef DGL_DEPRECATED}
15500   glColorTable := dglGetProcAddress('glColorTable');
15501   glColorTableParameterfv := dglGetProcAddress('glColorTableParameterfv');
15502   glColorTableParameteriv := dglGetProcAddress('glColorTableParameteriv');
15503   glCopyColorTable := dglGetProcAddress('glCopyColorTable');
15504   glGetColorTable := dglGetProcAddress('glGetColorTable');
15505   glGetColorTableParameterfv := dglGetProcAddress('glGetColorTableParameterfv');
15506   glGetColorTableParameteriv := dglGetProcAddress('glGetColorTableParameteriv');
15507   glColorSubTable := dglGetProcAddress('glColorSubTable');
15508   glCopyColorSubTable := dglGetProcAddress('glCopyColorSubTable');
15509   glConvolutionFilter1D := dglGetProcAddress('glConvolutionFilter1D');
15510   glConvolutionFilter2D := dglGetProcAddress('glConvolutionFilter2D');
15511   glConvolutionParameterf := dglGetProcAddress('glConvolutionParameterf');
15512   glConvolutionParameterfv := dglGetProcAddress('glConvolutionParameterfv');
15513   glConvolutionParameteri := dglGetProcAddress('glConvolutionParameteri');
15514   glConvolutionParameteriv := dglGetProcAddress('glConvolutionParameteriv');
15515   glCopyConvolutionFilter1D := dglGetProcAddress('glCopyConvolutionFilter1D');
15516   glCopyConvolutionFilter2D := dglGetProcAddress('glCopyConvolutionFilter2D');
15517   glGetConvolutionFilter := dglGetProcAddress('glGetConvolutionFilter');
15518   glGetConvolutionParameterfv := dglGetProcAddress('glGetConvolutionParameterfv');
15519   glGetConvolutionParameteriv := dglGetProcAddress('glGetConvolutionParameteriv');
15520   glGetSeparableFilter := dglGetProcAddress('glGetSeparableFilter');
15521   glSeparableFilter2D := dglGetProcAddress('glSeparableFilter2D');
15522   glGetHistogram := dglGetProcAddress('glGetHistogram');
15523   glGetHistogramParameterfv := dglGetProcAddress('glGetHistogramParameterfv');
15524   glGetHistogramParameteriv := dglGetProcAddress('glGetHistogramParameteriv');
15525   glGetMinmax := dglGetProcAddress('glGetMinmax');
15526   glGetMinmaxParameterfv := dglGetProcAddress('glGetMinmaxParameterfv');
15527   glGetMinmaxParameteriv := dglGetProcAddress('glGetMinmaxParameteriv');
15528   glHistogram := dglGetProcAddress('glHistogram');
15529   glMinmax := dglGetProcAddress('glMinmax');
15530   glResetHistogram := dglGetProcAddress('glResetHistogram');
15531   glResetMinmax := dglGetProcAddress('glResetMinmax');
15532 {$endif}
15533
15534   // GL_VERSION_1_3
15535   glActiveTexture := dglGetProcAddress('glActiveTexture');
15536   glSampleCoverage := dglGetProcAddress('glSampleCoverage');
15537   glCompressedTexImage3D := dglGetProcAddress('glCompressedTexImage3D');
15538   glCompressedTexImage2D := dglGetProcAddress('glCompressedTexImage2D');
15539   glCompressedTexImage1D := dglGetProcAddress('glCompressedTexImage1D');
15540   glCompressedTexSubImage3D := dglGetProcAddress('glCompressedTexSubImage3D');
15541   glCompressedTexSubImage2D := dglGetProcAddress('glCompressedTexSubImage2D');
15542   glCompressedTexSubImage1D := dglGetProcAddress('glCompressedTexSubImage1D');
15543   glGetCompressedTexImage := dglGetProcAddress('glGetCompressedTexImage');
15544 {$ifdef DGL_DEPRECATED}
15545   glClientActiveTexture := dglGetProcAddress('glClientActiveTexture');
15546   glMultiTexCoord1d := dglGetProcAddress('glMultiTexCoord1d');
15547   glMultiTexCoord1dv := dglGetProcAddress('glMultiTexCoord1dv');
15548   glMultiTexCoord1f := dglGetProcAddress('glMultiTexCoord1f');
15549   glMultiTexCoord1fv := dglGetProcAddress('glMultiTexCoord1fv');
15550   glMultiTexCoord1i := dglGetProcAddress('glMultiTexCoord1i');
15551   glMultiTexCoord1iv := dglGetProcAddress('glMultiTexCoord1iv');
15552   glMultiTexCoord1s := dglGetProcAddress('glMultiTexCoord1s');
15553   glMultiTexCoord1sv := dglGetProcAddress('glMultiTexCoord1sv');
15554   glMultiTexCoord2d := dglGetProcAddress('glMultiTexCoord2d');
15555   glMultiTexCoord2dv := dglGetProcAddress('glMultiTexCoord2dv');
15556   glMultiTexCoord2f := dglGetProcAddress('glMultiTexCoord2f');
15557   glMultiTexCoord2fv := dglGetProcAddress('glMultiTexCoord2fv');
15558   glMultiTexCoord2i := dglGetProcAddress('glMultiTexCoord2i');
15559   glMultiTexCoord2iv := dglGetProcAddress('glMultiTexCoord2iv');
15560   glMultiTexCoord2s := dglGetProcAddress('glMultiTexCoord2s');
15561   glMultiTexCoord2sv := dglGetProcAddress('glMultiTexCoord2sv');
15562   glMultiTexCoord3d := dglGetProcAddress('glMultiTexCoord3d');
15563   glMultiTexCoord3dv := dglGetProcAddress('glMultiTexCoord3dv');
15564   glMultiTexCoord3f := dglGetProcAddress('glMultiTexCoord3f');
15565   glMultiTexCoord3fv := dglGetProcAddress('glMultiTexCoord3fv');
15566   glMultiTexCoord3i := dglGetProcAddress('glMultiTexCoord3i');
15567   glMultiTexCoord3iv := dglGetProcAddress('glMultiTexCoord3iv');
15568   glMultiTexCoord3s := dglGetProcAddress('glMultiTexCoord3s');
15569   glMultiTexCoord3sv := dglGetProcAddress('glMultiTexCoord3sv');
15570   glMultiTexCoord4d := dglGetProcAddress('glMultiTexCoord4d');
15571   glMultiTexCoord4dv := dglGetProcAddress('glMultiTexCoord4dv');
15572   glMultiTexCoord4f := dglGetProcAddress('glMultiTexCoord4f');
15573   glMultiTexCoord4fv := dglGetProcAddress('glMultiTexCoord4fv');
15574   glMultiTexCoord4i := dglGetProcAddress('glMultiTexCoord4i');
15575   glMultiTexCoord4iv := dglGetProcAddress('glMultiTexCoord4iv');
15576   glMultiTexCoord4s := dglGetProcAddress('glMultiTexCoord4s');
15577   glMultiTexCoord4sv := dglGetProcAddress('glMultiTexCoord4sv');
15578   glLoadTransposeMatrixf := dglGetProcAddress('glLoadTransposeMatrixf');
15579   glLoadTransposeMatrixd := dglGetProcAddress('glLoadTransposeMatrixd');
15580   glMultTransposeMatrixf := dglGetProcAddress('glMultTransposeMatrixf');
15581   glMultTransposeMatrixd := dglGetProcAddress('glMultTransposeMatrixd');
15582 {$endif}
15583
15584   // GL_VERSION_1_4
15585   glBlendFuncSeparate := dglGetProcAddress('glBlendFuncSeparate');
15586   glMultiDrawArrays := dglGetProcAddress('glMultiDrawArrays');
15587   glMultiDrawElements := dglGetProcAddress('glMultiDrawElements');
15588   glPointParameterf := dglGetProcAddress('glPointParameterf');
15589   glPointParameterfv := dglGetProcAddress('glPointParameterfv');
15590   glPointParameteri := dglGetProcAddress('glPointParameteri');
15591   glPointParameteriv := dglGetProcAddress('glPointParameteriv');
15592 {$ifdef DGL_DEPRECATED}
15593   glFogCoordf := dglGetProcAddress('glFogCoordf');
15594   glFogCoordfv := dglGetProcAddress('glFogCoordfv');
15595   glFogCoordd := dglGetProcAddress('glFogCoordd');
15596   glFogCoorddv := dglGetProcAddress('glFogCoorddv');
15597   glFogCoordPointer := dglGetProcAddress('glFogCoordPointer');
15598   glSecondaryColor3b := dglGetProcAddress('glSecondaryColor3b');
15599   glSecondaryColor3bv := dglGetProcAddress('glSecondaryColor3bv');
15600   glSecondaryColor3d := dglGetProcAddress('glSecondaryColor3d');
15601   glSecondaryColor3dv := dglGetProcAddress('glSecondaryColor3dv');
15602   glSecondaryColor3f := dglGetProcAddress('glSecondaryColor3f');
15603   glSecondaryColor3fv := dglGetProcAddress('glSecondaryColor3fv');
15604   glSecondaryColor3i := dglGetProcAddress('glSecondaryColor3i');
15605   glSecondaryColor3iv := dglGetProcAddress('glSecondaryColor3iv');
15606   glSecondaryColor3s := dglGetProcAddress('glSecondaryColor3s');
15607   glSecondaryColor3sv := dglGetProcAddress('glSecondaryColor3sv');
15608   glSecondaryColor3ub := dglGetProcAddress('glSecondaryColor3ub');
15609   glSecondaryColor3ubv := dglGetProcAddress('glSecondaryColor3ubv');
15610   glSecondaryColor3ui := dglGetProcAddress('glSecondaryColor3ui');
15611   glSecondaryColor3uiv := dglGetProcAddress('glSecondaryColor3uiv');
15612   glSecondaryColor3us := dglGetProcAddress('glSecondaryColor3us');
15613   glSecondaryColor3usv := dglGetProcAddress('glSecondaryColor3usv');
15614   glSecondaryColorPointer := dglGetProcAddress('glSecondaryColorPointer');
15615   glWindowPos2d := dglGetProcAddress('glWindowPos2d');
15616   glWindowPos2dv := dglGetProcAddress('glWindowPos2dv');
15617   glWindowPos2f := dglGetProcAddress('glWindowPos2f');
15618   glWindowPos2fv := dglGetProcAddress('glWindowPos2fv');
15619   glWindowPos2i := dglGetProcAddress('glWindowPos2i');
15620   glWindowPos2iv := dglGetProcAddress('glWindowPos2iv');
15621   glWindowPos2s := dglGetProcAddress('glWindowPos2s');
15622   glWindowPos2sv := dglGetProcAddress('glWindowPos2sv');
15623   glWindowPos3d := dglGetProcAddress('glWindowPos3d');
15624   glWindowPos3dv := dglGetProcAddress('glWindowPos3dv');
15625   glWindowPos3f := dglGetProcAddress('glWindowPos3f');
15626   glWindowPos3fv := dglGetProcAddress('glWindowPos3fv');
15627   glWindowPos3i := dglGetProcAddress('glWindowPos3i');
15628   glWindowPos3iv := dglGetProcAddress('glWindowPos3iv');
15629   glWindowPos3s := dglGetProcAddress('glWindowPos3s');
15630   glWindowPos3sv := dglGetProcAddress('glWindowPos3sv');
15631 {$endif}
15632
15633   // GL_VERSION_1_5
15634   glGenQueries := dglGetProcAddress('glGenQueries');
15635   glDeleteQueries := dglGetProcAddress('glDeleteQueries');
15636   glIsQuery := dglGetProcAddress('glIsQuery');
15637   glBeginQuery := dglGetProcAddress('glBeginQuery');
15638   glEndQuery := dglGetProcAddress('glEndQuery');
15639   glGetQueryiv := dglGetProcAddress('glGetQueryiv');
15640   glGetQueryObjectiv := dglGetProcAddress('glGetQueryObjectiv');
15641   glGetQueryObjectuiv := dglGetProcAddress('glGetQueryObjectuiv');
15642   glBindBuffer := dglGetProcAddress('glBindBuffer');
15643   glDeleteBuffers := dglGetProcAddress('glDeleteBuffers');
15644   glGenBuffers := dglGetProcAddress('glGenBuffers');
15645   glIsBuffer := dglGetProcAddress('glIsBuffer');
15646   glBufferData := dglGetProcAddress('glBufferData');
15647   glBufferSubData := dglGetProcAddress('glBufferSubData');
15648   glGetBufferSubData := dglGetProcAddress('glGetBufferSubData');
15649   glMapBuffer := dglGetProcAddress('glMapBuffer');
15650   glUnmapBuffer := dglGetProcAddress('glUnmapBuffer');
15651   glGetBufferParameteriv := dglGetProcAddress('glGetBufferParameteriv');
15652   glGetBufferPointerv := dglGetProcAddress('glGetBufferPointerv');
15653
15654   // GL_VERSION_2_0
15655   glBlendEquationSeparate := dglGetProcAddress('glBlendEquationSeparate');
15656   glDrawBuffers := dglGetProcAddress('glDrawBuffers');
15657   glStencilOpSeparate := dglGetProcAddress('glStencilOpSeparate');
15658   glStencilFuncSeparate := dglGetProcAddress('glStencilFuncSeparate');
15659   glStencilMaskSeparate := dglGetProcAddress('glStencilMaskSeparate');
15660   glAttachShader := dglGetProcAddress('glAttachShader');
15661   glBindAttribLocation := dglGetProcAddress('glBindAttribLocation');
15662   glCompileShader := dglGetProcAddress('glCompileShader');
15663   glCreateProgram := dglGetProcAddress('glCreateProgram');
15664   glCreateShader := dglGetProcAddress('glCreateShader');
15665   glDeleteProgram := dglGetProcAddress('glDeleteProgram');
15666   glDeleteShader := dglGetProcAddress('glDeleteShader');
15667   glDetachShader := dglGetProcAddress('glDetachShader');
15668   glDisableVertexAttribArray := dglGetProcAddress('glDisableVertexAttribArray');
15669   glEnableVertexAttribArray := dglGetProcAddress('glEnableVertexAttribArray');
15670   glGetActiveAttrib := dglGetProcAddress('glGetActiveAttrib');
15671   glGetActiveUniform := dglGetProcAddress('glGetActiveUniform');
15672   glGetAttachedShaders := dglGetProcAddress('glGetAttachedShaders');
15673   glGetAttribLocation := dglGetProcAddress('glGetAttribLocation');
15674   glGetProgramiv := dglGetProcAddress('glGetProgramiv');
15675   glGetProgramInfoLog := dglGetProcAddress('glGetProgramInfoLog');
15676   glGetShaderiv := dglGetProcAddress('glGetShaderiv');
15677   glGetShaderInfoLog := dglGetProcAddress('glGetShaderInfoLog');
15678   glGetShaderSource := dglGetProcAddress('glGetShaderSource');
15679   glGetUniformLocation := dglGetProcAddress('glGetUniformLocation');
15680   glGetUniformfv := dglGetProcAddress('glGetUniformfv');
15681   glGetUniformiv := dglGetProcAddress('glGetUniformiv');
15682   glGetVertexAttribfv := dglGetProcAddress('glGetVertexAttribfv');
15683   glGetVertexAttribiv := dglGetProcAddress('glGetVertexAttribiv');
15684   glGetVertexAttribPointerv := dglGetProcAddress('glGetVertexAttribPointerv');
15685   glIsProgram := dglGetProcAddress('glIsProgram');
15686   glIsShader := dglGetProcAddress('glIsShader');
15687   glLinkProgram := dglGetProcAddress('glLinkProgram');
15688   glShaderSource := dglGetProcAddress('glShaderSource');
15689   glUseProgram := dglGetProcAddress('glUseProgram');
15690   glUniform1f := dglGetProcAddress('glUniform1f');
15691   glUniform2f := dglGetProcAddress('glUniform2f');
15692   glUniform3f := dglGetProcAddress('glUniform3f');
15693   glUniform4f := dglGetProcAddress('glUniform4f');
15694   glUniform1i := dglGetProcAddress('glUniform1i');
15695   glUniform2i := dglGetProcAddress('glUniform2i');
15696   glUniform3i := dglGetProcAddress('glUniform3i');
15697   glUniform4i := dglGetProcAddress('glUniform4i');
15698   glUniform1fv := dglGetProcAddress('glUniform1fv');
15699   glUniform2fv := dglGetProcAddress('glUniform2fv');
15700   glUniform3fv := dglGetProcAddress('glUniform3fv');
15701   glUniform4fv := dglGetProcAddress('glUniform4fv');
15702   glUniform1iv := dglGetProcAddress('glUniform1iv');
15703   glUniform2iv := dglGetProcAddress('glUniform2iv');
15704   glUniform3iv := dglGetProcAddress('glUniform3iv');
15705   glUniform4iv := dglGetProcAddress('glUniform4iv');
15706   glUniformMatrix2fv := dglGetProcAddress('glUniformMatrix2fv');
15707   glUniformMatrix3fv := dglGetProcAddress('glUniformMatrix3fv');
15708   glUniformMatrix4fv := dglGetProcAddress('glUniformMatrix4fv');
15709   glValidateProgram := dglGetProcAddress('glValidateProgram');
15710   glVertexAttrib1d := dglGetProcAddress('glVertexAttrib1d');
15711   glVertexAttrib1dv := dglGetProcAddress('glVertexAttrib1dv');
15712   glVertexAttrib1f := dglGetProcAddress('glVertexAttrib1f');
15713   glVertexAttrib1fv := dglGetProcAddress('glVertexAttrib1fv');
15714   glVertexAttrib1s := dglGetProcAddress('glVertexAttrib1s');
15715   glVertexAttrib1sv := dglGetProcAddress('glVertexAttrib1sv');
15716   glVertexAttrib2d := dglGetProcAddress('glVertexAttrib2d');
15717   glVertexAttrib2dv := dglGetProcAddress('glVertexAttrib2dv');
15718   glVertexAttrib2f := dglGetProcAddress('glVertexAttrib2f');
15719   glVertexAttrib2fv := dglGetProcAddress('glVertexAttrib2fv');
15720   glVertexAttrib2s := dglGetProcAddress('glVertexAttrib2s');
15721   glVertexAttrib2sv := dglGetProcAddress('glVertexAttrib2sv');
15722   glVertexAttrib3d := dglGetProcAddress('glVertexAttrib3d');
15723   glVertexAttrib3dv := dglGetProcAddress('glVertexAttrib3dv');
15724   glVertexAttrib3f := dglGetProcAddress('glVertexAttrib3f');
15725   glVertexAttrib3fv := dglGetProcAddress('glVertexAttrib3fv');
15726   glVertexAttrib3s := dglGetProcAddress('glVertexAttrib3s');
15727   glVertexAttrib3sv := dglGetProcAddress('glVertexAttrib3sv');
15728   glVertexAttrib4Nbv := dglGetProcAddress('glVertexAttrib4Nbv');
15729   glVertexAttrib4Niv := dglGetProcAddress('glVertexAttrib4Niv');
15730   glVertexAttrib4Nsv := dglGetProcAddress('glVertexAttrib4Nsv');
15731   glVertexAttrib4Nub := dglGetProcAddress('glVertexAttrib4Nub');
15732   glVertexAttrib4Nubv := dglGetProcAddress('glVertexAttrib4Nubv');
15733   glVertexAttrib4Nuiv := dglGetProcAddress('glVertexAttrib4Nuiv');
15734   glVertexAttrib4Nusv := dglGetProcAddress('glVertexAttrib4Nusv');
15735   glVertexAttrib4bv := dglGetProcAddress('glVertexAttrib4bv');
15736   glVertexAttrib4d := dglGetProcAddress('glVertexAttrib4d');
15737   glVertexAttrib4dv := dglGetProcAddress('glVertexAttrib4dv');
15738   glVertexAttrib4f := dglGetProcAddress('glVertexAttrib4f');
15739   glVertexAttrib4fv := dglGetProcAddress('glVertexAttrib4fv');
15740   glVertexAttrib4iv := dglGetProcAddress('glVertexAttrib4iv');
15741   glVertexAttrib4s := dglGetProcAddress('glVertexAttrib4s');
15742   glVertexAttrib4sv := dglGetProcAddress('glVertexAttrib4sv');
15743   glVertexAttrib4ubv := dglGetProcAddress('glVertexAttrib4ubv');
15744   glVertexAttrib4uiv := dglGetProcAddress('glVertexAttrib4uiv');
15745   glVertexAttrib4usv := dglGetProcAddress('glVertexAttrib4usv');
15746   glVertexAttribPointer := dglGetProcAddress('glVertexAttribPointer');
15747
15748   // GL_VERSION_2_1
15749   glUniformMatrix2x3fv := dglGetProcAddress('glUniformMatrix2x3fv');
15750   glUniformMatrix3x2fv := dglGetProcAddress('glUniformMatrix3x2fv');
15751   glUniformMatrix2x4fv := dglGetProcAddress('glUniformMatrix2x4fv');
15752   glUniformMatrix4x2fv := dglGetProcAddress('glUniformMatrix4x2fv');
15753   glUniformMatrix3x4fv := dglGetProcAddress('glUniformMatrix3x4fv');
15754   glUniformMatrix4x3fv := dglGetProcAddress('glUniformMatrix4x3fv');
15755   
15756   // GL_VERSION_3_0
15757   { OpenGL 3.0 also reuses entry points from these extensions: }
15758   Read_GL_ARB_framebuffer_object;
15759   Read_GL_ARB_map_buffer_range;
15760   Read_GL_ARB_vertex_array_object;
15761
15762   glColorMaski := dglGetProcAddress('glColorMaski');
15763   glGetBooleani_v := dglGetProcAddress('glGetBooleani_v');
15764   glGetIntegeri_v := dglGetProcAddress('glGetIntegeri_v');
15765   glEnablei := dglGetProcAddress('glEnablei');
15766   glDisablei := dglGetProcAddress('glDisablei');
15767   glIsEnabledi := dglGetProcAddress('glIsEnabledi');
15768   glBeginTransformFeedback := dglGetProcAddress('glBeginTransformFeedback');
15769   glEndTransformFeedback := dglGetProcAddress('glEndTransformFeedback');
15770   glBindBufferRange := dglGetProcAddress('glBindBufferRange');
15771   glBindBufferBase := dglGetProcAddress('glBindBufferBase');
15772   glTransformFeedbackVaryings := dglGetProcAddress('glTransformFeedbackVaryings');
15773   glGetTransformFeedbackVarying := dglGetProcAddress('glGetTransformFeedbackVarying');
15774   glClampColor := dglGetProcAddress('glClampColor');
15775   glBeginConditionalRender := dglGetProcAddress('glBeginConditionalRender');
15776   glEndConditionalRender := dglGetProcAddress('glEndConditionalRender');
15777   glVertexAttribI1i := dglGetProcAddress('glVertexAttribI1i');
15778   glVertexAttribI2i := dglGetProcAddress('glVertexAttribI2i');
15779   glVertexAttribI3i := dglGetProcAddress('glVertexAttribI3i');
15780   glVertexAttribI4i := dglGetProcAddress('glVertexAttribI4i');
15781   glVertexAttribI1ui := dglGetProcAddress('glVertexAttribI1ui');
15782   glVertexAttribI2ui := dglGetProcAddress('glVertexAttribI2ui');
15783   glVertexAttribI3ui := dglGetProcAddress('glVertexAttribI3ui');
15784   glVertexAttribI4ui := dglGetProcAddress('glVertexAttribI4ui');
15785   glVertexAttribI1iv := dglGetProcAddress('glVertexAttribI1iv');
15786   glVertexAttribI2iv := dglGetProcAddress('glVertexAttribI2iv');
15787   glVertexAttribI3iv := dglGetProcAddress('glVertexAttribI3iv');
15788   glVertexAttribI4iv := dglGetProcAddress('glVertexAttribI4iv');
15789   glVertexAttribI1uiv := dglGetProcAddress('glVertexAttribI1uiv');
15790   glVertexAttribI2uiv := dglGetProcAddress('glVertexAttribI2uiv');
15791   glVertexAttribI3uiv := dglGetProcAddress('glVertexAttribI3uiv');
15792   glVertexAttribI4uiv := dglGetProcAddress('glVertexAttribI4uiv');
15793   glVertexAttribI4bv := dglGetProcAddress('glVertexAttribI4bv');
15794   glVertexAttribI4sv := dglGetProcAddress('glVertexAttribI4sv');
15795   glVertexAttribI4ubv := dglGetProcAddress('glVertexAttribI4ubv');
15796   glVertexAttribI4usv := dglGetProcAddress('glVertexAttribI4usv');
15797   glVertexAttribIPointer := dglGetProcAddress('glVertexAttribIPointer');
15798   glGetVertexAttribIiv := dglGetProcAddress('glGetVertexAttribIiv');
15799   glGetVertexAttribIuiv := dglGetProcAddress('glGetVertexAttribIuiv');
15800   glGetUniformuiv := dglGetProcAddress('glGetUniformuiv');
15801   glBindFragDataLocation := dglGetProcAddress('glBindFragDataLocation');
15802   glGetFragDataLocation := dglGetProcAddress('glGetFragDataLocation');
15803   glUniform1ui := dglGetProcAddress('glUniform1ui');
15804   glUniform2ui := dglGetProcAddress('glUniform2ui');
15805   glUniform3ui := dglGetProcAddress('glUniform3ui');
15806   glUniform4ui := dglGetProcAddress('glUniform4ui');
15807   glUniform1uiv := dglGetProcAddress('glUniform1uiv');
15808   glUniform2uiv := dglGetProcAddress('glUniform2uiv');
15809   glUniform3uiv := dglGetProcAddress('glUniform3uiv');
15810   glUniform4uiv := dglGetProcAddress('glUniform4uiv');
15811   glTexParameterIiv := dglGetProcAddress('glTexParameterIiv');
15812   glTexParameterIuiv := dglGetProcAddress('glTexParameterIuiv');
15813   glGetTexParameterIiv := dglGetProcAddress('glGetTexParameterIiv');
15814   glGetTexParameterIuiv := dglGetProcAddress('glGetTexParameterIuiv');
15815   glClearBufferiv := dglGetProcAddress('glClearBufferiv');
15816   glClearBufferuiv := dglGetProcAddress('glClearBufferuiv');
15817   glClearBufferfv := dglGetProcAddress('glClearBufferfv');
15818   glClearBufferfi := dglGetProcAddress('glClearBufferfi');
15819   glGetStringi := dglGetProcAddress('glGetStringi');
15820
15821   // GL_VERSION_2_1
15822   glEnableVertexArrayEXT := dglGetProcAddress('glEnableVertexArrayEXT');
15823   glEnableVertexArrayAttribEXT := dglGetProcAddress('glEnableVertexArrayAttribEXT');
15824   glVertexArrayVertexAttribOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribOffsetEXT');
15825
15826   // GL_VERSION_3_1
15827   { OpenGL 3.1 also reuses entry points from these extensions: }
15828   Read_GL_ARB_copy_buffer;
15829   Read_GL_ARB_uniform_buffer_object;
15830
15831   glDrawArraysInstanced := dglGetProcAddress('glDrawArraysInstanced');
15832   glDrawElementsInstanced := dglGetProcAddress('glDrawElementsInstanced');
15833   glTexBuffer := dglGetProcAddress('glTexBuffer');
15834   glPrimitiveRestartIndex := dglGetProcAddress('glPrimitiveRestartIndex');
15835
15836   // GL_VERSION_3_2
15837   { OpenGL 3.2 also reuses entry points from these extensions: }
15838   Read_GL_ARB_draw_elements_base_vertex;
15839   Read_GL_ARB_provoking_vertex;
15840   Read_GL_ARB_sync;
15841   Read_GL_ARB_texture_multisample;
15842
15843   glGetInteger64i_v := dglGetProcAddress('glGetInteger64i_v');
15844   glGetBufferParameteri64v := dglGetProcAddress('glGetBufferParameteri64v');
15845   glFramebufferTexture := dglGetProcAddress('glFramebufferTexture');
15846 //  glFramebufferTextureFace := dglGetProcAddress('glFramebufferTextureFace');
15847
15848   // GL_VERSION_3_3
15849   { OpenGL 3.3 also reuses entry points from these extensions: }
15850   Read_GL_ARB_blend_func_extended;
15851   Read_GL_ARB_sampler_objects;
15852   { ARB_explicit_attrib_location, but it has none }
15853   { ARB_occlusion_query2 (no entry points) }
15854   { ARB_shader_bit_encoding (no entry points) }
15855   { ARB_texture_rgb10_a2ui (no entry points) }
15856   { ARB_texture_swizzle (no entry points) }
15857   Read_GL_ARB_timer_query;
15858   Read_GL_ARB_vertex_type_2_10_10_10_rev;
15859
15860   glVertexAttribDivisor := dglGetProcAddress('glVertexAttribDivisor');
15861
15862   // GL_VERSION_4_0
15863   { OpenGL 4.0 also reuses entry points from these extensions: }
15864   { ARB_texture_query_lod (no entry points) }
15865   Read_GL_ARB_draw_indirect;
15866   { ARB_gpu_shader5 (no entry points) }
15867   Read_GL_ARB_gpu_shader_fp64;
15868   Read_GL_ARB_shader_subroutine;
15869   Read_GL_ARB_tessellation_shader;
15870   { ARB_texture_buffer_object_rgb32 (no entry points) }
15871   { ARB_texture_cube_map_array (no entry points) }
15872   { ARB_texture_gather (no entry points) }
15873   Read_GL_ARB_transform_feedback2;
15874   Read_GL_ARB_transform_feedback3;
15875
15876   glMinSampleShading := dglGetProcAddress('glMinSampleShading');
15877   glBlendEquationi := dglGetProcAddress('glBlendEquationi');
15878   glBlendEquationSeparatei := dglGetProcAddress('glBlendEquationSeparatei');
15879   glBlendFunci := dglGetProcAddress('glBlendFunci');
15880   glBlendFuncSeparatei := dglGetProcAddress('glBlendFuncSeparatei');
15881
15882   // GL_VERSION_4_1
15883   { OpenGL 4.1 also reuses entry points from these extensions: }
15884   Read_GL_ARB_ES2_compatibility;
15885   Read_GL_ARB_get_program_binary;
15886   Read_GL_ARB_separate_shader_objects;
15887   { ARB_shader_precision (no entry points) }
15888   Read_GL_ARB_vertex_attrib_64bit;
15889   Read_GL_ARB_viewport_array;
15890
15891   // GL_VERSION_4_2
15892   { OpenGL 4.2 reuses entry points from these extensions: }
15893   Read_GL_ARB_base_instance;
15894   //Read_GL_ARB_shading_language_420pack (no entry points)
15895   Read_GL_ARB_transform_feedback_instanced;
15896   //Read_GL_ARB_compressed_texture_pixel_storage (no entry points)
15897   //Read_GL_ARB_conservative_depth;
15898   Read_GL_ARB_internalformat_query;
15899   //Read_GL_ARB_map_buffer_alignment;
15900   Read_GL_ARB_shader_atomic_counters;
15901   Read_GL_ARB_shader_image_load_store;
15902   //Read_GL_ARB_shading_language_packing;
15903   Read_GL_ARB_texture_storage;
15904
15905   // GL_VERSION_4_3
15906   // OpenGL 4.3 reuses entry points from these extensions:
15907   // Read_GL_ARB_arrays_of_arrays (none, GLSL only) (no entry points)
15908   // Read_GL_ARB_fragment_layer_viewport (none, GLSL only) (no entry points)
15909   // Read_GL_ARB_shader_image_size (none, GLSL only) (no entry points)
15910   // Read_GL_ARB_ES3_compatibility (no entry points)
15911   Read_GL_ARB_clear_buffer_object;
15912   Read_GL_ARB_compute_shader;
15913   Read_GL_ARB_copy_image;
15914   Read_GL_KHR_debug;
15915   // Read_GL_ARB_explicit_uniform_location  (no entry points)
15916   Read_GL_ARB_framebuffer_no_attachments;
15917   Read_GL_ARB_internalformat_query2;
15918   Read_GL_ARB_invalidate_subdata;
15919   Read_GL_ARB_multi_draw_indirect;
15920   Read_GL_ARB_program_interface_query;
15921   // Read_GL_ARB_robust_buffer_access_behavior (none)  (no entry points)
15922   Read_GL_ARB_shader_storage_buffer_object;
15923   // Read_GL_ARB_stencil_texturing  (no entry points)
15924   Read_GL_ARB_texture_buffer_range;
15925   // Read_GL_ARB_texture_query_levels (none)  (no entry points)
15926   Read_GL_ARB_texture_storage_multisample;
15927   Read_GL_ARB_texture_view;
15928   Read_GL_ARB_vertex_attrib_binding;
15929
15930   // GL_VERSION_4_4
15931   //  Note (Due to Khronos' change in header conventions, no more single read_ functions)
15932   Read_GL_4_4;
15933 end;
15934
15935 procedure Read_GL_3DFX_tbuffer;
15936 begin
15937   glTbufferMask3DFX := dglGetProcAddress('glTbufferMask3DFX');
15938 end;
15939
15940 procedure Read_GL_APPLE_element_array;
15941 begin
15942   glElementPointerAPPLE := dglGetProcAddress('glElementPointerAPPLE');
15943   glDrawElementArrayAPPLE := dglGetProcAddress('glDrawElementArrayAPPLE');
15944   glDrawRangeElementArrayAPPLE := dglGetProcAddress('glDrawRangeElementArrayAPPLE');
15945   glMultiDrawElementArrayAPPLE := dglGetProcAddress('glMultiDrawElementArrayAPPLE');
15946   glMultiDrawRangeElementArrayAPPLE := dglGetProcAddress('glMultiDrawRangeElementArrayAPPLE');
15947 end;
15948
15949 procedure Read_GL_APPLE_fence;
15950 begin
15951   glGenFencesAPPLE := dglGetProcAddress('glGenFencesAPPLE');
15952   glDeleteFencesAPPLE := dglGetProcAddress('glDeleteFencesAPPLE');
15953   glSetFenceAPPLE := dglGetProcAddress('glSetFenceAPPLE');
15954   glIsFenceAPPLE := dglGetProcAddress('glIsFenceAPPLE');
15955   glTestFenceAPPLE := dglGetProcAddress('glTestFenceAPPLE');
15956   glFinishFenceAPPLE := dglGetProcAddress('glFinishFenceAPPLE');
15957   glTestObjectAPPLE := dglGetProcAddress('glTestObjectAPPLE');
15958   glFinishObjectAPPLE := dglGetProcAddress('glFinishObjectAPPLE');
15959 end;
15960
15961 procedure Read_GL_APPLE_vertex_array_object;
15962 begin
15963   glBindVertexArrayAPPLE := dglGetProcAddress('glBindVertexArrayAPPLE');
15964   glDeleteVertexArraysAPPLE := dglGetProcAddress('glDeleteVertexArraysAPPLE');
15965   glGenVertexArraysAPPLE := dglGetProcAddress('glGenVertexArraysAPPLE');
15966   glIsVertexArrayAPPLE := dglGetProcAddress('glIsVertexArrayAPPLE');
15967 end;
15968
15969 procedure Read_GL_APPLE_vertex_array_range;
15970 begin
15971   glVertexArrayRangeAPPLE := dglGetProcAddress('glVertexArrayRangeAPPLE');
15972   glFlushVertexArrayRangeAPPLE := dglGetProcAddress('glFlushVertexArrayRangeAPPLE');
15973   glVertexArrayParameteriAPPLE := dglGetProcAddress('glVertexArrayParameteriAPPLE');
15974 end;
15975
15976 procedure Read_GL_APPLE_texture_range;
15977 begin
15978   glTextureRangeAPPLE := dglGetProcAddress('glTextureRangeAPPLE');
15979   glGetTexParameterPointervAPPLE := dglGetProcAddress('glGetTexParameterPointervAPPLE');
15980 end;
15981
15982 procedure Read_GL_APPLE_vertex_program_evaluators;
15983 begin
15984   glEnableVertexAttribAPPLE := dglGetProcAddress('glEnableVertexAttribAPPLE');
15985   glDisableVertexAttribAPPLE := dglGetProcAddress('glDisableVertexAttribAPPLE');
15986   glIsVertexAttribEnabledAPPLE := dglGetProcAddress('glIsVertexAttribEnabledAPPLE');
15987   glMapVertexAttrib1dAPPLE := dglGetProcAddress('glMapVertexAttrib1dAPPLE');
15988   glMapVertexAttrib1fAPPLE := dglGetProcAddress('glMapVertexAttrib1fAPPLE');
15989   glMapVertexAttrib2dAPPLE := dglGetProcAddress('glMapVertexAttrib2dAPPLE');
15990   glMapVertexAttrib2fAPPLE := dglGetProcAddress('glMapVertexAttrib2fAPPLE');
15991 end;
15992
15993 procedure Read_GL_APPLE_object_purgeable;
15994 begin
15995   glObjectPurgeableAPPLE := dglGetProcAddress('glObjectPurgeableAPPLE');
15996   glObjectUnpurgeableAPPLE := dglGetProcAddress('glObjectUnpurgeableAPPLE');
15997   glGetObjectParameterivAPPLE := dglGetProcAddress('glGetObjectParameterivAPPLE');
15998 end;
15999
16000 procedure Read_GL_ARB_matrix_palette;
16001 begin
16002   glCurrentPaletteMatrixARB := dglGetProcAddress('glCurrentPaletteMatrixARB');
16003   glMatrixIndexubvARB := dglGetProcAddress('glMatrixIndexubvARB');
16004   glMatrixIndexusvARB := dglGetProcAddress('glMatrixIndexusvARB');
16005   glMatrixIndexuivARB := dglGetProcAddress('glMatrixIndexuivARB');
16006   glMatrixIndexPointerARB := dglGetProcAddress('glMatrixIndexPointerARB');
16007 end;
16008
16009 procedure Read_GL_ARB_multisample;
16010 begin
16011   glSampleCoverageARB := dglGetProcAddress('glSampleCoverageARB');
16012 end;
16013
16014 procedure Read_GL_ARB_multitexture;
16015 begin
16016   glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
16017   glClientActiveTextureARB := dglGetProcAddress('glClientActiveTextureARB');
16018   glMultiTexCoord1dARB := dglGetProcAddress('glMultiTexCoord1dARB');
16019   glMultiTexCoord1dvARB := dglGetProcAddress('glMultiTexCoord1dvARB');
16020   glMultiTexCoord1fARB := dglGetProcAddress('glMultiTexCoord1fARB');
16021   glMultiTexCoord1fvARB := dglGetProcAddress('glMultiTexCoord1fvARB');
16022   glMultiTexCoord1iARB := dglGetProcAddress('glMultiTexCoord1iARB');
16023   glMultiTexCoord1ivARB := dglGetProcAddress('glMultiTexCoord1ivARB');
16024   glMultiTexCoord1sARB := dglGetProcAddress('glMultiTexCoord1sARB');
16025   glMultiTexCoord1svARB := dglGetProcAddress('glMultiTexCoord1svARB');
16026   glMultiTexCoord2dARB := dglGetProcAddress('glMultiTexCoord2dARB');
16027   glMultiTexCoord2dvARB := dglGetProcAddress('glMultiTexCoord2dvARB');
16028   glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
16029   glMultiTexCoord2fvARB := dglGetProcAddress('glMultiTexCoord2fvARB');
16030   glMultiTexCoord2iARB := dglGetProcAddress('glMultiTexCoord2iARB');
16031   glMultiTexCoord2ivARB := dglGetProcAddress('glMultiTexCoord2ivARB');
16032   glMultiTexCoord2sARB := dglGetProcAddress('glMultiTexCoord2sARB');
16033   glMultiTexCoord2svARB := dglGetProcAddress('glMultiTexCoord2svARB');
16034   glMultiTexCoord3dARB := dglGetProcAddress('glMultiTexCoord3dARB');
16035   glMultiTexCoord3dvARB := dglGetProcAddress('glMultiTexCoord3dvARB');
16036   glMultiTexCoord3fARB := dglGetProcAddress('glMultiTexCoord3fARB');
16037   glMultiTexCoord3fvARB := dglGetProcAddress('glMultiTexCoord3fvARB');
16038   glMultiTexCoord3iARB := dglGetProcAddress('glMultiTexCoord3iARB');
16039   glMultiTexCoord3ivARB := dglGetProcAddress('glMultiTexCoord3ivARB');
16040   glMultiTexCoord3sARB := dglGetProcAddress('glMultiTexCoord3sARB');
16041   glMultiTexCoord3svARB := dglGetProcAddress('glMultiTexCoord3svARB');
16042   glMultiTexCoord4dARB := dglGetProcAddress('glMultiTexCoord4dARB');
16043   glMultiTexCoord4dvARB := dglGetProcAddress('glMultiTexCoord4dvARB');
16044   glMultiTexCoord4fARB := dglGetProcAddress('glMultiTexCoord4fARB');
16045   glMultiTexCoord4fvARB := dglGetProcAddress('glMultiTexCoord4fvARB');
16046   glMultiTexCoord4iARB := dglGetProcAddress('glMultiTexCoord4iARB');
16047   glMultiTexCoord4ivARB := dglGetProcAddress('glMultiTexCoord4ivARB');
16048   glMultiTexCoord4sARB := dglGetProcAddress('glMultiTexCoord4sARB');
16049   glMultiTexCoord4svARB := dglGetProcAddress('glMultiTexCoord4svARB');
16050 end;
16051
16052 procedure Read_GL_ARB_point_parameters;
16053 begin
16054   glPointParameterfARB := dglGetProcAddress('glPointParameterfARB');
16055   glPointParameterfvARB := dglGetProcAddress('glPointParameterfvARB');
16056 end;
16057
16058 procedure Read_GL_ARB_texture_compression;
16059 begin
16060   glCompressedTexImage3DARB := dglGetProcAddress('glCompressedTexImage3DARB');
16061   glCompressedTexImage2DARB := dglGetProcAddress('glCompressedTexImage2DARB');
16062   glCompressedTexImage1DARB := dglGetProcAddress('glCompressedTexImage1DARB');
16063   glCompressedTexSubImage3DARB := dglGetProcAddress('glCompressedTexSubImage3DARB');
16064   glCompressedTexSubImage2DARB := dglGetProcAddress('glCompressedTexSubImage2DARB');
16065   glCompressedTexSubImage1DARB := dglGetProcAddress('glCompressedTexSubImage1DARB');
16066   glGetCompressedTexImageARB := dglGetProcAddress('glGetCompressedTexImageARB');
16067 end;
16068
16069 procedure Read_GL_ARB_transpose_matrix;
16070 begin
16071   glLoadTransposeMatrixfARB := dglGetProcAddress('glLoadTransposeMatrixfARB');
16072   glLoadTransposeMatrixdARB := dglGetProcAddress('glLoadTransposeMatrixdARB');
16073   glMultTransposeMatrixfARB := dglGetProcAddress('glMultTransposeMatrixfARB');
16074   glMultTransposeMatrixdARB := dglGetProcAddress('glMultTransposeMatrixdARB');
16075 end;
16076
16077 procedure Read_GL_ARB_vertex_blend;
16078 begin
16079   glWeightbvARB := dglGetProcAddress('glWeightbvARB');
16080   glWeightsvARB := dglGetProcAddress('glWeightsvARB');
16081   glWeightivARB := dglGetProcAddress('glWeightivARB');
16082   glWeightfvARB := dglGetProcAddress('glWeightfvARB');
16083   glWeightdvARB := dglGetProcAddress('glWeightdvARB');
16084   glWeightubvARB := dglGetProcAddress('glWeightubvARB');
16085   glWeightusvARB := dglGetProcAddress('glWeightusvARB');
16086   glWeightuivARB := dglGetProcAddress('glWeightuivARB');
16087   glWeightPointerARB := dglGetProcAddress('glWeightPointerARB');
16088   glVertexBlendARB := dglGetProcAddress('glVertexBlendARB');
16089 end;
16090
16091 procedure Read_GL_ARB_vertex_buffer_object;
16092 begin
16093   glBindBufferARB := dglGetProcAddress('glBindBufferARB');
16094   glDeleteBuffersARB := dglGetProcAddress('glDeleteBuffersARB');
16095   glGenBuffersARB := dglGetProcAddress('glGenBuffersARB');
16096   glIsBufferARB := dglGetProcAddress('glIsBufferARB');
16097   glBufferDataARB := dglGetProcAddress('glBufferDataARB');
16098   glBufferSubDataARB := dglGetProcAddress('glBufferSubDataARB');
16099   glGetBufferSubDataARB := dglGetProcAddress('glGetBufferSubDataARB');
16100   glMapBufferARB := dglGetProcAddress('glMapBufferARB');
16101   glUnmapBufferARB := dglGetProcAddress('glUnmapBufferARB');
16102   glGetBufferParameterivARB := dglGetProcAddress('glGetBufferParameterivARB');
16103   glGetBufferPointervARB := dglGetProcAddress('glGetBufferPointervARB');
16104 end;
16105
16106 procedure Read_GL_ARB_vertex_program;
16107 begin
16108   glVertexAttrib1dARB := dglGetProcAddress('glVertexAttrib1dARB');
16109   glVertexAttrib1dvARB := dglGetProcAddress('glVertexAttrib1dvARB');
16110   glVertexAttrib1fARB := dglGetProcAddress('glVertexAttrib1fARB');
16111   glVertexAttrib1fvARB := dglGetProcAddress('glVertexAttrib1fvARB');
16112   glVertexAttrib1sARB := dglGetProcAddress('glVertexAttrib1sARB');
16113   glVertexAttrib1svARB := dglGetProcAddress('glVertexAttrib1svARB');
16114   glVertexAttrib2dARB := dglGetProcAddress('glVertexAttrib2dARB');
16115   glVertexAttrib2dvARB := dglGetProcAddress('glVertexAttrib2dvARB');
16116   glVertexAttrib2fARB := dglGetProcAddress('glVertexAttrib2fARB');
16117   glVertexAttrib2fvARB := dglGetProcAddress('glVertexAttrib2fvARB');
16118   glVertexAttrib2sARB := dglGetProcAddress('glVertexAttrib2sARB');
16119   glVertexAttrib2svARB := dglGetProcAddress('glVertexAttrib2svARB');
16120   glVertexAttrib3dARB := dglGetProcAddress('glVertexAttrib3dARB');
16121   glVertexAttrib3dvARB := dglGetProcAddress('glVertexAttrib3dvARB');
16122   glVertexAttrib3fARB := dglGetProcAddress('glVertexAttrib3fARB');
16123   glVertexAttrib3fvARB := dglGetProcAddress('glVertexAttrib3fvARB');
16124   glVertexAttrib3sARB := dglGetProcAddress('glVertexAttrib3sARB');
16125   glVertexAttrib3svARB := dglGetProcAddress('glVertexAttrib3svARB');
16126   glVertexAttrib4NbvARB := dglGetProcAddress('glVertexAttrib4NbvARB');
16127   glVertexAttrib4NivARB := dglGetProcAddress('glVertexAttrib4NivARB');
16128   glVertexAttrib4NsvARB := dglGetProcAddress('glVertexAttrib4NsvARB');
16129   glVertexAttrib4NubARB := dglGetProcAddress('glVertexAttrib4NubARB');
16130   glVertexAttrib4NubvARB := dglGetProcAddress('glVertexAttrib4NubvARB');
16131   glVertexAttrib4NuivARB := dglGetProcAddress('glVertexAttrib4NuivARB');
16132   glVertexAttrib4NusvARB := dglGetProcAddress('glVertexAttrib4NusvARB');
16133   glVertexAttrib4bvARB := dglGetProcAddress('glVertexAttrib4bvARB');
16134   glVertexAttrib4dARB := dglGetProcAddress('glVertexAttrib4dARB');
16135   glVertexAttrib4dvARB := dglGetProcAddress('glVertexAttrib4dvARB');
16136   glVertexAttrib4fARB := dglGetProcAddress('glVertexAttrib4fARB');
16137   glVertexAttrib4fvARB := dglGetProcAddress('glVertexAttrib4fvARB');
16138   glVertexAttrib4ivARB := dglGetProcAddress('glVertexAttrib4ivARB');
16139   glVertexAttrib4sARB := dglGetProcAddress('glVertexAttrib4sARB');
16140   glVertexAttrib4svARB := dglGetProcAddress('glVertexAttrib4svARB');
16141   glVertexAttrib4ubvARB := dglGetProcAddress('glVertexAttrib4ubvARB');
16142   glVertexAttrib4uivARB := dglGetProcAddress('glVertexAttrib4uivARB');
16143   glVertexAttrib4usvARB := dglGetProcAddress('glVertexAttrib4usvARB');
16144   glVertexAttribPointerARB := dglGetProcAddress('glVertexAttribPointerARB');
16145   glEnableVertexAttribArrayARB := dglGetProcAddress('glEnableVertexAttribArrayARB');
16146   glDisableVertexAttribArrayARB := dglGetProcAddress('glDisableVertexAttribArrayARB');
16147   glProgramStringARB := dglGetProcAddress('glProgramStringARB');
16148   glBindProgramARB := dglGetProcAddress('glBindProgramARB');
16149   glDeleteProgramsARB := dglGetProcAddress('glDeleteProgramsARB');
16150   glGenProgramsARB := dglGetProcAddress('glGenProgramsARB');
16151   glProgramEnvParameter4dARB := dglGetProcAddress('glProgramEnvParameter4dARB');
16152   glProgramEnvParameter4dvARB := dglGetProcAddress('glProgramEnvParameter4dvARB');
16153   glProgramEnvParameter4fARB := dglGetProcAddress('glProgramEnvParameter4fARB');
16154   glProgramEnvParameter4fvARB := dglGetProcAddress('glProgramEnvParameter4fvARB');
16155   glProgramLocalParameter4dARB := dglGetProcAddress('glProgramLocalParameter4dARB');
16156   glProgramLocalParameter4dvARB := dglGetProcAddress('glProgramLocalParameter4dvARB');
16157   glProgramLocalParameter4fARB := dglGetProcAddress('glProgramLocalParameter4fARB');
16158   glProgramLocalParameter4fvARB := dglGetProcAddress('glProgramLocalParameter4fvARB');
16159   glGetProgramEnvParameterdvARB := dglGetProcAddress('glGetProgramEnvParameterdvARB');
16160   glGetProgramEnvParameterfvARB := dglGetProcAddress('glGetProgramEnvParameterfvARB');
16161   glGetProgramLocalParameterdvARB := dglGetProcAddress('glGetProgramLocalParameterdvARB');
16162   glGetProgramLocalParameterfvARB := dglGetProcAddress('glGetProgramLocalParameterfvARB');
16163   glGetProgramivARB := dglGetProcAddress('glGetProgramivARB');
16164   glGetProgramStringARB := dglGetProcAddress('glGetProgramStringARB');
16165   glGetVertexAttribdvARB := dglGetProcAddress('glGetVertexAttribdvARB');
16166   glGetVertexAttribfvARB := dglGetProcAddress('glGetVertexAttribfvARB');
16167   glGetVertexAttribivARB := dglGetProcAddress('glGetVertexAttribivARB');
16168   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16169   glIsProgramARB := dglGetProcAddress('glIsProgramARB');
16170 end;
16171
16172 procedure Read_GL_ARB_window_pos;
16173 begin
16174   glWindowPos2dARB := dglGetProcAddress('glWindowPos2dARB');
16175   glWindowPos2dvARB := dglGetProcAddress('glWindowPos2dvARB');
16176   glWindowPos2fARB := dglGetProcAddress('glWindowPos2fARB');
16177   glWindowPos2fvARB := dglGetProcAddress('glWindowPos2fvARB');
16178   glWindowPos2iARB := dglGetProcAddress('glWindowPos2iARB');
16179   glWindowPos2ivARB := dglGetProcAddress('glWindowPos2ivARB');
16180   glWindowPos2sARB := dglGetProcAddress('glWindowPos2sARB');
16181   glWindowPos2svARB := dglGetProcAddress('glWindowPos2svARB');
16182   glWindowPos3dARB := dglGetProcAddress('glWindowPos3dARB');
16183   glWindowPos3dvARB := dglGetProcAddress('glWindowPos3dvARB');
16184   glWindowPos3fARB := dglGetProcAddress('glWindowPos3fARB');
16185   glWindowPos3fvARB := dglGetProcAddress('glWindowPos3fvARB');
16186   glWindowPos3iARB := dglGetProcAddress('glWindowPos3iARB');
16187   glWindowPos3ivARB := dglGetProcAddress('glWindowPos3ivARB');
16188   glWindowPos3sARB := dglGetProcAddress('glWindowPos3sARB');
16189   glWindowPos3svARB := dglGetProcAddress('glWindowPos3svARB');
16190 end;
16191
16192 procedure Read_GL_ARB_draw_buffers;
16193 begin
16194   glDrawBuffersARB := dglGetProcAddress('glDrawBuffersARB');
16195 end;
16196
16197 procedure Read_GL_ARB_color_buffer_float;
16198 begin
16199   glClampColorARB := dglGetProcAddress('glClampColorARB');
16200 end;
16201
16202 procedure Read_GL_ARB_Shader_Objects;
16203 begin
16204   // GL_ARB_Shader_Objects
16205   glCreateShaderObjectARB := dglGetProcAddress('glCreateShaderObjectARB');
16206   glShaderSourceARB := dglGetProcAddress('glShaderSourceARB');
16207   glCompileShaderARB := dglGetProcAddress('glCompileShaderARB');
16208   glDeleteObjectARB := dglGetProcAddress('glDeleteObjectARB');
16209   glGetHandleARB := dglGetProcAddress('glGetHandleARB');
16210   glDetachObjectARB := dglGetProcAddress('glDetachObjectARB');
16211   glCreateProgramObjectARB := dglGetProcAddress('glCreateProgramObjectARB');
16212   glAttachObjectARB := dglGetProcAddress('glAttachObjectARB');
16213   glLinkProgramARB := dglGetProcAddress('glLinkProgramARB');
16214   glUseProgramObjectARB := dglGetProcAddress('glUseProgramObjectARB');
16215   glValidateProgramARB := dglGetProcAddress('glValidateProgramARB');
16216   glGetObjectParameterfvARB := dglGetProcAddress('glGetObjectParameterfvARB');
16217   glGetObjectParameterivARB := dglGetProcAddress('glGetObjectParameterivARB');
16218   glGetActiveUniformARB := dglGetProcAddress('glGetActiveUniformARB');
16219   glGetAttachedObjectsARB := dglGetProcAddress('glGetAttachedObjectsARB');
16220   glGetShaderSourceARB := dglGetProcAddress('glGetShaderSourceARB');
16221   glGetUniformfvARB := dglGetProcAddress('glGetUniformfvARB');
16222   glGetUniformivARB := dglGetProcAddress('glGetUniformivARB');
16223   glGetUniformLocationARB := dglGetProcAddress('glGetUniformLocationARB');
16224   glGetInfoLogARB := dglGetProcAddress('glGetInfoLogARB');
16225   glUniform1fARB := dglGetProcAddress('glUniform1fARB');
16226   glUniform2fARB := dglGetProcAddress('glUniform2fARB');
16227   glUniform3fARB := dglGetProcAddress('glUniform3fARB');
16228   glUniform4fARB := dglGetProcAddress('glUniform4fARB');
16229   glUniform1iARB := dglGetProcAddress('glUniform1iARB');
16230   glUniform2iARB := dglGetProcAddress('glUniform2iARB');
16231   glUniform3iARB := dglGetProcAddress('glUniform3iARB');
16232   glUniform4iARB := dglGetProcAddress('glUniform4iARB');
16233   glUniform1fvARB := dglGetProcAddress('glUniform1fvARB');
16234   glUniform2fvARB := dglGetProcAddress('glUniform2fvARB');
16235   glUniform3fvARB := dglGetProcAddress('glUniform3fvARB');
16236   glUniform4fvARB := dglGetProcAddress('glUniform4fvARB');
16237   glUniform1ivARB := dglGetProcAddress('glUniform1ivARB');
16238   glUniform2ivARB := dglGetProcAddress('glUniform2ivARB');
16239   glUniform3ivARB := dglGetProcAddress('glUniform3ivARB');
16240   glUniform4ivARB := dglGetProcAddress('glUniform4ivARB');
16241   glUniformMatrix2fvARB := dglGetProcAddress('glUniformMatrix2fvARB');
16242   glUniformMatrix3fvARB := dglGetProcAddress('glUniformMatrix3fvARB');
16243   glUniformMatrix4fvARB := dglGetProcAddress('glUniformMatrix4fvARB');
16244
16245   // GL_ARB_vertex_shader
16246   glGetActiveAttribARB := dglGetProcAddress('glGetActiveAttribARB');
16247   glGetAttribLocationARB := dglGetProcAddress('glGetAttribLocationARB');
16248   glBindAttribLocationARB := dglGetProcAddress('glBindAttribLocationARB');
16249   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16250 end;
16251
16252 procedure Read_GL_ARB_occlusion_query;
16253 begin
16254   glGenQueriesARB := dglGetProcAddress('glGenQueriesARB');
16255   glDeleteQueriesARB := dglGetProcAddress('glDeleteQueriesARB');
16256   glIsQueryARB := dglGetProcAddress('glIsQueryARB');
16257   glBeginQueryARB := dglGetProcAddress('glBeginQueryARB');
16258   glEndQueryARB := dglGetProcAddress('glEndQueryARB');
16259   glGetQueryivARB := dglGetProcAddress('glGetQueryivARB');
16260   glGetQueryObjectivARB := dglGetProcAddress('glGetQueryObjectivARB');
16261   glGetQueryObjectuivARB := dglGetProcAddress('glGetQueryObjectuivARB');
16262 end;
16263
16264 procedure Read_GL_ARB_draw_instanced;
16265 begin
16266   glDrawArraysInstancedARB := dglGetProcAddress('glDrawArraysInstancedARB');
16267   glDrawElementsInstancedARB := dglGetProcAddress('glDrawElementsInstancedARB');
16268 end;
16269
16270 procedure Read_GL_ARB_framebuffer_object;
16271 begin
16272   glIsRenderbuffer := dglGetProcAddress('glIsRenderbuffer');
16273   glBindRenderbuffer := dglGetProcAddress('glBindRenderbuffer');
16274   glDeleteRenderbuffers := dglGetProcAddress('glDeleteRenderbuffers');
16275   glGenRenderbuffers := dglGetProcAddress('glGenRenderbuffers');
16276   glRenderbufferStorage := dglGetProcAddress('glRenderbufferStorage');
16277   glGetRenderbufferParameteriv := dglGetProcAddress('glGetRenderbufferParameteriv');
16278   glIsFramebuffer := dglGetProcAddress('glIsFramebuffer');
16279   glBindFramebuffer := dglGetProcAddress('glBindFramebuffer');
16280   glDeleteFramebuffers := dglGetProcAddress('glDeleteFramebuffers');
16281   glGenFramebuffers := dglGetProcAddress('glGenFramebuffers');
16282   glCheckFramebufferStatus := dglGetProcAddress('glCheckFramebufferStatus');
16283   glFramebufferTexture1D := dglGetProcAddress('glFramebufferTexture1D');
16284   glFramebufferTexture2D := dglGetProcAddress('glFramebufferTexture2D');
16285   glFramebufferTexture3D := dglGetProcAddress('glFramebufferTexture3D');
16286   glFramebufferRenderbuffer := dglGetProcAddress('glFramebufferRenderbuffer');
16287   glGetFramebufferAttachmentParameteriv := dglGetProcAddress('glGetFramebufferAttachmentParameteriv');
16288   glGenerateMipmap := dglGetProcAddress('glGenerateMipmap');
16289   glBlitFramebuffer := dglGetProcAddress('glBlitFramebuffer');
16290   glRenderbufferStorageMultisample := dglGetProcAddress('glRenderbufferStorageMultisample');
16291   glFramebufferTextureLayer := dglGetProcAddress('glFramebufferTextureLayer');
16292 end;
16293
16294 procedure Read_GL_ARB_geometry_shader4;
16295 begin
16296   glProgramParameteriARB := dglGetProcAddress('glProgramParameteriARB');
16297   glFramebufferTextureARB := dglGetProcAddress('glFramebufferTextureARB');
16298   glFramebufferTextureLayerARB := dglGetProcAddress('glFramebufferTextureLayerARB');
16299   glFramebufferTextureFaceARB := dglGetProcAddress('glFramebufferTextureFaceARB');
16300 end;
16301
16302 procedure Read_GL_ARB_instanced_arrays;
16303 begin
16304   glVertexAttribDivisorARB := dglGetProcAddress('glVertexAttribDivisorARB');
16305 end;
16306
16307 procedure Read_GL_ARB_map_buffer_range;
16308 begin
16309   glMapBufferRange := dglGetProcAddress('glMapBufferRange');
16310   glFlushMappedBufferRange := dglGetProcAddress('glFlushMappedBufferRange');
16311 end;
16312
16313 procedure Read_GL_ARB_texture_buffer_object;
16314 begin
16315   glTexBufferARB := dglGetProcAddress('glTexBufferARB');
16316 end;
16317
16318 procedure Read_GL_ARB_vertex_array_object;
16319 begin
16320   glBindVertexArray := dglGetProcAddress('glBindVertexArray');
16321   glDeleteVertexArrays := dglGetProcAddress('glDeleteVertexArrays');
16322   glGenVertexArrays := dglGetProcAddress('glGenVertexArrays');
16323   glIsVertexArray := dglGetProcAddress('glIsVertexArray');
16324 end;
16325
16326 procedure Read_GL_ARB_uniform_buffer_object;
16327 begin
16328   glGetUniformIndices := dglGetProcAddress('glGetUniformIndices');
16329   glGetActiveUniformsiv := dglGetProcAddress('glGetActiveUniformsiv');
16330   glGetActiveUniformName := dglGetProcAddress('glGetActiveUniformName');
16331   glGetUniformBlockIndex := dglGetProcAddress('glGetUniformBlockIndex');
16332   glGetActiveUniformBlockiv := dglGetProcAddress('glGetActiveUniformBlockiv');
16333   glGetActiveUniformBlockName := dglGetProcAddress('glGetActiveUniformBlockName');
16334   glUniformBlockBinding := dglGetProcAddress('glUniformBlockBinding');
16335 end;
16336
16337 procedure Read_GL_ARB_copy_buffer;
16338 begin
16339   glCopyBufferSubData := dglGetProcAddress('glCopyBufferSubData');
16340 end;
16341
16342 procedure Read_GL_ARB_draw_elements_base_vertex;
16343 begin
16344   glDrawElementsBaseVertex := dglGetProcAddress('glDrawElementsBaseVertex');
16345   glDrawRangeElementsBaseVertex := dglGetProcAddress('glDrawRangeElementsBaseVertex');
16346   glDrawElementsInstancedBaseVertex := dglGetProcAddress('glDrawElementsInstancedBaseVertex');
16347   glMultiDrawElementsBaseVertex := dglGetProcAddress('glMultiDrawElementsBaseVertex');
16348 end;
16349
16350 procedure Read_GL_ARB_provoking_vertex;
16351 begin
16352   glProvokingVertex := dglGetProcAddress('glProvokingVertex');
16353 end;
16354
16355 procedure Read_GL_ARB_sync;
16356 begin
16357   glFenceSync := dglGetProcAddress('glFenceSync');
16358   glIsSync := dglGetProcAddress('glIsSync');
16359   glDeleteSync := dglGetProcAddress('glDeleteSync');
16360   glClientWaitSync := dglGetProcAddress('glClientWaitSync');
16361   glWaitSync := dglGetProcAddress('glWaitSync');
16362   glGetInteger64v := dglGetProcAddress('glGetInteger64v');
16363   glGetSynciv := dglGetProcAddress('glGetSynciv');
16364 end;
16365
16366 procedure Read_GL_ARB_texture_multisample;
16367 begin
16368   glTexImage2DMultisample := dglGetProcAddress('glTexImage2DMultisample');
16369   glTexImage3DMultisample := dglGetProcAddress('glTexImage3DMultisample');
16370   glGetMultisamplefv := dglGetProcAddress('glGetMultisamplefv');
16371   glSampleMaski := dglGetProcAddress('glSampleMaski');
16372 end;
16373
16374 procedure Read_GL_ARB_draw_buffers_blend;
16375 begin
16376   glBlendEquationiARB := dglGetProcAddress('glBlendEquationiARB');
16377   glBlendEquationSeparateiARB := dglGetProcAddress('glBlendEquationSeparateiARB');
16378   glBlendFunciARB := dglGetProcAddress('glBlendFunciARB');
16379   glBlendFuncSeparateiARB := dglGetProcAddress('glBlendFuncSeparateiARB');
16380 end;
16381
16382 procedure Read_GL_ARB_sample_shading;
16383 begin
16384   glMinSampleShadingARB := dglGetProcAddress('glMinSampleShadingARB');
16385 end;
16386
16387 procedure Read_GL_ARB_shading_language_include;
16388 begin
16389   glNamedStringARB := dglGetProcAddress('glNamedStringARB');
16390   glDeleteNamedStringARB := dglGetProcAddress('glDeleteNamedStringARB');
16391   glCompileShaderIncludeARB := dglGetProcAddress('glCompileShaderIncludeARB');
16392   glIsNamedStringARB := dglGetProcAddress('glIsNamedStringARB');
16393   glGetNamedStringARB := dglGetProcAddress('glGetNamedStringARB');
16394   glGetNamedStringivARB := dglGetProcAddress('glGetNamedStringivARB');
16395 end;
16396
16397 procedure Read_GL_ARB_blend_func_extended;
16398 begin
16399   glBindFragDataLocationIndexed := dglGetProcAddress('glBindFragDataLocationIndexed');
16400   glGetFragDataIndex := dglGetProcAddress('glGetFragDataIndex');
16401 end;
16402
16403 procedure Read_GL_ARB_sampler_objects;
16404 begin
16405   glGenSamplers := dglGetProcAddress('glGenSamplers');
16406   glDeleteSamplers := dglGetProcAddress('glDeleteSamplers');
16407   glIsSampler := dglGetProcAddress('glIsSampler');
16408   glBindSampler := dglGetProcAddress('glBindSampler');
16409   glSamplerParameteri := dglGetProcAddress('glSamplerParameteri');
16410   glSamplerParameteriv := dglGetProcAddress('glSamplerParameteriv');
16411   glSamplerParameterf := dglGetProcAddress('glSamplerParameterf');
16412   glSamplerParameterfv := dglGetProcAddress('glSamplerParameterfv');
16413   glSamplerParameterIiv := dglGetProcAddress('glSamplerParameterIiv');
16414   glSamplerParameterIuiv := dglGetProcAddress('glSamplerParameterIuiv');
16415   glGetSamplerParameteriv := dglGetProcAddress('glGetSamplerParameteriv');
16416   glGetSamplerParameterIiv := dglGetProcAddress('glGetSamplerParameterIiv');
16417   glGetSamplerParameterfv := dglGetProcAddress('glGetSamplerParameterfv');
16418   glGetSamplerParameterIuiv := dglGetProcAddress('glGetSamplerParameterIuiv');
16419 end;
16420
16421 procedure Read_GL_ARB_timer_query;
16422 begin
16423   glQueryCounter := dglGetProcAddress('glQueryCounter');
16424   glGetQueryObjecti64v := dglGetProcAddress('glGetQueryObjecti64v');
16425   glGetQueryObjectui64v := dglGetProcAddress('glGetQueryObjectui64v');
16426 end;
16427
16428 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
16429 begin
16430   glVertexP2ui := dglGetProcAddress('glVertexP2ui');
16431   glVertexP2uiv := dglGetProcAddress('glVertexP2uiv');
16432   glVertexP3ui := dglGetProcAddress('glVertexP3ui');
16433   glVertexP3uiv := dglGetProcAddress('glVertexP3uiv');
16434   glVertexP4ui := dglGetProcAddress('glVertexP4ui');
16435   glVertexP4uiv := dglGetProcAddress('glVertexP4uiv');
16436   glTexCoordP1ui := dglGetProcAddress('glTexCoordP1ui');
16437   glTexCoordP1uiv := dglGetProcAddress('glTexCoordP1uiv');
16438   glTexCoordP2ui := dglGetProcAddress('glTexCoordP2ui');
16439   glTexCoordP2uiv := dglGetProcAddress('glTexCoordP2uiv');
16440   glTexCoordP3ui := dglGetProcAddress('glTexCoordP3ui');
16441   glTexCoordP3uiv := dglGetProcAddress('glTexCoordP3uiv');
16442   glTexCoordP4ui := dglGetProcAddress('glTexCoordP4ui');
16443   glTexCoordP4uiv := dglGetProcAddress('glTexCoordP4uiv');
16444   glMultiTexCoordP1ui := dglGetProcAddress('glMultiTexCoordP1ui');
16445   glMultiTexCoordP1uiv := dglGetProcAddress('glMultiTexCoordP1uiv');
16446   glMultiTexCoordP2ui := dglGetProcAddress('glMultiTexCoordP2ui');
16447   glMultiTexCoordP2uiv := dglGetProcAddress('glMultiTexCoordP2uiv');
16448   glMultiTexCoordP3ui := dglGetProcAddress('glMultiTexCoordP3ui');
16449   glMultiTexCoordP3uiv := dglGetProcAddress('glMultiTexCoordP3uiv');
16450   glMultiTexCoordP4ui := dglGetProcAddress('glMultiTexCoordP4ui');
16451   glMultiTexCoordP4uiv := dglGetProcAddress('glMultiTexCoordP4uiv');
16452   glNormalP3ui := dglGetProcAddress('glNormalP3ui');
16453   glNormalP3uiv := dglGetProcAddress('glNormalP3uiv');
16454   glColorP3ui := dglGetProcAddress('glColorP3ui');
16455   glColorP3uiv := dglGetProcAddress('glColorP3uiv');
16456   glColorP4ui := dglGetProcAddress('glColorP4ui');
16457   glColorP4uiv := dglGetProcAddress('glColorP4uiv');
16458   glSecondaryColorP3ui := dglGetProcAddress('glSecondaryColorP3ui');
16459   glSecondaryColorP3uiv := dglGetProcAddress('glSecondaryColorP3uiv');
16460   glVertexAttribP1ui := dglGetProcAddress('glVertexAttribP1ui');
16461   glVertexAttribP1uiv := dglGetProcAddress('glVertexAttribP1uiv');
16462   glVertexAttribP2ui := dglGetProcAddress('glVertexAttribP2ui');
16463   glVertexAttribP2uiv := dglGetProcAddress('glVertexAttribP2uiv');
16464   glVertexAttribP3ui := dglGetProcAddress('glVertexAttribP3ui');
16465   glVertexAttribP3uiv := dglGetProcAddress('glVertexAttribP3uiv');
16466   glVertexAttribP4ui := dglGetProcAddress('glVertexAttribP4ui');
16467   glVertexAttribP4uiv := dglGetProcAddress('glVertexAttribP4uiv');
16468 end;
16469
16470 procedure Read_GL_ARB_draw_indirect;
16471 begin
16472   glDrawArraysIndirect := dglGetProcAddress('glDrawArraysIndirect');
16473   glDrawElementsIndirect := dglGetProcAddress('glDrawElementsIndirect');
16474 end;
16475
16476 procedure Read_GL_ARB_gpu_shader_fp64;
16477 begin
16478   glUniform1d := dglGetProcAddress('glUniform1d');
16479   glUniform2d := dglGetProcAddress('glUniform2d');
16480   glUniform3d := dglGetProcAddress('glUniform3d');
16481   glUniform4d := dglGetProcAddress('glUniform4d');
16482   glUniform1dv := dglGetProcAddress('glUniform1dv');
16483   glUniform2dv := dglGetProcAddress('glUniform2dv');
16484   glUniform3dv := dglGetProcAddress('glUniform3dv');
16485   glUniform4dv := dglGetProcAddress('glUniform4dv');
16486   glUniformMatrix2dv := dglGetProcAddress('glUniformMatrix2dv');
16487   glUniformMatrix3dv := dglGetProcAddress('glUniformMatrix3dv');
16488   glUniformMatrix4dv := dglGetProcAddress('glUniformMatrix4dv');
16489   glUniformMatrix2x3dv := dglGetProcAddress('glUniformMatrix2x3dv');
16490   glUniformMatrix2x4dv := dglGetProcAddress('glUniformMatrix2x4dv');
16491   glUniformMatrix3x2dv := dglGetProcAddress('glUniformMatrix3x2dv');
16492   glUniformMatrix3x4dv := dglGetProcAddress('glUniformMatrix3x4dv');
16493   glUniformMatrix4x2dv := dglGetProcAddress('glUniformMatrix4x2dv');
16494   glUniformMatrix4x3dv := dglGetProcAddress('glUniformMatrix4x3dv');
16495   glGetUniformdv := dglGetProcAddress('glGetUniformdv');
16496 end;
16497
16498 procedure Read_GL_ARB_shader_subroutine;
16499 begin
16500   glGetSubroutineUniformLocation := dglGetProcAddress('glGetSubroutineUniformLocation');
16501   glGetSubroutineIndex := dglGetProcAddress('glGetSubroutineIndex');
16502   glGetActiveSubroutineUniformiv := dglGetProcAddress('glGetActiveSubroutineUniformiv');
16503   glGetActiveSubroutineUniformName := dglGetProcAddress('glGetActiveSubroutineUniformName');
16504   glGetActiveSubroutineName := dglGetProcAddress('glGetActiveSubroutineName');
16505   glUniformSubroutinesuiv := dglGetProcAddress('glUniformSubroutinesuiv');
16506   glGetUniformSubroutineuiv := dglGetProcAddress('glGetUniformSubroutineuiv');
16507   glGetProgramStageiv := dglGetProcAddress('glGetProgramStageiv');
16508 end;
16509
16510 procedure Read_GL_ARB_tessellation_shader;
16511 begin
16512   glPatchParameteri := dglGetProcAddress('glPatchParameteri');
16513   glPatchParameterfv := dglGetProcAddress('glPatchParameterfv');
16514 end;
16515
16516 procedure Read_GL_ARB_transform_feedback2;
16517 begin
16518   glBindTransformFeedback := dglGetProcAddress('glBindTransformFeedback');
16519   glDeleteTransformFeedbacks := dglGetProcAddress('glDeleteTransformFeedbacks');
16520   glGenTransformFeedbacks := dglGetProcAddress('glGenTransformFeedbacks');
16521   glIsTransformFeedback := dglGetProcAddress('glIsTransformFeedback');
16522   glPauseTransformFeedback := dglGetProcAddress('glPauseTransformFeedback');
16523   glResumeTransformFeedback := dglGetProcAddress('glResumeTransformFeedback');
16524   glDrawTransformFeedback := dglGetProcAddress('glDrawTransformFeedback');
16525 end;
16526
16527 procedure Read_GL_ARB_transform_feedback3;
16528 begin
16529   glDrawTransformFeedbackStream := dglGetProcAddress('glDrawTransformFeedbackStream');
16530   glBeginQueryIndexed := dglGetProcAddress('glBeginQueryIndexed');
16531   glEndQueryIndexed := dglGetProcAddress('glEndQueryIndexed');
16532   glGetQueryIndexediv := dglGetProcAddress('glGetQueryIndexediv');
16533 end;
16534
16535 procedure Read_GL_ARB_ES2_compatibility;
16536 begin
16537   glReleaseShaderCompiler := dglGetProcAddress('glReleaseShaderCompiler');
16538   glShaderBinary := dglGetProcAddress('glShaderBinary');
16539   glGetShaderPrecisionFormat := dglGetProcAddress('glGetShaderPrecisionFormat');
16540   glDepthRangef := dglGetProcAddress('glDepthRangef');
16541   glClearDepthf := dglGetProcAddress('glClearDepthf');
16542 end;
16543
16544 procedure Read_GL_ARB_get_program_binary;
16545 begin
16546   glGetProgramBinary := dglGetProcAddress('glGetProgramBinary');
16547   glProgramBinary := dglGetProcAddress('glProgramBinary');
16548   glProgramParameteri := dglGetProcAddress('glProgramParameteri');
16549 end;
16550
16551 procedure Read_GL_ARB_separate_shader_objects;
16552 begin
16553   glUseProgramStages := dglGetProcAddress('glUseProgramStages');
16554   glActiveShaderProgram := dglGetProcAddress('glActiveShaderProgram');
16555   glCreateShaderProgramv := dglGetProcAddress('glCreateShaderProgramv');
16556   glBindProgramPipeline := dglGetProcAddress('glBindProgramPipeline');
16557   glDeleteProgramPipelines := dglGetProcAddress('glDeleteProgramPipelines');
16558   glGenProgramPipelines := dglGetProcAddress('glGenProgramPipelines');
16559   glIsProgramPipeline := dglGetProcAddress('glIsProgramPipeline');
16560   glGetProgramPipelineiv := dglGetProcAddress('glGetProgramPipelineiv');
16561   glProgramUniform1i := dglGetProcAddress('glProgramUniform1i');
16562   glProgramUniform1iv := dglGetProcAddress('glProgramUniform1iv');
16563   glProgramUniform1f := dglGetProcAddress('glProgramUniform1f');
16564   glProgramUniform1fv := dglGetProcAddress('glProgramUniform1fv');
16565   glProgramUniform1d := dglGetProcAddress('glProgramUniform1d');
16566   glProgramUniform1dv := dglGetProcAddress('glProgramUniform1dv');
16567   glProgramUniform1ui := dglGetProcAddress('glProgramUniform1ui');
16568   glProgramUniform1uiv := dglGetProcAddress('glProgramUniform1uiv');
16569   glProgramUniform2i := dglGetProcAddress('glProgramUniform2i');
16570   glProgramUniform2iv := dglGetProcAddress('glProgramUniform2iv');
16571   glProgramUniform2f := dglGetProcAddress('glProgramUniform2f');
16572   glProgramUniform2fv := dglGetProcAddress('glProgramUniform2fv');
16573   glProgramUniform2d := dglGetProcAddress('glProgramUniform2d');
16574   glProgramUniform2dv := dglGetProcAddress('glProgramUniform2dv');
16575   glProgramUniform2ui := dglGetProcAddress('glProgramUniform2ui');
16576   glProgramUniform2uiv := dglGetProcAddress('glProgramUniform2uiv');
16577   glProgramUniform3i := dglGetProcAddress('glProgramUniform3i');
16578   glProgramUniform3iv := dglGetProcAddress('glProgramUniform3iv');
16579   glProgramUniform3f := dglGetProcAddress('glProgramUniform3f');
16580   glProgramUniform3fv := dglGetProcAddress('glProgramUniform3fv');
16581   glProgramUniform3d := dglGetProcAddress('glProgramUniform3d');
16582   glProgramUniform3dv := dglGetProcAddress('glProgramUniform3dv');
16583   glProgramUniform3ui := dglGetProcAddress('glProgramUniform3ui');
16584   glProgramUniform3uiv := dglGetProcAddress('glProgramUniform3uiv');
16585   glProgramUniform4i := dglGetProcAddress('glProgramUniform4i');
16586   glProgramUniform4iv := dglGetProcAddress('glProgramUniform4iv');
16587   glProgramUniform4f := dglGetProcAddress('glProgramUniform4f');
16588   glProgramUniform4fv := dglGetProcAddress('glProgramUniform4fv');
16589   glProgramUniform4d := dglGetProcAddress('glProgramUniform4d');
16590   glProgramUniform4dv := dglGetProcAddress('glProgramUniform4dv');
16591   glProgramUniform4ui := dglGetProcAddress('glProgramUniform4ui');
16592   glProgramUniform4uiv := dglGetProcAddress('glProgramUniform4uiv');
16593   glProgramUniformMatrix2fv := dglGetProcAddress('glProgramUniformMatrix2fv');
16594   glProgramUniformMatrix3fv := dglGetProcAddress('glProgramUniformMatrix3fv');
16595   glProgramUniformMatrix4fv := dglGetProcAddress('glProgramUniformMatrix4fv');
16596   glProgramUniformMatrix2dv := dglGetProcAddress('glProgramUniformMatrix2dv');
16597   glProgramUniformMatrix3dv := dglGetProcAddress('glProgramUniformMatrix3dv');
16598   glProgramUniformMatrix4dv := dglGetProcAddress('glProgramUniformMatrix4dv');
16599   glProgramUniformMatrix2x3fv := dglGetProcAddress('glProgramUniformMatrix2x3fv');
16600   glProgramUniformMatrix3x2fv := dglGetProcAddress('glProgramUniformMatrix3x2fv');
16601   glProgramUniformMatrix2x4fv := dglGetProcAddress('glProgramUniformMatrix2x4fv');
16602   glProgramUniformMatrix4x2fv := dglGetProcAddress('glProgramUniformMatrix4x2fv');
16603   glProgramUniformMatrix3x4fv := dglGetProcAddress('glProgramUniformMatrix3x4fv');
16604   glProgramUniformMatrix4x3fv := dglGetProcAddress('glProgramUniformMatrix4x3fv');
16605   glProgramUniformMatrix2x3dv := dglGetProcAddress('glProgramUniformMatrix2x3dv');
16606   glProgramUniformMatrix3x2dv := dglGetProcAddress('glProgramUniformMatrix3x2dv');
16607   glProgramUniformMatrix2x4dv := dglGetProcAddress('glProgramUniformMatrix2x4dv');
16608   glProgramUniformMatrix4x2dv := dglGetProcAddress('glProgramUniformMatrix4x2dv');
16609   glProgramUniformMatrix3x4dv := dglGetProcAddress('glProgramUniformMatrix3x4dv');
16610   glProgramUniformMatrix4x3dv := dglGetProcAddress('glProgramUniformMatrix4x3dv');
16611   glValidateProgramPipeline := dglGetProcAddress('glValidateProgramPipeline');
16612   glGetProgramPipelineInfoLog := dglGetProcAddress('glGetProgramPipelineInfoLog');
16613 end;
16614
16615 procedure Read_GL_ARB_vertex_attrib_64bit;
16616 begin
16617   glVertexAttribL1d := dglGetProcAddress('glVertexAttribL1d');
16618   glVertexAttribL2d := dglGetProcAddress('glVertexAttribL2d');
16619   glVertexAttribL3d := dglGetProcAddress('glVertexAttribL3d');
16620   glVertexAttribL4d := dglGetProcAddress('glVertexAttribL4d');
16621   glVertexAttribL1dv := dglGetProcAddress('glVertexAttribL1dv');
16622   glVertexAttribL2dv := dglGetProcAddress('glVertexAttribL2dv');
16623   glVertexAttribL3dv := dglGetProcAddress('glVertexAttribL3dv');
16624   glVertexAttribL4dv := dglGetProcAddress('glVertexAttribL4dv');
16625   glVertexAttribLPointer := dglGetProcAddress('glVertexAttribLPointer');
16626   glGetVertexAttribLdv := dglGetProcAddress('glGetVertexAttribLdv');
16627 end;
16628
16629 procedure Read_GL_ARB_viewport_array;
16630 begin
16631   glViewportArrayv := dglGetProcAddress('glViewportArrayv');
16632   glViewportIndexedf := dglGetProcAddress('glViewportIndexedf');
16633   glViewportIndexedfv := dglGetProcAddress('glViewportIndexedfv');
16634   glScissorArrayv := dglGetProcAddress('glScissorArrayv');
16635   glScissorIndexed := dglGetProcAddress('glScissorIndexed');
16636   glScissorIndexedv := dglGetProcAddress('glScissorIndexedv');
16637   glDepthRangeArrayv := dglGetProcAddress('glDepthRangeArrayv');
16638   glDepthRangeIndexed := dglGetProcAddress('glDepthRangeIndexed');
16639   glGetFloati_v := dglGetProcAddress('glGetFloati_v');
16640   glGetDoublei_v := dglGetProcAddress('glGetDoublei_v');
16641 end;
16642
16643 // GL 4.2
16644
16645 procedure Read_GL_ARB_base_instance;
16646 begin
16647 glDrawArraysInstancedBaseInstance := dglGetProcAddress('glDrawArraysInstancedBaseInstance');
16648 glDrawElementsInstancedBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseInstance');
16649 glDrawElementsInstancedBaseVertexBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseVertexBaseInstance');
16650 end;
16651
16652 procedure Read_GL_ARB_transform_feedback_instanced;
16653 begin
16654 glDrawTransformFeedbackInstanced := dglGetProcAddress('glDrawTransformFeedbackInstanced');
16655 glDrawTransformFeedbackStreamInstanced := dglGetProcAddress('glDrawTransformFeedbackStreamInstanced');
16656 end;
16657
16658 procedure Read_GL_ARB_internalformat_query;
16659 begin
16660 glGetInternalformativ := dglGetProcAddress('glGetInternalformativ');
16661 end;
16662
16663 procedure Read_GL_ARB_shader_atomic_counters;
16664 begin
16665 glGetActiveAtomicCounterBufferiv := dglGetProcAddress('glGetActiveAtomicCounterBufferiv');
16666 end;
16667
16668 procedure Read_GL_ARB_shader_image_load_store;
16669 begin
16670 glBindImageTexture := dglGetProcAddress('glBindImageTexture');
16671 glMemoryBarrier := dglGetProcAddress('glMemoryBarrier');
16672 end;
16673
16674 procedure Read_GL_ARB_texture_storage;
16675 begin
16676 glTexStorage1D := dglGetProcAddress('glTexStorage1D');
16677 glTexStorage2D := dglGetProcAddress('glTexStorage2D');
16678 glTexStorage3D := dglGetProcAddress('glTexStorage3D');
16679 glTextureStorage1DEXT := dglGetProcAddress('glTextureStorage1DEXT');
16680 glTextureStorage2DEXT := dglGetProcAddress('glTextureStorage2DEXT');
16681 glTextureStorage3DEXT := dglGetProcAddress('glTextureStorage3DEXT');
16682 end;
16683
16684
16685 // GL 4.3
16686 procedure Read_GL_KHR_debug;
16687 begin
16688   glDebugMessageControl := dglGetProcAddress('glDebugMessageControl');
16689   glDebugMessageInsert := dglGetProcAddress('glDebugMessageInsert');
16690   glDebugMessageCallback := dglGetProcAddress('glDebugMessageCallback');
16691   glGetDebugMessageLog := dglGetProcAddress('glGetDebugMessageLog');
16692   glPushDebugGroup := dglGetProcAddress('glPushDebugGroup');
16693   glPopDebugGroup := dglGetProcAddress('glPopDebugGroup');
16694   glObjectLabel := dglGetProcAddress('glObjectLabel');
16695   glGetObjectLabel := dglGetProcAddress('glGetObjectLabel');
16696   glObjectPtrLabel := dglGetProcAddress('glObjectPtrLabel');
16697   glGetObjectPtrLabel := dglGetProcAddress('glGetObjectPtrLabel');
16698 end;
16699
16700 procedure Read_GL_ARB_clear_buffer_object;
16701 begin
16702   glClearBufferData := dglGetProcAddress('glClearBufferData');
16703   glClearBufferSubData := dglGetProcAddress('glClearBufferSubData');
16704   glClearNamedBufferDataEXT := dglGetProcAddress('glClearNamedBufferDataEXT');
16705   glClearNamedBufferSubDataEXT := dglGetProcAddress('glClearNamedBufferSubDataEXT');
16706 end;
16707
16708 procedure Read_GL_ARB_compute_shader;
16709 begin
16710   glDispatchCompute := dglGetProcAddress('glDispatchCompute');
16711   glDispatchComputeIndirect := dglGetProcAddress('glDispatchComputeIndirect');
16712 end;
16713
16714 procedure Read_GL_ARB_copy_image;
16715 begin
16716   glCopyImageSubData := dglGetProcAddress('glCopyImageSubData');
16717 end;
16718
16719 procedure Read_GL_ARB_framebuffer_no_attachments;
16720 begin
16721   glFramebufferParameteri := dglGetProcAddress('glFramebufferParameteri');
16722   glGetFramebufferParameteriv := dglGetProcAddress('glGetFramebufferParameteriv');
16723   glNamedFramebufferParameteriEXT := dglGetProcAddress('glNamedFramebufferParameteriEXT');
16724   glGetNamedFramebufferParameterivEXT := dglGetProcAddress('glGetNamedFramebufferParameterivEXT');
16725 end;
16726
16727 procedure Read_GL_ARB_internalformat_query2;
16728 begin
16729   glGetInternalformati64v := dglGetProcAddress('glGetInternalformati64v');;
16730 end;
16731
16732 procedure Read_GL_ARB_invalidate_subdata;
16733 begin
16734   glInvalidateTexSubImage := dglGetProcAddress('glInvalidateTexSubImage');
16735   glInvalidateTexImage := dglGetProcAddress('glInvalidateTexImage');
16736   glInvalidateBufferSubData := dglGetProcAddress('glInvalidateBufferSubData');
16737   glInvalidateBufferData := dglGetProcAddress('glInvalidateBufferData');
16738   glInvalidateFramebuffer := dglGetProcAddress('glInvalidateFramebuffer');
16739   glInvalidateSubFramebuffer := dglGetProcAddress('glInvalidateSubFramebuffer');
16740 end;
16741
16742 procedure Read_GL_ARB_multi_draw_indirect;
16743 begin
16744   glMultiDrawArraysIndirect := dglGetProcAddress('glMultiDrawArraysIndirect');
16745   glMultiDrawElementsIndirect := dglGetProcAddress('glMultiDrawElementsIndirect');
16746 end;
16747
16748 procedure Read_GL_ARB_program_interface_query;
16749 begin
16750   glGetProgramInterfaceiv := dglGetProcAddress('glGetProgramInterfaceiv');
16751   glGetProgramResourceIndex := dglGetProcAddress('glGetProgramResourceIndex');
16752   glGetProgramResourceName := dglGetProcAddress('glGetProgramResourceName');
16753   glGetProgramResourceiv := dglGetProcAddress('glGetProgramResourceiv');
16754   glGetProgramResourceLocation := dglGetProcAddress('glGetProgramResourceLocation');
16755   glGetProgramResourceLocationIndex := dglGetProcAddress('glGetProgramResourceLocationIndex');
16756 end;
16757
16758 procedure Read_GL_ARB_shader_storage_buffer_object;
16759 begin
16760   glShaderStorageBlockBinding := dglGetProcAddress('glShaderStorageBlockBinding');
16761 end;
16762
16763 procedure Read_GL_ARB_texture_buffer_range;
16764 begin
16765   glTexBufferRange := dglGetProcAddress('glTexBufferRange');
16766   glTextureBufferRangeEXT := dglGetProcAddress('glTextureBufferRangeEXT');
16767 end;
16768
16769 procedure Read_GL_ARB_texture_storage_multisample;
16770 begin
16771   glTexStorage2DMultisample := dglGetProcAddress('glTexStorage2DMultisample');
16772   glTexStorage3DMultisample := dglGetProcAddress('glTexStorage3DMultisample');
16773   glTextureStorage2DMultisampleEXT := dglGetProcAddress('glTextureStorage2DMultisampleEXT');
16774   glTextureStorage3DMultisampleEXT := dglGetProcAddress('glTextureStorage3DMultisampleEXT');
16775 end;
16776
16777 procedure Read_GL_ARB_texture_view;
16778 begin
16779   glTextureView := dglGetProcAddress('glTextureView');
16780 end;
16781
16782 procedure Read_GL_ARB_vertex_attrib_binding;
16783 begin
16784   glBindVertexBuffer := dglGetProcAddress('glBindVertexBuffer');
16785   glVertexAttribFormat := dglGetProcAddress('glVertexAttribFormat');
16786   glVertexAttribIFormat := dglGetProcAddress('glVertexAttribIFormat');
16787   glVertexAttribLFormat := dglGetProcAddress('glVertexAttribLFormat');
16788   glVertexAttribBinding := dglGetProcAddress('glVertexAttribBinding');
16789   glVertexBindingDivisor := dglGetProcAddress('glVertexBindingDivisor');
16790   glVertexArrayBindVertexBufferEXT := dglGetProcAddress('glVertexArrayBindVertexBufferEXT');
16791   glVertexArrayVertexAttribFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribFormatEXT');
16792   glVertexArrayVertexAttribIFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribIFormatEXT');
16793   glVertexArrayVertexAttribLFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribLFormatEXT');
16794   glVertexArrayVertexAttribBindingEXT := dglGetProcAddress('glVertexArrayVertexAttribBindingEXT');
16795   glVertexArrayVertexBindingDivisorEXT := dglGetProcAddress('glVertexArrayVertexBindingDivisorEXT');
16796 end;
16797
16798 procedure Read_GL_4_4;
16799 begin
16800   glBufferStorage     := dglGetProcAddress('glBufferStorage');
16801   glClearTexImage     := dglGetProcAddress('glClearTexImage');
16802   glClearTexSubImage  := dglGetProcAddress('glClearTexSubImage');
16803   glBindBuffersBase   := dglGetProcAddress('glBindBuffersBase');
16804   glBindBuffersRange  := dglGetProcAddress('glBindBuffersRange');
16805   glBindTextures      := dglGetProcAddress('glBindTextures');
16806   glBindSamplers      := dglGetProcAddress('glBindSamplers');
16807   glBindImageTextures := dglGetProcAddress('glBindImageTextures');
16808   glBindVertexBuffers := dglGetProcAddress('glBindVertexBuffers');
16809 end;
16810
16811
16812 procedure Read_GL_NV_path_rendering;
16813 begin
16814   glGenPathsNV := dglGetProcAddress('glGenPathsNV');
16815   glDeletePathsNV := dglGetProcAddress('glDeletePathsNV');
16816   glIsPathNV := dglGetProcAddress('glIsPathNV');
16817   glPathCommandsNV := dglGetProcAddress('glPathCommandsNV');
16818   glPathCoordsNV := dglGetProcAddress('glPathCoordsNV');
16819   glPathSubCommandsNV := dglGetProcAddress('glPathSubCommandsNV');
16820   glPathSubCoordsNV := dglGetProcAddress('glPathSubCoordsNV');
16821   glPathStringNV := dglGetProcAddress('glPathStringNV');
16822   glPathGlyphsNV := dglGetProcAddress('glPathGlyphsNV');
16823   glPathGlyphRangeNV := dglGetProcAddress('glPathGlyphRangeNV');
16824   glWeightPathsNV := dglGetProcAddress('glWeightPathsNV');
16825   glCopyPathNV := dglGetProcAddress('glCopyPathNV');
16826   glInterpolatePathsNV := dglGetProcAddress('glInterpolatePathsNV');
16827   glTransformPathNV := dglGetProcAddress('glTransformPathNV');
16828   glPathParameterivNV := dglGetProcAddress('glPathParameterivNV');
16829   glPathParameteriNV := dglGetProcAddress('glPathParameteriNV');
16830   glPathParameterfvNV := dglGetProcAddress('glPathParameterfvNV');
16831   glPathParameterfNV := dglGetProcAddress('glPathParameterfNV');
16832   glPathDashArrayNV := dglGetProcAddress('glPathDashArrayNV');
16833   glPathStencilFuncNV := dglGetProcAddress('glPathStencilFuncNV');
16834   glPathStencilDepthOffsetNV := dglGetProcAddress('glPathStencilDepthOffsetNV');
16835   glStencilFillPathNV := dglGetProcAddress('glStencilFillPathNV');
16836   glStencilStrokePathNV := dglGetProcAddress('glStencilStrokePathNV');
16837   glStencilFillPathInstancedNV := dglGetProcAddress('glStencilFillPathInstancedNV');
16838   glStencilStrokePathInstancedNV := dglGetProcAddress('glStencilStrokePathInstancedNV');
16839   glPathCoverDepthFuncNV := dglGetProcAddress('glPathCoverDepthFuncNV');
16840   glPathColorGenNV := dglGetProcAddress('glPathColorGenNV');
16841   glPathTexGenNV := dglGetProcAddress('glPathTexGenNV');
16842   glPathFogGenNV := dglGetProcAddress('glPathFogGenNV');
16843   glCoverFillPathNV := dglGetProcAddress('glCoverFillPathNV');
16844   glCoverStrokePathNV := dglGetProcAddress('glCoverStrokePathNV');
16845   glCoverFillPathInstancedNV := dglGetProcAddress('glCoverFillPathInstancedNV');
16846   glCoverStrokePathInstancedNV := dglGetProcAddress('glCoverStrokePathInstancedNV');
16847   glGetPathParameterivNV := dglGetProcAddress('glGetPathParameterivNV');
16848   glGetPathParameterfvNV := dglGetProcAddress('glGetPathParameterfvNV');
16849   glGetPathCommandsNV := dglGetProcAddress('glGetPathCommandsNV');
16850   glGetPathCoordsNV := dglGetProcAddress('glGetPathCoordsNV');
16851   glGetPathDashArrayNV := dglGetProcAddress('glGetPathDashArrayNV');
16852   glGetPathMetricsNV := dglGetProcAddress('glGetPathMetricsNV');
16853   glGetPathMetricRangeNV := dglGetProcAddress('glGetPathMetricRangeNV');
16854   glGetPathSpacingNV := dglGetProcAddress('glGetPathSpacingNV');
16855   glGetPathColorGenivNV := dglGetProcAddress('glGetPathColorGenivNV');
16856   glGetPathColorGenfvNV := dglGetProcAddress('glGetPathColorGenfvNV');
16857   glGetPathTexGenivNV := dglGetProcAddress('glGetPathTexGenivNV');
16858   glGetPathTexGenfvNV := dglGetProcAddress('glGetPathTexGenfvNV');
16859   glIsPointInFillPathNV := dglGetProcAddress('glIsPointInFillPathNV');
16860   glIsPointInStrokePathNV := dglGetProcAddress('glIsPointInStrokePathNV');
16861   glGetPathLengthNV := dglGetProcAddress('glGetPathLengthNV');
16862   glPointAlongPathNV := dglGetProcAddress('glPointAlongPathNV');
16863 end;
16864
16865 procedure Read_GL_AMD_stencil_operation_extended;
16866 begin
16867         glStencilOpValueAMD := dglGetProcAddress('glStencilOpValueAMD');
16868 end;
16869
16870 procedure Read_GL_NV_bindless_texture;
16871 begin
16872   glGetTextureHandleNV := dglGetProcAddress('glGetTextureHandleNV');
16873   glGetTextureSamplerHandleNV := dglGetProcAddress('glGetTextureSamplerHandleNV');
16874   glMakeTextureHandleResidentNV := dglGetProcAddress('glMakeTextureHandleResidentNV');
16875   glMakeTextureHandleNonResidentNV := dglGetProcAddress('glMakeTextureHandleNonResidentNV');
16876   glGetImageHandleNV := dglGetProcAddress('glGetImageHandleNV');
16877   glMakeImageHandleResidentNV := dglGetProcAddress('glMakeImageHandleResidentNV');
16878   glMakeImageHandleNonResidentNV := dglGetProcAddress('glMakeImageHandleNonResidentNV');
16879   glUniformHandleui64NV := dglGetProcAddress('glUniformHandleui64NV');
16880   glUniformHandleui64vNV := dglGetProcAddress('glUniformHandleui64vNV');
16881   glProgramUniformHandleui64NV := dglGetProcAddress('glProgramUniformHandleui64NV');
16882   glProgramUniformHandleui64vNV := dglGetProcAddress('glProgramUniformHandleui64vNV');
16883   glIsTextureHandleResidentNV := dglGetProcAddress('glIsTextureHandleResidentNV');
16884   glIsImageHandleResidentNV := dglGetProcAddress('glIsImageHandleResidentNV');
16885 end;
16886
16887 procedure Read_GL_ARB_cl_event;
16888 begin
16889   glCreateSyncFromCLeventARB := dglGetProcAddress('glCreateSyncFromCLeventARB');
16890 end;
16891
16892 procedure Read_GL_ARB_debug_output;
16893 begin
16894   glDebugMessageControlARB := dglGetProcAddress('glDebugMessageControlARB');
16895   glDebugMessageInsertARB := dglGetProcAddress('glDebugMessageInsertARB');
16896   glDebugMessageCallbackARB := dglGetProcAddress('glDebugMessageCallbackARB');
16897   glGetDebugMessageLogARB := dglGetProcAddress('glGetDebugMessageLogARB');
16898 end;
16899
16900 procedure Read_GL_ARB_robustness;
16901 begin
16902   glGetGraphicsResetStatusARB := dglGetProcAddress('glGetGraphicsResetStatusARB');
16903   glGetnMapdvARB := dglGetProcAddress('glGetnMapdvARB');
16904   glGetnMapfvARB := dglGetProcAddress('glGetnMapfvARB');
16905   glGetnMapivARB := dglGetProcAddress('glGetnMapivARB');
16906   glGetnPixelMapfvARB := dglGetProcAddress('glGetnPixelMapfvARB');
16907   glGetnPixelMapuivARB := dglGetProcAddress('glGetnPixelMapuivARB');
16908   glGetnPixelMapusvARB := dglGetProcAddress('glGetnPixelMapusvARB');
16909   glGetnPolygonStippleARB := dglGetProcAddress('glGetnPolygonStippleARB');
16910   glGetnColorTableARB := dglGetProcAddress('glGetnColorTableARB');
16911   glGetnConvolutionFilterARB := dglGetProcAddress('glGetnConvolutionFilterARB');
16912   glGetnSeparableFilterARB := dglGetProcAddress('glGetnSeparableFilterARB');
16913   glGetnHistogramARB := dglGetProcAddress('glGetnHistogramARB');
16914   glGetnMinmaxARB := dglGetProcAddress('glGetnMinmaxARB');
16915   glGetnTexImageARB := dglGetProcAddress('glGetnTexImageARB');
16916   glReadnPixelsARB := dglGetProcAddress('glReadnPixelsARB');
16917   glGetnCompressedTexImageARB := dglGetProcAddress('glGetnCompressedTexImageARB');
16918   glGetnUniformfvARB := dglGetProcAddress('glGetnUniformfvARB');
16919   glGetnUniformivARB := dglGetProcAddress('glGetnUniformivARB');
16920   glGetnUniformuivARB := dglGetProcAddress('glGetnUniformuivARB');
16921   glGetnUniformdvARB := dglGetProcAddress('glGetnUniformdvARB');
16922 end;
16923   
16924 procedure Read_GL_ATI_draw_buffers;
16925 begin
16926   glDrawBuffersATI := dglGetProcAddress('glDrawBuffersATI');
16927 end;
16928
16929 procedure Read_GL_ATI_element_array;
16930 begin
16931   glElementPointerATI := dglGetProcAddress('glElementPointerATI');
16932   glDrawElementArrayATI := dglGetProcAddress('glDrawElementArrayATI');
16933   glDrawRangeElementArrayATI := dglGetProcAddress('glDrawRangeElementArrayATI');
16934 end;
16935
16936 procedure Read_GL_ATI_envmap_bumpmap;
16937 begin
16938   glTexBumpParameterivATI := dglGetProcAddress('glTexBumpParameterivATI');
16939   glTexBumpParameterfvATI := dglGetProcAddress('glTexBumpParameterfvATI');
16940   glGetTexBumpParameterivATI := dglGetProcAddress('glGetTexBumpParameterivATI');
16941   glGetTexBumpParameterfvATI := dglGetProcAddress('glGetTexBumpParameterfvATI');
16942 end;
16943
16944 procedure Read_GL_ATI_fragment_shader;
16945 begin
16946   glGenFragmentShadersATI := dglGetProcAddress('glGenFragmentShadersATI');
16947   glBindFragmentShaderATI := dglGetProcAddress('glBindFragmentShaderATI');
16948   glDeleteFragmentShaderATI := dglGetProcAddress('glDeleteFragmentShaderATI');
16949   glBeginFragmentShaderATI := dglGetProcAddress('glBeginFragmentShaderATI');
16950   glEndFragmentShaderATI := dglGetProcAddress('glEndFragmentShaderATI');
16951   glPassTexCoordATI := dglGetProcAddress('glPassTexCoordATI');
16952   glSampleMapATI := dglGetProcAddress('glSampleMapATI');
16953   glColorFragmentOp1ATI := dglGetProcAddress('glColorFragmentOp1ATI');
16954   glColorFragmentOp2ATI := dglGetProcAddress('glColorFragmentOp2ATI');
16955   glColorFragmentOp3ATI := dglGetProcAddress('glColorFragmentOp3ATI');
16956   glAlphaFragmentOp1ATI := dglGetProcAddress('glAlphaFragmentOp1ATI');
16957   glAlphaFragmentOp2ATI := dglGetProcAddress('glAlphaFragmentOp2ATI');
16958   glAlphaFragmentOp3ATI := dglGetProcAddress('glAlphaFragmentOp3ATI');
16959   glSetFragmentShaderConstantATI := dglGetProcAddress('glSetFragmentShaderConstantATI');
16960 end;
16961
16962 procedure Read_GL_ATI_map_object_buffer;
16963 begin
16964   glMapObjectBufferATI := dglGetProcAddress('glMapObjectBufferATI');
16965   glUnmapObjectBufferATI := dglGetProcAddress('glUnmapObjectBufferATI');
16966 end;
16967
16968 procedure Read_GL_ATI_pn_triangles;
16969 begin
16970   glPNTrianglesiATI := dglGetProcAddress('glPNTrianglesiATI');
16971   glPNTrianglesfATI := dglGetProcAddress('glPNTrianglesfATI');
16972 end;
16973
16974 procedure Read_GL_ATI_separate_stencil;
16975 begin
16976   glStencilOpSeparateATI := dglGetProcAddress('glStencilOpSeparateATI');
16977   glStencilFuncSeparateATI := dglGetProcAddress('glStencilFuncSeparateATI');
16978 end;
16979
16980 procedure Read_GL_ATI_vertex_array_object;
16981 begin
16982   glNewObjectBufferATI := dglGetProcAddress('glNewObjectBufferATI');
16983   glIsObjectBufferATI := dglGetProcAddress('glIsObjectBufferATI');
16984   glUpdateObjectBufferATI := dglGetProcAddress('glUpdateObjectBufferATI');
16985   glGetObjectBufferfvATI := dglGetProcAddress('glGetObjectBufferfvATI');
16986   glGetObjectBufferivATI := dglGetProcAddress('glGetObjectBufferivATI');
16987   glFreeObjectBufferATI := dglGetProcAddress('glFreeObjectBufferATI');
16988   glArrayObjectATI := dglGetProcAddress('glArrayObjectATI');
16989   glGetArrayObjectfvATI := dglGetProcAddress('glGetArrayObjectfvATI');
16990   glGetArrayObjectivATI := dglGetProcAddress('glGetArrayObjectivATI');
16991   glVariantArrayObjectATI := dglGetProcAddress('glVariantArrayObjectATI');
16992   glGetVariantArrayObjectfvATI := dglGetProcAddress('glGetVariantArrayObjectfvATI');
16993   glGetVariantArrayObjectivATI := dglGetProcAddress('glGetVariantArrayObjectivATI');
16994
16995 end;
16996
16997 procedure Read_GL_ATI_vertex_attrib_array_object;
16998 begin
16999   glVertexAttribArrayObjectATI := dglGetProcAddress('glVertexAttribArrayObjectATI');
17000   glGetVertexAttribArrayObjectfvATI := dglGetProcAddress('glGetVertexAttribArrayObjectfvATI');
17001   glGetVertexAttribArrayObjectivATI := dglGetProcAddress('glGetVertexAttribArrayObjectivATI');
17002 end;
17003
17004 procedure Read_GL_ATI_vertex_streams;
17005 begin
17006   glVertexStream1sATI := dglGetProcAddress('glVertexStream1sATI');
17007   glVertexStream1svATI := dglGetProcAddress('glVertexStream1svATI');
17008   glVertexStream1iATI := dglGetProcAddress('glVertexStream1iATI');
17009   glVertexStream1ivATI := dglGetProcAddress('glVertexStream1ivATI');
17010   glVertexStream1fATI := dglGetProcAddress('glVertexStream1fATI');
17011   glVertexStream1fvATI := dglGetProcAddress('glVertexStream1fvATI');
17012   glVertexStream1dATI := dglGetProcAddress('glVertexStream1dATI');
17013   glVertexStream1dvATI := dglGetProcAddress('glVertexStream1dvATI');
17014   glVertexStream2sATI := dglGetProcAddress('glVertexStream2sATI');
17015   glVertexStream2svATI := dglGetProcAddress('glVertexStream2svATI');
17016   glVertexStream2iATI := dglGetProcAddress('glVertexStream2iATI');
17017   glVertexStream2ivATI := dglGetProcAddress('glVertexStream2ivATI');
17018   glVertexStream2fATI := dglGetProcAddress('glVertexStream2fATI');
17019   glVertexStream2fvATI := dglGetProcAddress('glVertexStream2fvATI');
17020   glVertexStream2dATI := dglGetProcAddress('glVertexStream2dATI');
17021   glVertexStream2dvATI := dglGetProcAddress('glVertexStream2dvATI');
17022   glVertexStream3sATI := dglGetProcAddress('glVertexStream3sATI');
17023   glVertexStream3svATI := dglGetProcAddress('glVertexStream3svATI');
17024   glVertexStream3iATI := dglGetProcAddress('glVertexStream3iATI');
17025   glVertexStream3ivATI := dglGetProcAddress('glVertexStream3ivATI');
17026   glVertexStream3fATI := dglGetProcAddress('glVertexStream3fATI');
17027   glVertexStream3fvATI := dglGetProcAddress('glVertexStream3fvATI');
17028   glVertexStream3dATI := dglGetProcAddress('glVertexStream3dATI');
17029   glVertexStream3dvATI := dglGetProcAddress('glVertexStream3dvATI');
17030   glVertexStream4sATI := dglGetProcAddress('glVertexStream4sATI');
17031   glVertexStream4svATI := dglGetProcAddress('glVertexStream4svATI');
17032   glVertexStream4iATI := dglGetProcAddress('glVertexStream4iATI');
17033   glVertexStream4ivATI := dglGetProcAddress('glVertexStream4ivATI');
17034   glVertexStream4fATI := dglGetProcAddress('glVertexStream4fATI');
17035   glVertexStream4fvATI := dglGetProcAddress('glVertexStream4fvATI');
17036   glVertexStream4dATI := dglGetProcAddress('glVertexStream4dATI');
17037   glVertexStream4dvATI := dglGetProcAddress('glVertexStream4dvATI');
17038   glNormalStream3bATI := dglGetProcAddress('glNormalStream3bATI');
17039   glNormalStream3bvATI := dglGetProcAddress('glNormalStream3bvATI');
17040   glNormalStream3sATI := dglGetProcAddress('glNormalStream3sATI');
17041   glNormalStream3svATI := dglGetProcAddress('glNormalStream3svATI');
17042   glNormalStream3iATI := dglGetProcAddress('glNormalStream3iATI');
17043   glNormalStream3ivATI := dglGetProcAddress('glNormalStream3ivATI');
17044   glNormalStream3fATI := dglGetProcAddress('glNormalStream3fATI');
17045   glNormalStream3fvATI := dglGetProcAddress('glNormalStream3fvATI');
17046   glNormalStream3dATI := dglGetProcAddress('glNormalStream3dATI');
17047   glNormalStream3dvATI := dglGetProcAddress('glNormalStream3dvATI');
17048   glClientActiveVertexStreamATI := dglGetProcAddress('glClientActiveVertexStreamATI');
17049   glVertexBlendEnviATI := dglGetProcAddress('glVertexBlendEnviATI');
17050   glVertexBlendEnvfATI := dglGetProcAddress('glVertexBlendEnvfATI');
17051 end;
17052
17053 procedure Read_GL_AMD_performance_monitor;
17054 begin
17055   glGetPerfMonitorGroupsAMD := dglGetProcAddress('glGetPerfMonitorGroupsAMD');
17056   glGetPerfMonitorCountersAMD := dglGetProcAddress('glGetPerfMonitorCountersAMD');
17057   glGetPerfMonitorGroupStringAMD := dglGetProcAddress('glGetPerfMonitorGroupStringAMD');
17058   glGetPerfMonitorCounterStringAMD := dglGetProcAddress('glGetPerfMonitorCounterStringAMD');
17059   glGetPerfMonitorCounterInfoAMD := dglGetProcAddress('glGetPerfMonitorCounterInfoAMD');
17060   glGenPerfMonitorsAMD := dglGetProcAddress('glGenPerfMonitorsAMD');
17061   glDeletePerfMonitorsAMD := dglGetProcAddress('glDeletePerfMonitorsAMD');
17062   glSelectPerfMonitorCountersAMD := dglGetProcAddress('glSelectPerfMonitorCountersAMD');
17063   glBeginPerfMonitorAMD := dglGetProcAddress('glBeginPerfMonitorAMD');
17064   glEndPerfMonitorAMD := dglGetProcAddress('glEndPerfMonitorAMD');
17065   glGetPerfMonitorCounterDataAMD := dglGetProcAddress('glGetPerfMonitorCounterDataAMD');
17066 end;
17067
17068 procedure Read_GL_AMD_vertex_shader_tesselator;
17069 begin
17070   glTessellationFactorAMD := dglGetProcAddress('glTessellationFactorAMD');
17071   glTessellationModeAMD := dglGetProcAddress('glTessellationModeAMD');
17072 end;
17073
17074 procedure Read_GL_AMD_draw_buffers_blend;
17075 begin
17076   glBlendFuncIndexedAMD := dglGetProcAddress('glBlendFuncIndexedAMD');
17077   glBlendFuncSeparateIndexedAMD := dglGetProcAddress('glBlendFuncSeparateIndexedAMD');
17078   glBlendEquationIndexedAMD := dglGetProcAddress('glBlendEquationIndexedAMD');
17079   glBlendEquationSeparateIndexedAMD := dglGetProcAddress('glBlendEquationSeparateIndexedAMD');
17080 end;
17081
17082 procedure Read_GL_AMD_name_gen_delete;
17083 begin
17084   glGenNamesAMD := dglGetProcAddress('glGenNamesAMD');
17085   glDeleteNamesAMD := dglGetProcAddress('glDeleteNamesAMD');
17086   glIsNameAMD := dglGetProcAddress('glIsNameAMD');
17087 end;
17088
17089 procedure Read_GL_AMD_debug_output;
17090 begin
17091   glDebugMessageEnableAMD := dglGetProcAddress('glDebugMessageEnableAMD');
17092   glDebugMessageInsertAMD := dglGetProcAddress('glDebugMessageInsertAMD');
17093   glDebugMessageCallbackAMD := dglGetProcAddress('glDebugMessageCallbackAMD');
17094   glGetDebugMessageLogAMD := dglGetProcAddress('glGetDebugMessageLogAMD');
17095 end;
17096  
17097 procedure Read_GL_EXT_blend_color;
17098 begin
17099   glBlendColorEXT := dglGetProcAddress('glBlendColorEXT');
17100 end;
17101
17102 procedure Read_GL_EXT_blend_func_separate;
17103 begin
17104   glBlendFuncSeparateEXT := dglGetProcAddress('glBlendFuncSeparateEXT');
17105 end;
17106
17107 procedure Read_GL_EXT_blend_minmax;
17108 begin
17109   glBlendEquationEXT := dglGetProcAddress('glBlendEquationEXT');
17110 end;
17111
17112 procedure Read_GL_EXT_color_subtable;
17113 begin
17114   glColorSubTableEXT := dglGetProcAddress('glColorSubTableEXT');
17115   glCopyColorSubTableEXT := dglGetProcAddress('glCopyColorSubTableEXT');
17116 end;
17117
17118 procedure Read_GL_EXT_compiled_vertex_array;
17119 begin
17120   glLockArraysEXT := dglGetProcAddress('glLockArraysEXT');
17121   glUnlockArraysEXT := dglGetProcAddress('glUnlockArraysEXT');
17122 end;
17123
17124 procedure Read_GL_EXT_convolution;
17125 begin
17126   glConvolutionFilter1DEXT := dglGetProcAddress('glConvolutionFilter1DEXT');
17127   glConvolutionFilter2DEXT := dglGetProcAddress('glConvolutionFilter2DEXT');
17128   glConvolutionParameterfEXT := dglGetProcAddress('glConvolutionParameterfEXT');
17129   glConvolutionParameterfvEXT := dglGetProcAddress('glConvolutionParameterfvEXT');
17130   glConvolutionParameteriEXT := dglGetProcAddress('glConvolutionParameteriEXT');
17131   glConvolutionParameterivEXT := dglGetProcAddress('glConvolutionParameterivEXT');
17132   glCopyConvolutionFilter1DEXT := dglGetProcAddress('glCopyConvolutionFilter1DEXT');
17133   glCopyConvolutionFilter2DEXT := dglGetProcAddress('glCopyConvolutionFilter2DEXT');
17134   glGetConvolutionFilterEXT := dglGetProcAddress('glGetConvolutionFilterEXT');
17135   glGetConvolutionParameterfvEXT := dglGetProcAddress('glGetConvolutionParameterfvEXT');
17136   glGetConvolutionParameterivEXT := dglGetProcAddress('glGetConvolutionParameterivEXT');
17137   glGetSeparableFilterEXT := dglGetProcAddress('glGetSeparableFilterEXT');
17138   glSeparableFilter2DEXT := dglGetProcAddress('glSeparableFilter2DEXT');
17139 end;
17140
17141 procedure Read_GL_EXT_coordinate_frame;
17142 begin
17143   glTangent3bEXT := dglGetProcAddress('glTangent3bEXT');
17144   glTangent3bvEXT := dglGetProcAddress('glTangent3bvEXT');
17145   glTangent3dEXT := dglGetProcAddress('glTangent3dEXT');
17146   glTangent3dvEXT := dglGetProcAddress('glTangent3dvEXT');
17147   glTangent3fEXT := dglGetProcAddress('glTangent3fEXT');
17148   glTangent3fvEXT := dglGetProcAddress('glTangent3fvEXT');
17149   glTangent3iEXT := dglGetProcAddress('glTangent3iEXT');
17150   glTangent3ivEXT := dglGetProcAddress('glTangent3ivEXT');
17151   glTangent3sEXT := dglGetProcAddress('glTangent3sEXT');
17152   glTangent3svEXT := dglGetProcAddress('glTangent3svEXT');
17153   glBinormal3bEXT := dglGetProcAddress('glBinormal3bEXT');
17154   glBinormal3bvEXT := dglGetProcAddress('glBinormal3bvEXT');
17155   glBinormal3dEXT := dglGetProcAddress('glBinormal3dEXT');
17156   glBinormal3dvEXT := dglGetProcAddress('glBinormal3dvEXT');
17157   glBinormal3fEXT := dglGetProcAddress('glBinormal3fEXT');
17158   glBinormal3fvEXT := dglGetProcAddress('glBinormal3fvEXT');
17159   glBinormal3iEXT := dglGetProcAddress('glBinormal3iEXT');
17160   glBinormal3ivEXT := dglGetProcAddress('glBinormal3ivEXT');
17161   glBinormal3sEXT := dglGetProcAddress('glBinormal3sEXT');
17162   glBinormal3svEXT := dglGetProcAddress('glBinormal3svEXT');
17163   glTangentPointerEXT := dglGetProcAddress('glTangentPointerEXT');
17164   glBinormalPointerEXT := dglGetProcAddress('glBinormalPointerEXT');
17165 end;
17166
17167 procedure Read_GL_EXT_copy_texture;
17168 begin
17169   glCopyTexImage1DEXT := dglGetProcAddress('glCopyTexImage1DEXT');
17170   glCopyTexImage2DEXT := dglGetProcAddress('glCopyTexImage2DEXT');
17171   glCopyTexSubImage1DEXT := dglGetProcAddress('glCopyTexSubImage1DEXT');
17172   glCopyTexSubImage2DEXT := dglGetProcAddress('glCopyTexSubImage2DEXT');
17173   glCopyTexSubImage3DEXT := dglGetProcAddress('glCopyTexSubImage3DEXT');
17174 end;
17175
17176 procedure Read_GL_EXT_cull_vertex;
17177 begin
17178   glCullParameterdvEXT := dglGetProcAddress('glCullParameterdvEXT');
17179   glCullParameterfvEXT := dglGetProcAddress('glCullParameterfvEXT');
17180 end;
17181
17182 procedure Read_GL_EXT_draw_range_elements;
17183 begin
17184   glDrawRangeElementsEXT := dglGetProcAddress('glDrawRangeElementsEXT');
17185 end;
17186
17187 procedure Read_GL_EXT_fog_coord;
17188 begin
17189   glFogCoordfEXT := dglGetProcAddress('glFogCoordfEXT');
17190   glFogCoordfvEXT := dglGetProcAddress('glFogCoordfvEXT');
17191   glFogCoorddEXT := dglGetProcAddress('glFogCoorddEXT');
17192   glFogCoorddvEXT := dglGetProcAddress('glFogCoorddvEXT');
17193   glFogCoordPointerEXT := dglGetProcAddress('glFogCoordPointerEXT');
17194 end;
17195
17196 procedure Read_GL_EXT_framebuffer_object;
17197 begin
17198   glIsRenderbufferEXT := dglGetProcAddress('glIsRenderbufferEXT');
17199   glBindRenderbufferEXT := dglGetProcAddress('glBindRenderbufferEXT');
17200   glDeleteRenderbuffersEXT := dglGetProcAddress('glDeleteRenderbuffersEXT');
17201   glGenRenderbuffersEXT := dglGetProcAddress('glGenRenderbuffersEXT');
17202   glRenderbufferStorageEXT := dglGetProcAddress('glRenderbufferStorageEXT');
17203   glGetRenderbufferParameterivEXT := dglGetProcAddress('glGetRenderbufferParameterivEXT');
17204   glIsFramebufferEXT := dglGetProcAddress('glIsFramebufferEXT');
17205   glBindFramebufferEXT := dglGetProcAddress('glBindFramebufferEXT');
17206   glDeleteFramebuffersEXT := dglGetProcAddress('glDeleteFramebuffersEXT');
17207   glGenFramebuffersEXT := dglGetProcAddress('glGenFramebuffersEXT');
17208   glCheckFramebufferStatusEXT := dglGetProcAddress('glCheckFramebufferStatusEXT');
17209   glFramebufferTexture1DEXT := dglGetProcAddress('glFramebufferTexture1DEXT');
17210   glFramebufferTexture2DEXT := dglGetProcAddress('glFramebufferTexture2DEXT');
17211   glFramebufferTexture3DEXT := dglGetProcAddress('glFramebufferTexture3DEXT');
17212   glFramebufferRenderbufferEXT := dglGetProcAddress('glFramebufferRenderbufferEXT');
17213   glGetFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetFramebufferAttachmentParameterivEXT');
17214   glGenerateMipmapEXT := dglGetProcAddress('glGenerateMipmapEXT');
17215 end;
17216
17217 procedure Read_GL_EXT_histogram;
17218 begin
17219   glGetHistogramEXT := dglGetProcAddress('glGetHistogramEXT');
17220   glGetHistogramParameterfvEXT := dglGetProcAddress('glGetHistogramParameterfvEXT');
17221   glGetHistogramParameterivEXT := dglGetProcAddress('glGetHistogramParameterivEXT');
17222   glGetMinmaxEXT := dglGetProcAddress('glGetMinmaxEXT');
17223   glGetMinmaxParameterfvEXT := dglGetProcAddress('glGetMinmaxParameterfvEXT');
17224   glGetMinmaxParameterivEXT := dglGetProcAddress('glGetMinmaxParameterivEXT');
17225   glHistogramEXT := dglGetProcAddress('glHistogramEXT');
17226   glMinmaxEXT := dglGetProcAddress('glMinmaxEXT');
17227   glResetHistogramEXT := dglGetProcAddress('glResetHistogramEXT');
17228   glResetMinmaxEXT := dglGetProcAddress('glResetMinmaxEXT');
17229 end;
17230
17231 procedure Read_GL_EXT_index_func;
17232 begin
17233   glIndexFuncEXT := dglGetProcAddress('glIndexFuncEXT');
17234 end;
17235
17236 procedure Read_GL_EXT_index_material;
17237 begin
17238   glIndexMaterialEXT := dglGetProcAddress('glIndexMaterialEXT');
17239 end;
17240
17241 procedure Read_GL_EXT_light_texture;
17242 begin
17243   glApplyTextureEXT := dglGetProcAddress('glApplyTextureEXT');
17244   glTextureLightEXT := dglGetProcAddress('glTextureLightEXT');
17245   glTextureMaterialEXT := dglGetProcAddress('glTextureMaterialEXT');
17246 end;
17247
17248 procedure Read_GL_EXT_multi_draw_arrays;
17249 begin
17250   glMultiDrawArraysEXT := dglGetProcAddress('glMultiDrawArraysEXT');
17251   glMultiDrawElementsEXT := dglGetProcAddress('glMultiDrawElementsEXT');
17252 end;
17253
17254 procedure Read_GL_EXT_multisample;
17255 begin
17256   glSampleMaskEXT := dglGetProcAddress('glSampleMaskEXT');
17257   glSamplePatternEXT := dglGetProcAddress('glSamplePatternEXT');
17258 end;
17259
17260 procedure Read_GL_EXT_paletted_texture;
17261 begin
17262   glColorTableEXT := dglGetProcAddress('glColorTableEXT');
17263   glGetColorTableEXT := dglGetProcAddress('glGetColorTableEXT');
17264   glGetColorTableParameterivEXT := dglGetProcAddress('glGetColorTableParameterivEXT');
17265   glGetColorTableParameterfvEXT := dglGetProcAddress('glGetColorTableParameterfvEXT');
17266 end;
17267
17268 procedure Read_GL_EXT_pixel_transform;
17269 begin
17270   glPixelTransformParameteriEXT := dglGetProcAddress('glPixelTransformParameteriEXT');
17271   glPixelTransformParameterfEXT := dglGetProcAddress('glPixelTransformParameterfEXT');
17272   glPixelTransformParameterivEXT := dglGetProcAddress('glPixelTransformParameterivEXT');
17273   glPixelTransformParameterfvEXT := dglGetProcAddress('glPixelTransformParameterfvEXT');
17274 end;
17275
17276 procedure Read_GL_EXT_point_parameters;
17277 begin
17278   glPointParameterfEXT := dglGetProcAddress('glPointParameterfEXT');
17279   glPointParameterfvEXT := dglGetProcAddress('glPointParameterfvEXT');
17280 end;
17281
17282 procedure Read_GL_EXT_polygon_offset;
17283 begin
17284   glPolygonOffsetEXT := dglGetProcAddress('glPolygonOffsetEXT');
17285 end;
17286
17287 procedure Read_GL_EXT_secondary_color;
17288 begin
17289   glSecondaryColor3bEXT := dglGetProcAddress('glSecondaryColor3bEXT');
17290   glSecondaryColor3bvEXT := dglGetProcAddress('glSecondaryColor3bvEXT');
17291   glSecondaryColor3dEXT := dglGetProcAddress('glSecondaryColor3dEXT');
17292   glSecondaryColor3dvEXT := dglGetProcAddress('glSecondaryColor3dvEXT');
17293   glSecondaryColor3fEXT := dglGetProcAddress('glSecondaryColor3fEXT');
17294   glSecondaryColor3fvEXT := dglGetProcAddress('glSecondaryColor3fvEXT');
17295   glSecondaryColor3iEXT := dglGetProcAddress('glSecondaryColor3iEXT');
17296   glSecondaryColor3ivEXT := dglGetProcAddress('glSecondaryColor3ivEXT');
17297   glSecondaryColor3sEXT := dglGetProcAddress('glSecondaryColor3sEXT');
17298   glSecondaryColor3svEXT := dglGetProcAddress('glSecondaryColor3svEXT');
17299   glSecondaryColor3ubEXT := dglGetProcAddress('glSecondaryColor3ubEXT');
17300   glSecondaryColor3ubvEXT := dglGetProcAddress('glSecondaryColor3ubvEXT');
17301   glSecondaryColor3uiEXT := dglGetProcAddress('glSecondaryColor3uiEXT');
17302   glSecondaryColor3uivEXT := dglGetProcAddress('glSecondaryColor3uivEXT');
17303   glSecondaryColor3usEXT := dglGetProcAddress('glSecondaryColor3usEXT');
17304   glSecondaryColor3usvEXT := dglGetProcAddress('glSecondaryColor3usvEXT');
17305   glSecondaryColorPointerEXT := dglGetProcAddress('glSecondaryColorPointerEXT');
17306 end;
17307
17308 procedure Read_GL_EXT_stencil_two_side;
17309 begin
17310   glActiveStencilFaceEXT := dglGetProcAddress('glActiveStencilFaceEXT');
17311 end;
17312
17313 procedure Read_GL_EXT_subtexture;
17314 begin
17315   glTexSubImage1DEXT := dglGetProcAddress('glTexSubImage1DEXT');
17316   glTexSubImage2DEXT := dglGetProcAddress('glTexSubImage2DEXT');
17317 end;
17318
17319 procedure Read_GL_EXT_texture3D;
17320 begin
17321   glTexImage3DEXT := dglGetProcAddress('glTexImage3DEXT');
17322   glTexSubImage3DEXT := dglGetProcAddress('glTexSubImage3DEXT');
17323 end;
17324
17325 procedure Read_GL_EXT_texture_object;
17326 begin
17327   glAreTexturesResidentEXT := dglGetProcAddress('glAreTexturesResidentEXT');
17328   glBindTextureEXT := dglGetProcAddress('glBindTextureEXT');
17329   glDeleteTexturesEXT := dglGetProcAddress('glDeleteTexturesEXT');
17330   glGenTexturesEXT := dglGetProcAddress('glGenTexturesEXT');
17331   glIsTextureEXT := dglGetProcAddress('glIsTextureEXT');
17332   glPrioritizeTexturesEXT := dglGetProcAddress('glPrioritizeTexturesEXT');
17333 end;
17334
17335 procedure Read_GL_EXT_texture_perturb_normal;
17336 begin
17337   glTextureNormalEXT := dglGetProcAddress('glTextureNormalEXT');
17338 end;
17339
17340 procedure Read_GL_EXT_vertex_array;
17341 begin
17342   glArrayElementEXT := dglGetProcAddress('glArrayElementEXT');
17343   glColorPointerEXT := dglGetProcAddress('glColorPointerEXT');
17344   glDrawArraysEXT := dglGetProcAddress('glDrawArraysEXT');
17345   glEdgeFlagPointerEXT := dglGetProcAddress('glEdgeFlagPointerEXT');
17346   glGetPointervEXT := dglGetProcAddress('glGetPointervEXT');
17347   glIndexPointerEXT := dglGetProcAddress('glIndexPointerEXT');
17348   glNormalPointerEXT := dglGetProcAddress('glNormalPointerEXT');
17349   glTexCoordPointerEXT := dglGetProcAddress('glTexCoordPointerEXT');
17350   glVertexPointerEXT := dglGetProcAddress('glVertexPointerEXT');
17351 end;
17352
17353 procedure Read_GL_EXT_vertex_shader;
17354 begin
17355   glBeginVertexShaderEXT := dglGetProcAddress('glBeginVertexShaderEXT');
17356   glEndVertexShaderEXT := dglGetProcAddress('glEndVertexShaderEXT');
17357   glBindVertexShaderEXT := dglGetProcAddress('glBindVertexShaderEXT');
17358   glGenVertexShadersEXT := dglGetProcAddress('glGenVertexShadersEXT');
17359   glDeleteVertexShaderEXT := dglGetProcAddress('glDeleteVertexShaderEXT');
17360   glShaderOp1EXT := dglGetProcAddress('glShaderOp1EXT');
17361   glShaderOp2EXT := dglGetProcAddress('glShaderOp2EXT');
17362   glShaderOp3EXT := dglGetProcAddress('glShaderOp3EXT');
17363   glSwizzleEXT := dglGetProcAddress('glSwizzleEXT');
17364   glWriteMaskEXT := dglGetProcAddress('glWriteMaskEXT');
17365   glInsertComponentEXT := dglGetProcAddress('glInsertComponentEXT');
17366   glExtractComponentEXT := dglGetProcAddress('glExtractComponentEXT');
17367   glGenSymbolsEXT := dglGetProcAddress('glGenSymbolsEXT');
17368   glSetInvariantEXT := dglGetProcAddress('glSetInvariantEXT');
17369   glSetLocalConstantEXT := dglGetProcAddress('glSetLocalConstantEXT');
17370   glVariantbvEXT := dglGetProcAddress('glVariantbvEXT');
17371   glVariantsvEXT := dglGetProcAddress('glVariantsvEXT');
17372   glVariantivEXT := dglGetProcAddress('glVariantivEXT');
17373   glVariantfvEXT := dglGetProcAddress('glVariantfvEXT');
17374   glVariantdvEXT := dglGetProcAddress('glVariantdvEXT');
17375   glVariantubvEXT := dglGetProcAddress('glVariantubvEXT');
17376   glVariantusvEXT := dglGetProcAddress('glVariantusvEXT');
17377   glVariantuivEXT := dglGetProcAddress('glVariantuivEXT');
17378   glVariantPointerEXT := dglGetProcAddress('glVariantPointerEXT');
17379   glEnableVariantClientStateEXT := dglGetProcAddress('glEnableVariantClientStateEXT');
17380   glDisableVariantClientStateEXT := dglGetProcAddress('glDisableVariantClientStateEXT');
17381   glBindLightParameterEXT := dglGetProcAddress('glBindLightParameterEXT');
17382   glBindMaterialParameterEXT := dglGetProcAddress('glBindMaterialParameterEXT');
17383   glBindTexGenParameterEXT := dglGetProcAddress('glBindTexGenParameterEXT');
17384   glBindTextureUnitParameterEXT := dglGetProcAddress('glBindTextureUnitParameterEXT');
17385   glBindParameterEXT := dglGetProcAddress('glBindParameterEXT');
17386   glIsVariantEnabledEXT := dglGetProcAddress('glIsVariantEnabledEXT');
17387   glGetVariantBooleanvEXT := dglGetProcAddress('glGetVariantBooleanvEXT');
17388   glGetVariantIntegervEXT := dglGetProcAddress('glGetVariantIntegervEXT');
17389   glGetVariantFloatvEXT := dglGetProcAddress('glGetVariantFloatvEXT');
17390   glGetVariantPointervEXT := dglGetProcAddress('glGetVariantPointervEXT');
17391   glGetInvariantBooleanvEXT := dglGetProcAddress('glGetInvariantBooleanvEXT');
17392   glGetInvariantIntegervEXT := dglGetProcAddress('glGetInvariantIntegervEXT');
17393   glGetInvariantFloatvEXT := dglGetProcAddress('glGetInvariantFloatvEXT');
17394   glGetLocalConstantBooleanvEXT := dglGetProcAddress('glGetLocalConstantBooleanvEXT');
17395   glGetLocalConstantIntegervEXT := dglGetProcAddress('glGetLocalConstantIntegervEXT');
17396   glGetLocalConstantFloatvEXT := dglGetProcAddress('glGetLocalConstantFloatvEXT');
17397 end;
17398
17399 procedure Read_GL_EXT_vertex_weighting;
17400 begin
17401   glVertexWeightfEXT := dglGetProcAddress('glVertexWeightfEXT');
17402   glVertexWeightfvEXT := dglGetProcAddress('glVertexWeightfvEXT');
17403   glVertexWeightPointerEXT := dglGetProcAddress('glVertexWeightPointerEXT');
17404 end;
17405
17406 procedure Read_GL_EXT_depth_bounds_test;
17407 begin
17408   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
17409   glDepthBoundsEXT := dglGetProcAddress('glDepthBoundsEXT');
17410 end;
17411
17412 procedure Read_GL_EXT_blend_equation_separate;
17413 begin
17414   glBlendEquationSeparateEXT := dglGetProcAddress('glBlendEquationSeparateEXT');
17415 end;
17416
17417 procedure Read_GL_EXT_stencil_clear_tag;
17418 begin
17419   glStencilClearTagEXT := dglGetProcAddress('glStencilClearTagEXT');
17420 end;
17421
17422 procedure Read_GL_EXT_framebuffer_blit;
17423 begin
17424   glBlitFramebufferEXT := dglGetProcAddress('glBlitFramebufferEXT');
17425 end;
17426
17427 procedure Read_GL_EXT_framebuffer_multisample;
17428 begin
17429   glRenderbufferStorageMultisampleEXT := dglGetProcAddress('glRenderbufferStorageMultisampleEXT');
17430 end;
17431
17432 procedure Read_GL_EXT_timer_query;
17433 begin
17434   glGetQueryObjecti64vEXT := dglGetProcAddress('glGetQueryObjecti64vEXT');
17435   glGetQueryObjectui64vEXT := dglGetProcAddress('glGetQueryObjectui64vEXT');
17436 end;
17437
17438 procedure Read_GL_EXT_gpu_program_parameters;
17439 begin
17440   glProgramEnvParameters4fvEXT := dglGetProcAddress('glProgramEnvParameters4fvEXT');
17441   glProgramLocalParameters4fvEXT := dglGetProcAddress('glProgramLocalParameters4fvEXT');
17442 end;
17443
17444 procedure Read_GL_EXT_bindable_uniform;
17445 begin
17446   glUniformBufferEXT := dglGetProcAddress('glUniformBufferEXT');
17447   glGetUniformBufferSizeEXT := dglGetProcAddress('glGetUniformBufferSizeEXT');
17448   glGetUniformOffsetEXT := dglGetProcAddress('glGetUniformOffsetEXT');
17449 end;
17450
17451 procedure Read_GL_EXT_draw_buffers2;
17452 begin
17453   glColorMaskIndexedEXT := dglGetProcAddress('glColorMaskIndexedEXT');
17454   glGetBooleanIndexedvEXT := dglGetProcAddress('glGetBooleanIndexedvEXT');
17455   glGetIntegerIndexedvEXT := dglGetProcAddress('glGetIntegerIndexedvEXT');
17456   glEnableIndexedEXT := dglGetProcAddress('glEnableIndexedEXT');
17457   glDisableIndexedEXT := dglGetProcAddress('glDisableIndexedEXT');
17458   glIsEnabledIndexedEXT := dglGetProcAddress('glIsEnabledIndexedEXT');
17459 end;
17460
17461 procedure Read_GL_EXT_draw_instanced;
17462 begin
17463   glDrawArraysInstancedEXT := dglGetProcAddress('glDrawArraysInstancedEXT');
17464   glDrawElementsInstancedEXT := dglGetProcAddress('glDrawElementsInstancedEXT');
17465 end;
17466
17467 procedure Read_GL_EXT_geometry_shader4;
17468 begin
17469   glProgramParameteriEXT := dglGetProcAddress('glProgramParameteriEXT');
17470   glFramebufferTextureEXT := dglGetProcAddress('glFramebufferTextureEXT');
17471 //  glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17472   glFramebufferTextureFaceEXT := dglGetProcAddress('glFramebufferTextureFaceEXT');
17473 end;
17474
17475 procedure Read_GL_EXT_gpu_shader4;
17476 begin
17477   glVertexAttribI1iEXT := dglGetProcAddress('glVertexAttribI1iEXT');
17478   glVertexAttribI2iEXT := dglGetProcAddress('glVertexAttribI2iEXT');
17479   glVertexAttribI3iEXT := dglGetProcAddress('glVertexAttribI3iEXT');
17480   glVertexAttribI4iEXT := dglGetProcAddress('glVertexAttribI4iEXT');
17481   glVertexAttribI1uiEXT := dglGetProcAddress('glVertexAttribI1uiEXT');
17482   glVertexAttribI2uiEXT := dglGetProcAddress('glVertexAttribI2uiEXT');
17483   glVertexAttribI3uiEXT := dglGetProcAddress('glVertexAttribI3uiEXT');
17484   glVertexAttribI4uiEXT := dglGetProcAddress('glVertexAttribI4uiEXT');
17485   glVertexAttribI1ivEXT := dglGetProcAddress('glVertexAttribI1ivEXT');
17486   glVertexAttribI2ivEXT := dglGetProcAddress('glVertexAttribI2ivEXT');
17487   glVertexAttribI3ivEXT := dglGetProcAddress('glVertexAttribI3ivEXT');
17488   glVertexAttribI4ivEXT := dglGetProcAddress('glVertexAttribI4ivEXT');
17489   glVertexAttribI1uivEXT := dglGetProcAddress('glVertexAttribI1uivEXT');
17490   glVertexAttribI2uivEXT := dglGetProcAddress('glVertexAttribI2uivEXT');
17491   glVertexAttribI3uivEXT := dglGetProcAddress('glVertexAttribI3uivEXT');
17492   glVertexAttribI4uivEXT := dglGetProcAddress('glVertexAttribI4uivEXT');
17493   glVertexAttribI4bvEXT := dglGetProcAddress('glVertexAttribI4bvEXT');
17494   glVertexAttribI4svEXT := dglGetProcAddress('glVertexAttribI4svEXT');
17495   glVertexAttribI4ubvEXT := dglGetProcAddress('glVertexAttribI4ubvEXT');
17496   glVertexAttribI4usvEXT := dglGetProcAddress('glVertexAttribI4usvEXT');
17497   glVertexAttribIPointerEXT := dglGetProcAddress('glVertexAttribIPointerEXT');
17498   glGetVertexAttribIivEXT := dglGetProcAddress('glGetVertexAttribIivEXT');
17499   glGetVertexAttribIuivEXT := dglGetProcAddress('glGetVertexAttribIuivEXT');
17500   glUniform1uiEXT := dglGetProcAddress('glUniform1uiEXT');
17501   glUniform2uiEXT := dglGetProcAddress('glUniform2uiEXT');
17502   glUniform3uiEXT := dglGetProcAddress('glUniform3uiEXT');
17503   glUniform4uiEXT := dglGetProcAddress('glUniform4uiEXT');
17504   glUniform1uivEXT := dglGetProcAddress('glUniform1uivEXT');
17505   glUniform2uivEXT := dglGetProcAddress('glUniform2uivEXT');
17506   glUniform3uivEXT := dglGetProcAddress('glUniform3uivEXT');
17507   glUniform4uivEXT := dglGetProcAddress('glUniform4uivEXT');
17508   glGetUniformuivEXT := dglGetProcAddress('glGetUniformuivEXT');
17509   glBindFragDataLocationEXT := dglGetProcAddress('glBindFragDataLocationEXT');
17510   glGetFragDataLocationEXT := dglGetProcAddress('glGetFragDataLocationEXT');
17511 end;
17512
17513 procedure Read_GL_EXT_texture_array;
17514 begin
17515   glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17516 end;
17517
17518 procedure Read_GL_EXT_texture_buffer_object;
17519 begin
17520   glTexBufferEXT := dglGetProcAddress('glTexBufferEXT');
17521 end;
17522
17523 procedure Read_GL_EXT_texture_integer;
17524 begin
17525   glClearColorIiEXT := dglGetProcAddress('glClearColorIiEXT');
17526   glClearColorIuiEXT := dglGetProcAddress('glClearColorIuiEXT');
17527   glTexParameterIivEXT := dglGetProcAddress('glTexParameterIivEXT');
17528   glTexParameterIuivEXT := dglGetProcAddress('glTexParameterIuivEXT');
17529   glGetTexParameterIivEXT := dglGetProcAddress('glGetTexParameterIivEXT');
17530   glGetTexParameterIiuvEXT := dglGetProcAddress('glGetTexParameterIiuvEXT');
17531 end;
17532
17533 procedure Read_GL_EXT_transform_feedback;
17534 begin
17535   glBeginTransformFeedbackEXT := dglGetProcAddress('lBeginTransformFeedbackEXT');
17536   glEndTransformFeedbackEXT := dglGetProcAddress('glEndTransformFeedbackEXT');
17537   glBindBufferRangeEXT := dglGetProcAddress('glBindBufferRangeEXT');
17538   glBindBufferOffsetEXT := dglGetProcAddress('glBindBufferOffsetEXT');
17539   glBindBufferBaseEXT := dglGetProcAddress('glBindBufferBaseEXT');
17540   glTransformFeedbackVaryingsEXT := dglGetProcAddress('glTransformFeedbackVaryingsEXT');
17541   glGetTransformFeedbackVaryingEXT := dglGetProcAddress('glGetTransformFeedbackVaryingEXT');
17542 end;
17543
17544 procedure Read_GL_EXT_direct_state_access;
17545 begin
17546   glClientAttribDefaultEXT := dglGetProcAddress('glClientAttribDefaultEXT');
17547   glPushClientAttribDefaultEXT := dglGetProcAddress('glPushClientAttribDefaultEXT');
17548   glMatrixLoadfEXT := dglGetProcAddress('glMatrixLoadfEXT');
17549   glMatrixLoaddEXT := dglGetProcAddress('glMatrixLoaddEXT');
17550   glMatrixMultfEXT := dglGetProcAddress('glMatrixMultfEXT');
17551   glMatrixMultdEXT := dglGetProcAddress('glMatrixMultdEXT');
17552   glMatrixLoadIdentityEXT := dglGetProcAddress('glMatrixLoadIdentityEXT');
17553   glMatrixRotatefEXT := dglGetProcAddress('glMatrixRotatefEXT');
17554   glMatrixRotatedEXT := dglGetProcAddress('glMatrixRotatedEXT');
17555   glMatrixScalefEXT := dglGetProcAddress('glMatrixScalefEXT');
17556   glMatrixScaledEXT := dglGetProcAddress('glMatrixScaledEXT');
17557   glMatrixTranslatefEXT := dglGetProcAddress('glMatrixTranslatefEXT');
17558   glMatrixTranslatedEXT := dglGetProcAddress('glMatrixTranslatedEXT');
17559   glMatrixFrustumEXT := dglGetProcAddress('glMatrixFrustumEXT');
17560   glMatrixOrthoEXT := dglGetProcAddress('glMatrixOrthoEXT');
17561   glMatrixPopEXT := dglGetProcAddress('glMatrixPopEXT');
17562   glMatrixPushEXT := dglGetProcAddress('glMatrixPushEXT');
17563   glMatrixLoadTransposefEXT := dglGetProcAddress('glMatrixLoadTransposefEXT');
17564   glMatrixLoadTransposedEXT := dglGetProcAddress('glMatrixLoadTransposedEXT');
17565   glMatrixMultTransposefEXT := dglGetProcAddress('glMatrixMultTransposefEXT');
17566   glMatrixMultTransposedEXT := dglGetProcAddress('glMatrixMultTransposedEXT');
17567   glTextureParameterfEXT := dglGetProcAddress('glTextureParameterfEXT');
17568   glTextureParameterfvEXT := dglGetProcAddress('glTextureParameterfvEXT');
17569   glTextureParameteriEXT := dglGetProcAddress('glTextureParameteriEXT');
17570   glTextureParameterivEXT := dglGetProcAddress('glTextureParameterivEXT');
17571   glTextureImage1DEXT := dglGetProcAddress('glTextureImage1DEXT');
17572   glTextureImage2DEXT := dglGetProcAddress('glTextureImage2DEXT');
17573   glTextureSubImage1DEXT := dglGetProcAddress('glTextureSubImage1DEXT');
17574   glTextureSubImage2DEXT := dglGetProcAddress('glTextureSubImage2DEXT');
17575   glCopyTextureImage1DEXT := dglGetProcAddress('glCopyTextureImage1DEXT');
17576   glCopyTextureImage2DEXT := dglGetProcAddress('glCopyTextureImage2DEXT');
17577   glCopyTextureSubImage1DEXT := dglGetProcAddress('glCopyTextureSubImage1DEXT');
17578   glCopyTextureSubImage2DEXT := dglGetProcAddress('glCopyTextureSubImage2DEXT');
17579   glGetTextureImageEXT := dglGetProcAddress('glGetTextureImageEXT');
17580   glGetTextureParameterfvEXT := dglGetProcAddress('glGetTextureParameterfvEXT');
17581   glGetTextureParameterivEXT := dglGetProcAddress('glGetTextureParameterivEXT');
17582   glGetTextureLevelParameterfvEXT := dglGetProcAddress('glGetTextureLevelParameterfvEXT');
17583   glGetTextureLevelParameterivEXT := dglGetProcAddress('glGetTextureLevelParameterivEXT');
17584   glTextureImage3DEXT := dglGetProcAddress('glTextureImage3DEXT');
17585   glTextureSubImage3DEXT := dglGetProcAddress('glTextureSubImage3DEXT');
17586   glCopyTextureSubImage3DEXT := dglGetProcAddress('glCopyTextureSubImage3DEXT');
17587   glMultiTexParameterfEXT := dglGetProcAddress('glMultiTexParameterfEXT');
17588   glMultiTexParameterfvEXT := dglGetProcAddress('glMultiTexParameterfvEXT');
17589   glMultiTexParameteriEXT := dglGetProcAddress('glMultiTexParameteriEXT');
17590   glMultiTexParameterivEXT := dglGetProcAddress('glMultiTexParameterivEXT');
17591   glMultiTexImage1DEXT := dglGetProcAddress('glMultiTexImage1DEXT');
17592   glMultiTexImage2DEXT := dglGetProcAddress('glMultiTexImage2DEXT');
17593   glMultiTexSubImage1DEXT := dglGetProcAddress('glMultiTexSubImage1DEXT');
17594   glMultiTexSubImage2DEXT := dglGetProcAddress('glMultiTexSubImage2DEXT');
17595   glCopyMultiTexImage1DEXT := dglGetProcAddress('glCopyMultiTexImage1DEXT');
17596   glCopyMultiTexImage2DEXT := dglGetProcAddress('glCopyMultiTexImage2DEXT');
17597   glCopyMultiTexSubImage1DEXT := dglGetProcAddress('glCopyMultiTexSubImage1DEXT');
17598   glCopyMultiTexSubImage2DEXT := dglGetProcAddress('glCopyMultiTexSubImage2DEXT');
17599   glGetMultiTexImageEXT := dglGetProcAddress('glGetMultiTexImageEXT');
17600   glGetMultiTexParameterfvEXT := dglGetProcAddress('glGetMultiTexParameterfvEXT');
17601   glGetMultiTexParameterivEXT := dglGetProcAddress('glGetMultiTexParameterivEXT');
17602   glGetMultiTexLevelParameterfvEXT := dglGetProcAddress('glGetMultiTexLevelParameterfvEXT');
17603   glGetMultiTexLevelParameterivEXT := dglGetProcAddress('glGetMultiTexLevelParameterivEXT');
17604   glMultiTexImage3DEXT := dglGetProcAddress('glMultiTexImage3DEXT');
17605   glMultiTexSubImage3DEXT := dglGetProcAddress('glMultiTexSubImage3DEXT');
17606   glCopyMultiTexSubImage3DEXT := dglGetProcAddress('glCopyMultiTexSubImage3DEXT');
17607   glBindMultiTextureEXT := dglGetProcAddress('glBindMultiTextureEXT');
17608   glEnableClientStateIndexedEXT := dglGetProcAddress('glEnableClientStateIndexedEXT');
17609   glDisableClientStateIndexedEXT := dglGetProcAddress('glDisableClientStateIndexedEXT');
17610   glMultiTexCoordPointerEXT := dglGetProcAddress('glMultiTexCoordPointerEXT');
17611   glMultiTexEnvfEXT := dglGetProcAddress('glMultiTexEnvfEXT');
17612   glMultiTexEnvfvEXT := dglGetProcAddress('glMultiTexEnvfvEXT');
17613   glMultiTexEnviEXT := dglGetProcAddress('glMultiTexEnviEXT');
17614   glMultiTexEnvivEXT := dglGetProcAddress('glMultiTexEnvivEXT');
17615   glMultiTexGendEXT := dglGetProcAddress('glMultiTexGendEXT');
17616   glMultiTexGendvEXT := dglGetProcAddress('glMultiTexGendvEXT');
17617   glMultiTexGenfEXT := dglGetProcAddress('glMultiTexGenfEXT');
17618   glMultiTexGenfvEXT := dglGetProcAddress('glMultiTexGenfvEXT');
17619   glMultiTexGeniEXT := dglGetProcAddress('glMultiTexGeniEXT');
17620   glMultiTexGenivEXT := dglGetProcAddress('glMultiTexGenivEXT');
17621   glGetMultiTexEnvfvEXT := dglGetProcAddress('glGetMultiTexEnvfvEXT');
17622   glGetMultiTexEnvivEXT := dglGetProcAddress('glGetMultiTexEnvivEXT');
17623   glGetMultiTexGendvEXT := dglGetProcAddress('glGetMultiTexGendvEXT');
17624   glGetMultiTexGenfvEXT := dglGetProcAddress('glGetMultiTexGenfvEXT');
17625   glGetMultiTexGenivEXT := dglGetProcAddress('glGetMultiTexGenivEXT');
17626   glGetFloatIndexedvEXT := dglGetProcAddress('glGetFloatIndexedvEXT');
17627   glGetDoubleIndexedvEXT := dglGetProcAddress('glGetDoubleIndexedvEXT');
17628   glGetPointerIndexedvEXT := dglGetProcAddress('glGetPointerIndexedvEXT');
17629   glCompressedTextureImage3DEXT := dglGetProcAddress('glCompressedTextureImage3DEXT');
17630   glCompressedTextureImage2DEXT := dglGetProcAddress('glCompressedTextureImage2DEXT');
17631   glCompressedTextureImage1DEXT := dglGetProcAddress('glCompressedTextureImage1DEXT');
17632   glCompressedTextureSubImage3DEXT := dglGetProcAddress('glCompressedTextureSubImage3DEXT');
17633   glCompressedTextureSubImage2DEXT := dglGetProcAddress('glCompressedTextureSubImage2DEXT');
17634   glCompressedTextureSubImage1DEXT := dglGetProcAddress('glCompressedTextureSubImage1DEXT');
17635   glGetCompressedTextureImageEXT := dglGetProcAddress('glGetCompressedTextureImageEXT');
17636   glCompressedMultiTexImage3DEXT := dglGetProcAddress('glCompressedMultiTexImage3DEXT');
17637   glCompressedMultiTexImage2DEXT := dglGetProcAddress('glCompressedMultiTexImage2DEXT');
17638   glCompressedMultiTexImage1DEXT := dglGetProcAddress('glCompressedMultiTexImage1DEXT');
17639   glCompressedMultiTexSubImage3DEXT := dglGetProcAddress('glCompressedMultiTexSubImage3DEXT');
17640   glCompressedMultiTexSubImage2DEXT := dglGetProcAddress('glCompressedMultiTexSubImage2DEXT');
17641   glCompressedMultiTexSubImage1DEXT := dglGetProcAddress('glCompressedMultiTexSubImage1DEXT');
17642   glGetCompressedMultiTexImageEXT := dglGetProcAddress('glGetCompressedMultiTexImageEXT');
17643   glNamedProgramStringEXT := dglGetProcAddress('glNamedProgramStringEXT');
17644   glNamedProgramLocalParameter4dEXT := dglGetProcAddress('glNamedProgramLocalParameter4dEXT');
17645   glNamedProgramLocalParameter4dvEXT := dglGetProcAddress('glNamedProgramLocalParameter4dvEXT');
17646   glNamedProgramLocalParameter4fEXT := dglGetProcAddress('glNamedProgramLocalParameter4fEXT');
17647   glNamedProgramLocalParameter4fvEXT := dglGetProcAddress('glNamedProgramLocalParameter4fvEXT');
17648   glGetNamedProgramLocalParameterdvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterdvEXT');
17649   glGetNamedProgramLocalParameterfvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterfvEXT');
17650   glGetNamedProgramivEXT := dglGetProcAddress('glGetNamedProgramivEXT');
17651   glGetNamedProgramStringEXT := dglGetProcAddress('glGetNamedProgramStringEXT');
17652   glNamedProgramLocalParameters4fvEXT := dglGetProcAddress('glNamedProgramLocalParameters4fvEXT');
17653   glNamedProgramLocalParameterI4iEXT := dglGetProcAddress('glNamedProgramLocalParameterI4iEXT');
17654   glNamedProgramLocalParameterI4ivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4ivEXT');
17655   glNamedProgramLocalParametersI4ivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4ivEXT');
17656   glNamedProgramLocalParameterI4uiEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uiEXT');
17657   glNamedProgramLocalParameterI4uivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uivEXT');
17658   glNamedProgramLocalParametersI4uivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4uivEXT');
17659   glGetNamedProgramLocalParameterIivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIivEXT');
17660   glGetNamedProgramLocalParameterIuivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIuivEXT');
17661   glTextureParameterIivEXT := dglGetProcAddress('glTextureParameterIivEXT');
17662   glTextureParameterIuivEXT := dglGetProcAddress('glTextureParameterIuivEXT');
17663   glGetTextureParameterIivEXT := dglGetProcAddress('glGetTextureParameterIivEXT');
17664   glGetTextureParameterIuivEXT := dglGetProcAddress('glGetTextureParameterIuivEXT');
17665   glMultiTexParameterIivEXT := dglGetProcAddress('glMultiTexParameterIivEXT');
17666   glMultiTexParameterIuivEXT := dglGetProcAddress('glMultiTexParameterIuivEXT');
17667   glGetMultiTexParameterIivEXT := dglGetProcAddress('glGetMultiTexParameterIivEXT');
17668   glGetMultiTexParameterIuivEXT := dglGetProcAddress('glGetMultiTexParameterIuivEXT');
17669   glProgramUniform1fEXT := dglGetProcAddress('glProgramUniform1fEXT');
17670   glProgramUniform2fEXT := dglGetProcAddress('glProgramUniform2fEXT');
17671   glProgramUniform3fEXT := dglGetProcAddress('glProgramUniform3fEXT');
17672   glProgramUniform4fEXT := dglGetProcAddress('glProgramUniform4fEXT');
17673   glProgramUniform1iEXT := dglGetProcAddress('glProgramUniform1iEXT');
17674   glProgramUniform2iEXT := dglGetProcAddress('glProgramUniform2iEXT');
17675   glProgramUniform3iEXT := dglGetProcAddress('glProgramUniform3iEXT');
17676   glProgramUniform4iEXT := dglGetProcAddress('glProgramUniform4iEXT');
17677   glProgramUniform1fvEXT := dglGetProcAddress('glProgramUniform1fvEXT');
17678   glProgramUniform2fvEXT := dglGetProcAddress('glProgramUniform2fvEXT');
17679   glProgramUniform3fvEXT := dglGetProcAddress('glProgramUniform3fvEXT');
17680   glProgramUniform4fvEXT := dglGetProcAddress('glProgramUniform4fvEXT');
17681   glProgramUniform1ivEXT := dglGetProcAddress('glProgramUniform1ivEXT');
17682   glProgramUniform2ivEXT := dglGetProcAddress('glProgramUniform2ivEXT');
17683   glProgramUniform3ivEXT := dglGetProcAddress('glProgramUniform3ivEXT');
17684   glProgramUniform4ivEXT := dglGetProcAddress('glProgramUniform4ivEXT');
17685   glProgramUniformMatrix2fvEXT := dglGetProcAddress('glProgramUniformMatrix2fvEXT');
17686   glProgramUniformMatrix3fvEXT := dglGetProcAddress('glProgramUniformMatrix3fvEXT');
17687   glProgramUniformMatrix4fvEXT := dglGetProcAddress('glProgramUniformMatrix4fvEXT');
17688   glProgramUniformMatrix2x3fvEXT := dglGetProcAddress('glProgramUniformMatrix2x3fvEXT');
17689   glProgramUniformMatrix3x2fvEXT := dglGetProcAddress('glProgramUniformMatrix3x2fvEXT');
17690   glProgramUniformMatrix2x4fvEXT := dglGetProcAddress('glProgramUniformMatrix2x4fvEXT');
17691   glProgramUniformMatrix4x2fvEXT := dglGetProcAddress('glProgramUniformMatrix4x2fvEXT');
17692   glProgramUniformMatrix3x4fvEXT := dglGetProcAddress('glProgramUniformMatrix3x4fvEXT');
17693   glProgramUniformMatrix4x3fvEXT := dglGetProcAddress('glProgramUniformMatrix4x3fvEXT');
17694   glProgramUniform1uiEXT := dglGetProcAddress('glProgramUniform1uiEXT');
17695   glProgramUniform2uiEXT := dglGetProcAddress('glProgramUniform2uiEXT');
17696   glProgramUniform3uiEXT := dglGetProcAddress('glProgramUniform3uiEXT');
17697   glProgramUniform4uiEXT := dglGetProcAddress('glProgramUniform4uiEXT');
17698   glProgramUniform1uivEXT := dglGetProcAddress('glProgramUniform1uivEXT');
17699   glProgramUniform2uivEXT := dglGetProcAddress('glProgramUniform2uivEXT');
17700   glProgramUniform3uivEXT := dglGetProcAddress('glProgramUniform3uivEXT');
17701   glProgramUniform4uivEXT := dglGetProcAddress('glProgramUniform4uivEXT');
17702   glNamedBufferDataEXT := dglGetProcAddress('glNamedBufferDataEXT');
17703   glNamedBufferSubDataEXT := dglGetProcAddress('glNamedBufferSubDataEXT');
17704   glMapNamedBufferEXT := dglGetProcAddress('glMapNamedBufferEXT');
17705   glUnmapNamedBufferEXT := dglGetProcAddress('glUnmapNamedBufferEXT');
17706   glMapNamedBufferRangeEXT := dglGetProcAddress('glMapNamedBufferRangeEXT');
17707   glFlushMappedNamedBufferRangeEXT := dglGetProcAddress('glFlushMappedNamedBufferRangeEXT');
17708   glNamedCopyBufferSubDataEXT := dglGetProcAddress('glNamedCopyBufferSubDataEXT');
17709   glGetNamedBufferParameterivEXT := dglGetProcAddress('glGetNamedBufferParameterivEXT');
17710   glGetNamedBufferPointervEXT := dglGetProcAddress('glGetNamedBufferPointervEXT');
17711   glGetNamedBufferSubDataEXT := dglGetProcAddress('glGetNamedBufferSubDataEXT');
17712   glTextureBufferEXT := dglGetProcAddress('glTextureBufferEXT');
17713   glMultiTexBufferEXT := dglGetProcAddress('glMultiTexBufferEXT');
17714   glNamedRenderbufferStorageEXT := dglGetProcAddress('glNamedRenderbufferStorageEXT');
17715   glGetNamedRenderbufferParameterivEXT := dglGetProcAddress('glGetNamedRenderbufferParameterivEXT');
17716   glCheckNamedFramebufferStatusEXT := dglGetProcAddress('glCheckNamedFramebufferStatusEXT');
17717   glNamedFramebufferTexture1DEXT := dglGetProcAddress('glNamedFramebufferTexture1DEXT');
17718   glNamedFramebufferTexture2DEXT := dglGetProcAddress('glNamedFramebufferTexture2DEXT');
17719   glNamedFramebufferTexture3DEXT := dglGetProcAddress('glNamedFramebufferTexture3DEXT');
17720   glNamedFramebufferRenderbufferEXT := dglGetProcAddress('glNamedFramebufferRenderbufferEXT');
17721   glGetNamedFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetNamedFramebufferAttachmentParameterivEXT');
17722   glGenerateTextureMipmapEXT := dglGetProcAddress('glGenerateTextureMipmapEXT');
17723   glGenerateMultiTexMipmapEXT := dglGetProcAddress('glGenerateMultiTexMipmapEXT');
17724   glFramebufferDrawBufferEXT := dglGetProcAddress('glFramebufferDrawBufferEXT');
17725   glFramebufferDrawBuffersEXT := dglGetProcAddress('glFramebufferDrawBuffersEXT');
17726   glFramebufferReadBufferEXT := dglGetProcAddress('glFramebufferReadBufferEXT');
17727   glGetFramebufferParameterivEXT := dglGetProcAddress('glGetFramebufferParameterivEXT');
17728   glNamedRenderbufferStorageMultisampleEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleEXT');
17729   glNamedRenderbufferStorageMultisampleCoverageEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleCoverageEXT');
17730   glNamedFramebufferTextureEXT := dglGetProcAddress('glNamedFramebufferTextureEXT');
17731   glNamedFramebufferTextureLayerEXT := dglGetProcAddress('glNamedFramebufferTextureLayerEXT');
17732   glNamedFramebufferTextureFaceEXT := dglGetProcAddress('glNamedFramebufferTextureFaceEXT');
17733   glTextureRenderbufferEXT := dglGetProcAddress('glTextureRenderbufferEXT');
17734   glMultiTexRenderbufferEXT := dglGetProcAddress('glMultiTexRenderbufferEXT');
17735   glProgramUniform1dEXT := dglGetProcAddress('glProgramUniform1dEXT');
17736   glProgramUniform2dEXT := dglGetProcAddress('glProgramUniform2dEXT');
17737   glProgramUniform3dEXT := dglGetProcAddress('glProgramUniform3dEXT');
17738   glProgramUniform4dEXT := dglGetProcAddress('glProgramUniform4dEXT');
17739   glProgramUniform1dvEXT := dglGetProcAddress('glProgramUniform1dvEXT');
17740   glProgramUniform2dvEXT := dglGetProcAddress('glProgramUniform2dvEXT');
17741   glProgramUniform3dvEXT := dglGetProcAddress('glProgramUniform3dvEXT');
17742   glProgramUniform4dvEXT := dglGetProcAddress('glProgramUniform4dvEXT');
17743   glProgramUniformMatrix2dvEXT := dglGetProcAddress('glProgramUniformMatrix2dvEXT');
17744   glProgramUniformMatrix3dvEXT := dglGetProcAddress('glProgramUniformMatrix3dvEXT');
17745   glProgramUniformMatrix4dvEXT := dglGetProcAddress('glProgramUniformMatrix4dvEXT');
17746   glProgramUniformMatrix2x3dvEXT := dglGetProcAddress('glProgramUniformMatrix2x3dvEXT');
17747   glProgramUniformMatrix2x4dvEXT := dglGetProcAddress('glProgramUniformMatrix2x4dvEXT');
17748   glProgramUniformMatrix3x2dvEXT := dglGetProcAddress('glProgramUniformMatrix3x2dvEXT');
17749   glProgramUniformMatrix3x4dvEXT := dglGetProcAddress('glProgramUniformMatrix3x4dvEXT');
17750   glProgramUniformMatrix4x2dvEXT := dglGetProcAddress('glProgramUniformMatrix4x2dvEXT');
17751   glProgramUniformMatrix4x3dvEXT := dglGetProcAddress('glProgramUniformMatrix4x3dvEXT');
17752 end;
17753
17754 procedure Read_GL_EXT_separate_shader_objects;
17755 begin
17756   glUseShaderProgramEXT := dglGetProcAddress('glUseShaderProgramEXT');
17757   glActiveProgramEXT := dglGetProcAddress('glActiveProgramEXT');
17758   glCreateShaderProgramEXT := dglGetProcAddress('glCreateShaderProgramEXT');
17759 end;
17760
17761 procedure Read_GL_EXT_shader_image_load_store;
17762 begin
17763   glBindImageTextureEXT := dglGetProcAddress('glBindImageTextureEXT');
17764   glMemoryBarrierEXT := dglGetProcAddress('glMemoryBarrierEXT');
17765 end;
17766
17767 procedure Read_GL_EXT_vertex_attrib_64bit;
17768 begin
17769   glVertexAttribL1dEXT := dglGetProcAddress('glVertexAttribL1dEXT');
17770   glVertexAttribL2dEXT := dglGetProcAddress('glVertexAttribL2dEXT');
17771   glVertexAttribL3dEXT := dglGetProcAddress('glVertexAttribL3dEXT');
17772   glVertexAttribL4dEXT := dglGetProcAddress('glVertexAttribL4dEXT');
17773   glVertexAttribL1dvEXT := dglGetProcAddress('glVertexAttribL1dvEXT');
17774   glVertexAttribL2dvEXT := dglGetProcAddress('glVertexAttribL2dvEXT');
17775   glVertexAttribL3dvEXT := dglGetProcAddress('glVertexAttribL3dvEXT');
17776   glVertexAttribL4dvEXT := dglGetProcAddress('glVertexAttribL4dvEXT');
17777   glVertexAttribLPointerEXT := dglGetProcAddress('glVertexAttribLPointerEXT');
17778   glGetVertexAttribLdvEXT := dglGetProcAddress('glGetVertexAttribLdvEXT');
17779   glVertexArrayVertexAttribLOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribLOffsetEXT');
17780 end;
17781
17782 procedure Read_GL_HP_image_transform;
17783 begin
17784   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
17785   glImageTransformParameterfHP := dglGetProcAddress('glImageTransformParameterfHP');
17786   glImageTransformParameterivHP := dglGetProcAddress('glImageTransformParameterivHP');
17787   glImageTransformParameterfvHP := dglGetProcAddress('glImageTransformParameterfvHP');
17788   glGetImageTransformParameterivHP := dglGetProcAddress('glGetImageTransformParameterivHP');
17789   glGetImageTransformParameterfvHP := dglGetProcAddress('glGetImageTransformParameterfvHP');
17790 end;
17791
17792 procedure Read_GL_IBM_multimode_draw_arrays;
17793 begin
17794   glMultiModeDrawArraysIBM := dglGetProcAddress('glMultiModeDrawArraysIBM');
17795   glMultiModeDrawElementsIBM := dglGetProcAddress('glMultiModeDrawElementsIBM');
17796 end;
17797
17798 procedure Read_GL_IBM_vertex_array_lists;
17799 begin
17800   glColorPointerListIBM := dglGetProcAddress('glColorPointerListIBM');
17801   glSecondaryColorPointerListIBM := dglGetProcAddress('glSecondaryColorPointerListIBM');
17802   glEdgeFlagPointerListIBM := dglGetProcAddress('glEdgeFlagPointerListIBM');
17803   glFogCoordPointerListIBM := dglGetProcAddress('glFogCoordPointerListIBM');
17804   glIndexPointerListIBM := dglGetProcAddress('glIndexPointerListIBM');
17805   glNormalPointerListIBM := dglGetProcAddress('glNormalPointerListIBM');
17806   glTexCoordPointerListIBM := dglGetProcAddress('glTexCoordPointerListIBM');
17807   glVertexPointerListIBM := dglGetProcAddress('glVertexPointerListIBM');
17808 end;
17809
17810 procedure Read_GL_INGR_blend_func_separate;
17811 begin
17812   glBlendFuncSeparateINGR := dglGetProcAddress('glBlendFuncSeparateINGR');
17813 end;
17814
17815 procedure Read_GL_INTEL_parallel_arrays;
17816 begin
17817   glVertexPointervINTEL := dglGetProcAddress('glVertexPointervINTEL');
17818   glNormalPointervINTEL := dglGetProcAddress('glNormalPointervINTEL');
17819   glColorPointervINTEL := dglGetProcAddress('glColorPointervINTEL');
17820   glTexCoordPointervINTEL := dglGetProcAddress('glTexCoordPointervINTEL');
17821 end;
17822
17823 procedure Read_GL_MESA_resize_buffers;
17824 begin
17825   glResizeBuffersMESA := dglGetProcAddress('glResizeBuffersMESA');
17826 end;
17827
17828 procedure Read_GL_MESA_window_pos;
17829 begin
17830   glWindowPos2dMESA := dglGetProcAddress('glWindowPos2dMESA');
17831   glWindowPos2dvMESA := dglGetProcAddress('glWindowPos2dvMESA');
17832   glWindowPos2fMESA := dglGetProcAddress('glWindowPos2fMESA');
17833   glWindowPos2fvMESA := dglGetProcAddress('glWindowPos2fvMESA');
17834   glWindowPos2iMESA := dglGetProcAddress('glWindowPos2iMESA');
17835   glWindowPos2ivMESA := dglGetProcAddress('glWindowPos2ivMESA');
17836   glWindowPos2sMESA := dglGetProcAddress('glWindowPos2sMESA');
17837   glWindowPos2svMESA := dglGetProcAddress('glWindowPos2svMESA');
17838   glWindowPos3dMESA := dglGetProcAddress('glWindowPos3dMESA');
17839   glWindowPos3dvMESA := dglGetProcAddress('glWindowPos3dvMESA');
17840   glWindowPos3fMESA := dglGetProcAddress('glWindowPos3fMESA');
17841   glWindowPos3fvMESA := dglGetProcAddress('glWindowPos3fvMESA');
17842   glWindowPos3iMESA := dglGetProcAddress('glWindowPos3iMESA');
17843   glWindowPos3ivMESA := dglGetProcAddress('glWindowPos3ivMESA');
17844   glWindowPos3sMESA := dglGetProcAddress('glWindowPos3sMESA');
17845   glWindowPos3svMESA := dglGetProcAddress('glWindowPos3svMESA');
17846   glWindowPos4dMESA := dglGetProcAddress('glWindowPos4dMESA');
17847   glWindowPos4dvMESA := dglGetProcAddress('glWindowPos4dvMESA');
17848   glWindowPos4fMESA := dglGetProcAddress('glWindowPos4fMESA');
17849   glWindowPos4fvMESA := dglGetProcAddress('glWindowPos4fvMESA');
17850   glWindowPos4iMESA := dglGetProcAddress('glWindowPos4iMESA');
17851   glWindowPos4ivMESA := dglGetProcAddress('glWindowPos4ivMESA');
17852   glWindowPos4sMESA := dglGetProcAddress('glWindowPos4sMESA');
17853   glWindowPos4svMESA := dglGetProcAddress('glWindowPos4svMESA');
17854 end;
17855
17856 procedure Read_GL_NV_evaluators;
17857 begin
17858   glMapControlPointsNV := dglGetProcAddress('glMapControlPointsNV');
17859   glMapParameterivNV := dglGetProcAddress('glMapParameterivNV');
17860   glMapParameterfvNV := dglGetProcAddress('glMapParameterfvNV');
17861   glGetMapControlPointsNV := dglGetProcAddress('glGetMapControlPointsNV');
17862   glGetMapParameterivNV := dglGetProcAddress('glGetMapParameterivNV');
17863   glGetMapParameterfvNV := dglGetProcAddress('glGetMapParameterfvNV');
17864   glGetMapAttribParameterivNV := dglGetProcAddress('glGetMapAttribParameterivNV');
17865   glGetMapAttribParameterfvNV := dglGetProcAddress('glGetMapAttribParameterfvNV');
17866   glEvalMapsNV := dglGetProcAddress('glEvalMapsNV');
17867 end;
17868
17869 procedure Read_GL_NV_fence;
17870 begin
17871   glDeleteFencesNV := dglGetProcAddress('glDeleteFencesNV');
17872   glGenFencesNV := dglGetProcAddress('glGenFencesNV');
17873   glIsFenceNV := dglGetProcAddress('glIsFenceNV');
17874   glTestFenceNV := dglGetProcAddress('glTestFenceNV');
17875   glGetFenceivNV := dglGetProcAddress('glGetFenceivNV');
17876   glFinishFenceNV := dglGetProcAddress('glFinishFenceNV');
17877   glSetFenceNV := dglGetProcAddress('glSetFenceNV');
17878 end;
17879
17880 procedure Read_GL_NV_fragment_program;
17881 begin
17882   glProgramNamedParameter4fNV := dglGetProcAddress('glProgramNamedParameter4fNV');
17883   glProgramNamedParameter4dNV := dglGetProcAddress('glProgramNamedParameter4dNV');
17884   glProgramNamedParameter4fvNV := dglGetProcAddress('glProgramNamedParameter4fvNV');
17885   glProgramNamedParameter4dvNV := dglGetProcAddress('glProgramNamedParameter4dvNV');
17886   glGetProgramNamedParameterfvNV := dglGetProcAddress('glGetProgramNamedParameterfvNV');
17887   glGetProgramNamedParameterdvNV := dglGetProcAddress('glGetProgramNamedParameterdvNV');
17888 end;
17889
17890 procedure Read_GL_NV_half_float;
17891 begin
17892   glVertex2hNV := dglGetProcAddress('glVertex2hNV');
17893   glVertex2hvNV := dglGetProcAddress('glVertex2hvNV');
17894   glVertex3hNV := dglGetProcAddress('glVertex3hNV');
17895   glVertex3hvNV := dglGetProcAddress('glVertex3hvNV');
17896   glVertex4hNV := dglGetProcAddress('glVertex4hNV');
17897   glVertex4hvNV := dglGetProcAddress('glVertex4hvNV');
17898   glNormal3hNV := dglGetProcAddress('glNormal3hNV');
17899   glNormal3hvNV := dglGetProcAddress('glNormal3hvNV');
17900   glColor3hNV := dglGetProcAddress('glColor3hNV');
17901   glColor3hvNV := dglGetProcAddress('glColor3hvNV');
17902   glColor4hNV := dglGetProcAddress('glColor4hNV');
17903   glColor4hvNV := dglGetProcAddress('glColor4hvNV');
17904   glTexCoord1hNV := dglGetProcAddress('glTexCoord1hNV');
17905   glTexCoord1hvNV := dglGetProcAddress('glTexCoord1hvNV');
17906   glTexCoord2hNV := dglGetProcAddress('glTexCoord2hNV');
17907   glTexCoord2hvNV := dglGetProcAddress('glTexCoord2hvNV');
17908   glTexCoord3hNV := dglGetProcAddress('glTexCoord3hNV');
17909   glTexCoord3hvNV := dglGetProcAddress('glTexCoord3hvNV');
17910   glTexCoord4hNV := dglGetProcAddress('glTexCoord4hNV');
17911   glTexCoord4hvNV := dglGetProcAddress('glTexCoord4hvNV');
17912   glMultiTexCoord1hNV := dglGetProcAddress('glMultiTexCoord1hNV');
17913   glMultiTexCoord1hvNV := dglGetProcAddress('glMultiTexCoord1hvNV');
17914   glMultiTexCoord2hNV := dglGetProcAddress('glMultiTexCoord2hNV');
17915   glMultiTexCoord2hvNV := dglGetProcAddress('glMultiTexCoord2hvNV');
17916   glMultiTexCoord3hNV := dglGetProcAddress('glMultiTexCoord3hNV');
17917   glMultiTexCoord3hvNV := dglGetProcAddress('glMultiTexCoord3hvNV');
17918   glMultiTexCoord4hNV := dglGetProcAddress('glMultiTexCoord4hNV');
17919   glMultiTexCoord4hvNV := dglGetProcAddress('glMultiTexCoord4hvNV');
17920   glFogCoordhNV := dglGetProcAddress('glFogCoordhNV');
17921   glFogCoordhvNV := dglGetProcAddress('glFogCoordhvNV');
17922   glSecondaryColor3hNV := dglGetProcAddress('glSecondaryColor3hNV');
17923   glSecondaryColor3hvNV := dglGetProcAddress('glSecondaryColor3hvNV');
17924   glVertexWeighthNV := dglGetProcAddress('glVertexWeighthNV');
17925   glVertexWeighthvNV := dglGetProcAddress('glVertexWeighthvNV');
17926   glVertexAttrib1hNV := dglGetProcAddress('glVertexAttrib1hNV');
17927   glVertexAttrib1hvNV := dglGetProcAddress('glVertexAttrib1hvNV');
17928   glVertexAttrib2hNV := dglGetProcAddress('glVertexAttrib2hNV');
17929   glVertexAttrib2hvNV := dglGetProcAddress('glVertexAttrib2hvNV');
17930   glVertexAttrib3hNV := dglGetProcAddress('glVertexAttrib3hNV');
17931   glVertexAttrib3hvNV := dglGetProcAddress('glVertexAttrib3hvNV');
17932   glVertexAttrib4hNV := dglGetProcAddress('glVertexAttrib4hNV');
17933   glVertexAttrib4hvNV := dglGetProcAddress('glVertexAttrib4hvNV');
17934   glVertexAttribs1hvNV := dglGetProcAddress('glVertexAttribs1hvNV');
17935   glVertexAttribs2hvNV := dglGetProcAddress('glVertexAttribs2hvNV');
17936   glVertexAttribs3hvNV := dglGetProcAddress('glVertexAttribs3hvNV');
17937   glVertexAttribs4hvNV := dglGetProcAddress('glVertexAttribs4hvNV');
17938 end;
17939
17940 procedure Read_GL_NV_occlusion_query;
17941 begin
17942   glGenOcclusionQueriesNV := dglGetProcAddress('glGenOcclusionQueriesNV');
17943   glDeleteOcclusionQueriesNV := dglGetProcAddress('glDeleteOcclusionQueriesNV');
17944   glIsOcclusionQueryNV := dglGetProcAddress('glIsOcclusionQueryNV');
17945   glBeginOcclusionQueryNV := dglGetProcAddress('glBeginOcclusionQueryNV');
17946   glEndOcclusionQueryNV := dglGetProcAddress('glEndOcclusionQueryNV');
17947   glGetOcclusionQueryivNV := dglGetProcAddress('glGetOcclusionQueryivNV');
17948   glGetOcclusionQueryuivNV := dglGetProcAddress('glGetOcclusionQueryuivNV');
17949 end;
17950
17951 procedure Read_GL_NV_pixel_data_range;
17952 begin
17953   glPixelDataRangeNV := dglGetProcAddress('glPixelDataRangeNV');
17954   glFlushPixelDataRangeNV := dglGetProcAddress('glFlushPixelDataRangeNV');
17955 end;
17956
17957 procedure Read_GL_NV_point_sprite;
17958 begin
17959   glPointParameteriNV := dglGetProcAddress('glPointParameteriNV');
17960   glPointParameterivNV := dglGetProcAddress('glPointParameterivNV');
17961 end;
17962
17963 procedure Read_GL_NV_primitive_restart;
17964 begin
17965   glPrimitiveRestartNV := dglGetProcAddress('glPrimitiveRestartNV');
17966   glPrimitiveRestartIndexNV := dglGetProcAddress('glPrimitiveRestartIndexNV');
17967 end;
17968
17969 procedure Read_GL_NV_register_combiners;
17970 begin
17971   glCombinerParameterfvNV := dglGetProcAddress('glCombinerParameterfvNV');
17972   glCombinerParameterfNV := dglGetProcAddress('glCombinerParameterfNV');
17973   glCombinerParameterivNV := dglGetProcAddress('glCombinerParameterivNV');
17974   glCombinerParameteriNV := dglGetProcAddress('glCombinerParameteriNV');
17975   glCombinerInputNV := dglGetProcAddress('glCombinerInputNV');
17976   glCombinerOutputNV := dglGetProcAddress('glCombinerOutputNV');
17977   glFinalCombinerInputNV := dglGetProcAddress('glFinalCombinerInputNV');
17978   glGetCombinerInputParameterfvNV := dglGetProcAddress('glGetCombinerInputParameterfvNV');
17979   glGetCombinerInputParameterivNV := dglGetProcAddress('glGetCombinerInputParameterivNV');
17980   glGetCombinerOutputParameterfvNV := dglGetProcAddress('glGetCombinerOutputParameterfvNV');
17981   glGetCombinerOutputParameterivNV := dglGetProcAddress('glGetCombinerOutputParameterivNV');
17982   glGetFinalCombinerInputParameterfvNV := dglGetProcAddress('glGetFinalCombinerInputParameterfvNV');
17983   glGetFinalCombinerInputParameterivNV := dglGetProcAddress('glGetFinalCombinerInputParameterivNV');
17984 end;
17985
17986 procedure Read_GL_NV_register_combiners2;
17987 begin
17988   glCombinerStageParameterfvNV := dglGetProcAddress('glCombinerStageParameterfvNV');
17989   glGetCombinerStageParameterfvNV := dglGetProcAddress('glGetCombinerStageParameterfvNV');
17990 end;
17991
17992 procedure Read_GL_NV_vertex_array_range;
17993 begin
17994   glFlushVertexArrayRangeNV := dglGetProcAddress('glFlushVertexArrayRangeNV');
17995   glVertexArrayRangeNV := dglGetProcAddress('glVertexArrayRangeNV');
17996 end;
17997
17998 procedure Read_GL_NV_vertex_program;
17999 begin
18000   glAreProgramsResidentNV := dglGetProcAddress('glAreProgramsResidentNV');
18001   glBindProgramNV := dglGetProcAddress('glBindProgramNV');
18002   glDeleteProgramsNV := dglGetProcAddress('glDeleteProgramsNV');
18003   glExecuteProgramNV := dglGetProcAddress('glExecuteProgramNV');
18004   glGenProgramsNV := dglGetProcAddress('glGenProgramsNV');
18005   glGetProgramParameterdvNV := dglGetProcAddress('glGetProgramParameterdvNV');
18006   glGetProgramParameterfvNV := dglGetProcAddress('glGetProgramParameterfvNV');
18007   glGetProgramivNV := dglGetProcAddress('glGetProgramivNV');
18008   glGetProgramStringNV := dglGetProcAddress('glGetProgramStringNV');
18009   glGetTrackMatrixivNV := dglGetProcAddress('glGetTrackMatrixivNV');
18010   glGetVertexAttribdvNV := dglGetProcAddress('glGetVertexAttribdvNV');
18011   glGetVertexAttribfvNV := dglGetProcAddress('glGetVertexAttribfvNV');
18012   glGetVertexAttribivNV := dglGetProcAddress('glGetVertexAttribivNV');
18013   glGetVertexAttribPointervNV := dglGetProcAddress('glGetVertexAttribPointervNV');
18014   glIsProgramNV := dglGetProcAddress('glIsProgramNV');
18015   glLoadProgramNV := dglGetProcAddress('glLoadProgramNV');
18016   glProgramParameter4dNV := dglGetProcAddress('glProgramParameter4dNV');
18017   glProgramParameter4dvNV := dglGetProcAddress('glProgramParameter4dvNV');
18018   glProgramParameter4fNV := dglGetProcAddress('glProgramParameter4fNV');
18019   glProgramParameter4fvNV := dglGetProcAddress('glProgramParameter4fvNV');
18020   glProgramParameters4dvNV := dglGetProcAddress('glProgramParameters4dvNV');
18021   glProgramParameters4fvNV := dglGetProcAddress('glProgramParameters4fvNV');
18022   glRequestResidentProgramsNV := dglGetProcAddress('glRequestResidentProgramsNV');
18023   glTrackMatrixNV := dglGetProcAddress('glTrackMatrixNV');
18024   glVertexAttribPointerNV := dglGetProcAddress('glVertexAttribPointerNV');
18025   glVertexAttrib1dNV := dglGetProcAddress('glVertexAttrib1dNV');
18026   glVertexAttrib1dvNV := dglGetProcAddress('glVertexAttrib1dvNV');
18027   glVertexAttrib1fNV := dglGetProcAddress('glVertexAttrib1fNV');
18028   glVertexAttrib1fvNV := dglGetProcAddress('glVertexAttrib1fvNV');
18029   glVertexAttrib1sNV := dglGetProcAddress('glVertexAttrib1sNV');
18030   glVertexAttrib1svNV := dglGetProcAddress('glVertexAttrib1svNV');
18031   glVertexAttrib2dNV := dglGetProcAddress('glVertexAttrib2dNV');
18032   glVertexAttrib2dvNV := dglGetProcAddress('glVertexAttrib2dvNV');
18033   glVertexAttrib2fNV := dglGetProcAddress('glVertexAttrib2fNV');
18034   glVertexAttrib2fvNV := dglGetProcAddress('glVertexAttrib2fvNV');
18035   glVertexAttrib2sNV := dglGetProcAddress('glVertexAttrib2sNV');
18036   glVertexAttrib2svNV := dglGetProcAddress('glVertexAttrib2svNV');
18037   glVertexAttrib3dNV := dglGetProcAddress('glVertexAttrib3dNV');
18038   glVertexAttrib3dvNV := dglGetProcAddress('glVertexAttrib3dvNV');
18039   glVertexAttrib3fNV := dglGetProcAddress('glVertexAttrib3fNV');
18040   glVertexAttrib3fvNV := dglGetProcAddress('glVertexAttrib3fvNV');
18041   glVertexAttrib3sNV := dglGetProcAddress('glVertexAttrib3sNV');
18042   glVertexAttrib3svNV := dglGetProcAddress('glVertexAttrib3svNV');
18043   glVertexAttrib4dNV := dglGetProcAddress('glVertexAttrib4dNV');
18044   glVertexAttrib4dvNV := dglGetProcAddress('glVertexAttrib4dvNV');
18045   glVertexAttrib4fNV := dglGetProcAddress('glVertexAttrib4fNV');
18046   glVertexAttrib4fvNV := dglGetProcAddress('glVertexAttrib4fvNV');
18047   glVertexAttrib4sNV := dglGetProcAddress('glVertexAttrib4sNV');
18048   glVertexAttrib4svNV := dglGetProcAddress('glVertexAttrib4svNV');
18049   glVertexAttrib4ubNV := dglGetProcAddress('glVertexAttrib4ubNV');
18050   glVertexAttrib4ubvNV := dglGetProcAddress('glVertexAttrib4ubvNV');
18051   glVertexAttribs1dvNV := dglGetProcAddress('glVertexAttribs1dvNV');
18052   glVertexAttribs1fvNV := dglGetProcAddress('glVertexAttribs1fvNV');
18053   glVertexAttribs1svNV := dglGetProcAddress('glVertexAttribs1svNV');
18054   glVertexAttribs2dvNV := dglGetProcAddress('glVertexAttribs2dvNV');
18055   glVertexAttribs2fvNV := dglGetProcAddress('glVertexAttribs2fvNV');
18056   glVertexAttribs2svNV := dglGetProcAddress('glVertexAttribs2svNV');
18057   glVertexAttribs3dvNV := dglGetProcAddress('glVertexAttribs3dvNV');
18058   glVertexAttribs3fvNV := dglGetProcAddress('glVertexAttribs3fvNV');
18059   glVertexAttribs3svNV := dglGetProcAddress('glVertexAttribs3svNV');
18060   glVertexAttribs4dvNV := dglGetProcAddress('glVertexAttribs4dvNV');
18061   glVertexAttribs4fvNV := dglGetProcAddress('glVertexAttribs4fvNV');
18062   glVertexAttribs4svNV := dglGetProcAddress('glVertexAttribs4svNV');
18063   glVertexAttribs4ubvNV := dglGetProcAddress('glVertexAttribs4ubvNV');
18064 end;
18065
18066 procedure Read_GL_NV_depth_buffer_float;
18067 begin
18068   glDepthRangedNV := dglGetProcAddress('glDepthRangedNV');
18069   glClearDepthdNV := dglGetProcAddress('glClearDepthdNV');
18070   glDepthBoundsdNV := dglGetProcAddress('glDepthBoundsdNV');
18071 end;
18072
18073 procedure Read_GL_NV_framebuffer_multisample_coverage;
18074 begin
18075   glRenderbufferStorageMultsampleCoverageNV := dglGetProcAddress('glRenderbufferStorageMultsampleCoverageNV');
18076 end;
18077
18078 procedure Read_GL_NV_geometry_program4;
18079 begin
18080   glProgramVertexLimitNV := dglGetProcAddress('glProgramVertexLimitNV');
18081 end;
18082
18083 procedure Read_GL_NV_gpu_program4;
18084 begin
18085   glProgramLocalParameterI4iNV := dglGetProcAddress('glProgramLocalParameterI4iNV');
18086   glProgramLocalParameterI4ivNV := dglGetProcAddress('glProgramLocalParameterI4ivNV');
18087   glProgramLocalParametersI4ivNV := dglGetProcAddress('glProgramLocalParametersI4ivNV');
18088   glProgramLocalParameterI4uiNV := dglGetProcAddress('glProgramLocalParameterI4uiNV');
18089   glProgramLocalParameterI4uivNV := dglGetProcAddress('glProgramLocalParameterI4uivNV');
18090   glProgramLocalParametersI4uivNV := dglGetProcAddress('glProgramLocalParametersI4uivNV');
18091   glProgramEnvParameterI4iNV := dglGetProcAddress('glProgramEnvParameterI4iNV');
18092   glProgramEnvParameterI4ivNV := dglGetProcAddress('glProgramEnvParameterI4ivNV');
18093   glProgramEnvParametersI4ivNV := dglGetProcAddress('glProgramEnvParametersI4ivNV');
18094   glProgramEnvParameterI4uiNV := dglGetProcAddress('glProgramEnvParameterI4uiNV');
18095   glProgramEnvParameterI4uivNV := dglGetProcAddress('glProgramEnvParameterI4uivNV');
18096   glProgramEnvParametersI4uivNV := dglGetProcAddress('glProgramEnvParametersI4uivNV');
18097   glGetProgramLocalParameterIivNV := dglGetProcAddress('glGetProgramLocalParameterIivNV');
18098   glGetProgramLocalParameterIuivNV := dglGetProcAddress('glGetProgramLocalParameterIuivNV');
18099   glGetProgramEnvParameterIivNV := dglGetProcAddress('glGetProgramEnvParameterIivNV');
18100   glGetProgramEnvParameterIuivNV := dglGetProcAddress('glGetProgramEnvParameterIuivNV');
18101 end;
18102
18103 procedure Read_GL_NV_parameter_buffer_object;
18104 begin
18105   glProgramBufferParametersfvNV := dglGetProcAddress('glProgramBufferParametersfvNV');
18106   glProgramBufferParametersIivNV := dglGetProcAddress('glProgramBufferParametersIivNV');
18107   glProgramBufferParametersIuivNV := dglGetProcAddress('glProgramBufferParametersIuivNV');
18108 end;
18109
18110 procedure Read_GL_NV_transform_feedback;
18111 begin
18112   glBeginTransformFeedbackNV := dglGetProcAddress('glBeginTransformFeedbackNV');
18113   glEndTransformFeedbackNV := dglGetProcAddress('glEndTransformFeedbackNV');
18114   glTransformFeedbackAttribsNV := dglGetProcAddress('glTransformFeedbackAttribsNV');
18115   glBindBufferRangeNV := dglGetProcAddress('glBindBufferRangeNV');
18116   glBindBufferOffsetNV := dglGetProcAddress('glBindBufferOffsetNV');
18117   glBindBufferBaseNV := dglGetProcAddress('glBindBufferBaseNV');
18118   glTransformFeedbackVaryingsNV := dglGetProcAddress('glTransformFeedbackVaryingsNV');
18119   glActiveVaryingNV := dglGetProcAddress('glActiveVaryingNV');
18120   glGetVaryingLocationNV := dglGetProcAddress('glGetVaryingLocationNV');
18121   glGetActiveVaryingNV := dglGetProcAddress('glGetActiveVaryingNV');
18122   glGetTransformFeedbackVaryingNV := dglGetProcAddress('glGetTransformFeedbackVaryingNV');
18123   glTransformFeedbackStreamAttribsNV := dglGetProcAddress('glTransformFeedbackStreamAttribsNV');
18124 end;
18125
18126 procedure Read_GL_NV_conditional_render;
18127 begin
18128   glBeginConditionalRenderNV := dglGetProcAddress('glBeginConditionalRenderNV');
18129   glEndConditionalRenderNV := dglGetProcAddress('glEndConditionalRenderNV');
18130 end;
18131
18132 procedure Read_GL_NV_present_video;
18133 begin
18134   glPresentFrameKeyedNV := dglGetProcAddress('glPresentFrameKeyedNV');
18135   glPresentFrameDualFillNV := dglGetProcAddress('glPresentFrameDualFillNV');
18136   glGetVideoivNV := dglGetProcAddress('glGetVideoivNV');
18137   glGetVideouivNV := dglGetProcAddress('glGetVideouivNV');
18138   glGetVideoi64vNV := dglGetProcAddress('glGetVideoi64vNV');
18139   glGetVideoui64vNV := dglGetProcAddress('glGetVideoui64vNV');
18140 //  glVideoParameterivNV := dglGetProcAddress('glVideoParameterivNV');
18141 end;
18142
18143 procedure Read_GL_NV_explicit_multisample;
18144 begin
18145   glGetMultisamplefvNV := dglGetProcAddress('glGetMultisamplefvNV');
18146   glSampleMaskIndexedNV := dglGetProcAddress('glSampleMaskIndexedNV');
18147   glTexRenderbufferNV := dglGetProcAddress('glTexRenderbufferNV');
18148 end;
18149
18150 procedure Read_GL_NV_transform_feedback2;
18151 begin
18152   glBindTransformFeedbackNV := dglGetProcAddress('glBindTransformFeedbackNV');
18153   glDeleteTransformFeedbacksNV := dglGetProcAddress('glDeleteTransformFeedbacksNV');
18154   glGenTransformFeedbacksNV := dglGetProcAddress('glGenTransformFeedbacksNV');
18155   glIsTransformFeedbackNV := dglGetProcAddress('glIsTransformFeedbackNV');
18156   glPauseTransformFeedbackNV := dglGetProcAddress('glPauseTransformFeedbackNV');
18157   glResumeTransformFeedbackNV := dglGetProcAddress('glResumeTransformFeedbackNV');
18158   glDrawTransformFeedbackNV := dglGetProcAddress('glDrawTransformFeedbackNV');
18159 end;
18160
18161 procedure Read_GL_NV_video_capture;
18162 begin
18163   glBeginVideoCaptureNV := dglGetProcAddress('glBeginVideoCaptureNV');
18164   glBindVideoCaptureStreamBufferNV := dglGetProcAddress('glBindVideoCaptureStreamBufferNV');
18165   glBindVideoCaptureStreamTextureNV := dglGetProcAddress('glBindVideoCaptureStreamTextureNV');
18166   glEndVideoCaptureNV := dglGetProcAddress('glEndVideoCaptureNV');
18167   glGetVideoCaptureivNV := dglGetProcAddress('glGetVideoCaptureivNV');
18168   glGetVideoCaptureStreamivNV := dglGetProcAddress('glGetVideoCaptureStreamivNV');
18169   glGetVideoCaptureStreamfvNV := dglGetProcAddress('glGetVideoCaptureStreamfvNV');
18170   glGetVideoCaptureStreamdvNV := dglGetProcAddress('glGetVideoCaptureStreamdvNV');
18171   glVideoCaptureNV := dglGetProcAddress('glVideoCaptureNV');
18172   glVideoCaptureStreamParameterivNV := dglGetProcAddress('glVideoCaptureStreamParameterivNV');
18173   glVideoCaptureStreamParameterfvNV := dglGetProcAddress('glVideoCaptureStreamParameterfvNV');
18174   glVideoCaptureStreamParameterdvNV := dglGetProcAddress('glVideoCaptureStreamParameterdvNV');
18175 end;
18176
18177 procedure Read_GL_NV_copy_image;
18178 begin
18179   glCopyImageSubDataNV := dglGetProcAddress('glCopyImageSubDataNV');
18180 end;
18181
18182 procedure Read_GL_NV_shader_buffer_load;
18183 begin
18184   glMakeBufferResidentNV := dglGetProcAddress('glMakeBufferResidentNV');
18185   glMakeBufferNonResidentNV := dglGetProcAddress('glMakeBufferNonResidentNV');
18186   glIsBufferResidentNV := dglGetProcAddress('glIsBufferResidentNV');
18187   glMakeNamedBufferResidentNV := dglGetProcAddress('glMakeNamedBufferResidentNV');
18188   glMakeNamedBufferNonResidentNV := dglGetProcAddress('glMakeNamedBufferNonResidentNV');
18189   glIsNamedBufferResidentNV := dglGetProcAddress('glIsNamedBufferResidentNV');
18190   glGetBufferParameterui64vNV := dglGetProcAddress('glGetBufferParameterui64vNV');
18191   glGetNamedBufferParameterui64vNV := dglGetProcAddress('glGetNamedBufferParameterui64vNV');
18192   glGetIntegerui64vNV := dglGetProcAddress('glGetIntegerui64vNV');
18193   glUniformui64NV := dglGetProcAddress('glUniformui64NV');
18194   glUniformui64vNV := dglGetProcAddress('glUniformui64vNV');
18195   glGetUniformui64vNV := dglGetProcAddress('glGetUniformui64vNV');
18196   glProgramUniformui64NV := dglGetProcAddress('glProgramUniformui64NV');
18197   glProgramUniformui64vNV := dglGetProcAddress('glProgramUniformui64vNV');
18198 end;
18199
18200 procedure Read_GL_NV_vertex_buffer_unified_memory;
18201 begin
18202   glBufferAddressRangeNV := dglGetProcAddress('glBufferAddressRangeNV');
18203   glVertexFormatNV := dglGetProcAddress('glVertexFormatNV');
18204   glNormalFormatNV := dglGetProcAddress('glNormalFormatNV');
18205   glColorFormatNV := dglGetProcAddress('glColorFormatNV');
18206   glIndexFormatNV := dglGetProcAddress('glIndexFormatNV');
18207   glTexCoordFormatNV := dglGetProcAddress('glTexCoordFormatNV');
18208   glEdgeFlagFormatNV := dglGetProcAddress('glEdgeFlagFormatNV');
18209   glSecondaryColorFormatNV := dglGetProcAddress('glSecondaryColorFormatNV');
18210   glFogCoordFormatNV := dglGetProcAddress('glFogCoordFormatNV');
18211   glVertexAttribFormatNV := dglGetProcAddress('glVertexAttribFormatNV');
18212   glVertexAttribIFormatNV := dglGetProcAddress('glVertexAttribIFormatNV');
18213   glGetIntegerui64i_vNV := dglGetProcAddress('glGetIntegerui64i_vNV');
18214 end;
18215
18216 procedure Read_GL_NV_gpu_program5;
18217 begin
18218   glProgramSubroutineParametersuivNV := dglGetProcAddress('glProgramSubroutineParametersuivNV');
18219   glGetProgramSubroutineParameteruivNV := dglGetProcAddress('glGetProgramSubroutineParameteruivNV');
18220 end;
18221
18222 procedure Read_GL_NV_gpu_shader5;
18223 begin
18224   glUniform1i64NV := dglGetProcAddress('glUniform1i64NV');
18225   glUniform2i64NV := dglGetProcAddress('glUniform2i64NV');
18226   glUniform3i64NV := dglGetProcAddress('glUniform3i64NV');
18227   glUniform4i64NV := dglGetProcAddress('glUniform4i64NV');
18228   glUniform1i64vNV := dglGetProcAddress('glUniform1i64vNV');
18229   glUniform2i64vNV := dglGetProcAddress('glUniform2i64vNV');
18230   glUniform3i64vNV := dglGetProcAddress('glUniform3i64vNV');
18231   glUniform4i64vNV := dglGetProcAddress('glUniform4i64vNV');
18232   glUniform1ui64NV := dglGetProcAddress('glUniform1ui64NV');
18233   glUniform2ui64NV := dglGetProcAddress('glUniform2ui64NV');
18234   glUniform3ui64NV := dglGetProcAddress('glUniform3ui64NV');
18235   glUniform4ui64NV := dglGetProcAddress('glUniform4ui64NV');
18236   glUniform1ui64vNV := dglGetProcAddress('glUniform1ui64vNV');
18237   glUniform2ui64vNV := dglGetProcAddress('glUniform2ui64vNV');
18238   glUniform3ui64vNV := dglGetProcAddress('glUniform3ui64vNV');
18239   glUniform4ui64vNV := dglGetProcAddress('glUniform4ui64vNV');
18240   glGetUniformi64vNV := dglGetProcAddress('glGetUniformi64vNV');
18241   glProgramUniform1i64NV := dglGetProcAddress('glProgramUniform1i64NV');
18242   glProgramUniform2i64NV := dglGetProcAddress('glProgramUniform2i64NV');
18243   glProgramUniform3i64NV := dglGetProcAddress('glProgramUniform3i64NV');
18244   glProgramUniform4i64NV := dglGetProcAddress('glProgramUniform4i64NV');
18245   glProgramUniform1i64vNV := dglGetProcAddress('glProgramUniform1i64vNV');
18246   glProgramUniform2i64vNV := dglGetProcAddress('glProgramUniform2i64vNV');
18247   glProgramUniform3i64vNV := dglGetProcAddress('glProgramUniform3i64vNV');
18248   glProgramUniform4i64vNV := dglGetProcAddress('glProgramUniform4i64vNV');
18249   glProgramUniform1ui64NV := dglGetProcAddress('glProgramUniform1ui64NV');
18250   glProgramUniform2ui64NV := dglGetProcAddress('glProgramUniform2ui64NV');
18251   glProgramUniform3ui64NV := dglGetProcAddress('glProgramUniform3ui64NV');
18252   glProgramUniform4ui64NV := dglGetProcAddress('glProgramUniform4ui64NV');
18253   glProgramUniform1ui64vNV := dglGetProcAddress('glProgramUniform1ui64vNV');
18254   glProgramUniform2ui64vNV := dglGetProcAddress('glProgramUniform2ui64vNV');
18255   glProgramUniform3ui64vNV := dglGetProcAddress('glProgramUniform3ui64vNV');
18256   glProgramUniform4ui64vNV := dglGetProcAddress('glProgramUniform4ui64vNV');
18257 end;
18258
18259 procedure Read_GL_NV_vertex_attrib_integer_64bit;
18260 begin
18261   glVertexAttribL1i64NV := dglGetProcAddress('glVertexAttribL1i64NV');
18262   glVertexAttribL2i64NV := dglGetProcAddress('glVertexAttribL2i64NV');
18263   glVertexAttribL3i64NV := dglGetProcAddress('glVertexAttribL3i64NV');
18264   glVertexAttribL4i64NV := dglGetProcAddress('glVertexAttribL4i64NV');
18265   glVertexAttribL1i64vNV := dglGetProcAddress('glVertexAttribL1i64vNV');
18266   glVertexAttribL2i64vNV := dglGetProcAddress('glVertexAttribL2i64vNV');
18267   glVertexAttribL3i64vNV := dglGetProcAddress('glVertexAttribL3i64vNV');
18268   glVertexAttribL4i64vNV := dglGetProcAddress('glVertexAttribL4i64vNV');
18269   glVertexAttribL1ui64NV := dglGetProcAddress('glVertexAttribL1ui64NV');
18270   glVertexAttribL2ui64NV := dglGetProcAddress('glVertexAttribL2ui64NV');
18271   glVertexAttribL3ui64NV := dglGetProcAddress('glVertexAttribL3ui64NV');
18272   glVertexAttribL4ui64NV := dglGetProcAddress('glVertexAttribL4ui64NV');
18273   glVertexAttribL1ui64vNV := dglGetProcAddress('glVertexAttribL1ui64vNV');
18274   glVertexAttribL2ui64vNV := dglGetProcAddress('glVertexAttribL2ui64vNV');
18275   glVertexAttribL3ui64vNV := dglGetProcAddress('glVertexAttribL3ui64vNV');
18276   glVertexAttribL4ui64vNV := dglGetProcAddress('glVertexAttribL4ui64vNV');
18277   glGetVertexAttribLi64vNV := dglGetProcAddress('glGetVertexAttribLi64vNV');
18278   glGetVertexAttribLui64vNV := dglGetProcAddress('glGetVertexAttribLui64vNV');
18279   glVertexAttribLFormatNV := dglGetProcAddress('glVertexAttribLFormatNV');
18280 end;  
18281
18282 procedure Read_GL_NV_vdpau_interop;
18283 begin
18284   glVDPAUInitNV := dglGetProcAddress('glVDPAUInitNV');
18285   glVDPAUFiniNV := dglGetProcAddress('glVDPAUFiniNV');
18286   glVDPAURegisterVideoSurfaceNV := dglGetProcAddress('glVDPAURegisterVideoSurfaceNV');
18287   glVDPAURegisterOutputSurfaceNV := dglGetProcAddress('glVDPAURegisterOutputSurfaceNV');
18288   glVDPAUIsSurfaceNV := dglGetProcAddress('glVDPAUIsSurfaceNV');
18289   glVDPAUUnregisterSurfaceNV := dglGetProcAddress('glVDPAUUnregisterSurfaceNV');
18290   glVDPAUGetSurfaceivNV := dglGetProcAddress('glVDPAUGetSurfaceivNV');
18291   glVDPAUSurfaceAccessNV := dglGetProcAddress('glVDPAUSurfaceAccessNV');
18292   glVDPAUMapSurfacesNV := dglGetProcAddress('glVDPAUMapSurfacesNV');
18293   glVDPAUUnmapSurfacesNV := dglGetProcAddress('glVDPAUUnmapSurfacesNV');
18294 end;
18295   
18296 procedure Read_GL_NV_texture_barrier;
18297 begin
18298   glTextureBarrierNV := dglGetProcAddress('glTextureBarrierNV');
18299 end;
18300
18301 procedure Read_GL_PGI_misc_hints;
18302 begin
18303   glHintPGI := dglGetProcAddress('glHintPGI');
18304 end;
18305
18306 procedure Read_GL_SGIS_detail_texture;
18307 begin
18308   glDetailTexFuncSGIS := dglGetProcAddress('glDetailTexFuncSGIS');
18309   glGetDetailTexFuncSGIS := dglGetProcAddress('glGetDetailTexFuncSGIS');
18310 end;
18311
18312 procedure Read_GL_SGIS_fog_function;
18313 begin
18314   glFogFuncSGIS := dglGetProcAddress('glFogFuncSGIS');
18315   glGetFogFuncSGIS := dglGetProcAddress('glGetFogFuncSGIS');
18316 end;
18317
18318 procedure Read_GL_SGIS_multisample;
18319 begin
18320   glSampleMaskSGIS := dglGetProcAddress('glSampleMaskSGIS');
18321   glSamplePatternSGIS := dglGetProcAddress('glSamplePatternSGIS');
18322 end;
18323
18324 procedure Read_GL_SGIS_pixel_texture;
18325 begin
18326   glPixelTexGenParameteriSGIS := dglGetProcAddress('glPixelTexGenParameteriSGIS');
18327   glPixelTexGenParameterivSGIS := dglGetProcAddress('glPixelTexGenParameterivSGIS');
18328   glPixelTexGenParameterfSGIS := dglGetProcAddress('glPixelTexGenParameterfSGIS');
18329   glPixelTexGenParameterfvSGIS := dglGetProcAddress('glPixelTexGenParameterfvSGIS');
18330   glGetPixelTexGenParameterivSGIS := dglGetProcAddress('glGetPixelTexGenParameterivSGIS');
18331   glGetPixelTexGenParameterfvSGIS := dglGetProcAddress('glGetPixelTexGenParameterfvSGIS');
18332 end;
18333
18334 procedure Read_GL_SGIS_point_parameters;
18335 begin
18336   glPointParameterfSGIS := dglGetProcAddress('glPointParameterfSGIS');
18337   glPointParameterfvSGIS := dglGetProcAddress('glPointParameterfvSGIS');
18338 end;
18339
18340 procedure Read_GL_SGIS_sharpen_texture;
18341 begin
18342   glSharpenTexFuncSGIS := dglGetProcAddress('glSharpenTexFuncSGIS');
18343   glGetSharpenTexFuncSGIS := dglGetProcAddress('glGetSharpenTexFuncSGIS');
18344 end;
18345
18346 procedure Read_GL_SGIS_texture4D;
18347 begin
18348   glTexImage4DSGIS := dglGetProcAddress('glTexImage4DSGIS');
18349   glTexSubImage4DSGIS := dglGetProcAddress('glTexSubImage4DSGIS');
18350 end;
18351
18352 procedure Read_GL_SGIS_texture_color_mask;
18353 begin
18354   glTextureColorMaskSGIS := dglGetProcAddress('glTextureColorMaskSGIS');
18355 end;
18356
18357 procedure Read_GL_SGIS_texture_filter4;
18358 begin
18359   glGetTexFilterFuncSGIS := dglGetProcAddress('glGetTexFilterFuncSGIS');
18360   glTexFilterFuncSGIS := dglGetProcAddress('glTexFilterFuncSGIS');
18361 end;
18362
18363 procedure Read_GL_SGIX_async;
18364 begin
18365   glAsyncMarkerSGIX := dglGetProcAddress('glAsyncMarkerSGIX');
18366   glFinishAsyncSGIX := dglGetProcAddress('glFinishAsyncSGIX');
18367   glPollAsyncSGIX := dglGetProcAddress('glPollAsyncSGIX');
18368   glGenAsyncMarkersSGIX := dglGetProcAddress('glGenAsyncMarkersSGIX');
18369   glDeleteAsyncMarkersSGIX := dglGetProcAddress('glDeleteAsyncMarkersSGIX');
18370   glIsAsyncMarkerSGIX := dglGetProcAddress('glIsAsyncMarkerSGIX');
18371 end;
18372
18373 procedure Read_GL_SGIX_flush_raster;
18374 begin
18375   glFlushRasterSGIX := dglGetProcAddress('glFlushRasterSGIX');
18376 end;
18377
18378 procedure Read_GL_SGIX_fragment_lighting;
18379 begin
18380   glFragmentColorMaterialSGIX := dglGetProcAddress('glFragmentColorMaterialSGIX');
18381   glFragmentLightfSGIX := dglGetProcAddress('glFragmentLightfSGIX');
18382   glFragmentLightfvSGIX := dglGetProcAddress('glFragmentLightfvSGIX');
18383   glFragmentLightiSGIX := dglGetProcAddress('glFragmentLightiSGIX');
18384   glFragmentLightivSGIX := dglGetProcAddress('glFragmentLightivSGIX');
18385   glFragmentLightModelfSGIX := dglGetProcAddress('glFragmentLightModelfSGIX');
18386   glFragmentLightModelfvSGIX := dglGetProcAddress('glFragmentLightModelfvSGIX');
18387   glFragmentLightModeliSGIX := dglGetProcAddress('glFragmentLightModeliSGIX');
18388   glFragmentLightModelivSGIX := dglGetProcAddress('glFragmentLightModelivSGIX');
18389   glFragmentMaterialfSGIX := dglGetProcAddress('glFragmentMaterialfSGIX');
18390   glFragmentMaterialfvSGIX := dglGetProcAddress('glFragmentMaterialfvSGIX');
18391   glFragmentMaterialiSGIX := dglGetProcAddress('glFragmentMaterialiSGIX');
18392   glFragmentMaterialivSGIX := dglGetProcAddress('glFragmentMaterialivSGIX');
18393   glGetFragmentLightfvSGIX := dglGetProcAddress('glGetFragmentLightfvSGIX');
18394   glGetFragmentLightivSGIX := dglGetProcAddress('glGetFragmentLightivSGIX');
18395   glGetFragmentMaterialfvSGIX := dglGetProcAddress('glGetFragmentMaterialfvSGIX');
18396   glGetFragmentMaterialivSGIX := dglGetProcAddress('glGetFragmentMaterialivSGIX');
18397   glLightEnviSGIX := dglGetProcAddress('glLightEnviSGIX');
18398 end;
18399
18400 procedure Read_GL_SGIX_framezoom;
18401 begin
18402   glFrameZoomSGIX := dglGetProcAddress('glFrameZoomSGIX');
18403 end;
18404
18405 procedure Read_GL_SGIX_igloo_interface;
18406 begin
18407   glIglooInterfaceSGIX := dglGetProcAddress('glIglooInterfaceSGIX');
18408 end;
18409
18410 procedure Read_GL_SGIX_instruments;
18411 begin
18412   glGetInstrumentsSGIX := dglGetProcAddress('glGetInstrumentsSGIX');
18413   glInstrumentsBufferSGIX := dglGetProcAddress('glInstrumentsBufferSGIX');
18414   glPollInstrumentsSGIX := dglGetProcAddress('glPollInstrumentsSGIX');
18415   glReadInstrumentsSGIX := dglGetProcAddress('glReadInstrumentsSGIX');
18416   glStartInstrumentsSGIX := dglGetProcAddress('glStartInstrumentsSGIX');
18417   glStopInstrumentsSGIX := dglGetProcAddress('glStopInstrumentsSGIX');
18418 end;
18419
18420 procedure Read_GL_SGIX_list_priority;
18421 begin
18422   glGetListParameterfvSGIX := dglGetProcAddress('glGetListParameterfvSGIX');
18423   glGetListParameterivSGIX := dglGetProcAddress('glGetListParameterivSGIX');
18424   glListParameterfSGIX := dglGetProcAddress('glListParameterfSGIX');
18425   glListParameterfvSGIX := dglGetProcAddress('glListParameterfvSGIX');
18426   glListParameteriSGIX := dglGetProcAddress('glListParameteriSGIX');
18427   glListParameterivSGIX := dglGetProcAddress('glListParameterivSGIX');
18428 end;
18429
18430 procedure Read_GL_SGIX_pixel_texture;
18431 begin
18432   glPixelTexGenSGIX := dglGetProcAddress('glPixelTexGenSGIX');
18433 end;
18434
18435 procedure Read_GL_SGIX_polynomial_ffd;
18436 begin
18437   glDeformationMap3dSGIX := dglGetProcAddress('glDeformationMap3dSGIX');
18438   glDeformationMap3fSGIX := dglGetProcAddress('glDeformationMap3fSGIX');
18439   glDeformSGIX := dglGetProcAddress('glDeformSGIX');
18440   glLoadIdentityDeformationMapSGIX := dglGetProcAddress('glLoadIdentityDeformationMapSGIX');
18441 end;
18442
18443 procedure Read_GL_SGIX_reference_plane;
18444 begin
18445   glReferencePlaneSGIX := dglGetProcAddress('glReferencePlaneSGIX');
18446 end;
18447
18448 procedure Read_GL_SGIX_sprite;
18449 begin
18450   glSpriteParameterfSGIX := dglGetProcAddress('glSpriteParameterfSGIX');
18451   glSpriteParameterfvSGIX := dglGetProcAddress('glSpriteParameterfvSGIX');
18452   glSpriteParameteriSGIX := dglGetProcAddress('glSpriteParameteriSGIX');
18453   glSpriteParameterivSGIX := dglGetProcAddress('glSpriteParameterivSGIX');
18454 end;
18455
18456 procedure Read_GL_SGIX_tag_sample_buffer;
18457 begin
18458   glTagSampleBufferSGIX := dglGetProcAddress('glTagSampleBufferSGIX');
18459 end;
18460
18461 procedure Read_GL_SGI_color_table;
18462 begin
18463   glColorTableSGI := dglGetProcAddress('glColorTableSGI');
18464   glColorTableParameterfvSGI := dglGetProcAddress('glColorTableParameterfvSGI');
18465   glColorTableParameterivSGI := dglGetProcAddress('glColorTableParameterivSGI');
18466   glCopyColorTableSGI := dglGetProcAddress('glCopyColorTableSGI');
18467   glGetColorTableSGI := dglGetProcAddress('glGetColorTableSGI');
18468   glGetColorTableParameterfvSGI := dglGetProcAddress('glGetColorTableParameterfvSGI');
18469   glGetColorTableParameterivSGI := dglGetProcAddress('glGetColorTableParameterivSGI');
18470 end;
18471
18472 procedure Read_GL_SUNX_constant_data;
18473 begin
18474   glFinishTextureSUNX := dglGetProcAddress('glFinishTextureSUNX');
18475 end;
18476
18477 procedure Read_GL_SUN_global_alpha;
18478 begin
18479   glGlobalAlphaFactorbSUN := dglGetProcAddress('glGlobalAlphaFactorbSUN');
18480   glGlobalAlphaFactorsSUN := dglGetProcAddress('glGlobalAlphaFactorsSUN');
18481   glGlobalAlphaFactoriSUN := dglGetProcAddress('glGlobalAlphaFactoriSUN');
18482   glGlobalAlphaFactorfSUN := dglGetProcAddress('glGlobalAlphaFactorfSUN');
18483   glGlobalAlphaFactordSUN := dglGetProcAddress('glGlobalAlphaFactordSUN');
18484   glGlobalAlphaFactorubSUN := dglGetProcAddress('glGlobalAlphaFactorubSUN');
18485   glGlobalAlphaFactorusSUN := dglGetProcAddress('glGlobalAlphaFactorusSUN');
18486   glGlobalAlphaFactoruiSUN := dglGetProcAddress('glGlobalAlphaFactoruiSUN');
18487 end;
18488
18489 procedure Read_GL_SUN_mesh_array;
18490 begin
18491   glDrawMeshArraysSUN := dglGetProcAddress('glDrawMeshArraysSUN');
18492 end;
18493
18494 procedure Read_GL_SUN_triangle_list;
18495 begin
18496   glReplacementCodeuiSUN := dglGetProcAddress('glReplacementCodeuiSUN');
18497   glReplacementCodeusSUN := dglGetProcAddress('glReplacementCodeusSUN');
18498   glReplacementCodeubSUN := dglGetProcAddress('glReplacementCodeubSUN');
18499   glReplacementCodeuivSUN := dglGetProcAddress('glReplacementCodeuivSUN');
18500   glReplacementCodeusvSUN := dglGetProcAddress('glReplacementCodeusvSUN');
18501   glReplacementCodeubvSUN := dglGetProcAddress('glReplacementCodeubvSUN');
18502   glReplacementCodePointerSUN := dglGetProcAddress('glReplacementCodePointerSUN');
18503 end;
18504
18505 procedure Read_GL_SUN_vertex;
18506 begin
18507   glColor4ubVertex2fSUN := dglGetProcAddress('glColor4ubVertex2fSUN');
18508   glColor4ubVertex2fvSUN := dglGetProcAddress('glColor4ubVertex2fvSUN');
18509   glColor4ubVertex3fSUN := dglGetProcAddress('glColor4ubVertex3fSUN');
18510   glColor4ubVertex3fvSUN := dglGetProcAddress('glColor4ubVertex3fvSUN');
18511   glColor3fVertex3fSUN := dglGetProcAddress('glColor3fVertex3fSUN');
18512   glColor3fVertex3fvSUN := dglGetProcAddress('glColor3fVertex3fvSUN');
18513   glNormal3fVertex3fSUN := dglGetProcAddress('glNormal3fVertex3fSUN');
18514   glNormal3fVertex3fvSUN := dglGetProcAddress('glNormal3fVertex3fvSUN');
18515   glColor4fNormal3fVertex3fSUN := dglGetProcAddress('glColor4fNormal3fVertex3fSUN');
18516   glColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glColor4fNormal3fVertex3fvSUN');
18517   glTexCoord2fVertex3fSUN := dglGetProcAddress('glTexCoord2fVertex3fSUN');
18518   glTexCoord2fVertex3fvSUN := dglGetProcAddress('glTexCoord2fVertex3fvSUN');
18519   glTexCoord4fVertex4fSUN := dglGetProcAddress('glTexCoord4fVertex4fSUN');
18520   glTexCoord4fVertex4fvSUN := dglGetProcAddress('glTexCoord4fVertex4fvSUN');
18521   glTexCoord2fColor4ubVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fSUN');
18522   glTexCoord2fColor4ubVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fvSUN');
18523   glTexCoord2fColor3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fSUN');
18524   glTexCoord2fColor3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fvSUN');
18525   glTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fSUN');
18526   glTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fvSUN');
18527   glTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fSUN');
18528   glTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fvSUN');
18529   glTexCoord4fColor4fNormal3fVertex4fSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fSUN');
18530   glTexCoord4fColor4fNormal3fVertex4fvSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fvSUN');
18531   glReplacementCodeuiVertex3fSUN := dglGetProcAddress('glReplacementCodeuiVertex3fSUN');
18532   glReplacementCodeuiVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiVertex3fvSUN');
18533   glReplacementCodeuiColor4ubVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fSUN');
18534   glReplacementCodeuiColor4ubVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fvSUN');
18535   glReplacementCodeuiColor3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fSUN');
18536   glReplacementCodeuiColor3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fvSUN');
18537   glReplacementCodeuiNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fSUN');
18538   glReplacementCodeuiNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fvSUN');
18539   glReplacementCodeuiColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fSUN');
18540   glReplacementCodeuiColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fvSUN');
18541   glReplacementCodeuiTexCoord2fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fSUN');
18542   glReplacementCodeuiTexCoord2fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fvSUN');
18543   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN');
18544   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN');
18545   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN');
18546   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN');
18547 end;
18548
18549 {$IFDEF DGL_WIN}
18550 procedure Read_WGL_ARB_buffer_region;
18551 begin
18552   wglCreateBufferRegionARB := dglGetProcAddress('wglCreateBufferRegionARB');
18553   wglDeleteBufferRegionARB := dglGetProcAddress('wglDeleteBufferRegionARB');
18554   wglSaveBufferRegionARB := dglGetProcAddress('wglSaveBufferRegionARB');
18555   wglRestoreBufferRegionARB := dglGetProcAddress('wglRestoreBufferRegionARB');
18556 end;
18557
18558 procedure Read_WGL_ARB_extensions_string;
18559 begin
18560   wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
18561 end;
18562
18563 procedure Read_WGL_ARB_make_current_read;
18564 begin
18565   wglMakeContextCurrentARB := dglGetProcAddress('wglMakeContextCurrentARB');
18566   wglGetCurrentReadDCARB := dglGetProcAddress('wglGetCurrentReadDCARB');
18567 end;
18568
18569 procedure Read_WGL_ARB_pbuffer;
18570 begin
18571   wglCreatePbufferARB := dglGetProcAddress('wglCreatePbufferARB');
18572   wglGetPbufferDCARB := dglGetProcAddress('wglGetPbufferDCARB');
18573   wglReleasePbufferDCARB := dglGetProcAddress('wglReleasePbufferDCARB');
18574   wglDestroyPbufferARB := dglGetProcAddress('wglDestroyPbufferARB');
18575   wglQueryPbufferARB := dglGetProcAddress('wglQueryPbufferARB');
18576 end;
18577
18578 procedure Read_WGL_ARB_pixel_format;
18579 begin
18580   wglGetPixelFormatAttribivARB := dglGetProcAddress('wglGetPixelFormatAttribivARB');
18581   wglGetPixelFormatAttribfvARB := dglGetProcAddress('wglGetPixelFormatAttribfvARB');
18582   wglChoosePixelFormatARB := dglGetProcAddress('wglChoosePixelFormatARB');
18583 end;
18584
18585 procedure Read_WGL_ARB_pixel_format_float;
18586 begin
18587   wglClampColorARB := dglGetProcAddress('wglClampColorARB');
18588 end;
18589
18590 procedure Read_WGL_ARB_render_texture;
18591 begin
18592   wglBindTexImageARB := dglGetProcAddress('wglBindTexImageARB');
18593   wglReleaseTexImageARB := dglGetProcAddress('wglReleaseTexImageARB');
18594   wglSetPbufferAttribARB := dglGetProcAddress('wglSetPbufferAttribARB');
18595 end;
18596
18597 procedure Read_WGL_ARB_create_context;
18598 begin
18599   wglCreateContextAttribsARB := dglGetProcAddress('wglCreateContextAttribsARB');
18600 end;
18601
18602 procedure Read_WGL_AMD_gpu_association;
18603 begin
18604   wglGetGPUIDsAMD := dglGetProcAddress('wglGetGPUIDsAMD');
18605   wglGetGPUInfoAMD := dglGetProcAddress('wglGetGPUInfoAMD');
18606   wglGetContextGPUIDAMD := dglGetProcAddress('wglGetContextGPUIDAMD');
18607   wglCreateAssociatedContextAMD := dglGetProcAddress('wglCreateAssociatedContextAMD');
18608   wglCreateAssociatedContextAttribsAMD := dglGetProcAddress('wglCreateAssociatedContextAttribsAMD');
18609   wglDeleteAssociatedContextAMD := dglGetProcAddress('wglDeleteAssociatedContextAMD');
18610   wglMakeAssociatedContextCurrentAMD := dglGetProcAddress('wglMakeAssociatedContextCurrentAMD');
18611   wglGetCurrentAssociatedContextAMD := dglGetProcAddress('wglGetCurrentAssociatedContextAMD');
18612   wglBlitContextFramebufferAMD := dglGetProcAddress('wglBlitContextFramebufferAMD');
18613 end;
18614
18615 procedure Read_WGL_EXT_display_color_table;
18616 begin
18617   wglCreateDisplayColorTableEXT := dglGetProcAddress('wglCreateDisplayColorTableEXT');
18618   wglLoadDisplayColorTableEXT := dglGetProcAddress('wglLoadDisplayColorTableEXT');
18619   wglBindDisplayColorTableEXT := dglGetProcAddress('wglBindDisplayColorTableEXT');
18620   wglDestroyDisplayColorTableEXT := dglGetProcAddress('wglDestroyDisplayColorTableEXT');
18621 end;
18622
18623 procedure Read_WGL_EXT_extensions_string;
18624 begin
18625   wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
18626 end;
18627
18628 procedure Read_WGL_EXT_make_current_read;
18629 begin
18630   wglMakeContextCurrentEXT := dglGetProcAddress('wglMakeContextCurrentEXT');
18631   wglGetCurrentReadDCEXT := dglGetProcAddress('wglGetCurrentReadDCEXT');
18632 end;
18633
18634 procedure Read_WGL_EXT_pbuffer;
18635 begin
18636   wglCreatePbufferEXT := dglGetProcAddress('wglCreatePbufferEXT');
18637   wglGetPbufferDCEXT := dglGetProcAddress('wglGetPbufferDCEXT');
18638   wglReleasePbufferDCEXT := dglGetProcAddress('wglReleasePbufferDCEXT');
18639   wglDestroyPbufferEXT := dglGetProcAddress('wglDestroyPbufferEXT');
18640   wglQueryPbufferEXT := dglGetProcAddress('wglQueryPbufferEXT');
18641 end;
18642
18643 procedure Read_WGL_EXT_pixel_format;
18644 begin
18645   wglGetPixelFormatAttribivEXT := dglGetProcAddress('wglGetPixelFormatAttribivEXT');
18646   wglGetPixelFormatAttribfvEXT := dglGetProcAddress('wglGetPixelFormatAttribfvEXT');
18647   wglChoosePixelFormatEXT := dglGetProcAddress('wglChoosePixelFormatEXT');
18648 end;
18649
18650 procedure Read_WGL_EXT_swap_control;
18651 begin
18652   wglSwapIntervalEXT := dglGetProcAddress('wglSwapIntervalEXT');
18653   wglGetSwapIntervalEXT := dglGetProcAddress('wglGetSwapIntervalEXT');
18654 end;
18655
18656 procedure Read_WGL_I3D_digital_video_control;
18657 begin
18658   wglGetDigitalVideoParametersI3D := dglGetProcAddress('wglGetDigitalVideoParametersI3D');
18659   wglSetDigitalVideoParametersI3D := dglGetProcAddress('wglSetDigitalVideoParametersI3D');
18660 end;
18661
18662 procedure Read_WGL_I3D_gamma;
18663 begin
18664   wglGetGammaTableParametersI3D := dglGetProcAddress('wglGetGammaTableParametersI3D');
18665   wglSetGammaTableParametersI3D := dglGetProcAddress('wglSetGammaTableParametersI3D');
18666   wglGetGammaTableI3D := dglGetProcAddress('wglGetGammaTableI3D');
18667   wglSetGammaTableI3D := dglGetProcAddress('wglSetGammaTableI3D');
18668 end;
18669
18670 procedure Read_WGL_I3D_genlock;
18671 begin
18672   wglEnableGenlockI3D := dglGetProcAddress('wglEnableGenlockI3D');
18673   wglDisableGenlockI3D := dglGetProcAddress('wglDisableGenlockI3D');
18674   wglIsEnabledGenlockI3D := dglGetProcAddress('wglIsEnabledGenlockI3D');
18675   wglGenlockSourceI3D := dglGetProcAddress('wglGenlockSourceI3D');
18676   wglGetGenlockSourceI3D := dglGetProcAddress('wglGetGenlockSourceI3D');
18677   wglGenlockSourceEdgeI3D := dglGetProcAddress('wglGenlockSourceEdgeI3D');
18678   wglGetGenlockSourceEdgeI3D := dglGetProcAddress('wglGetGenlockSourceEdgeI3D');
18679   wglGenlockSampleRateI3D := dglGetProcAddress('wglGenlockSampleRateI3D');
18680   wglGetGenlockSampleRateI3D := dglGetProcAddress('wglGetGenlockSampleRateI3D');
18681   wglGenlockSourceDelayI3D := dglGetProcAddress('wglGenlockSourceDelayI3D');
18682   wglGetGenlockSourceDelayI3D := dglGetProcAddress('wglGetGenlockSourceDelayI3D');
18683   wglQueryGenlockMaxSourceDelayI3D := dglGetProcAddress('wglQueryGenlockMaxSourceDelayI3D');
18684 end;
18685
18686 procedure Read_WGL_I3D_image_buffer;
18687 begin
18688   wglCreateImageBufferI3D := dglGetProcAddress('wglCreateImageBufferI3D');
18689   wglDestroyImageBufferI3D := dglGetProcAddress('wglDestroyImageBufferI3D');
18690   wglAssociateImageBufferEventsI3D := dglGetProcAddress('wglAssociateImageBufferEventsI3D');
18691   wglReleaseImageBufferEventsI3D := dglGetProcAddress('wglReleaseImageBufferEventsI3D');
18692 end;
18693
18694 procedure Read_WGL_I3D_swap_frame_lock;
18695 begin
18696   wglEnableFrameLockI3D := dglGetProcAddress('wglEnableFrameLockI3D');
18697   wglDisableFrameLockI3D := dglGetProcAddress('wglDisableFrameLockI3D');
18698   wglIsEnabledFrameLockI3D := dglGetProcAddress('wglIsEnabledFrameLockI3D');
18699   wglQueryFrameLockMasterI3D := dglGetProcAddress('wglQueryFrameLockMasterI3D');
18700 end;
18701
18702 procedure Read_WGL_I3D_swap_frame_usage;
18703 begin
18704   wglGetFrameUsageI3D := dglGetProcAddress('wglGetFrameUsageI3D');
18705   wglBeginFrameTrackingI3D := dglGetProcAddress('wglBeginFrameTrackingI3D');
18706   wglEndFrameTrackingI3D := dglGetProcAddress('wglEndFrameTrackingI3D');
18707   wglQueryFrameTrackingI3D := dglGetProcAddress('wglQueryFrameTrackingI3D');
18708 end;
18709
18710 procedure Read_WGL_NV_vertex_array_range;
18711 begin
18712   wglAllocateMemoryNV := dglGetProcAddress('wglAllocateMemoryNV');
18713   wglFreeMemoryNV := dglGetProcAddress('wglFreeMemoryNV');
18714 end;
18715
18716 procedure Read_WGL_NV_present_video;
18717 begin
18718   wglEnumerateVideoDevicesNV := dglGetProcAddress('wglEnumerateVideoDevicesNV');
18719   wglBindVideoDeviceNV := dglGetProcAddress('wglBindVideoDeviceNV');
18720   wglQueryCurrentContextNV := dglGetProcAddress('wglQueryCurrentContextNV');
18721 end;
18722
18723 procedure Read_WGL_NV_video_output;
18724 begin
18725   wglGetVideoDeviceNV := dglGetProcAddress('wglGetVideoDeviceNV');
18726   wglReleaseVideoDeviceNV := dglGetProcAddress('wglReleaseVideoDeviceNV');
18727   wglBindVideoImageNV := dglGetProcAddress('wglBindVideoImageNV');
18728   wglReleaseVideoImageNV := dglGetProcAddress('wglReleaseVideoImageNV');
18729   wglSendPbufferToVideoNV := dglGetProcAddress('wglSendPbufferToVideoNV');
18730   wglGetVideoInfoNV := dglGetProcAddress('wglGetVideoInfoNV');
18731 end;
18732
18733 procedure Read_WGL_NV_swap_group;
18734 begin
18735   wglJoinSwapGroupNV := dglGetProcAddress('wglJoinSwapGroupNV');
18736   wglBindSwapBarrierNV := dglGetProcAddress('wglBindSwapBarrierNV');
18737   wglQuerySwapGroupNV := dglGetProcAddress('wglQuerySwapGroupNV');
18738   wglQueryMaxSwapGroupsNV := dglGetProcAddress('wglQueryMaxSwapGroupsNV');
18739   wglQueryFrameCountNV := dglGetProcAddress('wglQueryFrameCountNV');
18740   wglResetFrameCountNV := dglGetProcAddress('wglResetFrameCountNV');
18741 end;
18742
18743 procedure Read_WGL_NV_gpu_affinity;
18744 begin
18745   wglEnumGpusNV := dglGetProcAddress('wglEnumGpusNV');
18746   wglEnumGpuDevicesNV := dglGetProcAddress('wglEnumGpuDevicesNV');
18747   wglCreateAffinityDCNV := dglGetProcAddress('wglCreateAffinityDCNV');
18748   wglEnumGpusFromAffinityDCNV := dglGetProcAddress('wglEnumGpusFromAffinityDCNV');
18749   wglDeleteDCNV := dglGetProcAddress('wglDeleteDCNV');
18750 end;
18751
18752 procedure Read_WGL_NV_video_capture;
18753 begin
18754   wglBindVideoCaptureDeviceNV := dglGetProcAddress('wglBindVideoCaptureDeviceNV');
18755   wglEnumerateVideoCaptureDevicesNV := dglGetProcAddress('wglEnumerateVideoCaptureDevicesNV');
18756   wglLockVideoCaptureDeviceNV := dglGetProcAddress('wglLockVideoCaptureDeviceNV');
18757   wglQueryVideoCaptureDeviceNV := dglGetProcAddress('wglQueryVideoCaptureDeviceNV');
18758   wglReleaseVideoCaptureDeviceNV := dglGetProcAddress('wglReleaseVideoCaptureDeviceNV');
18759 end;
18760
18761 procedure Read_WGL_NV_copy_image;
18762 begin
18763   wglCopyImageSubDataNV := dglGetProcAddress('wglCopyImageSubDataNV');
18764 end;
18765
18766 procedure Read_WGL_NV_DX_interop;
18767 begin
18768   wglDXSetResourceShareHandleNV := dglGetProcAddress('wglDXSetResourceShareHandleNV');
18769   wglDXOpenDeviceNV := dglGetProcAddress('wglDXOpenDeviceNV');
18770   wglDXCloseDeviceNV := dglGetProcAddress('wglDXCloseDeviceNV');
18771   wglDXRegisterObjectNV := dglGetProcAddress('wglDXRegisterObjectNV');
18772   wglDXUnregisterObjectNV := dglGetProcAddress('wglDXUnregisterObjectNV');
18773   wglDXObjectAccessNV := dglGetProcAddress('wglDXObjectAccessNV');
18774   wglDXLockObjectsNV := dglGetProcAddress('wglDXLockObjectsNV');
18775   wglDXUnlockObjectsNV := dglGetProcAddress('wglDXUnlockObjectsNV');
18776 end;
18777
18778
18779 procedure Read_WGL_OML_sync_control;
18780 begin
18781   wglGetSyncValuesOML := dglGetProcAddress('wglGetSyncValuesOML');
18782   wglGetMscRateOML := dglGetProcAddress('wglGetMscRateOML');
18783   wglSwapBuffersMscOML := dglGetProcAddress('wglSwapBuffersMscOML');
18784   wglSwapLayerBuffersMscOML := dglGetProcAddress('wglSwapLayerBuffersMscOML');
18785   wglWaitForMscOML := dglGetProcAddress('wglWaitForMscOML');
18786   wglWaitForSbcOML := dglGetProcAddress('wglWaitForSbcOML');
18787 end;
18788
18789 procedure Read_WGL_3DL_stereo_control;
18790 begin
18791   wglSetStereoEmitterState3DL := dglGetProcAddress('wglSetStereoEmitterState3DL');
18792 end;
18793
18794 procedure Read_WIN_draw_range_elements;
18795 begin
18796   glDrawRangeElementsWIN := dglGetProcAddress('glDrawRangeElementsWIN');
18797 end;
18798
18799 procedure Read_WIN_swap_hint;
18800 begin
18801   glAddSwapHintRectWIN := dglGetProcAddress('glAddSwapHintRectWIN');
18802 end;
18803 {$ENDIF}
18804
18805
18806 procedure ReadExtensions;
18807 begin
18808   ReadOpenGLCore;
18809   
18810   Read_GL_3DFX_tbuffer;
18811   Read_GL_APPLE_element_array;
18812   Read_GL_APPLE_fence;
18813   Read_GL_APPLE_vertex_array_object;
18814   Read_GL_APPLE_vertex_array_range;
18815   Read_GL_APPLE_texture_range;
18816   Read_GL_APPLE_vertex_program_evaluators;
18817   Read_GL_APPLE_object_purgeable;
18818   Read_GL_ARB_matrix_palette;
18819   Read_GL_ARB_multitexture;
18820   Read_GL_ARB_point_parameters;
18821   Read_GL_ARB_texture_compression;
18822   Read_GL_ARB_transpose_matrix;
18823   Read_GL_ARB_vertex_blend;
18824   Read_GL_ARB_vertex_buffer_object;
18825   Read_GL_ARB_vertex_program;
18826   Read_GL_ARB_window_pos;
18827   Read_GL_ARB_color_buffer_float;
18828   Read_GL_ARB_Shader_Objects;
18829   Read_GL_ARB_occlusion_query;
18830   Read_GL_ARB_draw_instanced;
18831   Read_GL_ARB_framebuffer_object;
18832   Read_GL_ARB_geometry_shader4;
18833   Read_GL_ARB_instanced_arrays;
18834   Read_GL_ARB_map_buffer_range;
18835   Read_GL_ARB_texture_buffer_object;
18836   Read_GL_ARB_vertex_array_object;
18837   Read_GL_ARB_uniform_buffer_object;
18838   Read_GL_ARB_copy_buffer;
18839   Read_GL_ARB_draw_elements_base_vertex;
18840   Read_GL_ARB_provoking_vertex;
18841   Read_GL_ARB_sync;
18842   Read_GL_ARB_texture_multisample;
18843   Read_GL_ARB_draw_buffers_blend;
18844   Read_GL_ARB_sample_shading;
18845   Read_GL_ARB_shading_language_include;
18846   Read_GL_ARB_blend_func_extended;
18847   Read_GL_ARB_sampler_objects;
18848   Read_GL_ARB_timer_query;
18849   Read_GL_ARB_vertex_type_2_10_10_10_rev;
18850   Read_GL_ARB_draw_indirect;
18851   Read_GL_ARB_gpu_shader_fp64;
18852   Read_GL_ARB_shader_subroutine;
18853   Read_GL_ARB_tessellation_shader;
18854   Read_GL_ARB_transform_feedback2;
18855   Read_GL_ARB_transform_feedback3;
18856   Read_GL_ARB_ES2_compatibility;
18857   Read_GL_ARB_get_program_binary;
18858   Read_GL_ARB_separate_shader_objects;
18859   Read_GL_ARB_vertex_attrib_64bit;
18860   Read_GL_ARB_viewport_array;
18861   Read_GL_ARB_cl_event;
18862   Read_GL_ARB_debug_output;
18863   Read_GL_ARB_robustness;
18864   //
18865   Read_GL_ATI_draw_buffers;
18866   Read_GL_ATI_element_array;
18867   Read_GL_ATI_envmap_bumpmap;
18868   Read_GL_ATI_fragment_shader;
18869   Read_GL_ATI_map_object_buffer;
18870   Read_GL_ATI_pn_triangles;
18871   Read_GL_ATI_separate_stencil;
18872   Read_GL_ATI_vertex_array_object;
18873   Read_GL_ATI_vertex_attrib_array_object;
18874   Read_GL_ATI_vertex_streams;
18875   Read_GL_AMD_performance_monitor;
18876   Read_GL_AMD_vertex_shader_tesselator;
18877   Read_GL_AMD_draw_buffers_blend;
18878   Read_GL_AMD_name_gen_delete;
18879   Read_GL_AMD_debug_output;
18880   Read_GL_AMD_stencil_operation_extended;
18881   Read_GL_EXT_blend_color;
18882   Read_GL_EXT_blend_func_separate;
18883   Read_GL_EXT_blend_minmax;
18884   Read_GL_EXT_color_subtable;
18885   Read_GL_EXT_compiled_vertex_array;
18886   Read_GL_EXT_convolution;
18887   Read_GL_EXT_coordinate_frame;
18888   Read_GL_EXT_copy_texture;
18889   Read_GL_EXT_cull_vertex;
18890   Read_GL_EXT_draw_range_elements;
18891   Read_GL_EXT_fog_coord;
18892   Read_GL_EXT_framebuffer_object;
18893   Read_GL_EXT_histogram;
18894   Read_GL_EXT_index_func;
18895   Read_GL_EXT_index_material;
18896   Read_GL_EXT_multi_draw_arrays;
18897   Read_GL_EXT_multisample;
18898   Read_GL_EXT_paletted_texture;
18899   Read_GL_EXT_pixel_transform;
18900   Read_GL_EXT_point_parameters;
18901   Read_GL_EXT_polygon_offset;
18902   Read_GL_EXT_secondary_color;
18903   Read_GL_EXT_stencil_two_side;
18904   Read_GL_EXT_subtexture;
18905   Read_GL_EXT_texture3D;
18906   Read_GL_EXT_texture_object;
18907   Read_GL_EXT_texture_perturb_normal;
18908   Read_GL_EXT_vertex_array;
18909   Read_GL_EXT_vertex_shader;
18910   Read_GL_EXT_vertex_weighting;
18911   Read_GL_EXT_depth_bounds_test;
18912   Read_GL_EXT_blend_equation_separate;
18913   Read_GL_EXT_stencil_clear_tag;
18914   Read_GL_EXT_framebuffer_blit;
18915   Read_GL_EXT_framebuffer_multisample;
18916   Read_GL_EXT_timer_query;
18917   Read_GL_EXT_gpu_program_parameters;
18918   Read_GL_EXT_bindable_uniform;
18919   Read_GL_EXT_draw_buffers2;
18920   Read_GL_EXT_draw_instanced;
18921   Read_GL_EXT_geometry_shader4;
18922   Read_GL_EXT_gpu_shader4;
18923   Read_GL_EXT_texture_array;
18924   Read_GL_EXT_texture_buffer_object;
18925   Read_GL_EXT_texture_integer;
18926   Read_GL_EXT_transform_feedback;
18927   Read_GL_EXT_direct_state_access;
18928   Read_GL_EXT_separate_shader_objects;
18929   Read_GL_EXT_shader_image_load_store;
18930   Read_GL_EXT_vertex_attrib_64bit;
18931   Read_GL_HP_image_transform;
18932   Read_GL_IBM_multimode_draw_arrays;
18933   Read_GL_IBM_vertex_array_lists;
18934   Read_GL_INGR_blend_func_separate;
18935   Read_GL_INTEL_parallel_arrays;
18936   Read_GL_MESA_resize_buffers;
18937   Read_GL_MESA_window_pos;
18938   Read_GL_NV_evaluators;
18939   Read_GL_NV_fence;
18940   Read_GL_NV_fragment_program;
18941   Read_GL_NV_half_float;
18942   Read_GL_NV_occlusion_query;
18943   Read_GL_NV_pixel_data_range;
18944   Read_GL_NV_point_sprite;
18945   Read_GL_NV_primitive_restart;
18946   Read_GL_NV_register_combiners;
18947   Read_GL_NV_register_combiners2;
18948   Read_GL_NV_vertex_array_range;
18949   Read_GL_NV_vertex_program;
18950   Read_GL_NV_depth_buffer_float;
18951   Read_GL_NV_framebuffer_multisample_coverage;
18952   Read_GL_NV_geometry_program4;
18953   Read_GL_NV_gpu_program4;
18954   Read_GL_NV_parameter_buffer_object;
18955   Read_GL_NV_transform_feedback;
18956   Read_GL_NV_conditional_render;
18957   Read_GL_NV_present_video;
18958   Read_GL_NV_explicit_multisample;
18959   Read_GL_NV_transform_feedback2;
18960   Read_GL_NV_video_capture;
18961   Read_GL_NV_copy_image;
18962   Read_GL_NV_shader_buffer_load;
18963   Read_GL_NV_vertex_buffer_unified_memory;
18964   Read_GL_NV_gpu_program5;
18965   Read_GL_NV_gpu_shader5;
18966   Read_GL_NV_vertex_attrib_integer_64bit;
18967   Read_GL_NV_vdpau_interop;
18968   Read_GL_NV_texture_barrier;
18969   Read_GL_NV_path_rendering;
18970   Read_GL_NV_bindless_texture;
18971   Read_GL_PGI_misc_hints;
18972   Read_GL_SGIS_detail_texture;
18973   Read_GL_SGIS_fog_function;
18974   Read_GL_SGIS_multisample;
18975   Read_GL_SGIS_pixel_texture;
18976   Read_GL_SGIS_point_parameters;
18977   Read_GL_SGIS_sharpen_texture;
18978   Read_GL_SGIS_texture4D;
18979   Read_GL_SGIS_texture_color_mask;
18980   Read_GL_SGIS_texture_filter4;
18981   Read_GL_SGIX_async;
18982   Read_GL_SGIX_flush_raster;
18983   Read_GL_SGIX_fragment_lighting;
18984   Read_GL_SGIX_framezoom;
18985   Read_GL_SGIX_igloo_interface;
18986   Read_GL_SGIX_instruments;
18987   Read_GL_SGIX_list_priority;
18988   Read_GL_SGIX_pixel_texture;
18989   Read_GL_SGIX_polynomial_ffd;
18990   Read_GL_SGIX_reference_plane;
18991   Read_GL_SGIX_sprite;
18992   Read_GL_SGIX_tag_sample_buffer;
18993   Read_GL_SGI_color_table;
18994   Read_GL_SUNX_constant_data;
18995   Read_GL_SUN_global_alpha;
18996   Read_GL_SUN_mesh_array;
18997   Read_GL_SUN_triangle_list;
18998   Read_GL_SUN_vertex;
18999
19000 {$IFDEF DGL_WIN}
19001   Read_WGL_ARB_buffer_region;
19002   Read_WGL_ARB_extensions_string;
19003   Read_WGL_ARB_make_current_read;
19004   Read_WGL_ARB_pbuffer;
19005   Read_WGL_ARB_pixel_format;
19006   Read_WGL_ARB_pixel_format_float;
19007   Read_WGL_ARB_render_texture;
19008   Read_WGL_ARB_create_context;
19009   Read_WGL_AMD_gpu_association;
19010   Read_WGL_EXT_display_color_table;
19011   Read_WGL_EXT_extensions_string;
19012   Read_WGL_EXT_make_current_read;
19013   Read_WGL_EXT_pbuffer;
19014   Read_WGL_EXT_pixel_format;
19015   Read_WGL_EXT_swap_control;
19016   Read_WGL_I3D_digital_video_control;
19017   Read_WGL_I3D_gamma;
19018   Read_WGL_I3D_genlock;
19019   Read_WGL_I3D_image_buffer;
19020   Read_WGL_I3D_swap_frame_lock;
19021   Read_WGL_I3D_swap_frame_usage;
19022   Read_WGL_NV_vertex_array_range;
19023   Read_WGL_NV_present_video;
19024   Read_WGL_NV_video_output;
19025   Read_WGL_NV_swap_group;
19026   Read_WGL_NV_gpu_affinity;
19027   Read_WGL_NV_video_capture;
19028   Read_WGL_NV_copy_image;
19029   Read_WGL_NV_DX_interop;
19030   Read_WGL_OML_sync_control;
19031   Read_WGL_3DL_stereo_control;
19032
19033   Read_WIN_draw_range_elements;
19034   Read_WIN_swap_hint;
19035 {$ENDIF}
19036
19037   ExtensionsRead := True;
19038 end;
19039
19040 // =============================================================================
19041 //  ReadCoreVersion
19042 // =============================================================================
19043
19044 procedure ReadCoreVersion;
19045 var
19046   AnsiBuffer: AnsiString;
19047   Buffer: String;
19048   MajorVersion, MinorVersion: Integer;
19049
19050   procedure TrimAndSplitVersionString(Buffer: String; var Max, Min: Integer);
19051     // Peels out the X.Y form from the given Buffer which must contain a version string like "text Minor.Major.Build text"
19052     // at least however "Major.Minor".
19053   var
19054     Separator: Integer;
19055   begin
19056     try
19057       // There must be at least one dot to separate major and minor version number.
19058       Separator := Pos('.', Buffer);
19059       // At least one number must be before and one after the dot.
19060       if (Separator > 1) and (Separator < Length(Buffer)) and (AnsiChar(Buffer[Separator - 1]) in ['0'..'9']) and
19061       (AnsiChar(Buffer[Separator + 1]) in ['0'..'9']) then
19062       begin
19063         // OK, it's a valid version string. Now remove unnecessary parts.
19064         Dec(Separator);
19065         // Find last non-numeric character before version number.
19066         while (Separator > 0) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19067           Dec(Separator);
19068         // Delete leading characters which do not belong to the version string.
19069         Delete(Buffer, 1, Separator);
19070         Separator := Pos('.', Buffer) + 1;
19071         // Find first non-numeric character after version number
19072         while (Separator <= Length(Buffer)) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19073           Inc(Separator);
19074         // delete trailing characters not belonging to the version string
19075         Delete(Buffer, Separator, 255);
19076         // Now translate the numbers.
19077         Separator := Pos('.', Buffer); // This is necessary because the buffer length might have changed.
19078         Max := StrToInt(Copy(Buffer, 1, Separator - 1));
19079         Min := StrToInt(Copy(Buffer, Separator + 1, 1));
19080       end
19081       else
19082         Abort;
19083     except
19084       Min := 0;
19085       Max := 0;
19086     end;
19087   end;
19088
19089
19090 begin
19091   // determine version of implementation
19092   // GL
19093   if not Assigned(@glGetString) then
19094     glGetString := dglGetProcAddress('glGetString');
19095
19096   AnsiBuffer := glGetString(GL_VERSION);
19097   Buffer := String(AnsiBuffer);
19098
19099   TrimAndSplitVersionString(Buffer, MajorVersion, MinorVersion);
19100
19101   GL_VERSION_1_0 := True;
19102   GL_VERSION_1_1 := False;
19103   GL_VERSION_1_2 := False;
19104   GL_VERSION_1_3 := False;
19105   GL_VERSION_1_4 := False;
19106   GL_VERSION_1_5 := False;
19107   GL_VERSION_2_0 := False;
19108   GL_VERSION_2_1 := False;
19109   GL_VERSION_3_0 := False;
19110   GL_VERSION_3_1 := False;
19111   GL_VERSION_3_2 := False;
19112   GL_VERSION_3_3 := False;
19113   GL_VERSION_4_0 := False;
19114   GL_VERSION_4_1 := False;
19115   GL_VERSION_4_2 := False;
19116   GL_VERSION_4_3 := False;
19117   GL_VERSION_4_4 := False;
19118
19119   if MajorVersion = 1 then
19120   begin
19121     if MinorVersion >= 1 then
19122       GL_VERSION_1_1 := True;
19123     if MinorVersion >= 2 then
19124       GL_VERSION_1_2 := True;
19125     if MinorVersion >= 3 then
19126       GL_VERSION_1_3 := True;
19127     if MinorVersion >= 4 then
19128       GL_VERSION_1_4 := True;
19129     if MinorVersion >= 5 then
19130       GL_VERSION_1_5 := True;
19131   end;
19132
19133   if MajorVersion >= 2 then
19134   begin
19135     GL_VERSION_1_1 := True;
19136     GL_VERSION_1_2 := True;
19137     GL_VERSION_1_3 := True;
19138     GL_VERSION_1_4 := True;
19139     GL_VERSION_1_5 := True;
19140     GL_VERSION_2_0 := True;
19141
19142     if MinorVersion >= 1 then
19143       GL_VERSION_2_1 := True;
19144   end;
19145
19146   if MajorVersion >= 3 then
19147   begin
19148     GL_VERSION_2_1 := True;
19149     GL_VERSION_3_0 := True;
19150     
19151     if MinorVersion >= 1 then
19152       GL_VERSION_3_1 := True;
19153     if MinorVersion >= 2 then
19154       GL_VERSION_3_2 := True;
19155     if MinorVersion >= 3 then
19156       GL_VERSION_3_3 := True;
19157   end;
19158
19159   if MajorVersion >= 4 then
19160   begin
19161     GL_VERSION_3_1 := True;
19162     GL_VERSION_3_2 := True;
19163     GL_VERSION_3_3 := True;
19164     GL_VERSION_4_0 := True;
19165
19166     if MinorVersion >= 1 then
19167       GL_VERSION_4_1 := True;
19168     if MinorVersion >= 2 then
19169       GL_VERSION_4_2 := True;
19170     if MinorVersion >= 3 then
19171       GL_VERSION_4_3 := True;
19172     if MinorVersion >= 4 then
19173       GL_VERSION_4_4 := True;
19174   end;
19175
19176   // GLU
19177   GLU_VERSION_1_1 := False;
19178   GLU_VERSION_1_2 := False;
19179   GLU_VERSION_1_3 := False;
19180
19181   if Assigned(gluGetString) then begin
19182     AnsiBuffer := gluGetString(GLU_VERSION);
19183     Buffer := String(AnsiBuffer);
19184
19185     TrimAndSplitVersionString(Buffer, Majorversion, MinorVersion);
19186
19187     GLU_VERSION_1_1 := True;
19188
19189     if MinorVersion >= 2 then
19190       GLU_VERSION_1_2 := True;
19191
19192     if MinorVersion >= 3 then
19193       GLU_VERSION_1_3 := True;
19194   end;
19195 end;
19196
19197
19198 // =============================================================================
19199 //  ReadImplementationProperties
19200 // =============================================================================
19201
19202 procedure ReadImplementationProperties;
19203 var
19204   Buffer: Ansistring;
19205 begin
19206   ReadCoreVersion;
19207
19208   // Check all extensions
19209   Buffer := Int_GetExtensionString;
19210
19211   // === 3DFX ====================================================================
19212   GL_3DFX_multisample := Int_CheckExtension(Buffer, 'GL_3DFX_multisample');
19213   GL_3DFX_tbuffer := Int_CheckExtension(Buffer, 'GL_3DFX_tbuffer');
19214   GL_3DFX_texture_compression_FXT1 := Int_CheckExtension(Buffer, 'GL_3DFX_texture_compression_FXT1');
19215
19216   // === APPLE ===================================================================
19217   GL_APPLE_client_storage := Int_CheckExtension(Buffer, 'GL_APPLE_client_storage');
19218   GL_APPLE_element_array := Int_CheckExtension(Buffer, 'GL_APPLE_element_array');
19219   GL_APPLE_fence := Int_CheckExtension(Buffer, 'GL_APPLE_fence');
19220   GL_APPLE_specular_vector := Int_CheckExtension(Buffer, 'GL_APPLE_specular_vector');
19221   GL_APPLE_transform_hint := Int_CheckExtension(Buffer, 'GL_APPLE_transform_hint');
19222   GL_APPLE_vertex_array_object := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_object');
19223   GL_APPLE_vertex_array_range := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_range');
19224   GL_APPLE_ycbcr_422 := Int_CheckExtension(Buffer, 'GL_APPLE_ycbcr_422');
19225   GL_APPLE_texture_range := Int_CheckExtension(Buffer, 'GL_APPLE_texture_range');
19226   GL_APPLE_float_pixels := Int_CheckExtension(Buffer, 'GL_APPLE_float_pixels');
19227   GL_APPLE_vertex_program_evaluators := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_program_evaluators');
19228   GL_APPLE_aux_depth_stencil := Int_CheckExtension(Buffer, 'GL_APPLE_aux_depth_stencil');
19229   GL_APPLE_object_purgeable := Int_CheckExtension(Buffer, 'GL_APPLE_object_purgeable');
19230   GL_APPLE_row_bytes := Int_CheckExtension(Buffer, 'GL_APPLE_row_bytes');
19231   GL_APPLE_rgb_422 := Int_CheckExtension(Buffer, 'GL_APPLE_rgb_422');
19232
19233   // === ARB =====================================================================
19234   GL_ARB_depth_texture := Int_CheckExtension(Buffer, 'GL_ARB_depth_texture');
19235   GL_ARB_fragment_program := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program');
19236   GL_ARB_imaging := Int_CheckExtension(Buffer, 'GL_ARB_imaging');
19237   GL_ARB_matrix_palette := Int_CheckExtension(Buffer, 'GL_ARB_matrix_palette');
19238   GL_ARB_multisample := Int_CheckExtension(Buffer, 'GL_ARB_multisample');
19239   GL_ARB_multitexture := Int_CheckExtension(Buffer, 'GL_ARB_multitexture');
19240   GL_ARB_point_parameters := Int_CheckExtension(Buffer, 'GL_ARB_point_parameters');
19241   GL_ARB_shadow := Int_CheckExtension(Buffer, 'GL_ARB_shadow');
19242   GL_ARB_shadow_ambient := Int_CheckExtension(Buffer, 'GL_ARB_shadow_ambient');
19243   GL_ARB_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_ARB_texture_border_clamp');
19244   GL_ARB_texture_compression := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression');
19245   GL_ARB_texture_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map');
19246   GL_ARB_texture_env_add := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_add');
19247   GL_ARB_texture_env_combine := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_combine');
19248   GL_ARB_texture_env_crossbar := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_crossbar');
19249   GL_ARB_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_dot3');
19250   GL_ARB_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_ARB_texture_mirrored_repeat');
19251   GL_ARB_transpose_matrix := Int_CheckExtension(Buffer, 'GL_ARB_transpose_matrix');
19252   GL_ARB_vertex_blend := Int_CheckExtension(Buffer, 'GL_ARB_vertex_blend');
19253   GL_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_buffer_object');
19254   GL_ARB_vertex_program := Int_CheckExtension(Buffer, 'GL_ARB_vertex_program');
19255   GL_ARB_window_pos := Int_CheckExtension(Buffer, 'GL_ARB_window_pos');
19256   GL_ARB_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_shader_objects');
19257   GL_ARB_vertex_shader := Int_CheckExtension(Buffer, 'GL_ARB_vertex_shader');
19258   GL_ARB_fragment_shader := Int_CheckExtension(Buffer, 'GL_ARB_fragment_shader');
19259   GL_ARB_occlusion_query := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query');
19260   GL_ARB_shading_language_100 := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_100');
19261   GL_ARB_point_sprite := Int_CheckExtension(Buffer, 'GL_ARB_point_sprite');
19262   GL_ARB_texture_non_power_of_two := Int_CheckExtension(Buffer, 'GL_ARB_texture_non_power_of_two');
19263   GL_ARB_fragment_program_shadow := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program_shadow');
19264   GL_ARB_draw_buffers := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers');
19265   GL_ARB_texture_rectangle := Int_CheckExtension(Buffer, 'GL_ARB_texture_rectangle');
19266   GL_ARB_color_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_color_buffer_float');
19267   GL_ARB_half_float_pixel := Int_CheckExtension(Buffer, 'GL_ARB_half_float_pixel');
19268   GL_ARB_texture_float := Int_CheckExtension(Buffer, 'GL_ARB_texture_float');
19269   GL_ARB_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_pixel_buffer_object');
19270   GL_ARB_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_depth_buffer_float');
19271   GL_ARB_draw_instanced := Int_CheckExtension(Buffer, 'GL_ARB_draw_instanced');
19272   GL_ARB_framebuffer_object := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_object');
19273   GL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_sRGB');
19274   GL_ARB_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_ARB_geometry_shader4');
19275   GL_ARB_half_float_vertex := Int_CheckExtension(Buffer, 'GL_ARB_half_float_vertex');
19276   GL_ARB_instanced_arrays := Int_CheckExtension(Buffer, 'GL_ARB_instanced_arrays');
19277   GL_ARB_map_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_range');
19278   GL_ARB_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object');
19279   GL_ARB_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_rgtc');
19280   GL_ARB_texture_rg := Int_CheckExtension(Buffer, 'GL_ARB_texture_rg');
19281   GL_ARB_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_object');
19282   GL_ARB_uniform_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_uniform_buffer_object');
19283   GL_ARB_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_compatibility');
19284   GL_ARB_copy_buffer := Int_CheckExtension(Buffer, 'GL_ARB_copy_buffer');
19285   GL_ARB_shader_texture_lod := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_lod');
19286   GL_ARB_depth_clamp := Int_CheckExtension(Buffer, 'GL_ARB_depth_clamp');
19287   GL_ARB_draw_elements_base_vertex := Int_CheckExtension(Buffer, 'GL_ARB_draw_elements_base_vertex');
19288   GL_ARB_fragment_coord_conventions := Int_CheckExtension(Buffer, 'GL_ARB_fragment_coord_conventions');
19289   GL_ARB_provoking_vertex := Int_CheckExtension(Buffer, 'GL_ARB_provoking_vertex');
19290   GL_ARB_seamless_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_seamless_cube_map');
19291   GL_ARB_sync := Int_CheckExtension(Buffer, 'GL_ARB_sync');
19292   GL_ARB_texture_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_multisample');
19293   GL_ARB_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_bgra');
19294   GL_ARB_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers_blend');
19295   GL_ARB_sample_shading := Int_CheckExtension(Buffer, 'GL_ARB_sample_shading');
19296   GL_ARB_texture_cube_map_array := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map_array');
19297   GL_ARB_texture_gather := Int_CheckExtension(Buffer, 'GL_ARB_texture_gather');
19298   GL_ARB_texture_query_lod := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_lod');
19299   GL_ARB_shading_language_include := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_include');
19300   GL_ARB_texture_compression_bptc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_bptc');
19301   GL_ARB_blend_func_extended := Int_CheckExtension(Buffer, 'GL_ARB_blend_func_extended');
19302   GL_ARB_explicit_attrib_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_attrib_location');
19303   GL_ARB_occlusion_query2 := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query2');
19304   GL_ARB_sampler_objects := Int_CheckExtension(Buffer, 'GL_ARB_sampler_objects');
19305   GL_ARB_shader_bit_encoding := Int_CheckExtension(Buffer, 'GL_ARB_shader_bit_encoding');
19306   GL_ARB_texture_rgb10_a2ui := Int_CheckExtension(Buffer, 'GL_ARB_texture_rgb10_a2ui');
19307   GL_ARB_texture_swizzle := Int_CheckExtension(Buffer, 'GL_ARB_texture_swizzle');
19308   GL_ARB_timer_query := Int_CheckExtension(Buffer, 'GL_ARB_timer_query');
19309   GL_ARB_vertex_type_2_10_10_10_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_2_10_10_10_rev');
19310   GL_ARB_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_draw_indirect');
19311   GL_ARB_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader5');
19312   GL_ARB_gpu_shader_fp64 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader_fp64');
19313   GL_ARB_shader_subroutine := Int_CheckExtension(Buffer, 'GL_ARB_shader_subroutine');
19314   GL_ARB_tessellation_shader := Int_CheckExtension(Buffer, 'GL_ARB_tessellation_shader');
19315   GL_ARB_texture_buffer_object_rgb32 := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object_rgb32');
19316   GL_ARB_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback2');
19317   GL_ARB_transform_feedback3 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback3');
19318   GL_ARB_ES2_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES2_compatibility');
19319   GL_ARB_get_program_binary := Int_CheckExtension(Buffer, 'GL_ARB_get_program_binary');
19320   GL_ARB_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_separate_shader_objects');
19321   GL_ARB_shader_precision := Int_CheckExtension(Buffer, 'GL_ARB_shader_precision');
19322   GL_ARB_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_64bit');
19323   GL_ARB_viewport_array := Int_CheckExtension(Buffer, 'GL_ARB_viewport_array');
19324
19325   // GL 4.2
19326     GL_ARB_base_instance := Int_CheckExtension(Buffer, 'GL_ARB_base_instance');
19327     GL_ARB_shading_language_420pack := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_420pack');
19328     GL_ARB_transform_feedback_instanced := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback_instanced');
19329     GL_ARB_compressed_texture_pixel_storage := Int_CheckExtension(Buffer, 'GL_ARB_compressed_texture_pixel_storage');
19330     GL_ARB_conservative_depth := Int_CheckExtension(Buffer, 'GL_ARB_conservative_depth');
19331     GL_ARB_internalformat_query := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query');
19332     GL_ARB_map_buffer_alignment := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_alignment');
19333     GL_ARB_shader_atomic_counters := Int_CheckExtension(Buffer, 'GL_ARB_shader_atomic_counters');
19334     GL_ARB_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_load_store');
19335     GL_ARB_shading_language_packing := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_packing');
19336     GL_ARB_texture_storage := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage');
19337   // END GL 4.2
19338
19339   // GL 4.3
19340     GL_ARB_arrays_of_arrays := Int_CheckExtension(Buffer, 'GL_ARB_arrays_of_arrays');
19341     GL_ARB_fragment_layer_viewport := Int_CheckExtension(Buffer, 'GL_ARB_fragment_layer_viewport');
19342     GL_ARB_shader_image_size := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_size');
19343     GL_ARB_ES3_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_compatibility');
19344     GL_ARB_clear_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_clear_buffer_object');
19345     GL_ARB_compute_shader := Int_CheckExtension(Buffer, 'GL_ARB_compute_shader');
19346     GL_ARB_copy_image := Int_CheckExtension(Buffer, 'GL_ARB_copy_image');
19347     GL_KHR_debug := Int_CheckExtension(Buffer, 'GL_KHR_debug');
19348     GL_ARB_explicit_uniform_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_uniform_location');
19349     GL_ARB_framebuffer_no_attachments := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_no_attachments');
19350     GL_ARB_internalformat_query2 := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query2');
19351     GL_ARB_invalidate_subdata := Int_CheckExtension(Buffer, 'GL_ARB_invalidate_subdata');
19352     GL_ARB_multi_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_multi_draw_indirect');
19353     GL_ARB_program_interface_query := Int_CheckExtension(Buffer, 'GL_ARB_program_interface_query');
19354     GL_ARB_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_ARB_robust_buffer_access_behavior');
19355     GL_ARB_shader_storage_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_shader_storage_buffer_object');
19356     GL_ARB_stencil_texturing := Int_CheckExtension(Buffer, 'GL_ARB_stencil_texturing');
19357     GL_ARB_texture_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_range');
19358     GL_ARB_texture_query_levels := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_levels');
19359     GL_ARB_texture_storage_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage_multisample');
19360     GL_ARB_texture_view := Int_CheckExtension(Buffer, 'GL_ARB_texture_view');
19361     GL_ARB_vertex_attrib_binding := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_binding');
19362     GL_ARB_cl_event := Int_CheckExtension(Buffer, 'GL_ARB_cl_event');
19363     GL_ARB_debug_output := Int_CheckExtension(Buffer, 'GL_ARB_debug_output');
19364     GL_ARB_robustness := Int_CheckExtension(Buffer, 'GL_ARB_robustness');
19365     GL_ARB_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_ARB_shader_stencil_export');
19366   // END GL 4.3
19367
19368   // GL 4.4
19369     GL_ARB_buffer_storage               := Int_CheckExtension(Buffer, 'GL_ARB_buffer_storage');
19370     GL_ARB_clear_texture                := Int_CheckExtension(Buffer, 'GL_ARB_clear_texture');
19371     GL_ARB_enhanced_layouts             := Int_CheckExtension(Buffer, 'GL_ARB_enhanced_layouts');
19372     GL_ARB_multi_bind                   := Int_CheckExtension(Buffer, 'GL_ARB_multi_bind');
19373     GL_ARB_query_buffer_object          := Int_CheckExtension(Buffer, 'GL_ARB_query_buffer_object');
19374     GL_ARB_texture_mirror_clamp_to_edge := Int_CheckExtension(Buffer, 'GL_ARB_texture_mirror_clamp_to_edge');
19375     GL_ARB_texture_stencil8             := Int_CheckExtension(Buffer, 'GL_ARB_texture_stencil8');
19376     GL_ARB_vertex_type_10f_11f_11f_rev  := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_10f_11f_11f_rev');
19377   // END GL 4.4
19378
19379   // === ATI/AMD ================================================================
19380   GL_ATI_draw_buffers := Int_CheckExtension(Buffer, 'GL_ATI_draw_buffers');
19381   GL_ATI_element_array := Int_CheckExtension(Buffer, 'GL_ATI_element_array');
19382   GL_ATI_envmap_bumpmap := Int_CheckExtension(Buffer, 'GL_ATI_envmap_bumpmap');
19383   GL_ATI_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_fragment_shader');
19384   GL_ATI_map_object_buffer := Int_CheckExtension(Buffer, 'GL_ATI_map_object_buffer');
19385   GL_ATI_pn_triangles := Int_CheckExtension(Buffer, 'GL_ATI_pn_triangles');
19386   GL_ATI_separate_stencil := Int_CheckExtension(Buffer, 'GL_ATI_separate_stencil');
19387   GL_ATI_text_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_text_fragment_shader');
19388   GL_ATI_texture_env_combine3 := Int_CheckExtension(Buffer, 'GL_ATI_texture_env_combine3');
19389   GL_ATI_texture_float := Int_CheckExtension(Buffer, 'GL_ATI_texture_float');
19390   GL_ATI_texture_mirror_once := Int_CheckExtension(Buffer, 'GL_ATI_texture_mirror_once');
19391   GL_ATI_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_array_object');
19392   GL_ATI_vertex_attrib_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_attrib_array_object');
19393   GL_ATI_vertex_streams := Int_CheckExtension(Buffer, 'GL_ATI_vertex_streams');
19394   GL_ATI_meminfo := Int_CheckExtension(Buffer, 'GL_ATI_meminfo');
19395   GL_AMD_performance_monitor := Int_CheckExtension(Buffer, 'GL_AMD_performance_monitor');
19396   GL_AMD_texture_texture4 := Int_CheckExtension(Buffer, 'GL_AMD_texture_texture4');
19397   GL_AMD_vertex_shader_tesselator := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_tesselator');
19398   GL_AMD_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_AMD_draw_buffers_blend');
19399   GL_AMD_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_AMD_shader_stencil_export');
19400   GL_AMD_seamless_cubemap_per_texture := Int_CheckExtension(Buffer, 'GL_AMD_seamless_cubemap_per_texture');
19401   GL_AMD_conservative_depth := Int_CheckExtension(Buffer, 'GL_AMD_conservative_depth');
19402   GL_AMD_name_gen_delete := Int_CheckExtension(Buffer, 'GL_AMD_name_gen_delete');
19403   GL_AMD_debug_output := Int_CheckExtension(Buffer, 'GL_AMD_debug_output');
19404   GL_AMD_transform_feedback3_lines_triangles := Int_CheckExtension(Buffer, 'GL_AMD_transform_feedback3_lines_triangles');
19405   GL_AMD_depth_clamp_separate := Int_CheckExtension(Buffer, 'GL_AMD_depth_clamp_separate');
19406   // 4.3
19407   GL_AMD_pinned_memory := Int_CheckExtension(Buffer, 'GL_AMD_pinned_memory');
19408   GL_AMD_stencil_operation_extended := Int_CheckExtension(Buffer, 'GL_AMD_stencil_operation_extended');
19409   GL_AMD_vertex_shader_viewport_index := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_viewport_index');
19410   GL_AMD_vertex_shader_layer := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_layer');
19411         GL_AMD_query_buffer_object := Int_CheckExtension(Buffer, 'GL_AMD_query_buffer_object');
19412
19413   // === EXT =====================================================================
19414   GL_EXT_422_pixels := Int_CheckExtension(Buffer, 'GL_EXT_422_pixels');
19415   GL_EXT_abgr := Int_CheckExtension(Buffer, 'GL_EXT_abgr');
19416   GL_EXT_bgra := Int_CheckExtension(Buffer, 'GL_EXT_bgra');
19417   GL_EXT_blend_color := Int_CheckExtension(Buffer, 'GL_EXT_blend_color');
19418   GL_EXT_blend_func_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_func_separate');
19419   GL_EXT_blend_logic_op := Int_CheckExtension(Buffer, 'GL_EXT_blend_logic_op');
19420   GL_EXT_blend_minmax := Int_CheckExtension(Buffer, 'GL_EXT_blend_minmax');
19421   GL_EXT_blend_subtract := Int_CheckExtension(Buffer, 'GL_EXT_blend_subtract');
19422   GL_EXT_clip_volume_hint := Int_CheckExtension(Buffer, 'GL_EXT_clip_volume_hint');
19423   GL_EXT_cmyka := Int_CheckExtension(Buffer, 'GL_EXT_cmyka');
19424   GL_EXT_color_matrix := Int_CheckExtension(Buffer, 'GL_EXT_color_matrix');
19425   GL_EXT_color_subtable := Int_CheckExtension(Buffer, 'GL_EXT_color_subtable');
19426   GL_EXT_compiled_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_compiled_vertex_array');
19427   GL_EXT_convolution := Int_CheckExtension(Buffer, 'GL_EXT_convolution');
19428   GL_EXT_coordinate_frame := Int_CheckExtension(Buffer, 'GL_EXT_coordinate_frame');
19429   GL_EXT_copy_texture := Int_CheckExtension(Buffer, 'GL_EXT_copy_texture');
19430   GL_EXT_cull_vertex := Int_CheckExtension(Buffer, 'GL_EXT_cull_vertex');
19431   GL_EXT_draw_range_elements := Int_CheckExtension(Buffer, 'GL_EXT_draw_range_elements');
19432   GL_EXT_fog_coord := Int_CheckExtension(Buffer, 'GL_EXT_fog_coord');
19433   GL_EXT_framebuffer_object := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_object');
19434   GL_EXT_histogram := Int_CheckExtension(Buffer, 'GL_EXT_histogram');
19435   GL_EXT_index_array_formats := Int_CheckExtension(Buffer, 'GL_EXT_index_array_formats');
19436   GL_EXT_index_func := Int_CheckExtension(Buffer, 'GL_EXT_index_func');
19437   GL_EXT_index_material := Int_CheckExtension(Buffer, 'GL_EXT_index_material');
19438   GL_EXT_index_texture := Int_CheckExtension(Buffer, 'GL_EXT_index_texture');
19439   GL_EXT_light_texture := Int_CheckExtension(Buffer, 'GL_EXT_light_texture');
19440   GL_EXT_misc_attribute := Int_CheckExtension(Buffer, 'GL_EXT_misc_attribute');
19441   GL_EXT_multi_draw_arrays := Int_CheckExtension(Buffer, 'GL_EXT_multi_draw_arrays');
19442   GL_EXT_multisample := Int_CheckExtension(Buffer, 'GL_EXT_multisample');
19443   GL_EXT_packed_pixels := Int_CheckExtension(Buffer, 'GL_EXT_packed_pixels');
19444   GL_EXT_paletted_texture := Int_CheckExtension(Buffer, 'GL_EXT_paletted_texture');
19445   GL_EXT_pixel_transform := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform');
19446   GL_EXT_pixel_transform_color_table := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform_color_table');
19447   GL_EXT_point_parameters := Int_CheckExtension(Buffer, 'GL_EXT_point_parameters');
19448   GL_EXT_polygon_offset := Int_CheckExtension(Buffer, 'GL_EXT_polygon_offset');
19449   GL_EXT_rescale_normal := Int_CheckExtension(Buffer, 'GL_EXT_rescale_normal');
19450   GL_EXT_secondary_color := Int_CheckExtension(Buffer, 'GL_EXT_secondary_color');
19451   GL_EXT_separate_specular_color := Int_CheckExtension(Buffer, 'GL_EXT_separate_specular_color');
19452   GL_EXT_shadow_funcs := Int_CheckExtension(Buffer, 'GL_EXT_shadow_funcs');
19453   GL_EXT_shared_texture_palette := Int_CheckExtension(Buffer, 'GL_EXT_shared_texture_palette');
19454   GL_EXT_stencil_two_side := Int_CheckExtension(Buffer, 'GL_EXT_stencil_two_side');
19455   GL_EXT_stencil_wrap := Int_CheckExtension(Buffer, 'GL_EXT_stencil_wrap');
19456   GL_EXT_subtexture := Int_CheckExtension(Buffer, 'GL_EXT_subtexture');
19457   GL_EXT_texture := Int_CheckExtension(Buffer, 'GL_EXT_texture');
19458   GL_EXT_texture3D := Int_CheckExtension(Buffer, 'GL_EXT_texture3D');
19459   GL_EXT_texture_compression_s3tc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_s3tc');
19460   GL_EXT_texture_cube_map := Int_CheckExtension(Buffer, 'GL_EXT_texture_cube_map');
19461   GL_EXT_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_edge_clamp');
19462   GL_EXT_texture_env_add := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_add');
19463   GL_EXT_texture_env_combine := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_combine');
19464   GL_EXT_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_dot3');
19465   GL_EXT_texture_filter_anisotropic := Int_CheckExtension(Buffer, 'GL_EXT_texture_filter_anisotropic');
19466   GL_EXT_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_EXT_texture_lod_bias');
19467   GL_EXT_texture_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_object');
19468   GL_EXT_texture_perturb_normal := Int_CheckExtension(Buffer, 'GL_EXT_texture_perturb_normal');
19469   GL_EXT_texture_rectangle := Int_CheckExtension(Buffer, 'GL_EXT_texture_rectangle');
19470   GL_EXT_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array');
19471   GL_EXT_vertex_shader := Int_CheckExtension(Buffer, 'GL_EXT_vertex_shader');
19472   GL_EXT_vertex_weighting := Int_CheckExtension(Buffer, 'GL_EXT_vertex_weighting');
19473   GL_EXT_depth_bounds_test := Int_CheckExtension(Buffer, 'GL_EXT_depth_bounds_test');
19474   GL_EXT_texture_mirror_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_mirror_clamp');
19475   GL_EXT_blend_equation_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_equation_separate');
19476   GL_EXT_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_pixel_buffer_object');
19477   GL_EXT_texture_compression_dxt1 := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_dxt1');
19478   GL_EXT_stencil_clear_tag := Int_CheckExtension(Buffer, 'GL_EXT_stencil_clear_tag');
19479   GL_EXT_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_EXT_packed_depth_stencil');
19480   GL_EXT_texture_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB');
19481   GL_EXT_framebuffer_blit := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_blit');
19482   GL_EXT_framebuffer_multisample := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_multisample');
19483   GL_EXT_timer_query := Int_CheckExtension(Buffer, 'GL_EXT_timer_query');
19484   GL_EXT_gpu_program_parameters := Int_CheckExtension(Buffer, 'GL_EXT_gpu_program_parameters');
19485   GL_EXT_bindable_uniform := Int_CheckExtension(Buffer, 'GL_EXT_bindable_uniform');
19486   GL_EXT_draw_buffers2 := Int_CheckExtension(Buffer, 'GL_EXT_draw_buffers2');
19487   GL_EXT_draw_instanced := Int_CheckExtension(Buffer, 'GL_EXT_draw_instanced');
19488   GL_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_sRGB');
19489   GL_EXT_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_geometry_shader4');
19490   GL_EXT_gpu_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_gpu_shader4');
19491   GL_EXT_packed_float := Int_CheckExtension(Buffer, 'GL_EXT_packed_float');
19492   GL_EXT_texture_array := Int_CheckExtension(Buffer, 'GL_EXT_texture_array');
19493   GL_EXT_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_buffer_object');
19494   GL_EXT_texture_compression_latc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_latc');
19495   GL_EXT_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_rgtc');
19496   GL_EXT_texture_integer := Int_CheckExtension(Buffer, 'GL_EXT_texture_integer');
19497   GL_EXT_texture_shared_exponent := Int_CheckExtension(Buffer, 'GL_EXT_texture_shared_exponent');
19498   GL_EXT_transform_feedback := Int_CheckExtension(Buffer, 'GL_EXT_transform_feedback');
19499   GL_EXT_direct_state_access := Int_CheckExtension(Buffer, 'GL_EXT_direct_state_access');
19500   GL_EXT_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array_bgra');
19501   GL_EXT_texture_swizzle := Int_CheckExtension(Buffer, 'GL_EXT_texture_swizzle');
19502   GL_EXT_provoking_vertex := Int_CheckExtension(Buffer, 'GL_EXT_provoking_vertex');
19503   GL_EXT_texture_snorm := Int_CheckExtension(Buffer, 'GL_EXT_texture_snorm');
19504   GL_EXT_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_EXT_separate_shader_objects');
19505   GL_EXT_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_EXT_shader_image_load_store');
19506   GL_EXT_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_EXT_vertex_attrib_64bit');
19507   GL_EXT_texture_sRGB_decode := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB_decode');
19508   
19509   // === HP ======================================================================
19510   GL_HP_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_HP_convolution_border_modes');
19511   GL_HP_image_transform := Int_CheckExtension(Buffer, 'GL_HP_image_transform');
19512   GL_HP_occlusion_test := Int_CheckExtension(Buffer, 'GL_HP_occlusion_test');
19513   GL_HP_texture_lighting := Int_CheckExtension(Buffer, 'GL_HP_texture_lighting');
19514
19515   // === IBM =====================================================================
19516   GL_IBM_cull_vertex := Int_CheckExtension(Buffer, 'GL_IBM_cull_vertex');
19517   GL_IBM_multimode_draw_arrays := Int_CheckExtension(Buffer, 'GL_IBM_multimode_draw_arrays');
19518   GL_IBM_rasterpos_clip := Int_CheckExtension(Buffer, 'GL_IBM_rasterpos_clip');
19519   GL_IBM_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_IBM_texture_mirrored_repeat');
19520   GL_IBM_vertex_array_lists := Int_CheckExtension(Buffer, 'GL_IBM_vertex_array_lists');
19521
19522   // === INGR ====================================================================
19523   GL_INGR_blend_func_separate := Int_CheckExtension(Buffer, 'GL_INGR_blend_func_separate');
19524   GL_INGR_color_clamp := Int_CheckExtension(Buffer, 'GL_INGR_color_clamp');
19525   GL_INGR_interlace_read := Int_CheckExtension(Buffer, 'GL_INGR_interlace_read');
19526   GL_INGR_palette_buffer := Int_CheckExtension(Buffer, 'GL_INGR_palette_buffer');
19527
19528   // === INTEL ===================================================================
19529   GL_INTEL_parallel_arrays := Int_CheckExtension(Buffer, 'GL_INTEL_parallel_arrays');
19530   GL_INTEL_texture_scissor := Int_CheckExtension(Buffer, 'GL_INTEL_texture_scissor');
19531
19532   // === MESA ====================================================================
19533   GL_MESA_resize_buffers := Int_CheckExtension(Buffer, 'GL_MESA_resize_buffers');
19534   GL_MESA_window_pos := Int_CheckExtension(Buffer, 'GL_MESA_window_pos');
19535
19536   // === NVIDIA ==================================================================
19537   GL_NV_blend_square := Int_CheckExtension(Buffer, 'GL_NV_blend_square');
19538   GL_NV_copy_depth_to_color := Int_CheckExtension(Buffer, 'GL_NV_copy_depth_to_color');
19539   GL_NV_depth_clamp := Int_CheckExtension(Buffer, 'GL_NV_depth_clamp');
19540   GL_NV_evaluators := Int_CheckExtension(Buffer, 'GL_NV_evaluators');
19541   GL_NV_fence := Int_CheckExtension(Buffer, 'GL_NV_fence');
19542   GL_NV_float_buffer := Int_CheckExtension(Buffer, 'GL_NV_float_buffer');
19543   GL_NV_fog_distance := Int_CheckExtension(Buffer, 'GL_NV_fog_distance');
19544   GL_NV_fragment_program := Int_CheckExtension(Buffer, 'GL_NV_fragment_program');
19545   GL_NV_half_float := Int_CheckExtension(Buffer, 'GL_NV_half_float');
19546   GL_NV_light_max_exponent := Int_CheckExtension(Buffer, 'GL_NV_light_max_exponent');
19547   GL_NV_multisample_filter_hint := Int_CheckExtension(Buffer, 'GL_NV_multisample_filter_hint');
19548   GL_NV_occlusion_query := Int_CheckExtension(Buffer, 'GL_NV_occlusion_query');
19549   GL_NV_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_NV_packed_depth_stencil');
19550   GL_NV_pixel_data_range := Int_CheckExtension(Buffer, 'GL_NV_pixel_data_range');
19551   GL_NV_point_sprite := Int_CheckExtension(Buffer, 'GL_NV_point_sprite');
19552   GL_NV_primitive_restart := Int_CheckExtension(Buffer, 'GL_NV_primitive_restart');
19553   GL_NV_register_combiners := Int_CheckExtension(Buffer, 'GL_NV_register_combiners');
19554   GL_NV_register_combiners2 := Int_CheckExtension(Buffer, 'GL_NV_register_combiners2');
19555   GL_NV_texgen_emboss := Int_CheckExtension(Buffer, 'GL_NV_texgen_emboss');
19556   GL_NV_texgen_reflection := Int_CheckExtension(Buffer, 'GL_NV_texgen_reflection');
19557   GL_NV_texture_compression_vtc := Int_CheckExtension(Buffer, 'GL_NV_texture_compression_vtc');
19558   GL_NV_texture_env_combine4 := Int_CheckExtension(Buffer, 'GL_NV_texture_env_combine4');
19559   GL_NV_texture_expand_normal := Int_CheckExtension(Buffer, 'GL_NV_texture_expand_normal');
19560   GL_NV_texture_rectangle := Int_CheckExtension(Buffer, 'GL_NV_texture_rectangle');
19561   GL_NV_texture_shader := Int_CheckExtension(Buffer, 'GL_NV_texture_shader');
19562   GL_NV_texture_shader2 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader2');
19563   GL_NV_texture_shader3 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader3');
19564   GL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range');
19565   GL_NV_vertex_array_range2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range2');
19566   GL_NV_vertex_program := Int_CheckExtension(Buffer, 'GL_NV_vertex_program');
19567   GL_NV_vertex_program1_1 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program1_1');
19568   GL_NV_vertex_program2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2');
19569   GL_NV_fragment_program_option := Int_CheckExtension(Buffer, 'GL_NV_fragment_program_option');
19570   GL_NV_fragment_program2 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program2');
19571   GL_NV_vertex_program2_option := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2_option');
19572   GL_NV_vertex_program3 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program3');
19573   GL_NV_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_NV_depth_buffer_float');
19574   GL_NV_fragment_program4 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program4');
19575   GL_NV_framebuffer_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_framebuffer_multisample_coverage');
19576   GL_NV_geometry_program4 := Int_CheckExtension(Buffer, 'GL_NV_geometry_program4');
19577   GL_NV_gpu_program4 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program4');
19578   GL_NV_parameter_buffer_object := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object');
19579   GL_NV_transform_feedback := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback');
19580   GL_NV_vertex_program4 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program4');
19581   GL_NV_conditional_render := Int_CheckExtension(Buffer, 'GL_NV_conditional_render');
19582   GL_NV_present_video := Int_CheckExtension(Buffer, 'GL_NV_present_video');
19583   GL_NV_explicit_multisample := Int_CheckExtension(Buffer, 'GL_NV_explicit_multisample');
19584   GL_NV_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback2');
19585   GL_NV_video_capture := Int_CheckExtension(Buffer, 'GL_NV_video_capture');
19586   GL_NV_copy_image := Int_CheckExtension(Buffer, 'GL_NV_copy_image');
19587   GL_NV_parameter_buffer_object2 := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object2');
19588   GL_NV_shader_buffer_load := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_load');
19589   GL_NV_vertex_buffer_unified_memory := Int_CheckExtension(Buffer, 'GL_NV_vertex_buffer_unified_memory');
19590   GL_NV_gpu_program5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program5');
19591   GL_NV_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_shader5');
19592   GL_NV_shader_buffer_store := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_store');
19593   GL_NV_tessellation_program5 := Int_CheckExtension(Buffer, 'GL_NV_tessellation_program5');
19594   GL_NV_vertex_attrib_integer_64bit := Int_CheckExtension(Buffer, 'GL_NV_vertex_attrib_integer_64bit');
19595   GL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_multisample_coverage');
19596   GL_NV_vdpau_interop := Int_CheckExtension(Buffer, 'GL_NV_vdpau_interop');
19597   GL_NV_texture_barrier := Int_CheckExtension(Buffer, 'GL_NV_texture_barrier');
19598   // 4.3
19599         GL_NV_path_rendering := Int_CheckExtension(Buffer, 'GL_NV_path_rendering');
19600   GL_NV_bindless_texture := Int_CheckExtension(Buffer, 'GL_NV_bindless_texture');
19601         GL_NV_shader_atomic_float := Int_CheckExtension(Buffer, 'GL_NV_shader_atomic_float');
19602
19603   // === OML =====================================================================
19604   GL_OML_interlace := Int_CheckExtension(Buffer, 'GL_OML_interlace');
19605   GL_OML_resample := Int_CheckExtension(Buffer, 'GL_OML_resample');
19606   GL_OML_subsample := Int_CheckExtension(Buffer, 'GL_OML_subsample');
19607
19608   // === PGI =====================================================================
19609   GL_PGI_misc_hints := Int_CheckExtension(Buffer, 'GL_PGI_misc_hints');
19610   GL_PGI_vertex_hints := Int_CheckExtension(Buffer, 'GL_PGI_vertex_hints');
19611
19612   // === REND ====================================================================
19613   GL_REND_screen_coordinates := Int_CheckExtension(Buffer, 'GL_REND_screen_coordinates');
19614
19615   // === S3 ======================================================================
19616   GL_S3_s3tc := Int_CheckExtension(Buffer, 'GL_S3_s3tc');
19617
19618   // === SGIS ====================================================================
19619   GL_SGIS_detail_texture := Int_CheckExtension(Buffer, 'GL_SGIS_detail_texture');
19620   GL_SGIS_fog_function := Int_CheckExtension(Buffer, 'GL_SGIS_fog_function');
19621   GL_SGIS_generate_mipmap := Int_CheckExtension(Buffer, 'GL_SGIS_generate_mipmap');
19622   GL_SGIS_multisample := Int_CheckExtension(Buffer, 'GL_SGIS_multisample');
19623   GL_SGIS_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIS_pixel_texture');
19624   GL_SGIS_point_line_texgen := Int_CheckExtension(Buffer, 'GL_SGIS_point_line_texgen');
19625   GL_SGIS_point_parameters := Int_CheckExtension(Buffer, 'GL_SGIS_point_parameters');
19626   GL_SGIS_sharpen_texture := Int_CheckExtension(Buffer, 'GL_SGIS_sharpen_texture');
19627   GL_SGIS_texture4D := Int_CheckExtension(Buffer, 'GL_SGIS_texture4D');
19628   GL_SGIS_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_border_clamp');
19629   GL_SGIS_texture_color_mask := Int_CheckExtension(Buffer, 'GL_SGIS_texture_color_mask');
19630   GL_SGIS_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_edge_clamp');
19631   GL_SGIS_texture_filter4 := Int_CheckExtension(Buffer, 'GL_SGIS_texture_filter4');
19632   GL_SGIS_texture_lod := Int_CheckExtension(Buffer, 'GL_SGIS_texture_lod');
19633   GL_SGIS_texture_select := Int_CheckExtension(Buffer, 'GL_SGIS_texture_select');
19634
19635   // === SGIX ====================================================================
19636   GL_FfdMaskSGIX := Int_CheckExtension(Buffer, 'GL_FfdMaskSGIX');
19637   GL_SGIX_async := Int_CheckExtension(Buffer, 'GL_SGIX_async');
19638   GL_SGIX_async_histogram := Int_CheckExtension(Buffer, 'GL_SGIX_async_histogram');
19639   GL_SGIX_async_pixel := Int_CheckExtension(Buffer, 'GL_SGIX_async_pixel');
19640   GL_SGIX_blend_alpha_minmax := Int_CheckExtension(Buffer, 'GL_SGIX_blend_alpha_minmax');
19641   GL_SGIX_calligraphic_fragment := Int_CheckExtension(Buffer, 'GL_SGIX_calligraphic_fragment');
19642   GL_SGIX_clipmap := Int_CheckExtension(Buffer, 'GL_SGIX_clipmap');
19643   GL_SGIX_convolution_accuracy := Int_CheckExtension(Buffer, 'GL_SGIX_convolution_accuracy');
19644   GL_SGIX_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGIX_depth_pass_instrument');
19645   GL_SGIX_depth_texture := Int_CheckExtension(Buffer, 'GL_SGIX_depth_texture');
19646   GL_SGIX_flush_raster := Int_CheckExtension(Buffer, 'GL_SGIX_flush_raster');
19647   GL_SGIX_fog_offset := Int_CheckExtension(Buffer, 'GL_SGIX_fog_offset');
19648   GL_SGIX_fog_scale := Int_CheckExtension(Buffer, 'GL_SGIX_fog_scale');
19649   GL_SGIX_fragment_lighting := Int_CheckExtension(Buffer, 'GL_SGIX_fragment_lighting');
19650   GL_SGIX_framezoom := Int_CheckExtension(Buffer, 'GL_SGIX_framezoom');
19651   GL_SGIX_igloo_interface := Int_CheckExtension(Buffer, 'GL_SGIX_igloo_interface');
19652   GL_SGIX_impact_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_impact_pixel_texture');
19653   GL_SGIX_instruments := Int_CheckExtension(Buffer, 'GL_SGIX_instruments');
19654   GL_SGIX_interlace := Int_CheckExtension(Buffer, 'GL_SGIX_interlace');
19655   GL_SGIX_ir_instrument1 := Int_CheckExtension(Buffer, 'GL_SGIX_ir_instrument1');
19656   GL_SGIX_list_priority := Int_CheckExtension(Buffer, 'GL_SGIX_list_priority');
19657   GL_SGIX_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_texture');
19658   GL_SGIX_pixel_tiles := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_tiles');
19659   GL_SGIX_polynomial_ffd := Int_CheckExtension(Buffer, 'GL_SGIX_polynomial_ffd');
19660   GL_SGIX_reference_plane := Int_CheckExtension(Buffer, 'GL_SGIX_reference_plane');
19661   GL_SGIX_resample := Int_CheckExtension(Buffer, 'GL_SGIX_resample');
19662   GL_SGIX_scalebias_hint := Int_CheckExtension(Buffer, 'GL_SGIX_scalebias_hint');
19663   GL_SGIX_shadow := Int_CheckExtension(Buffer, 'GL_SGIX_shadow');
19664   GL_SGIX_shadow_ambient := Int_CheckExtension(Buffer, 'GL_SGIX_shadow_ambient');
19665   GL_SGIX_sprite := Int_CheckExtension(Buffer, 'GL_SGIX_sprite');
19666   GL_SGIX_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_subsample');
19667   GL_SGIX_tag_sample_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_tag_sample_buffer');
19668   GL_SGIX_texture_add_env := Int_CheckExtension(Buffer, 'GL_SGIX_texture_add_env');
19669   GL_SGIX_texture_coordinate_clamp := Int_CheckExtension(Buffer, 'GL_SGIX_texture_coordinate_clamp');
19670   GL_SGIX_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_lod_bias');
19671   GL_SGIX_texture_multi_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_texture_multi_buffer');
19672   GL_SGIX_texture_scale_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_scale_bias');
19673   GL_SGIX_texture_select := Int_CheckExtension(Buffer, 'GL_SGIX_texture_select');
19674   GL_SGIX_vertex_preclip := Int_CheckExtension(Buffer, 'GL_SGIX_vertex_preclip');
19675   GL_SGIX_ycrcb := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb');
19676   GL_SGIX_ycrcb_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb_subsample');
19677   GL_SGIX_ycrcba := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcba');
19678
19679   // === SGI =====================================================================
19680   GL_SGI_color_matrix := Int_CheckExtension(Buffer, 'GL_SGI_color_matrix');
19681   GL_SGI_color_table := Int_CheckExtension(Buffer, 'GL_SGI_color_table');
19682   GL_SGI_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGI_depth_pass_instrument');
19683   GL_SGI_texture_color_table := Int_CheckExtension(Buffer, 'GL_SGI_texture_color_table');
19684
19685   // === SUN =====================================================================
19686   GL_SUNX_constant_data := Int_CheckExtension(Buffer, 'GL_SUNX_constant_data');
19687   GL_SUN_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_SUN_convolution_border_modes');
19688   GL_SUN_global_alpha := Int_CheckExtension(Buffer, 'GL_SUN_global_alpha');
19689   GL_SUN_mesh_array := Int_CheckExtension(Buffer, 'GL_SUN_mesh_array');
19690   GL_SUN_slice_accum := Int_CheckExtension(Buffer, 'GL_SUN_slice_accum');
19691   GL_SUN_triangle_list := Int_CheckExtension(Buffer, 'GL_SUN_triangle_list');
19692   GL_SUN_vertex := Int_CheckExtension(Buffer, 'GL_SUN_vertex');
19693
19694   // === WIN =====================================================================
19695   GL_WIN_phong_shading := Int_CheckExtension(Buffer, 'GL_WIN_phong_shading');
19696   GL_WIN_specular_fog := Int_CheckExtension(Buffer, 'GL_WIN_specular_fog');
19697
19698   {$IFDEF DGL_WIN}
19699   // === WGL =====================================================================
19700   WGL_3DFX_multisample := Int_CheckExtension(Buffer, 'WGL_3DFX_multisample');
19701   WGL_ARB_buffer_region := Int_CheckExtension(Buffer, 'WGL_ARB_buffer_region');
19702   WGL_ARB_extensions_string := Int_CheckExtension(Buffer, 'WGL_ARB_extensions_string');
19703   WGL_ARB_make_current_read := Int_CheckExtension(Buffer, 'WGL_ARB_make_current_read');
19704   WGL_ARB_multisample := Int_CheckExtension(Buffer, 'WGL_ARB_multisample');
19705   WGL_ARB_pbuffer := Int_CheckExtension(Buffer, 'WGL_ARB_pbuffer');
19706   WGL_ARB_pixel_format := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format');
19707   WGL_ARB_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format_float');
19708   WGL_ARB_render_texture := Int_CheckExtension(Buffer, 'WGL_ARB_render_texture');
19709   WGL_ARB_create_context := Int_CheckExtension(Buffer, 'WGL_ARB_create_context');
19710   WGL_ARB_create_context_profile := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_profile');
19711   WGL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'WGL_ARB_framebuffer_sRGB');
19712   WGL_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_robustness');
19713   WGL_ATI_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ATI_pixel_format_float');
19714   WGL_AMD_gpu_association := Int_CheckExtension(Buffer, 'WGL_AMD_gpu_association');
19715   WGL_EXT_depth_float := Int_CheckExtension(Buffer, 'WGL_EXT_depth_float');
19716   WGL_EXT_display_color_table := Int_CheckExtension(Buffer, 'WGL_EXT_display_color_table');
19717   WGL_EXT_extensions_string := Int_CheckExtension(Buffer, 'WGL_EXT_extensions_string');
19718   WGL_EXT_make_current_read := Int_CheckExtension(Buffer, 'WGL_EXT_make_current_read');
19719   WGL_EXT_multisample := Int_CheckExtension(Buffer, 'WGL_EXT_multisample');
19720   WGL_EXT_pbuffer := Int_CheckExtension(Buffer, 'WGL_EXT_pbuffer');
19721   WGL_EXT_pixel_format := Int_CheckExtension(Buffer, 'WGL_EXT_pixel_format');
19722   WGL_EXT_swap_control := Int_CheckExtension(Buffer, 'WGL_EXT_swap_control');
19723   WGL_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'WGL_EXT_create_context_es2_profile');
19724   WGL_I3D_digital_video_control := Int_CheckExtension(Buffer, 'WGL_I3D_digital_video_control');
19725   WGL_I3D_gamma := Int_CheckExtension(Buffer, 'WGL_I3D_gamma');
19726   WGL_I3D_genlock := Int_CheckExtension(Buffer, 'WGL_I3D_genlock');
19727   WGL_I3D_image_buffer := Int_CheckExtension(Buffer, 'WGL_I3D_image_buffer');
19728   WGL_I3D_swap_frame_lock := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_lock');
19729   WGL_I3D_swap_frame_usage := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_usage');
19730   WGL_NV_float_buffer := Int_CheckExtension(Buffer, 'WGL_NV_float_buffer');
19731   WGL_NV_render_depth_texture := Int_CheckExtension(Buffer, 'WGL_NV_render_depth_texture');
19732   WGL_NV_render_texture_rectangle := Int_CheckExtension(Buffer, 'WGL_NV_render_texture_rectangle');
19733   WGL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'WGL_NV_vertex_array_range');
19734   WGL_NV_present_video := Int_CheckExtension(Buffer, 'WGL_NV_present_video');
19735   WGL_NV_video_output := Int_CheckExtension(Buffer, 'WGL_NV_video_output');
19736   WGL_NV_swap_group := Int_CheckExtension(Buffer, 'WGL_NV_swap_group');
19737   WGL_NV_gpu_affinity := Int_CheckExtension(Buffer, 'WGL_NV_gpu_affinity');
19738   WGL_NV_video_capture := Int_CheckExtension(Buffer, 'WGL_NV_video_capture');
19739   WGL_NV_copy_image := Int_CheckExtension(Buffer, 'WGL_NV_copy_image');
19740   WGL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19741   WGL_NV_DX_interop := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19742   WGL_OML_sync_control := Int_CheckExtension(Buffer, 'WGL_OML_sync_control');
19743   WGL_3DL_stereo_control := Int_CheckExtension(Buffer, 'WGL_3DL_stereo_control');
19744
19745   WIN_draw_range_elements := Int_CheckExtension(Buffer, 'WIN_draw_range_elements');
19746   WIN_swap_hint := Int_CheckExtension(Buffer, 'WIN_swap_hint');
19747   {$ENDIF}
19748
19749   {$IFDEF DGL_LINUX}
19750   // === GLX =====================================================================
19751   GLX_ARB_multisample := Int_CheckExtension(Buffer, 'GLX_ARB_multisample');
19752   GLX_ARB_fbconfig_float := Int_CheckExtension(Buffer, 'GLX_ARB_fbconfig_float');
19753   GLX_ARB_get_proc_address := Int_CheckExtension(Buffer, 'GLX_ARB_get_proc_address');
19754   GLX_ARB_create_context := Int_CheckExtension(Buffer, 'GLX_ARB_create_context');
19755   GLX_ARB_create_context_profile := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_profile');
19756   GLX_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GLX_ARB_vertex_buffer_object');
19757   GLX_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_ARB_framebuffer_sRGB');
19758   GLX_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_robustness');
19759   GLX_EXT_visual_info := Int_CheckExtension(Buffer, 'GLX_EXT_visual_info');
19760   GLX_EXT_visual_rating := Int_CheckExtension(Buffer, 'GLX_EXT_visual_rating');
19761   GLX_EXT_import_context := Int_CheckExtension(Buffer, 'GLX_EXT_import_context');
19762   GLX_EXT_fbconfig_packed_float := Int_CheckExtension(Buffer, 'GLX_EXT_fbconfig_packed_float');
19763   GLX_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_EXT_framebuffer_sRGB');
19764   GLX_EXT_texture_from_pixmap := Int_CheckExtension(Buffer, 'GLX_EXT_texture_from_pixmap');
19765   GLX_EXT_swap_control := Int_CheckExtension(Buffer, 'GLX_EXT_swap_control');
19766   GLX_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'GLX_EXT_create_context_es2_profile');
19767   {$ENDIF}
19768   ImplementationRead := True;
19769 end;
19770
19771 {$IFDEF DGL_WIN}
19772 // =============================================================================
19773 // RaiseLastOSError
19774 // =============================================================================
19775 // Needed for compatibility with older Delphiversions
19776 // =============================================================================
19777
19778 procedure RaiseLastOSError;
19779 begin
19780 {$IFDEF FPC}
19781   raise Exception.Create('RaiseLastOSError!'); // To-Do: find a better solution
19782 {$ELSE}
19783   {$IFDEF DELPHI6_AND_DOWN} // If Delphi 6 or later
19784     SysUtils.RaiseLastWin32Error;
19785   {$ELSE}
19786     SysUtils.RaiseLastOSError;
19787   {$ENDIF}
19788 {$ENDIF}
19789 end;
19790
19791 // =============================================================================
19792 // CreateRenderingContext
19793 // =============================================================================
19794
19795 function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
19796 const
19797   OBJ_MEMDC = 10;
19798   OBJ_ENHMETADC = 12;
19799   OBJ_METADC = 4;
19800   PFD_DOUBLEBUFFER = $00000001;
19801   PFD_STEREO = $00000002;
19802   PFD_DRAW_TO_WINDOW = $00000004;
19803   PFD_DRAW_TO_BITMAP = $00000008;
19804   PFD_SUPPORT_GDI = $00000010;
19805   PFD_SUPPORT_OPENGL = $00000020;
19806   PFD_TYPE_RGBA = 0;
19807   PFD_MAIN_PLANE = 0;
19808   PFD_OVERLAY_PLANE = 1;
19809   PFD_UNDERLAY_PLANE = LongWord(-1);
19810   MemoryDCs = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
19811 var
19812   PFDescriptor: TPixelFormatDescriptor;
19813   PixelFormat: Integer;
19814   AType: DWORD;
19815 begin
19816   if GL_LibHandle = nil then
19817     InitOpenGL;
19818
19819   FillChar(PFDescriptor, SizeOf(PFDescriptor), 0);
19820
19821   with PFDescriptor do
19822   begin
19823     nSize := SizeOf(PFDescriptor);
19824     nVersion := 1;
19825     dwFlags := PFD_SUPPORT_OPENGL;
19826
19827     AType := GetObjectType(DC);
19828
19829     if AType = 0 then
19830       RaiseLastOSError;
19831
19832     if AType in MemoryDCs then
19833       dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
19834     else
19835       dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
19836
19837     if opDoubleBuffered in Options then
19838       dwFlags := dwFlags or PFD_DOUBLEBUFFER;
19839
19840     if opGDI in Options then
19841       dwFlags := dwFlags or PFD_SUPPORT_GDI;
19842
19843     if opStereo in Options then
19844       dwFlags := dwFlags or PFD_STEREO;
19845
19846     iPixelType := PFD_TYPE_RGBA;
19847     cColorBits := ColorBits;
19848     cDepthBits := zBits;
19849     cStencilBits := StencilBits;
19850     cAccumBits := AccumBits;
19851     cAuxBuffers := AuxBuffers;
19852
19853     if Layer = 0 then
19854       iLayerType := PFD_MAIN_PLANE
19855     else
19856     if Layer > 0 then
19857       iLayerType := PFD_OVERLAY_PLANE
19858     else
19859       iLayerType := Byte(PFD_UNDERLAY_PLANE);
19860   end;
19861
19862   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
19863
19864   if PixelFormat = 0 then
19865     RaiseLastOSError;
19866
19867   if GetPixelFormat(DC) <> PixelFormat then
19868     if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
19869       RaiseLastOSError;
19870
19871   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
19872
19873   Result := wglCreateContext(DC);
19874
19875   if Result = 0 then
19876     RaiseLastOSError
19877   else
19878     LastPixelFormat := 0;
19879 end;
19880
19881 // =============================================================================
19882 // CreateRenderingContextVersion
19883 // =============================================================================
19884 //  Creates a context for the more recent OpenGL versions (3.0) and up
19885 //  For that we first need to get a normal GL context for getting the
19886 //  function pointer to wglCreateContextAttribsARB first
19887 // =============================================================================
19888 function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
19889 const
19890   OBJ_MEMDC          = 10;
19891   OBJ_ENHMETADC      = 12;
19892   OBJ_METADC         = 4;
19893   PFD_DOUBLEBUFFER   = $00000001;
19894   PFD_STEREO         = $00000002;
19895   PFD_DRAW_TO_WINDOW = $00000004;
19896   PFD_DRAW_TO_BITMAP = $00000008;
19897   PFD_SUPPORT_GDI    = $00000010;
19898   PFD_SUPPORT_OPENGL = $00000020;
19899   PFD_TYPE_RGBA      = 0;
19900   PFD_MAIN_PLANE     = 0;
19901   PFD_OVERLAY_PLANE  = 1;
19902   PFD_UNDERLAY_PLANE = LongWord(-1);
19903   MemoryDCs          = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
19904 var
19905   PFDescriptor : TPixelFormatDescriptor;
19906   PixelFormat  : Integer;
19907   AType        : DWORD;
19908   LegacyRC     : HGLRC;
19909   Attribs      : array of Integer;
19910 begin
19911   if GL_LibHandle = nil then
19912         InitOpenGL;
19913
19914   if not Assigned(GL_LibHandle) then
19915         raise Exception.Create('GL_LibHandle is NIL. Could not load OpenGL library!');
19916
19917   FillChar(PFDescriptor, SizeOf(PFDescriptor), 0);
19918
19919   with PFDescriptor do
19920     begin
19921       nSize    := SizeOf(PFDescriptor);
19922       nVersion := 1;
19923       dwFlags  := PFD_SUPPORT_OPENGL;
19924       AType    := GetObjectType(DC);
19925
19926       if AType = 0 then
19927         RaiseLastOSError;
19928
19929       if AType in MemoryDCs then
19930         dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
19931       else
19932         dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
19933
19934       if opDoubleBuffered in Options then
19935         dwFlags := dwFlags or PFD_DOUBLEBUFFER;
19936
19937       if opGDI in Options then
19938         dwFlags := dwFlags or PFD_SUPPORT_GDI;
19939
19940       if opStereo in Options then
19941         dwFlags := dwFlags or PFD_STEREO;
19942
19943       iPixelType   := PFD_TYPE_RGBA;
19944       cColorBits   := ColorBits;
19945       cDepthBits   := zBits;
19946       cStencilBits := StencilBits;
19947       cAccumBits   := AccumBits;
19948       cAuxBuffers  := AuxBuffers;
19949
19950       if Layer = 0 then
19951         iLayerType := PFD_MAIN_PLANE
19952       else
19953         if Layer > 0 then
19954           iLayerType := PFD_OVERLAY_PLANE
19955         else
19956           iLayerType := Byte(PFD_UNDERLAY_PLANE);
19957     end;
19958
19959   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
19960
19961   if PixelFormat = 0 then
19962         RaiseLastOSError;
19963
19964   if GetPixelFormat(DC) <> PixelFormat then
19965         if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
19966                 RaiseLastOSError;
19967
19968   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
19969
19970   // Create legacy render context first for we need function pointers to
19971   // create new OpenGL render contexts
19972   LegacyRC := wglCreateContext(DC);
19973   wglMakeCurrent(DC, LegacyRC);
19974
19975   // Set attributes to describe our requested context
19976   SetLength(Attribs, 5);
19977   Attribs[0] := WGL_CONTEXT_MAJOR_VERSION_ARB;
19978   Attribs[1] := MajorVersion;
19979   Attribs[2] := WGL_CONTEXT_MINOR_VERSION_ARB;
19980   Attribs[3] := MinorVersion;
19981
19982   // Add context flag for forward compatible context
19983   //  Forward compatible means no more support for legacy functions like
19984   //  immediate mode (glvertex, glrotate, gltranslate, etc.)
19985   if ForwardCompatible then
19986     begin
19987       SetLength(Attribs, Length(Attribs)+2);
19988       Attribs[4] := WGL_CONTEXT_FLAGS_ARB;
19989       Attribs[5] := WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
19990     end;
19991
19992   // Attribute flags must be finalized with a zero
19993   Attribs[High(Attribs)] := 0;
19994
19995   // Get function pointer for new context creation function
19996   wglCreateContextAttribsARB := wglGetProcAddress('wglCreateContextAttribsARB');
19997
19998   if not Assigned(wglCreateContextAttribsARB) then
19999     begin
20000       raise Exception.Create('Could not get function pointer adress for wglCreateContextAttribsARB - OpenGL 3.x and above not supported!');
20001       wglDeleteContext(LegacyRC);
20002       exit;
20003     end;
20004
20005   // Create context
20006   Result := wglCreateContextAttribsARB(DC, 0, @Attribs[0]);
20007
20008   if Result = 0 then
20009     begin
20010       raise Exception.Create('Could not create the desired OpenGL rendering context!');
20011       wglDeleteContext(LegacyRC);
20012       exit;
20013     end;
20014
20015   wglDeleteContext(LegacyRC);
20016
20017   if Result = 0 then
20018         RaiseLastOSError
20019   else
20020         LastPixelFormat := 0;
20021 end;
20022
20023 // =============================================================================
20024 // DestroyRenderingContext
20025 // =============================================================================
20026
20027 procedure DestroyRenderingContext(RC: HGLRC);
20028 begin
20029   wglDeleteContext(RC);
20030 end;
20031
20032
20033 // =============================================================================
20034 // ActivateRenderingContext
20035 // =============================================================================
20036
20037 procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
20038 begin
20039   Assert((DC <> 0), 'DC must not be 0');
20040   Assert((RC <> 0), 'RC must not be 0');
20041
20042   wglMakeCurrent(DC, RC);
20043
20044   {$ifdef DGL_TINY_HEADER}
20045   ReadCoreVersion;
20046   {$else}
20047   ReadImplementationProperties;
20048
20049   if (loadext) then
20050     ReadExtensions;
20051   {$endif}
20052 end;
20053
20054 // =============================================================================
20055 // DeactivateRenderingContext
20056 // =============================================================================
20057
20058 procedure DeactivateRenderingContext;
20059 begin
20060   wglMakeCurrent(0, 0);
20061 end;
20062 {$ENDIF}
20063
20064
20065 initialization
20066
20067 {$IFDEF CPU386}
20068   Set8087CW($133F);
20069 {$ENDIF}
20070
20071 finalization
20072
20073 end.