Added missing GL 4.4 extensions GL_ARB_sparse_texture and GL_ARB_bindless_texture...
[LazOpenGLCore.git] / dglOpenGL.pas
1 { ============================================================================
2
3        OpenGL 4.4 - Headertranslation
4        Version 4.4b
5        Date : 2014/05/08
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  Version 4.4b           Fixed parameter type for glGetShaderInfoLog                            (SW)
414                                         (thanks to glAwesome)
415                                                                 Added ARB_sparse_texture                                 (SW)
416                 Added ARB_bindless_texture                                                                                                                       (SW)
417
418 ==============================================================================
419  Header based on glext.h  rev 87 (2012-08-06)
420  Header based on wglext.h rev 24 (2012/01/04)
421  Header based on glxext.h rev 33 (2012/02/29)  (only Core/ARB/EXT)
422
423  This is an important notice for maintaining. Dont remove it. And make sure
424  to keep it up to date
425 ============================================================================== }
426
427 {$define DGL_DEPRECATED}
428 {
429   This define defines if the header should use deprecated ARB stuff or not.
430   per Default the Header use deprecated Stuff.
431 }
432
433
434 {.$define DGL_TINY_HEADER}
435 {
436   If you enable the define DGL_TINY_HEADER no function automatically will be loaded if you
437   call ActivateRenderingContext. This may some bit faster and the smart linker can delete
438   all non used functions. This will reduce the filesize of your binary file. But in this
439   case you have to load the functions by yourself. There are two ways to do this.
440
441   1. You can load whole extension by calling the func Read_Extensionname. But if you do
442      this it's possible to load functions you dont use. So you have the same "problem"
443      like before. But it's only an bit smaler.
444      > Read_GL_ARB_multitexture;
445
446   2. You are able to load only the functions you exactly need. In this case you are able
447      to use the variables of the dglOpenGL.pas. So you only need to load the functions
448      and you can use the header like before.
449      To do this you have to created and activated an opengl context and than you can load
450      the needed functions.
451      > ActivateRenderingContext(fDC, fRC);
452      > glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
453      > glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
454
455      So only the function "glActiveTextureARB" and "glMultiTexCoord2fARB" will be loaded.
456
457
458   Please notice that the extension variables won't be loaded if this define is active. But
459   you can call dglCheckExtension to check if any extension exists. You can assign them to
460   the variables of the dglOpenGL.pas so all code they use this will find them.
461
462   > GL_ARB_shading_language_100 := dglCheckExtension('GL_ARB_shading_language_100');
463 }
464
465
466 unit dglOpenGL;
467
468 interface
469
470 // defines to configure freepascal
471 {$IFDEF FPC}
472   {$MODE Delphi}
473
474   {$IFNDEF WINDOWS}
475     {$LINKLIB c}
476   {$ENDIF}
477 {$ENDIF}
478
479 // known delphi versions
480 {$IFNDEF FPC}       // if freepascal isnt defined
481   {$IFDEF VER140}   // Delphi 6
482     {$DEFINE DELPHI6_AND_DOWN}
483   {$ENDIF}
484
485   {$IFDEF VER130}   // Delphi 5
486     {$DEFINE DELPHI6_AND_DOWN}
487   {$ENDIF}
488
489   {$IFDEF VER120}   // Delphi 4
490     {$DEFINE DELPHI6_AND_DOWN}
491   {$ENDIF}
492
493   {$IFDEF VER110}   // C++ Builder 3
494     {$DEFINE DELPHI6_AND_DOWN}
495   {$ENDIF}
496
497   {$IFDEF VER100}   // Delphi 3
498     {$DEFINE DELPHI6_AND_DOWN}
499   {$ENDIF}
500 {$ENDIF}
501
502 // Options for Delphi < 5
503 {$IFDEF DELPHI6_AND_DOWN}
504   {$A+}
505 {$ELSE}
506   {$A4}
507 {$ENDIF}
508
509 // generell options
510 {$H+,O+,X+}
511
512 // detecting Windows
513 {$IFDEF Win32}          // Delphi and fpc of 32 Bit Windows
514   {$DEFINE DGL_WIN}
515 {$ENDIF}
516
517 {$IFDEF Win64}          // Delphi and fpc of 32 Bit Windows
518   {$DEFINE DGL_WIN}
519 {$ENDIF}
520
521 // detecting Linux
522 {$IFDEF linux}          // Linux
523   {$DEFINE DGL_LINUX}
524 {$ENDIF}
525
526 {$IFDEF DARWIN}  // Mac OS X and FPC
527    {$DEFINE DGL_MAC}
528 {$ENDIF}   
529
530 {$IFDEF DELPHI}  // Mac OS X add Delphi 
531 {$IFDEF MACOS}
532    {$DEFINE DGL_MAC}
533 {$ENDIF}   
534 {$ENDIF}   
535
536
537 // detecting 64 Bit CPU
538 {$IFDEF CPU64}          // fpc on 64 bit cpus
539   {$DEFINE DGL_64BIT}   // dgl define for 64 bit
540 {$ENDIF}
541
542
543
544 uses
545   {$IFDEF FPC}{$IFDEF DARWIN}dynlibs,{$ENDIF}{$ENDIF}  // LoadLibrary functions 
546   SysUtils
547   {$IFDEF DGL_WIN}, Windows{$ENDIF}
548   {$IFDEF DGL_LINUX}, X, XLib, XUtil{$ENDIF}
549   ;
550
551 type
552   // Needed for Delphi 6 and less (defined in system.pas for Delphi 7)
553   PPointer = ^Pointer;
554   PCardinal = ^Cardinal;
555
556   GLenum = Cardinal;
557   GLboolean = BYTEBOOL;
558   GLbitfield = Cardinal;
559   GLbyte = Shortint;
560   GLshort = SmallInt;
561   GLint = Integer;
562   GLsizei = Integer;
563   GLubyte = Byte;
564   GLushort = Word;
565   GLuint = Cardinal;
566   GLfloat = Single;
567   GLclampf = Single;
568   GLdouble = Double;
569   GLclampd = Double;
570   GLvoid = Pointer;
571   GLint64 = Int64;
572   GLuint64 = {$IFDEF DELPHI6_AND_DOWN} Int64 {$ELSE} UInt64 {$ENDIF};
573   
574   TGLenum = GLenum;
575   TGLboolean = GLboolean;
576   TGLbitfield = GLbitfield;
577   TGLbyte = GLbyte;
578   TGLshort = GLshort;
579   TGLint = GLint;
580   TGLsizei = GLsizei;
581   TGLubyte = GLubyte;
582   TGLushort = GLushort;
583   TGLuint = GLuint;
584   TGLfloat = GLfloat;
585   TGLclampf = GLclampf;
586   TGLdouble = GLdouble;
587   TGLclampd = GLclampd;
588   TGLvoid = GLvoid;
589   TGLint64 = GLint64;
590   TGLuint64 = GLuint64;
591
592   PGLboolean = ^GLboolean;
593   PGLbyte = ^GLbyte;
594   PGLshort = ^GLshort;
595   PGLint = ^GLint;
596   PGLsizei = ^GLsizei;
597   PGLubyte = ^GLubyte;
598   PGLushort = ^GLushort;
599   PGLuint = ^GLuint;
600   PGLclampf = ^GLclampf;
601   PGLfloat = ^GLfloat;
602   PGLdouble = ^GLdouble;
603   PGLclampd = ^GLclampd;
604   PGLenum = ^GLenum;
605   PGLvoid = Pointer;
606   PPGLvoid = ^PGLvoid;
607   PGLint64 = ^GLint64;
608   PGLuint64 = ^GLuint64;
609
610   // GL_NV_half_float
611   GLhalfNV = WORD;
612   TGLhalfNV = GLhalfNV;
613   PGLhalfNV = ^GLhalfNV;
614
615   // GL_ARB_shader_objects
616   PGLHandleARB = ^GLHandleARB;
617   GLHandleARB = Integer;
618   GLcharARB = AnsiChar;
619   PGLcharARB = PAnsiChar;
620   PPGLcharARB = ^PGLcharARB;
621
622   // GL_VERSION_1_5
623   GLintptr = GLint;
624   GLsizeiptr = GLsizei;
625
626   // GL_ARB_vertex_buffer_object
627   GLintptrARB = GLint;
628   GLsizeiptrARB = GLsizei;
629
630   // GL_VERSION_2_0
631   GLHandle = Integer;
632   PGLchar = PAnsiChar;
633   PPGLchar = ^PGLChar;
634
635   // GL_EXT_timer_query
636   GLint64EXT = Int64;
637   TGLint64EXT = GLint64EXT;
638   PGLint64EXT = ^GLint64EXT;
639
640   GLuint64EXT = GLuint64;
641   TGLuint64EXT = GLuint64EXT;
642   PGLuint64EXT = ^GLuint64EXT;
643
644   // WGL_ARB_pbuffer
645   HPBUFFERARB = THandle;
646
647   // WGL_EXT_pbuffer
648   HPBUFFEREXT = THandle;
649
650   // WGL_NV_present_video
651   PHVIDEOOUTPUTDEVICENV = ^HVIDEOOUTPUTDEVICENV;
652   HVIDEOOUTPUTDEVICENV = THandle;
653
654   // WGL_NV_video_output
655   PHPVIDEODEV = ^HPVIDEODEV;
656   HPVIDEODEV = THandle;
657
658   // WGL_NV_gpu_affinity
659   PHPGPUNV = ^HPGPUNV;
660   PHGPUNV = ^HGPUNV;
661
662   // WGL_NV_video_capture
663   HVIDEOINPUTDEVICENV = THandle;
664   PHVIDEOINPUTDEVICENV = ^HVIDEOINPUTDEVICENV;
665   
666   HPGPUNV = THandle;
667   HGPUNV = THandle;
668
669   // GL_ARB_sync
670   GLsync = Pointer;
671
672   // GL_ARB_cl_event
673   { These incomplete types let us declare types compatible with OpenCL's cl_context and cl_event }
674   _cl_context = record end;
675   _cl_event = record end;
676   p_cl_context = ^_cl_context;
677   p_cl_event = ^_cl_event;
678
679   // GL_ARB_debug_output
680   TglDebugProcARB = procedure (source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
681
682   // GL_AMD_debug_output
683   TglDebugProcAMD = procedure (id: GLuint; category: GLenum; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
684
685         // (4.3) GL_KHR_debug
686   TglDebugProc = procedure(source : GLEnum; type_ : GLEnum; id : GLUInt; severity : GLUInt; length : GLsizei; const message_ : PGLCHar; userParam : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
687
688   // GL_NV_vdpau_interop
689   GLvdpauSurfaceNV = GLintptr;
690   PGLvdpauSurfaceNV = ^GLvdpauSurfaceNV;
691   
692   
693   // GLX
694   {$IFDEF DGL_LINUX}
695     GLXContext = Pointer;
696     GLXContextID = TXID;
697     GLXDrawable = TXID;
698     GLXFBConfig = Pointer;
699     GLXPbuffer = TXID;
700     GLXPixmap = TXID;
701     GLXWindow = TXID;
702
703     Window = TXID;
704     Colormap = TXID;
705     Pixmap = TXID;
706     Font = TXID;
707   {$ENDIF}
708
709   // Datatypes corresponding to GL's types TGL(name)(type)(count)
710   TGLVectorub2 = array[0..1] of GLubyte;
711   TGLVectori2  = array[0..1] of GLint;
712   TGLVectorf2  = array[0..1] of GLfloat;
713   TGLVectord2  = array[0..1] of GLdouble;
714   TGLVectorp2  = array[0..1] of Pointer;
715
716   TGLVectorub3 = array[0..2] of GLubyte;
717   TGLVectori3  = array[0..2] of GLint;
718   TGLVectorf3  = array[0..2] of GLfloat;
719   TGLVectord3  = array[0..2] of GLdouble;
720   TGLVectorp3  = array[0..2] of Pointer;
721
722   TGLVectorub4 = array[0..3] of GLubyte;
723   TGLVectori4  = array[0..3] of GLint;
724   TGLVectorf4  = array[0..3] of GLfloat;
725   TGLVectord4  = array[0..3] of GLdouble;
726   TGLVectorp4  = array[0..3] of Pointer;
727
728   TGLArrayf4 = TGLVectorf4;
729   TGLArrayf3 = TGLVectorf3;
730   TGLArrayd3 = TGLVectord3;
731   TGLArrayi4 = TGLVectori4;
732   TGLArrayp4 = TGLVectorp4;
733
734   TGlMatrixub3 = array[0..2, 0..2] of GLubyte;
735   TGlMatrixi3  = array[0..2, 0..2] of GLint;
736   TGLMatrixf3  = array[0..2, 0..2] of GLfloat;
737   TGLMatrixd3  = array[0..2, 0..2] of GLdouble;
738
739   TGlMatrixub4 = array[0..3, 0..3] of GLubyte;
740   TGlMatrixi4  = array[0..3, 0..3] of GLint;
741   TGLMatrixf4  = array[0..3, 0..3] of GLfloat;
742   TGLMatrixd4  = array[0..3, 0..3] of GLdouble;
743
744   TGLVector3f = TGLVectorf3;
745
746   // Datatypes corresponding to OpenGL12.pas for easy porting
747   TVector3d = TGLVectord3;
748
749   TVector4i = TGLVectori4;
750   TVector4f = TGLVectorf4;
751   TVector4p = TGLVectorp4;
752
753   TMatrix4f = TGLMatrixf4;
754   TMatrix4d = TGLMatrixd4;
755
756   PGLMatrixd4 = ^TGLMatrixd4;
757   PVector4i = ^TVector4i;
758
759
760
761 {$IFDEF FPC}
762   TRect = packed record
763     Left, Top, Right, Bottom: Longint;
764   end;
765 {$ENDIF}
766
767
768   PGPU_DEVICE = ^GPU_DEVICE;
769   GPU_DEVICE = record
770     cb: DWORD;
771     DeviceName: array [0..31] of AnsiChar;
772     DeviceString: array [0..127] of AnsiChar;
773     Flags: DWORD;
774     rcVirtualScreen: TRect;
775   end;
776   
777
778 type
779 {$IFDEF FPC}
780   {$IFDEF DGL_WIN}
781     PWGLSwap = ^TWGLSwap;
782     {$EXTERNALSYM _WGLSWAP}
783       _WGLSWAP = packed record
784         hdc: HDC;
785         uiFlags: UINT;
786       end;
787
788     TWGLSwap = _WGLSWAP;
789   {$EXTERNALSYM WGLSWAP}
790     WGLSWAP = _WGLSWAP;
791
792   {$ENDIF}
793 {$ENDIF}
794
795   // GLU types
796   TGLUNurbs = record
797   end;
798   TGLUQuadric = record
799   end;
800   TGLUTesselator = record
801   end;
802   PGLUNurbs = ^TGLUNurbs;
803   PGLUQuadric = ^TGLUQuadric;
804   PGLUTesselator = ^TGLUTesselator;
805   // backwards compatibility
806   TGLUNurbsObj = TGLUNurbs;
807   TGLUQuadricObj = TGLUQuadric;
808   TGLUTesselatorObj = TGLUTesselator;
809   TGLUTriangulatorObj = TGLUTesselator;
810   PGLUNurbsObj = PGLUNurbs;
811   PGLUQuadricObj = PGLUQuadric;
812   PGLUTesselatorObj = PGLUTesselator;
813   PGLUTriangulatorObj = PGLUTesselator;
814
815   // GLUQuadricCallback
816   TGLUQuadricErrorProc = procedure(errorCode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
817   // GLUTessCallback
818   TGLUTessBeginProc = procedure(AType: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
819   TGLUTessEdgeFlagProc = procedure(Flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
820   TGLUTessVertexProc = procedure(VertexData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
821   TGLUTessEndProc = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
822   TGLUTessErrorProc = procedure(ErrNo: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
823   TGLUTessCombineProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
824   TGLUTessBeginDataProc = procedure(AType: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
825   TGLUTessEdgeFlagDataProc = procedure(Flag: GLboolean; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
826   TGLUTessVertexDataProc = procedure(VertexData: Pointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
827   TGLUTessEndDataProc = procedure(UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
828   TGLUTessErrorDataProc = procedure(ErrNo: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
829   TGLUTessCombineDataProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
830   // GLUNurbsCallback
831   TGLUNurbsErrorProc = procedure(ErrorCode: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
832
833 var
834   GL_VERSION_1_0,
835   GL_VERSION_1_1,
836   GL_VERSION_1_2,
837   GL_VERSION_1_3,
838   GL_VERSION_1_4,
839   GL_VERSION_1_5,
840   GL_VERSION_2_0,
841   GL_VERSION_2_1,
842   GL_VERSION_3_0,
843   GL_VERSION_3_1,
844   GL_VERSION_3_2,
845   GL_VERSION_3_3,
846   GL_VERSION_4_0,
847   GL_VERSION_4_1,
848   GL_VERSION_4_2,
849   GL_VERSION_4_3,
850   GL_VERSION_4_4,
851   GLU_VERSION_1_1,
852   GLU_VERSION_1_2,
853   GLU_VERSION_1_3,
854   GL_3DFX_multisample,
855   GL_3DFX_tbuffer,
856   GL_3DFX_texture_compression_FXT1,
857   GL_APPLE_client_storage,
858   GL_APPLE_element_array,
859   GL_APPLE_fence,
860   GL_APPLE_specular_vector,
861   GL_APPLE_transform_hint,
862   GL_APPLE_vertex_array_object,
863   GL_APPLE_vertex_array_range,
864   GL_APPLE_ycbcr_422,
865   GL_APPLE_texture_range,
866   GL_APPLE_float_pixels,
867   GL_APPLE_vertex_program_evaluators,
868   GL_APPLE_aux_depth_stencil,
869   GL_APPLE_object_purgeable,
870   GL_APPLE_row_bytes,
871   GL_APPLE_rgb_422,
872   GL_ARB_depth_texture,
873   GL_ARB_fragment_program,
874   GL_ARB_imaging,
875   GL_ARB_matrix_palette,
876   GL_ARB_multisample,
877   GL_ARB_multitexture,
878   GL_ARB_point_parameters,
879   GL_ARB_shadow,
880   GL_ARB_shadow_ambient,
881   GL_ARB_texture_border_clamp,
882   GL_ARB_texture_compression,
883   GL_ARB_texture_cube_map,
884   GL_ARB_texture_env_add,
885   GL_ARB_texture_env_combine,
886   GL_ARB_texture_env_crossbar,
887   GL_ARB_texture_env_dot3,
888   GL_ARB_texture_mirrored_repeat,
889   GL_ARB_transpose_matrix,
890   GL_ARB_vertex_blend,
891   GL_ARB_vertex_buffer_object,
892   GL_ARB_vertex_program,
893   GL_ARB_window_pos,
894   GL_ARB_shader_objects,
895   GL_ARB_vertex_shader,
896   GL_ARB_fragment_shader,
897   GL_ARB_shading_language_100,
898   GL_ARB_occlusion_query,
899   GL_ARB_texture_non_power_of_two,
900   GL_ARB_point_sprite,
901   GL_ARB_fragment_program_shadow,
902   GL_ARB_draw_buffers,
903   GL_ARB_texture_rectangle,
904   GL_ARB_color_buffer_float,
905   GL_ARB_half_float_pixel,
906   GL_ARB_texture_float,
907   GL_ARB_pixel_buffer_object,
908   GL_ARB_depth_buffer_float,
909   GL_ARB_draw_instanced,
910   GL_ARB_framebuffer_object,
911   GL_ARB_framebuffer_sRGB,
912   GL_ARB_geometry_shader4,
913   GL_ARB_half_float_vertex,
914   GL_ARB_instanced_arrays,
915   GL_ARB_map_buffer_range,
916   GL_ARB_texture_buffer_object,
917   GL_ARB_texture_compression_rgtc,
918   GL_ARB_texture_rg,
919   GL_ARB_vertex_array_object,
920   GL_ARB_uniform_buffer_object,
921   GL_ARB_compatibility,
922   GL_ARB_copy_buffer,
923   GL_ARB_shader_texture_lod,
924   GL_ARB_depth_clamp,
925   GL_ARB_draw_elements_base_vertex,
926   GL_ARB_fragment_coord_conventions,
927   GL_ARB_provoking_vertex,
928   GL_ARB_seamless_cube_map,
929   GL_ARB_sync,
930   GL_ARB_texture_multisample,
931   GL_ARB_vertex_array_bgra,
932   GL_ARB_draw_buffers_blend,
933   GL_ARB_sample_shading,
934   GL_ARB_texture_cube_map_array,
935   GL_ARB_texture_gather,
936   GL_ARB_texture_query_lod,
937   GL_ARB_shading_language_include,
938   GL_ARB_texture_compression_bptc,
939   GL_ARB_blend_func_extended,
940   GL_ARB_explicit_attrib_location,
941   GL_ARB_occlusion_query2,
942   GL_ARB_sampler_objects,
943   GL_ARB_shader_bit_encoding,
944   GL_ARB_texture_rgb10_a2ui,
945   GL_ARB_texture_swizzle,
946   GL_ARB_timer_query,
947   GL_ARB_vertex_type_2_10_10_10_rev,
948   GL_ARB_draw_indirect,
949   GL_ARB_gpu_shader5,
950   GL_ARB_gpu_shader_fp64,
951   GL_ARB_shader_subroutine,
952   GL_ARB_tessellation_shader,
953   GL_ARB_texture_buffer_object_rgb32,
954   GL_ARB_transform_feedback2,
955   GL_ARB_transform_feedback3,
956   GL_ARB_ES2_compatibility,
957   GL_ARB_get_program_binary,
958   GL_ARB_separate_shader_objects,
959   GL_ARB_shader_precision,
960   GL_ARB_vertex_attrib_64bit,
961   GL_ARB_viewport_array,
962
963   // GL 4.2
964     GL_ARB_base_instance,
965     GL_ARB_shading_language_420pack,
966     GL_ARB_transform_feedback_instanced,
967     GL_ARB_compressed_texture_pixel_storage,
968     GL_ARB_conservative_depth,
969     GL_ARB_internalformat_query,
970     GL_ARB_map_buffer_alignment,
971     GL_ARB_shader_atomic_counters,
972     GL_ARB_shader_image_load_store,
973     GL_ARB_shading_language_packing,
974     GL_ARB_texture_storage,
975   // END GL 4.2
976
977   // GL 4.3
978     GL_ARB_arrays_of_arrays,
979     GL_ARB_fragment_layer_viewport,
980     GL_ARB_shader_image_size,
981     GL_ARB_ES3_compatibility,
982     GL_ARB_clear_buffer_object,
983     GL_ARB_compute_shader,
984     GL_ARB_copy_image,
985     GL_KHR_debug,
986     GL_ARB_explicit_uniform_location,
987     GL_ARB_framebuffer_no_attachments,
988     GL_ARB_internalformat_query2,
989     GL_ARB_invalidate_subdata,
990     GL_ARB_multi_draw_indirect,
991     GL_ARB_program_interface_query,
992     GL_ARB_robust_buffer_access_behavior,
993     GL_ARB_shader_storage_buffer_object,
994     GL_ARB_stencil_texturing,
995     GL_ARB_texture_buffer_range,
996     GL_ARB_texture_query_levels,
997     GL_ARB_texture_storage_multisample,
998     GL_ARB_texture_view,
999     GL_ARB_vertex_attrib_binding,
1000     GL_NV_path_rendering,
1001     GL_AMD_pinned_memory,
1002     GL_AMD_stencil_operation_extended,
1003     GL_AMD_vertex_shader_viewport_index,
1004     GL_AMD_vertex_shader_layer,
1005     GL_NV_bindless_texture,
1006     GL_NV_shader_atomic_float,
1007     GL_AMD_query_buffer_object,
1008   // END GL 4.3
1009
1010   // GL 4.4
1011     GL_ARB_buffer_storage,
1012     GL_ARB_clear_texture,
1013     GL_ARB_enhanced_layouts,
1014     GL_ARB_multi_bind,
1015     GL_ARB_query_buffer_object,
1016     GL_ARB_texture_mirror_clamp_to_edge,
1017     GL_ARB_texture_stencil8,
1018     GL_ARB_vertex_type_10f_11f_11f_rev,
1019                 GL_ARB_bindless_texture,
1020         GL_ARB_sparse_texture,
1021   // END 4.4
1022
1023   GL_ARB_cl_event,
1024   GL_ARB_debug_output,
1025   GL_ARB_robustness,
1026   GL_ARB_shader_stencil_export,
1027   GL_ATI_draw_buffers,
1028   GL_ATI_element_array,
1029   GL_ATI_envmap_bumpmap,
1030   GL_ATI_fragment_shader,
1031   GL_ATI_map_object_buffer,
1032   GL_ATI_pn_triangles,
1033   GL_ATI_separate_stencil,
1034   GL_ATI_text_fragment_shader,
1035   GL_ATI_texture_env_combine3,
1036   GL_ATI_texture_float,
1037   GL_ATI_texture_mirror_once,
1038   GL_ATI_vertex_array_object,
1039   GL_ATI_vertex_attrib_array_object,
1040   GL_ATI_vertex_streams,
1041   GL_ATI_meminfo,
1042   GL_AMD_performance_monitor,
1043   GL_AMD_texture_texture4,
1044   GL_AMD_vertex_shader_tesselator,
1045   GL_AMD_draw_buffers_blend,
1046   GL_AMD_shader_stencil_export,
1047   GL_AMD_seamless_cubemap_per_texture,
1048   GL_AMD_conservative_depth,
1049   GL_AMD_name_gen_delete,
1050   GL_AMD_debug_output,
1051   GL_AMD_transform_feedback3_lines_triangles,
1052   GL_AMD_depth_clamp_separate,
1053   GL_EXT_422_pixels,
1054   GL_EXT_abgr,
1055   GL_EXT_bgra,
1056   GL_EXT_blend_color,
1057   GL_EXT_blend_func_separate,
1058   GL_EXT_blend_logic_op,
1059   GL_EXT_blend_minmax,
1060   GL_EXT_blend_subtract,
1061   GL_EXT_clip_volume_hint,
1062   GL_EXT_cmyka,
1063   GL_EXT_color_matrix,
1064   GL_EXT_color_subtable,
1065   GL_EXT_compiled_vertex_array,
1066   GL_EXT_convolution,
1067   GL_EXT_coordinate_frame,
1068   GL_EXT_copy_texture,
1069   GL_EXT_cull_vertex,
1070   GL_EXT_draw_range_elements,
1071   GL_EXT_fog_coord,
1072   GL_EXT_framebuffer_object,
1073   GL_EXT_histogram,
1074   GL_EXT_index_array_formats,
1075   GL_EXT_index_func,
1076   GL_EXT_index_material,
1077   GL_EXT_index_texture,
1078   GL_EXT_light_texture,
1079   GL_EXT_misc_attribute,
1080   GL_EXT_multi_draw_arrays,
1081   GL_EXT_multisample,
1082   GL_EXT_packed_pixels,
1083   GL_EXT_paletted_texture,
1084   GL_EXT_pixel_transform,
1085   GL_EXT_pixel_transform_color_table,
1086   GL_EXT_point_parameters,
1087   GL_EXT_polygon_offset,
1088   GL_EXT_rescale_normal,
1089   GL_EXT_secondary_color,
1090   GL_EXT_separate_specular_color,
1091   GL_EXT_shadow_funcs,
1092   GL_EXT_shared_texture_palette,
1093   GL_EXT_stencil_two_side,
1094   GL_EXT_stencil_wrap,
1095   GL_EXT_subtexture,
1096   GL_EXT_texture,
1097   GL_EXT_texture3D,
1098   GL_EXT_texture_compression_s3tc,
1099   GL_EXT_texture_cube_map,
1100   GL_EXT_texture_edge_clamp,
1101   GL_EXT_texture_env_add,
1102   GL_EXT_texture_env_combine,
1103   GL_EXT_texture_env_dot3,
1104   GL_EXT_texture_filter_anisotropic,
1105   GL_EXT_texture_lod_bias,
1106   GL_EXT_texture_object,
1107   GL_EXT_texture_perturb_normal,
1108   GL_EXT_texture_rectangle,
1109   GL_EXT_vertex_array,
1110   GL_EXT_vertex_shader,
1111   GL_EXT_vertex_weighting,
1112   GL_EXT_depth_bounds_test,
1113   GL_EXT_texture_mirror_clamp,
1114   GL_EXT_blend_equation_separate,
1115   GL_EXT_pixel_buffer_object,
1116   GL_EXT_texture_compression_dxt1,
1117   GL_EXT_stencil_clear_tag,
1118   GL_EXT_packed_depth_stencil,
1119   GL_EXT_texture_sRGB,
1120   GL_EXT_framebuffer_blit,
1121   GL_EXT_framebuffer_multisample,
1122   GL_EXT_timer_query,
1123   GL_EXT_gpu_program_parameters,
1124   GL_EXT_bindable_uniform,
1125   GL_EXT_draw_buffers2,
1126   GL_EXT_draw_instanced,
1127   GL_EXT_framebuffer_sRGB,
1128   GL_EXT_geometry_shader4,
1129   GL_EXT_gpu_shader4,
1130   GL_EXT_packed_float,
1131   GL_EXT_texture_array,
1132   GL_EXT_texture_buffer_object,
1133   GL_EXT_texture_compression_latc,
1134   GL_EXT_texture_compression_rgtc,
1135   GL_EXT_texture_integer,
1136   GL_EXT_texture_shared_exponent,
1137   GL_EXT_transform_feedback,
1138   GL_EXT_direct_state_access,
1139   GL_EXT_vertex_array_bgra,
1140   GL_EXT_texture_swizzle,
1141   GL_EXT_provoking_vertex,
1142   GL_EXT_texture_snorm,
1143   GL_EXT_separate_shader_objects,
1144   GL_EXT_shader_image_load_store,
1145   GL_EXT_vertex_attrib_64bit,
1146   GL_EXT_texture_sRGB_decode,
1147   GL_FfdMaskSGIX,
1148   GL_HP_convolution_border_modes,
1149   GL_HP_image_transform,
1150   GL_HP_occlusion_test,
1151   GL_HP_texture_lighting,
1152   GL_IBM_cull_vertex,
1153   GL_IBM_multimode_draw_arrays,
1154   GL_IBM_rasterpos_clip,
1155   GL_IBM_texture_mirrored_repeat,
1156   GL_IBM_vertex_array_lists,
1157   GL_INGR_blend_func_separate,
1158   GL_INGR_color_clamp,
1159   GL_INGR_interlace_read,
1160   GL_INGR_palette_buffer,
1161   GL_INTEL_parallel_arrays,
1162   GL_INTEL_texture_scissor,
1163   GL_MESA_resize_buffers,
1164   GL_MESA_window_pos,
1165   GL_NV_blend_square,
1166   GL_NV_copy_depth_to_color,
1167   GL_NV_depth_clamp,
1168   GL_NV_evaluators,
1169   GL_NV_fence,
1170   GL_NV_float_buffer,
1171   GL_NV_fog_distance,
1172   GL_NV_fragment_program,
1173   GL_NV_half_float,
1174   GL_NV_light_max_exponent,
1175   GL_NV_multisample_filter_hint,
1176   GL_NV_occlusion_query,
1177   GL_NV_packed_depth_stencil,
1178   GL_NV_pixel_data_range,
1179   GL_NV_point_sprite,
1180   GL_NV_primitive_restart,
1181   GL_NV_register_combiners,
1182   GL_NV_register_combiners2,
1183   GL_NV_texgen_emboss,
1184   GL_NV_texgen_reflection,
1185   GL_NV_texture_compression_vtc,
1186   GL_NV_texture_env_combine4,
1187   GL_NV_texture_expand_normal,
1188   GL_NV_texture_rectangle,
1189   GL_NV_texture_shader,
1190   GL_NV_texture_shader2,
1191   GL_NV_texture_shader3,
1192   GL_NV_vertex_array_range,
1193   GL_NV_vertex_array_range2,
1194   GL_NV_vertex_program,
1195   GL_NV_vertex_program1_1,
1196   GL_NV_vertex_program2,
1197   GL_NV_fragment_program_option,
1198   GL_NV_fragment_program2,
1199   GL_NV_vertex_program2_option,
1200   GL_NV_vertex_program3,
1201   GL_NV_depth_buffer_float,
1202   GL_NV_fragment_program4,
1203   GL_NV_framebuffer_multisample_coverage,
1204   GL_NV_geometry_program4,
1205   GL_NV_gpu_program4,
1206   GL_NV_parameter_buffer_object,
1207   GL_NV_transform_feedback,
1208   GL_NV_vertex_program4,
1209   GL_NV_conditional_render,
1210   GL_NV_present_video,
1211   GL_NV_explicit_multisample,
1212   GL_NV_transform_feedback2,
1213   GL_NV_video_capture,
1214   GL_NV_copy_image,
1215   GL_NV_parameter_buffer_object2,
1216   GL_NV_shader_buffer_load,
1217   GL_NV_vertex_buffer_unified_memory,
1218   GL_NV_gpu_program5,
1219   GL_NV_gpu_shader5,
1220   GL_NV_shader_buffer_store,
1221   GL_NV_tessellation_program5,
1222   GL_NV_vertex_attrib_integer_64bit,
1223   GL_NV_multisample_coverage,
1224   GL_NV_vdpau_interop,
1225   GL_NV_texture_barrier,
1226   GL_OML_interlace,
1227   GL_OML_resample,
1228   GL_OML_subsample,
1229   GL_PGI_misc_hints,
1230   GL_PGI_vertex_hints,
1231   GL_REND_screen_coordinates,
1232   GL_S3_s3tc,
1233   GL_SGIS_detail_texture,
1234   GL_SGIS_fog_function,
1235   GL_SGIS_generate_mipmap,
1236   GL_SGIS_multisample,
1237   GL_SGIS_pixel_texture,
1238   GL_SGIS_point_line_texgen,
1239   GL_SGIS_point_parameters,
1240   GL_SGIS_sharpen_texture,
1241   GL_SGIS_texture4D,
1242   GL_SGIS_texture_border_clamp,
1243   GL_SGIS_texture_color_mask,
1244   GL_SGIS_texture_edge_clamp,
1245   GL_SGIS_texture_filter4,
1246   GL_SGIS_texture_lod,
1247   GL_SGIS_texture_select,
1248   GL_SGIX_async,
1249   GL_SGIX_async_histogram,
1250   GL_SGIX_async_pixel,
1251   GL_SGIX_blend_alpha_minmax,
1252   GL_SGIX_calligraphic_fragment,
1253   GL_SGIX_clipmap,
1254   GL_SGIX_convolution_accuracy,
1255   GL_SGIX_depth_pass_instrument,
1256   GL_SGIX_depth_texture,
1257   GL_SGIX_flush_raster,
1258   GL_SGIX_fog_offset,
1259   GL_SGIX_fog_scale,
1260   GL_SGIX_fragment_lighting,
1261   GL_SGIX_framezoom,
1262   GL_SGIX_igloo_interface,
1263   GL_SGIX_impact_pixel_texture,
1264   GL_SGIX_instruments,
1265   GL_SGIX_interlace,
1266   GL_SGIX_ir_instrument1,
1267   GL_SGIX_list_priority,
1268   GL_SGIX_pixel_texture,
1269   GL_SGIX_pixel_tiles,
1270   GL_SGIX_polynomial_ffd,
1271   GL_SGIX_reference_plane,
1272   GL_SGIX_resample,
1273   GL_SGIX_scalebias_hint,
1274   GL_SGIX_shadow,
1275   GL_SGIX_shadow_ambient,
1276   GL_SGIX_sprite,
1277   GL_SGIX_subsample,
1278   GL_SGIX_tag_sample_buffer,
1279   GL_SGIX_texture_add_env,
1280   GL_SGIX_texture_coordinate_clamp,
1281   GL_SGIX_texture_lod_bias,
1282   GL_SGIX_texture_multi_buffer,
1283   GL_SGIX_texture_scale_bias,
1284   GL_SGIX_texture_select,
1285   GL_SGIX_vertex_preclip,
1286   GL_SGIX_ycrcb,
1287   GL_SGIX_ycrcb_subsample,
1288   GL_SGIX_ycrcba,
1289   GL_SGI_color_matrix,
1290   GL_SGI_color_table,
1291   GL_SGI_depth_pass_instrument,
1292   GL_SGI_texture_color_table,
1293   GL_SUNX_constant_data,
1294   GL_SUN_convolution_border_modes,
1295   GL_SUN_global_alpha,
1296   GL_SUN_mesh_array,
1297   GL_SUN_slice_accum,
1298   GL_SUN_triangle_list,
1299   GL_SUN_vertex,
1300
1301   GL_WIN_phong_shading,
1302   GL_WIN_specular_fog,
1303   WGL_3DFX_multisample,
1304   WGL_ARB_buffer_region,
1305   WGL_ARB_extensions_string,
1306   WGL_ARB_make_current_read,
1307   WGL_ARB_multisample,
1308   WGL_ARB_pbuffer,
1309   WGL_ARB_pixel_format,
1310   WGL_ARB_pixel_format_float,
1311   WGL_ARB_render_texture,
1312   WGL_ARB_create_context,
1313   WGL_ARB_create_context_profile,
1314   WGL_ARB_framebuffer_sRGB,
1315   WGL_ARB_create_context_robustness,
1316   WGL_ATI_pixel_format_float,
1317   WGL_AMD_gpu_association,
1318   WGL_EXT_depth_float,
1319   WGL_EXT_display_color_table,
1320   WGL_EXT_extensions_string,
1321   WGL_EXT_make_current_read,
1322   WGL_EXT_multisample,
1323   WGL_EXT_pbuffer,
1324   WGL_EXT_pixel_format,
1325   WGL_EXT_swap_control,
1326   WGL_EXT_create_context_es2_profile,
1327   WGL_I3D_digital_video_control,
1328   WGL_I3D_gamma,
1329   WGL_I3D_genlock,
1330   WGL_I3D_image_buffer,
1331   WGL_I3D_swap_frame_lock,
1332   WGL_I3D_swap_frame_usage,
1333   WGL_NV_float_buffer,
1334   WGL_NV_render_depth_texture,
1335   WGL_NV_render_texture_rectangle,
1336   WGL_NV_vertex_array_range,
1337   WGL_NV_present_video,
1338   WGL_NV_video_output,
1339   WGL_NV_swap_group,
1340   WGL_NV_gpu_affinity,
1341   WGL_NV_video_capture,
1342   WGL_NV_copy_image,
1343   WGL_NV_multisample_coverage,
1344   WGL_NV_DX_interop,
1345   WGL_OML_sync_control,
1346   WGL_3DL_stereo_control,
1347   WIN_draw_range_elements,
1348   WIN_swap_hint,
1349   
1350 //  GLX_VERSION_1_0,
1351   GLX_VERSION_1_3,
1352   GLX_VERSION_1_4,
1353   GLX_ARB_multisample,
1354   GLX_ARB_fbconfig_float,
1355   GLX_ARB_get_proc_address,
1356   GLX_ARB_create_context,
1357   GLX_ARB_create_context_profile,
1358   GLX_ARB_vertex_buffer_object,
1359   GLX_ARB_framebuffer_sRGB,
1360   GLX_ARB_create_context_robustness,
1361   GLX_EXT_visual_info,
1362   GLX_EXT_visual_rating,
1363   GLX_EXT_import_context,
1364   GLX_EXT_fbconfig_packed_float,
1365   GLX_EXT_framebuffer_sRGB,
1366   GLX_EXT_texture_from_pixmap,
1367   GLX_EXT_swap_control,
1368   GLX_EXT_create_context_es2_profile : Boolean;
1369
1370 const
1371   // GL_VERSION_1_1
1372   { AttribMask }
1373   GL_DEPTH_BUFFER_BIT = $00000100;
1374   GL_STENCIL_BUFFER_BIT = $00000400;
1375   GL_COLOR_BUFFER_BIT = $00004000;
1376   { Boolean }
1377   GL_TRUE = 1;
1378   GL_FALSE = 0;
1379   { BeginMode }
1380   GL_POINTS = $0000;
1381   GL_LINES = $0001;
1382   GL_LINE_LOOP = $0002;
1383   GL_LINE_STRIP = $0003;
1384   GL_TRIANGLES = $0004;
1385   GL_TRIANGLE_STRIP = $0005;
1386   GL_TRIANGLE_FAN = $0006;
1387   { AlphaFunction }
1388   GL_NEVER = $0200;
1389   GL_LESS = $0201;
1390   GL_EQUAL = $0202;
1391   GL_LEQUAL = $0203;
1392   GL_GREATER = $0204;
1393   GL_NOTEQUAL = $0205;
1394   GL_GEQUAL = $0206;
1395   GL_ALWAYS = $0207;
1396   { BlendingFactorDest }
1397   GL_ZERO = 0;
1398   GL_ONE = 1;
1399   GL_SRC_COLOR = $0300;
1400   GL_ONE_MINUS_SRC_COLOR = $0301;
1401   GL_SRC_ALPHA = $0302;
1402   GL_ONE_MINUS_SRC_ALPHA = $0303;
1403   GL_DST_ALPHA = $0304;
1404   GL_ONE_MINUS_DST_ALPHA = $0305;
1405   { BlendingFactorSrc }
1406   GL_DST_COLOR = $0306;
1407   GL_ONE_MINUS_DST_COLOR = $0307;
1408   GL_SRC_ALPHA_SATURATE = $0308;
1409   { DrawBufferMode }
1410   GL_NONE = 0;
1411   GL_FRONT_LEFT = $0400;
1412   GL_FRONT_RIGHT = $0401;
1413   GL_BACK_LEFT = $0402;
1414   GL_BACK_RIGHT = $0403;
1415   GL_FRONT = $0404;
1416   GL_BACK = $0405;
1417   GL_LEFT = $0406;
1418   GL_RIGHT = $0407;
1419   GL_FRONT_AND_BACK = $0408;
1420   { ErrorCode }
1421   GL_NO_ERROR = 0;
1422   GL_INVALID_ENUM = $0500;
1423   GL_INVALID_VALUE = $0501;
1424   GL_INVALID_OPERATION = $0502;
1425   GL_OUT_OF_MEMORY = $0505;
1426   { FrontFaceDirection }
1427   GL_CW = $0900;
1428   GL_CCW = $0901;
1429   { GetPName }
1430   GL_POINT_SIZE = $0B11;
1431   GL_POINT_SIZE_RANGE = $0B12;
1432   GL_POINT_SIZE_GRANULARITY = $0B13;
1433   GL_LINE_SMOOTH = $0B20;
1434   GL_LINE_WIDTH = $0B21;
1435   GL_LINE_WIDTH_RANGE = $0B22;
1436   GL_LINE_WIDTH_GRANULARITY = $0B23;
1437   GL_POLYGON_SMOOTH = $0B41;
1438   GL_CULL_FACE = $0B44;
1439   GL_CULL_FACE_MODE = $0B45;
1440   GL_FRONT_FACE = $0B46;
1441   GL_DEPTH_RANGE = $0B70;
1442   GL_DEPTH_TEST = $0B71;
1443   GL_DEPTH_WRITEMASK = $0B72;
1444   GL_DEPTH_CLEAR_VALUE = $0B73;
1445   GL_DEPTH_FUNC = $0B74;
1446   GL_STENCIL_TEST = $0B90;
1447   GL_STENCIL_CLEAR_VALUE = $0B91;
1448   GL_STENCIL_FUNC = $0B92;
1449   GL_STENCIL_VALUE_MASK = $0B93;
1450   GL_STENCIL_FAIL = $0B94;
1451   GL_STENCIL_PASS_DEPTH_FAIL = $0B95;
1452   GL_STENCIL_PASS_DEPTH_PASS = $0B96;
1453   GL_STENCIL_REF = $0B97;
1454   GL_STENCIL_WRITEMASK = $0B98;
1455   GL_VIEWPORT = $0BA2;
1456   GL_DITHER = $0BD0;
1457   GL_BLEND_DST = $0BE0;
1458   GL_BLEND_SRC = $0BE1;
1459   GL_BLEND = $0BE2;
1460   GL_LOGIC_OP_MODE = $0BF0;
1461   GL_COLOR_LOGIC_OP = $0BF2;
1462   GL_DRAW_BUFFER = $0C01;
1463   GL_READ_BUFFER = $0C02;
1464   GL_SCISSOR_BOX = $0C10;
1465   GL_SCISSOR_TEST = $0C11;
1466   GL_COLOR_CLEAR_VALUE = $0C22;
1467   GL_COLOR_WRITEMASK = $0C23;
1468   GL_DOUBLEBUFFER = $0C32;
1469   GL_STEREO = $0C33;
1470   GL_LINE_SMOOTH_HINT = $0C52;
1471   GL_POLYGON_SMOOTH_HINT = $0C53;
1472   GL_UNPACK_SWAP_BYTES = $0CF0;
1473   GL_UNPACK_LSB_FIRST = $0CF1;
1474   GL_UNPACK_ROW_LENGTH = $0CF2;
1475   GL_UNPACK_SKIP_ROWS = $0CF3;
1476   GL_UNPACK_SKIP_PIXELS = $0CF4;
1477   GL_UNPACK_ALIGNMENT = $0CF5;
1478   GL_PACK_SWAP_BYTES = $0D00;
1479   GL_PACK_LSB_FIRST = $0D01;
1480   GL_PACK_ROW_LENGTH = $0D02;
1481   GL_PACK_SKIP_ROWS = $0D03;
1482   GL_PACK_SKIP_PIXELS = $0D04;
1483   GL_PACK_ALIGNMENT = $0D05;
1484   GL_MAX_TEXTURE_SIZE = $0D33;
1485   GL_MAX_VIEWPORT_DIMS = $0D3A;
1486   GL_SUBPIXEL_BITS = $0D50;
1487   GL_TEXTURE_1D = $0DE0;
1488   GL_TEXTURE_2D = $0DE1;
1489   GL_POLYGON_OFFSET_UNITS = $2A00;
1490   GL_POLYGON_OFFSET_POINT = $2A01;
1491   GL_POLYGON_OFFSET_LINE = $2A02;
1492   GL_POLYGON_OFFSET_FILL = $8037;
1493   GL_POLYGON_OFFSET_FACTOR = $8038;
1494   GL_TEXTURE_BINDING_1D = $8068;
1495   GL_TEXTURE_BINDING_2D = $8069;
1496   { GetTextureParameter }
1497   GL_TEXTURE_WIDTH = $1000;
1498   GL_TEXTURE_HEIGHT = $1001;
1499   GL_TEXTURE_INTERNAL_FORMAT = $1003;
1500   GL_TEXTURE_BORDER_COLOR = $1004;
1501   GL_TEXTURE_BORDER = $1005;
1502   GL_TEXTURE_RED_SIZE = $805C;
1503   GL_TEXTURE_GREEN_SIZE = $805D;
1504   GL_TEXTURE_BLUE_SIZE = $805E;
1505   GL_TEXTURE_ALPHA_SIZE = $805F;
1506   { HintMode }
1507   GL_DONT_CARE = $1100;
1508   GL_FASTEST = $1101;
1509   GL_NICEST = $1102;
1510   { DataType }
1511   GL_BYTE = $1400;
1512   GL_UNSIGNED_BYTE = $1401;
1513   GL_SHORT = $1402;
1514   GL_UNSIGNED_SHORT = $1403;
1515   GL_INT = $1404;
1516   GL_UNSIGNED_INT = $1405;
1517   GL_FLOAT = $1406;
1518   GL_DOUBLE = $140A;
1519   { LogicOp }
1520   GL_CLEAR = $1500;
1521   GL_AND = $1501;
1522   GL_AND_REVERSE = $1502;
1523   GL_COPY = $1503;
1524   GL_AND_INVERTED = $1504;
1525   GL_NOOP = $1505;
1526   GL_XOR = $1506;
1527   GL_OR = $1507;
1528   GL_NOR = $1508;
1529   GL_EQUIV = $1509;
1530   GL_INVERT = $150A;
1531   GL_OR_REVERSE = $150B;
1532   GL_COPY_INVERTED = $150C;
1533   GL_OR_INVERTED = $150D;
1534   GL_NAND = $150E;
1535   GL_SET = $150F;
1536   { MatrixMode (for gl3.h, FBO attachment type) }
1537   GL_TEXTURE = $1702;
1538   { PixelCopyType }
1539   GL_COLOR = $1800;
1540   GL_DEPTH = $1801;
1541   GL_STENCIL = $1802;
1542   { PixelFormat }
1543   GL_STENCIL_INDEX = $1901;
1544   GL_DEPTH_COMPONENT = $1902;
1545   GL_RED = $1903;
1546   GL_GREEN = $1904;
1547   GL_BLUE = $1905;
1548   GL_ALPHA = $1906;
1549   GL_RGB = $1907;
1550   GL_RGBA = $1908;
1551   { PolygonMode }
1552   GL_POINT = $1B00;
1553   GL_LINE = $1B01;
1554   GL_FILL = $1B02;
1555   { StencilOp }
1556   GL_KEEP = $1E00;
1557   GL_REPLACE = $1E01;
1558   GL_INCR = $1E02;
1559   GL_DECR = $1E03;
1560   { StringName }
1561   GL_VENDOR = $1F00;
1562   GL_RENDERER = $1F01;
1563   GL_VERSION = $1F02;
1564   GL_EXTENSIONS = $1F03;
1565   { TextureMagFilter }
1566   GL_NEAREST = $2600;
1567   GL_LINEAR = $2601;
1568   { TextureMinFilter }
1569   GL_NEAREST_MIPMAP_NEAREST = $2700;
1570   GL_LINEAR_MIPMAP_NEAREST = $2701;
1571   GL_NEAREST_MIPMAP_LINEAR = $2702;
1572   GL_LINEAR_MIPMAP_LINEAR = $2703;
1573   { TextureParameterName }
1574   GL_TEXTURE_MAG_FILTER = $2800;
1575   GL_TEXTURE_MIN_FILTER = $2801;
1576   GL_TEXTURE_WRAP_S = $2802;
1577   GL_TEXTURE_WRAP_T = $2803;
1578   { TextureTarget }
1579   GL_PROXY_TEXTURE_1D = $8063;
1580   GL_PROXY_TEXTURE_2D = $8064;
1581   { TextureWrapMode }
1582   GL_REPEAT = $2901;
1583   { PixelInternalFormat }
1584   GL_R3_G3_B2 = $2A10;
1585   GL_RGB4 = $804F;
1586   GL_RGB5 = $8050;
1587   GL_RGB8 = $8051;
1588   GL_RGB10 = $8052;
1589   GL_RGB12 = $8053;
1590   GL_RGB16 = $8054;
1591   GL_RGBA2 = $8055;
1592   GL_RGBA4 = $8056;
1593   GL_RGB5_A1 = $8057;
1594   GL_RGBA8 = $8058;
1595   GL_RGB10_A2 = $8059;
1596   GL_RGBA12 = $805A;
1597   GL_RGBA16 = $805B;
1598 {$ifdef DGL_DEPRECATED}
1599   GL_ACCUM = $0100;
1600   GL_LOAD = $0101;
1601   GL_RETURN = $0102;
1602   GL_MULT = $0103;
1603   GL_ADD = $0104;
1604   GL_CURRENT_BIT = $00000001;
1605   GL_POINT_BIT = $00000002;
1606   GL_LINE_BIT = $00000004;
1607   GL_POLYGON_BIT = $00000008;
1608   GL_POLYGON_STIPPLE_BIT = $00000010;
1609   GL_PIXEL_MODE_BIT = $00000020;
1610   GL_LIGHTING_BIT = $00000040;
1611   GL_FOG_BIT = $00000080;
1612   GL_ACCUM_BUFFER_BIT = $00000200;
1613   GL_VIEWPORT_BIT = $00000800;
1614   GL_TRANSFORM_BIT = $00001000;
1615   GL_ENABLE_BIT = $00002000;
1616   GL_HINT_BIT = $00008000;
1617   GL_EVAL_BIT = $00010000;
1618   GL_LIST_BIT = $00020000;
1619   GL_TEXTURE_BIT = $00040000;
1620   GL_SCISSOR_BIT = $00080000;
1621   GL_ALL_ATTRIB_BITS = $000FFFFF;
1622   GL_QUADS = $0007;
1623   GL_QUAD_STRIP = $0008;
1624   GL_POLYGON = $0009;
1625   GL_CLIP_PLANE0 = $3000;
1626   GL_CLIP_PLANE1 = $3001;
1627   GL_CLIP_PLANE2 = $3002;
1628   GL_CLIP_PLANE3 = $3003;
1629   GL_CLIP_PLANE4 = $3004;
1630   GL_CLIP_PLANE5 = $3005;
1631   GL_2_BYTES = $1407;
1632   GL_3_BYTES = $1408;
1633   GL_4_BYTES = $1409;
1634   GL_AUX0 = $0409;
1635   GL_AUX1 = $040A;
1636   GL_AUX2 = $040B;
1637   GL_AUX3 = $040C;
1638   GL_STACK_OVERFLOW = $0503;
1639   GL_STACK_UNDERFLOW = $0504;
1640   GL_2D = $0600;
1641   GL_3D = $0601;
1642   GL_3D_COLOR = $0602;
1643   GL_3D_COLOR_TEXTURE = $0603;
1644   GL_4D_COLOR_TEXTURE = $0604;
1645   GL_PASS_THROUGH_TOKEN = $0700;
1646   GL_POINT_TOKEN = $0701;
1647   GL_LINE_TOKEN = $0702;
1648   GL_POLYGON_TOKEN = $0703;
1649   GL_BITMAP_TOKEN = $0704;
1650   GL_DRAW_PIXEL_TOKEN = $0705;
1651   GL_COPY_PIXEL_TOKEN = $0706;
1652   GL_LINE_RESET_TOKEN = $0707;
1653   GL_EXP = $0800;
1654   GL_EXP2 = $0801;
1655   GL_COEFF = $0A00;
1656   GL_ORDER = $0A01;
1657   GL_DOMAIN = $0A02;
1658   GL_CURRENT_COLOR = $0B00;
1659   GL_CURRENT_INDEX = $0B01;
1660   GL_CURRENT_NORMAL = $0B02;
1661   GL_CURRENT_TEXTURE_COORDS = $0B03;
1662   GL_CURRENT_RASTER_COLOR = $0B04;
1663   GL_CURRENT_RASTER_INDEX = $0B05;
1664   GL_CURRENT_RASTER_TEXTURE_COORDS = $0B06;
1665   GL_CURRENT_RASTER_POSITION = $0B07;
1666   GL_CURRENT_RASTER_POSITION_VALID = $0B08;
1667   GL_CURRENT_RASTER_DISTANCE = $0B09;
1668   GL_POINT_SMOOTH = $0B10;
1669   GL_LINE_STIPPLE = $0B24;
1670   GL_LINE_STIPPLE_PATTERN = $0B25;
1671   GL_LINE_STIPPLE_REPEAT = $0B26;
1672   GL_LIST_MODE = $0B30;
1673   GL_MAX_LIST_NESTING = $0B31;
1674   GL_LIST_BASE = $0B32;
1675   GL_LIST_INDEX = $0B33;
1676   GL_POLYGON_MODE = $0B40;
1677   GL_POLYGON_STIPPLE = $0B42;
1678   GL_EDGE_FLAG = $0B43;
1679   GL_LIGHTING = $0B50;
1680   GL_LIGHT_MODEL_LOCAL_VIEWER = $0B51;
1681   GL_LIGHT_MODEL_TWO_SIDE = $0B52;
1682   GL_LIGHT_MODEL_AMBIENT = $0B53;
1683   GL_SHADE_MODEL = $0B54;
1684   GL_COLOR_MATERIAL_FACE = $0B55;
1685   GL_COLOR_MATERIAL_PARAMETER = $0B56;
1686   GL_COLOR_MATERIAL = $0B57;
1687   GL_FOG = $0B60;
1688   GL_FOG_INDEX = $0B61;
1689   GL_FOG_DENSITY = $0B62;
1690   GL_FOG_START = $0B63;
1691   GL_FOG_END = $0B64;
1692   GL_FOG_MODE = $0B65;
1693   GL_FOG_COLOR = $0B66;
1694   GL_ACCUM_CLEAR_VALUE = $0B80;
1695   GL_MATRIX_MODE = $0BA0;
1696   GL_NORMALIZE = $0BA1;
1697   GL_MODELVIEW_STACK_DEPTH = $0BA3;
1698   GL_PROJECTION_STACK_DEPTH = $0BA4;
1699   GL_TEXTURE_STACK_DEPTH = $0BA5;
1700   GL_MODELVIEW_MATRIX = $0BA6;
1701   GL_PROJECTION_MATRIX = $0BA7;
1702   GL_TEXTURE_MATRIX = $0BA8;
1703   GL_ATTRIB_STACK_DEPTH = $0BB0;
1704   GL_CLIENT_ATTRIB_STACK_DEPTH = $0BB1;
1705   GL_ALPHA_TEST = $0BC0;
1706   GL_ALPHA_TEST_FUNC = $0BC1;
1707   GL_ALPHA_TEST_REF = $0BC2;
1708   GL_INDEX_LOGIC_OP = $0BF1;
1709   GL_AUX_BUFFERS = $0C00;
1710   GL_INDEX_CLEAR_VALUE = $0C20;
1711   GL_INDEX_WRITEMASK = $0C21;
1712   GL_INDEX_MODE = $0C30;
1713   GL_RGBA_MODE = $0C31;
1714   GL_RENDER_MODE = $0C40;
1715   GL_PERSPECTIVE_CORRECTION_HINT = $0C50;
1716   GL_POINT_SMOOTH_HINT = $0C51;
1717   GL_FOG_HINT = $0C54;
1718   GL_TEXTURE_GEN_S = $0C60;
1719   GL_TEXTURE_GEN_T = $0C61;
1720   GL_TEXTURE_GEN_R = $0C62;
1721   GL_TEXTURE_GEN_Q = $0C63;
1722   GL_PIXEL_MAP_I_TO_I = $0C70;
1723   GL_PIXEL_MAP_S_TO_S = $0C71;
1724   GL_PIXEL_MAP_I_TO_R = $0C72;
1725   GL_PIXEL_MAP_I_TO_G = $0C73;
1726   GL_PIXEL_MAP_I_TO_B = $0C74;
1727   GL_PIXEL_MAP_I_TO_A = $0C75;
1728   GL_PIXEL_MAP_R_TO_R = $0C76;
1729   GL_PIXEL_MAP_G_TO_G = $0C77;
1730   GL_PIXEL_MAP_B_TO_B = $0C78;
1731   GL_PIXEL_MAP_A_TO_A = $0C79;
1732   GL_PIXEL_MAP_I_TO_I_SIZE = $0CB0;
1733   GL_PIXEL_MAP_S_TO_S_SIZE = $0CB1;
1734   GL_PIXEL_MAP_I_TO_R_SIZE = $0CB2;
1735   GL_PIXEL_MAP_I_TO_G_SIZE = $0CB3;
1736   GL_PIXEL_MAP_I_TO_B_SIZE = $0CB4;
1737   GL_PIXEL_MAP_I_TO_A_SIZE = $0CB5;
1738   GL_PIXEL_MAP_R_TO_R_SIZE = $0CB6;
1739   GL_PIXEL_MAP_G_TO_G_SIZE = $0CB7;
1740   GL_PIXEL_MAP_B_TO_B_SIZE = $0CB8;
1741   GL_PIXEL_MAP_A_TO_A_SIZE = $0CB9;
1742   GL_MAP_COLOR = $0D10;
1743   GL_MAP_STENCIL = $0D11;
1744   GL_INDEX_SHIFT = $0D12;
1745   GL_INDEX_OFFSET = $0D13;
1746   GL_RED_SCALE = $0D14;
1747   GL_RED_BIAS = $0D15;
1748   GL_ZOOM_X = $0D16;
1749   GL_ZOOM_Y = $0D17;
1750   GL_GREEN_SCALE = $0D18;
1751   GL_GREEN_BIAS = $0D19;
1752   GL_BLUE_SCALE = $0D1A;
1753   GL_BLUE_BIAS = $0D1B;
1754   GL_ALPHA_SCALE = $0D1C;
1755   GL_ALPHA_BIAS = $0D1D;
1756   GL_DEPTH_SCALE = $0D1E;
1757   GL_DEPTH_BIAS = $0D1F;
1758   GL_MAX_EVAL_ORDER = $0D30;
1759   GL_MAX_LIGHTS = $0D31;
1760   GL_MAX_CLIP_PLANES = $0D32;
1761   GL_MAX_PIXEL_MAP_TABLE = $0D34;
1762   GL_MAX_ATTRIB_STACK_DEPTH = $0D35;
1763   GL_MAX_MODELVIEW_STACK_DEPTH = $0D36;
1764   GL_MAX_NAME_STACK_DEPTH = $0D37;
1765   GL_MAX_PROJECTION_STACK_DEPTH = $0D38;
1766   GL_MAX_TEXTURE_STACK_DEPTH = $0D39;
1767   GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = $0D3B;
1768   GL_INDEX_BITS = $0D51;
1769   GL_RED_BITS = $0D52;
1770   GL_GREEN_BITS = $0D53;
1771   GL_BLUE_BITS = $0D54;
1772   GL_ALPHA_BITS = $0D55;
1773   GL_DEPTH_BITS = $0D56;
1774   GL_STENCIL_BITS = $0D57;
1775   GL_ACCUM_RED_BITS = $0D58;
1776   GL_ACCUM_GREEN_BITS = $0D59;
1777   GL_ACCUM_BLUE_BITS = $0D5A;
1778   GL_ACCUM_ALPHA_BITS = $0D5B;
1779   GL_NAME_STACK_DEPTH = $0D70;
1780   GL_AUTO_NORMAL = $0D80;
1781   GL_MAP1_COLOR_4 = $0D90;
1782   GL_MAP1_INDEX = $0D91;
1783   GL_MAP1_NORMAL = $0D92;
1784   GL_MAP1_TEXTURE_COORD_1 = $0D93;
1785   GL_MAP1_TEXTURE_COORD_2 = $0D94;
1786   GL_MAP1_TEXTURE_COORD_3 = $0D95;
1787   GL_MAP1_TEXTURE_COORD_4 = $0D96;
1788   GL_MAP1_VERTEX_3 = $0D97;
1789   GL_MAP1_VERTEX_4 = $0D98;
1790   GL_MAP2_COLOR_4 = $0DB0;
1791   GL_MAP2_INDEX = $0DB1;
1792   GL_MAP2_NORMAL = $0DB2;
1793   GL_MAP2_TEXTURE_COORD_1 = $0DB3;
1794   GL_MAP2_TEXTURE_COORD_2 = $0DB4;
1795   GL_MAP2_TEXTURE_COORD_3 = $0DB5;
1796   GL_MAP2_TEXTURE_COORD_4 = $0DB6;
1797   GL_MAP2_VERTEX_3 = $0DB7;
1798   GL_MAP2_VERTEX_4 = $0DB8;
1799   GL_MAP1_GRID_DOMAIN = $0DD0;
1800   GL_MAP1_GRID_SEGMENTS = $0DD1;
1801   GL_MAP2_GRID_DOMAIN = $0DD2;
1802   GL_MAP2_GRID_SEGMENTS = $0DD3;
1803   GL_FEEDBACK_BUFFER_POINTER = $0DF0;
1804   GL_FEEDBACK_BUFFER_SIZE = $0DF1;
1805   GL_FEEDBACK_BUFFER_TYPE = $0DF2;
1806   GL_SELECTION_BUFFER_POINTER = $0DF3;
1807   GL_SELECTION_BUFFER_SIZE = $0DF4;
1808   GL_LIGHT0 = $4000;
1809   GL_LIGHT1 = $4001;
1810   GL_LIGHT2 = $4002;
1811   GL_LIGHT3 = $4003;
1812   GL_LIGHT4 = $4004;
1813   GL_LIGHT5 = $4005;
1814   GL_LIGHT6 = $4006;
1815   GL_LIGHT7 = $4007;
1816   GL_AMBIENT = $1200;
1817   GL_DIFFUSE = $1201;
1818   GL_SPECULAR = $1202;
1819   GL_POSITION = $1203;
1820   GL_SPOT_DIRECTION = $1204;
1821   GL_SPOT_EXPONENT = $1205;
1822   GL_SPOT_CUTOFF = $1206;
1823   GL_CONSTANT_ATTENUATION = $1207;
1824   GL_LINEAR_ATTENUATION = $1208;
1825   GL_QUADRATIC_ATTENUATION = $1209;
1826   GL_COMPILE = $1300;
1827   GL_COMPILE_AND_EXECUTE = $1301;
1828   GL_EMISSION = $1600;
1829   GL_SHININESS = $1601;
1830   GL_AMBIENT_AND_DIFFUSE = $1602;
1831   GL_COLOR_INDEXES = $1603;
1832   GL_MODELVIEW = $1700;
1833   GL_PROJECTION = $1701;
1834   GL_COLOR_INDEX = $1900;
1835   GL_LUMINANCE = $1909;
1836   GL_LUMINANCE_ALPHA = $190A;
1837   GL_BITMAP = $1A00;
1838   GL_RENDER = $1C00;
1839   GL_FEEDBACK = $1C01;
1840   GL_SELECT = $1C02;
1841   GL_FLAT = $1D00;
1842   GL_SMOOTH = $1D01;
1843   GL_S = $2000;
1844   GL_T = $2001;
1845   GL_R = $2002;
1846   GL_Q = $2003;
1847   GL_MODULATE = $2100;
1848   GL_DECAL = $2101;
1849   GL_TEXTURE_ENV_MODE = $2200;
1850   GL_TEXTURE_ENV_COLOR = $2201;
1851   GL_TEXTURE_ENV = $2300;
1852   GL_EYE_LINEAR = $2400;
1853   GL_OBJECT_LINEAR = $2401;
1854   GL_SPHERE_MAP = $2402;
1855   GL_TEXTURE_GEN_MODE = $2500;
1856   GL_OBJECT_PLANE = $2501;
1857   GL_EYE_PLANE = $2502;
1858   GL_CLAMP = $2900;
1859   GL_CLIENT_PIXEL_STORE_BIT = $00000001;
1860   GL_CLIENT_VERTEX_ARRAY_BIT = $00000002;
1861   GL_CLIENT_ALL_ATTRIB_BITS = $FFFFFFFF;
1862   GL_ALPHA4 = $803B;
1863   GL_ALPHA8 = $803C;
1864   GL_ALPHA12 = $803D;
1865   GL_ALPHA16 = $803E;
1866   GL_LUMINANCE4 = $803F;
1867   GL_LUMINANCE8 = $8040;
1868   GL_LUMINANCE12 = $8041;
1869   GL_LUMINANCE16 = $8042;
1870   GL_LUMINANCE4_ALPHA4 = $8043;
1871   GL_LUMINANCE6_ALPHA2 = $8044;
1872   GL_LUMINANCE8_ALPHA8 = $8045;
1873   GL_LUMINANCE12_ALPHA4 = $8046;
1874   GL_LUMINANCE12_ALPHA12 = $8047;
1875   GL_LUMINANCE16_ALPHA16 = $8048;
1876   GL_INTENSITY = $8049;
1877   GL_INTENSITY4 = $804A;
1878   GL_INTENSITY8 = $804B;
1879   GL_INTENSITY12 = $804C;
1880   GL_INTENSITY16 = $804D;
1881   GL_TEXTURE_LUMINANCE_SIZE = $8060;
1882   GL_TEXTURE_INTENSITY_SIZE = $8061;
1883   GL_TEXTURE_PRIORITY = $8066;
1884   GL_TEXTURE_RESIDENT = $8067;
1885   GL_VERTEX_ARRAY = $8074;
1886   GL_NORMAL_ARRAY = $8075;
1887   GL_COLOR_ARRAY = $8076;
1888   GL_INDEX_ARRAY = $8077;
1889   GL_TEXTURE_COORD_ARRAY = $8078;
1890   GL_EDGE_FLAG_ARRAY = $8079;
1891   GL_VERTEX_ARRAY_SIZE = $807A;
1892   GL_VERTEX_ARRAY_TYPE = $807B;
1893   GL_VERTEX_ARRAY_STRIDE = $807C;
1894   GL_NORMAL_ARRAY_TYPE = $807E;
1895   GL_NORMAL_ARRAY_STRIDE = $807F;
1896   GL_COLOR_ARRAY_SIZE = $8081;
1897   GL_COLOR_ARRAY_TYPE = $8082;
1898   GL_COLOR_ARRAY_STRIDE = $8083;
1899   GL_INDEX_ARRAY_TYPE = $8085;
1900   GL_INDEX_ARRAY_STRIDE = $8086;
1901   GL_TEXTURE_COORD_ARRAY_SIZE = $8088;
1902   GL_TEXTURE_COORD_ARRAY_TYPE = $8089;
1903   GL_TEXTURE_COORD_ARRAY_STRIDE = $808A;
1904   GL_EDGE_FLAG_ARRAY_STRIDE = $808C;
1905   GL_VERTEX_ARRAY_POINTER = $808E;
1906   GL_NORMAL_ARRAY_POINTER = $808F;
1907   GL_COLOR_ARRAY_POINTER = $8090;
1908   GL_INDEX_ARRAY_POINTER = $8091;
1909   GL_TEXTURE_COORD_ARRAY_POINTER = $8092;
1910   GL_EDGE_FLAG_ARRAY_POINTER = $8093;
1911   GL_V2F = $2A20;
1912   GL_V3F = $2A21;
1913   GL_C4UB_V2F = $2A22;
1914   GL_C4UB_V3F = $2A23;
1915   GL_C3F_V3F = $2A24;
1916   GL_N3F_V3F = $2A25;
1917   GL_C4F_N3F_V3F = $2A26;
1918   GL_T2F_V3F = $2A27;
1919   GL_T4F_V4F = $2A28;
1920   GL_T2F_C4UB_V3F = $2A29;
1921   GL_T2F_C3F_V3F = $2A2A;
1922   GL_T2F_N3F_V3F = $2A2B;
1923   GL_T2F_C4F_N3F_V3F = $2A2C;
1924   GL_T4F_C4F_N3F_V4F = $2A2D;
1925   GL_COLOR_TABLE_FORMAT_EXT = $80D8;
1926   GL_COLOR_TABLE_WIDTH_EXT = $80D9;
1927   GL_COLOR_TABLE_RED_SIZE_EXT = $80DA;
1928   GL_COLOR_TABLE_GREEN_SIZE_EXT = $80DB;
1929   GL_COLOR_TABLE_BLUE_SIZE_EXT = $80DC;
1930   GL_COLOR_TABLE_ALPHA_SIZE_EXT = $80DD;
1931   GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = $80DE;
1932   GL_COLOR_TABLE_INTENSITY_SIZE_EXT = $80DF;
1933   GL_LOGIC_OP = GL_INDEX_LOGIC_OP;
1934   GL_TEXTURE_COMPONENTS = GL_TEXTURE_INTERNAL_FORMAT;
1935 {$endif}
1936
1937   // GL_VERSION_1_2
1938   GL_UNSIGNED_BYTE_3_3_2 = $8032;
1939   GL_UNSIGNED_SHORT_4_4_4_4 = $8033;
1940   GL_UNSIGNED_SHORT_5_5_5_1 = $8034;
1941   GL_UNSIGNED_INT_8_8_8_8 = $8035;
1942   GL_UNSIGNED_INT_10_10_10_2 = $8036;
1943   GL_TEXTURE_BINDING_3D = $806A;
1944   GL_PACK_SKIP_IMAGES = $806B;
1945   GL_PACK_IMAGE_HEIGHT = $806C;
1946   GL_UNPACK_SKIP_IMAGES = $806D;
1947   GL_UNPACK_IMAGE_HEIGHT = $806E;
1948   GL_TEXTURE_3D = $806F;
1949   GL_PROXY_TEXTURE_3D = $8070;
1950   GL_TEXTURE_DEPTH = $8071;
1951   GL_TEXTURE_WRAP_R = $8072;
1952   GL_MAX_3D_TEXTURE_SIZE = $8073;
1953   GL_UNSIGNED_BYTE_2_3_3_REV = $8362;
1954   GL_UNSIGNED_SHORT_5_6_5 = $8363;
1955   GL_UNSIGNED_SHORT_5_6_5_REV = $8364;
1956   GL_UNSIGNED_SHORT_4_4_4_4_REV = $8365;
1957   GL_UNSIGNED_SHORT_1_5_5_5_REV = $8366;
1958   GL_UNSIGNED_INT_8_8_8_8_REV = $8367;
1959   GL_UNSIGNED_INT_2_10_10_10_REV = $8368;
1960   GL_BGR = $80E0;
1961   GL_BGRA = $80E1;
1962   GL_MAX_ELEMENTS_VERTICES = $80E8;
1963   GL_MAX_ELEMENTS_INDICES = $80E9;
1964   GL_CLAMP_TO_EDGE = $812F;
1965   GL_TEXTURE_MIN_LOD = $813A;
1966   GL_TEXTURE_MAX_LOD = $813B;
1967   GL_TEXTURE_BASE_LEVEL = $813C;
1968   GL_TEXTURE_MAX_LEVEL = $813D;
1969   GL_SMOOTH_POINT_SIZE_RANGE = $0B12;
1970   GL_SMOOTH_POINT_SIZE_GRANULARITY = $0B13;
1971   GL_SMOOTH_LINE_WIDTH_RANGE = $0B22;
1972   GL_SMOOTH_LINE_WIDTH_GRANULARITY = $0B23;
1973   GL_ALIASED_LINE_WIDTH_RANGE = $846E;
1974 {$ifdef DGL_DEPRECATED}
1975   GL_RESCALE_NORMAL = $803A;
1976   GL_LIGHT_MODEL_COLOR_CONTROL = $81F8;
1977   GL_SINGLE_COLOR = $81F9;
1978   GL_SEPARATE_SPECULAR_COLOR = $81FA;
1979   GL_ALIASED_POINT_SIZE_RANGE = $846D;
1980 {$endif}
1981
1982   // GL_VERSION_1_3
1983   GL_TEXTURE0 = $84C0;
1984   GL_TEXTURE1 = $84C1;
1985   GL_TEXTURE2 = $84C2;
1986   GL_TEXTURE3 = $84C3;
1987   GL_TEXTURE4 = $84C4;
1988   GL_TEXTURE5 = $84C5;
1989   GL_TEXTURE6 = $84C6;
1990   GL_TEXTURE7 = $84C7;
1991   GL_TEXTURE8 = $84C8;
1992   GL_TEXTURE9 = $84C9;
1993   GL_TEXTURE10 = $84CA;
1994   GL_TEXTURE11 = $84CB;
1995   GL_TEXTURE12 = $84CC;
1996   GL_TEXTURE13 = $84CD;
1997   GL_TEXTURE14 = $84CE;
1998   GL_TEXTURE15 = $84CF;
1999   GL_TEXTURE16 = $84D0;
2000   GL_TEXTURE17 = $84D1;
2001   GL_TEXTURE18 = $84D2;
2002   GL_TEXTURE19 = $84D3;
2003   GL_TEXTURE20 = $84D4;
2004   GL_TEXTURE21 = $84D5;
2005   GL_TEXTURE22 = $84D6;
2006   GL_TEXTURE23 = $84D7;
2007   GL_TEXTURE24 = $84D8;
2008   GL_TEXTURE25 = $84D9;
2009   GL_TEXTURE26 = $84DA;
2010   GL_TEXTURE27 = $84DB;
2011   GL_TEXTURE28 = $84DC;
2012   GL_TEXTURE29 = $84DD;
2013   GL_TEXTURE30 = $84DE;
2014   GL_TEXTURE31 = $84DF;
2015   GL_ACTIVE_TEXTURE = $84E0;
2016   GL_MULTISAMPLE = $809D;
2017   GL_SAMPLE_ALPHA_TO_COVERAGE = $809E;
2018   GL_SAMPLE_ALPHA_TO_ONE = $809F;
2019   GL_SAMPLE_COVERAGE = $80A0;
2020   GL_SAMPLE_BUFFERS = $80A8;
2021   GL_SAMPLES = $80A9;
2022   GL_SAMPLE_COVERAGE_VALUE = $80AA;
2023   GL_SAMPLE_COVERAGE_INVERT = $80AB;
2024   GL_TEXTURE_CUBE_MAP = $8513;
2025   GL_TEXTURE_BINDING_CUBE_MAP = $8514;
2026   GL_TEXTURE_CUBE_MAP_POSITIVE_X = $8515;
2027   GL_TEXTURE_CUBE_MAP_NEGATIVE_X = $8516;
2028   GL_TEXTURE_CUBE_MAP_POSITIVE_Y = $8517;
2029   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = $8518;
2030   GL_TEXTURE_CUBE_MAP_POSITIVE_Z = $8519;
2031   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = $851A;
2032   GL_PROXY_TEXTURE_CUBE_MAP = $851B;
2033   GL_MAX_CUBE_MAP_TEXTURE_SIZE = $851C;
2034   GL_COMPRESSED_RGB = $84ED;
2035   GL_COMPRESSED_RGBA = $84EE;
2036   GL_TEXTURE_COMPRESSION_HINT = $84EF;
2037   GL_TEXTURE_COMPRESSED_IMAGE_SIZE = $86A0;
2038   GL_TEXTURE_COMPRESSED = $86A1;
2039   GL_NUM_COMPRESSED_TEXTURE_FORMATS = $86A2;
2040   GL_COMPRESSED_TEXTURE_FORMATS = $86A3;
2041   GL_CLAMP_TO_BORDER = $812D;
2042 {$ifdef DGL_DEPRECATED}
2043   GL_CLIENT_ACTIVE_TEXTURE = $84E1;
2044   GL_MAX_TEXTURE_UNITS = $84E2;
2045   GL_TRANSPOSE_MODELVIEW_MATRIX = $84E3;
2046   GL_TRANSPOSE_PROJECTION_MATRIX = $84E4;
2047   GL_TRANSPOSE_TEXTURE_MATRIX = $84E5;
2048   GL_TRANSPOSE_COLOR_MATRIX = $84E6;
2049   GL_MULTISAMPLE_BIT = $20000000;
2050   GL_NORMAL_MAP = $8511;
2051   GL_REFLECTION_MAP = $8512;
2052   GL_COMPRESSED_ALPHA = $84E9;
2053   GL_COMPRESSED_LUMINANCE = $84EA;
2054   GL_COMPRESSED_LUMINANCE_ALPHA = $84EB;
2055   GL_COMPRESSED_INTENSITY = $84EC;
2056   GL_COMBINE = $8570;
2057   GL_COMBINE_RGB = $8571;
2058   GL_COMBINE_ALPHA = $8572;
2059   GL_SOURCE0_RGB = $8580;
2060   GL_SOURCE1_RGB = $8581;
2061   GL_SOURCE2_RGB = $8582;
2062   GL_SOURCE0_ALPHA = $8588;
2063   GL_SOURCE1_ALPHA = $8589;
2064   GL_SOURCE2_ALPHA = $858A;
2065   GL_OPERAND0_RGB = $8590;
2066   GL_OPERAND1_RGB = $8591;
2067   GL_OPERAND2_RGB = $8592;
2068   GL_OPERAND0_ALPHA = $8598;
2069   GL_OPERAND1_ALPHA = $8599;
2070   GL_OPERAND2_ALPHA = $859A;
2071   GL_RGB_SCALE = $8573;
2072   GL_ADD_SIGNED = $8574;
2073   GL_INTERPOLATE = $8575;
2074   GL_SUBTRACT = $84E7;
2075   GL_CONSTANT = $8576;
2076   GL_PRIMARY_COLOR = $8577;
2077   GL_PREVIOUS = $8578;
2078   GL_DOT3_RGB = $86AE;
2079   GL_DOT3_RGBA = $86AF;
2080 {$endif}
2081
2082   // GL_VERSION_1_4
2083   GL_BLEND_DST_RGB = $80C8;
2084   GL_BLEND_SRC_RGB = $80C9;
2085   GL_BLEND_DST_ALPHA = $80CA;
2086   GL_BLEND_SRC_ALPHA = $80CB;
2087   GL_POINT_FADE_THRESHOLD_SIZE = $8128;
2088   GL_DEPTH_COMPONENT16 = $81A5;
2089   GL_DEPTH_COMPONENT24 = $81A6;
2090   GL_DEPTH_COMPONENT32 = $81A7;
2091   GL_MIRRORED_REPEAT = $8370;
2092   GL_MAX_TEXTURE_LOD_BIAS = $84FD;
2093   GL_TEXTURE_LOD_BIAS = $8501;
2094   GL_INCR_WRAP = $8507;
2095   GL_DECR_WRAP = $8508;
2096   GL_TEXTURE_DEPTH_SIZE = $884A;
2097   GL_TEXTURE_COMPARE_MODE = $884C;
2098   GL_TEXTURE_COMPARE_FUNC = $884D;
2099 {$ifdef DGL_DEPRECATED}
2100   GL_POINT_SIZE_MIN = $8126;
2101   GL_POINT_SIZE_MAX = $8127;
2102   GL_POINT_DISTANCE_ATTENUATION = $8129;
2103   GL_GENERATE_MIPMAP = $8191;
2104   GL_GENERATE_MIPMAP_HINT = $8192;
2105   GL_FOG_COORDINATE_SOURCE = $8450;
2106   GL_FOG_COORDINATE = $8451;
2107   GL_FRAGMENT_DEPTH = $8452;
2108   GL_CURRENT_FOG_COORDINATE = $8453;
2109   GL_FOG_COORDINATE_ARRAY_TYPE = $8454;
2110   GL_FOG_COORDINATE_ARRAY_STRIDE = $8455;
2111   GL_FOG_COORDINATE_ARRAY_POINTER = $8456;
2112   GL_FOG_COORDINATE_ARRAY = $8457;
2113   GL_COLOR_SUM = $8458;
2114   GL_CURRENT_SECONDARY_COLOR = $8459;
2115   GL_SECONDARY_COLOR_ARRAY_SIZE = $845A;
2116   GL_SECONDARY_COLOR_ARRAY_TYPE = $845B;
2117   GL_SECONDARY_COLOR_ARRAY_STRIDE = $845C;
2118   GL_SECONDARY_COLOR_ARRAY_POINTER = $845D;
2119   GL_SECONDARY_COLOR_ARRAY = $845E;
2120   GL_TEXTURE_FILTER_CONTROL = $8500;
2121   GL_DEPTH_TEXTURE_MODE = $884B;
2122   GL_COMPARE_R_TO_TEXTURE = $884E;
2123 {$endif}
2124
2125   // GL_VERSION_1_5
2126   GL_BUFFER_SIZE = $8764;
2127   GL_BUFFER_USAGE = $8765;
2128   GL_QUERY_COUNTER_BITS = $8864;
2129   GL_CURRENT_QUERY = $8865;
2130   GL_QUERY_RESULT = $8866;
2131   GL_QUERY_RESULT_AVAILABLE = $8867;
2132   GL_ARRAY_BUFFER = $8892;
2133   GL_ELEMENT_ARRAY_BUFFER = $8893;
2134   GL_ARRAY_BUFFER_BINDING = $8894;
2135   GL_ELEMENT_ARRAY_BUFFER_BINDING = $8895;
2136   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = $889F;
2137   GL_READ_ONLY = $88B8;
2138   GL_WRITE_ONLY = $88B9;
2139   GL_READ_WRITE = $88BA;
2140   GL_BUFFER_ACCESS = $88BB;
2141   GL_BUFFER_MAPPED = $88BC;
2142   GL_BUFFER_MAP_POINTER = $88BD;
2143   GL_STREAM_DRAW = $88E0;
2144   GL_STREAM_READ = $88E1;
2145   GL_STREAM_COPY = $88E2;
2146   GL_STATIC_DRAW = $88E4;
2147   GL_STATIC_READ = $88E5;
2148   GL_STATIC_COPY = $88E6;
2149   GL_DYNAMIC_DRAW = $88E8;
2150   GL_DYNAMIC_READ = $88E9;
2151   GL_DYNAMIC_COPY = $88EA;
2152   GL_SAMPLES_PASSED = $8914;
2153 {$ifdef DGL_DEPRECATED}
2154   GL_VERTEX_ARRAY_BUFFER_BINDING = $8896;
2155   GL_NORMAL_ARRAY_BUFFER_BINDING = $8897;
2156   GL_COLOR_ARRAY_BUFFER_BINDING = $8898;
2157   GL_INDEX_ARRAY_BUFFER_BINDING = $8899;
2158   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = $889A;
2159   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = $889B;
2160   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = $889C;
2161   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = $889D;
2162   GL_WEIGHT_ARRAY_BUFFER_BINDING = $889E;
2163   GL_FOG_COORD_SRC = $8450;
2164   GL_FOG_COORD = $8451;
2165   GL_CURRENT_FOG_COORD = $8453;
2166   GL_FOG_COORD_ARRAY_TYPE = $8454;
2167   GL_FOG_COORD_ARRAY_STRIDE = $8455;
2168   GL_FOG_COORD_ARRAY_POINTER = $8456;
2169   GL_FOG_COORD_ARRAY = $8457;
2170   GL_FOG_COORD_ARRAY_BUFFER_BINDING = $889D;
2171   GL_SRC0_RGB = $8580;
2172   GL_SRC1_RGB = $8581;
2173   GL_SRC2_RGB = $8582;
2174   GL_SRC0_ALPHA = $8588;
2175   GL_SRC1_ALPHA = $8589;
2176   GL_SRC2_ALPHA = $858A;
2177 {$endif}
2178
2179   // GL_VERSION_2_0
2180   GL_BLEND_EQUATION_RGB = $8009;
2181   GL_VERTEX_ATTRIB_ARRAY_ENABLED = $8622;
2182   GL_VERTEX_ATTRIB_ARRAY_SIZE = $8623;
2183   GL_VERTEX_ATTRIB_ARRAY_STRIDE = $8624;
2184   GL_VERTEX_ATTRIB_ARRAY_TYPE = $8625;
2185   GL_CURRENT_VERTEX_ATTRIB = $8626;
2186   GL_VERTEX_PROGRAM_POINT_SIZE = $8642;
2187   GL_VERTEX_ATTRIB_ARRAY_POINTER = $8645;
2188   GL_STENCIL_BACK_FUNC = $8800;
2189   GL_STENCIL_BACK_FAIL = $8801;
2190   GL_STENCIL_BACK_PASS_DEPTH_FAIL = $8802;
2191   GL_STENCIL_BACK_PASS_DEPTH_PASS = $8803;
2192   GL_MAX_DRAW_BUFFERS = $8824;
2193   GL_DRAW_BUFFER0 = $8825;
2194   GL_DRAW_BUFFER1 = $8826;
2195   GL_DRAW_BUFFER2 = $8827;
2196   GL_DRAW_BUFFER3 = $8828;
2197   GL_DRAW_BUFFER4 = $8829;
2198   GL_DRAW_BUFFER5 = $882A;
2199   GL_DRAW_BUFFER6 = $882B;
2200   GL_DRAW_BUFFER7 = $882C;
2201   GL_DRAW_BUFFER8 = $882D;
2202   GL_DRAW_BUFFER9 = $882E;
2203   GL_DRAW_BUFFER10 = $882F;
2204   GL_DRAW_BUFFER11 = $8830;
2205   GL_DRAW_BUFFER12 = $8831;
2206   GL_DRAW_BUFFER13 = $8832;
2207   GL_DRAW_BUFFER14 = $8833;
2208   GL_DRAW_BUFFER15 = $8834;
2209   GL_BLEND_EQUATION_ALPHA = $883D;
2210   GL_MAX_VERTEX_ATTRIBS = $8869;
2211   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = $886A;
2212   GL_MAX_TEXTURE_IMAGE_UNITS = $8872;
2213   GL_FRAGMENT_SHADER = $8B30;
2214   GL_VERTEX_SHADER = $8B31;
2215   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = $8B49;
2216   GL_MAX_VERTEX_UNIFORM_COMPONENTS = $8B4A;
2217   GL_MAX_VARYING_FLOATS = $8B4B;
2218   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = $8B4C;
2219   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = $8B4D;
2220   GL_SHADER_TYPE = $8B4F;
2221   GL_FLOAT_VEC2 = $8B50;
2222   GL_FLOAT_VEC3 = $8B51;
2223   GL_FLOAT_VEC4 = $8B52;
2224   GL_INT_VEC2 = $8B53;
2225   GL_INT_VEC3 = $8B54;
2226   GL_INT_VEC4 = $8B55;
2227   GL_BOOL = $8B56;
2228   GL_BOOL_VEC2 = $8B57;
2229   GL_BOOL_VEC3 = $8B58;
2230   GL_BOOL_VEC4 = $8B59;
2231   GL_FLOAT_MAT2 = $8B5A;
2232   GL_FLOAT_MAT3 = $8B5B;
2233   GL_FLOAT_MAT4 = $8B5C;
2234   GL_SAMPLER_1D = $8B5D;
2235   GL_SAMPLER_2D = $8B5E;
2236   GL_SAMPLER_3D = $8B5F;
2237   GL_SAMPLER_CUBE = $8B60;
2238   GL_SAMPLER_1D_SHADOW = $8B61;
2239   GL_SAMPLER_2D_SHADOW = $8B62;
2240   GL_DELETE_STATUS = $8B80;
2241   GL_COMPILE_STATUS = $8B81;
2242   GL_LINK_STATUS = $8B82;
2243   GL_VALIDATE_STATUS = $8B83;
2244   GL_INFO_LOG_LENGTH = $8B84;
2245   GL_ATTACHED_SHADERS = $8B85;
2246   GL_ACTIVE_UNIFORMS = $8B86;
2247   GL_ACTIVE_UNIFORM_MAX_LENGTH = $8B87;
2248   GL_SHADER_SOURCE_LENGTH = $8B88;
2249   GL_ACTIVE_ATTRIBUTES = $8B89;
2250   GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = $8B8A;
2251   GL_FRAGMENT_SHADER_DERIVATIVE_HINT = $8B8B;
2252   GL_SHADING_LANGUAGE_VERSION = $8B8C;
2253   GL_CURRENT_PROGRAM = $8B8D;
2254   GL_POINT_SPRITE_COORD_ORIGIN = $8CA0;
2255   GL_LOWER_LEFT = $8CA1;
2256   GL_UPPER_LEFT = $8CA2;
2257   GL_STENCIL_BACK_REF = $8CA3;
2258   GL_STENCIL_BACK_VALUE_MASK = $8CA4;
2259   GL_STENCIL_BACK_WRITEMASK = $8CA5;
2260 {$ifdef DGL_DEPRECATED}
2261   GL_VERTEX_PROGRAM_TWO_SIDE = $8643;
2262   GL_POINT_SPRITE = $8861;
2263   GL_COORD_REPLACE = $8862;
2264   GL_MAX_TEXTURE_COORDS = $8871;
2265 {$endif}
2266
2267   // GL_VERSION_2_1
2268   GL_PIXEL_PACK_BUFFER = $88EB;
2269   GL_PIXEL_UNPACK_BUFFER = $88EC;
2270   GL_PIXEL_PACK_BUFFER_BINDING = $88ED;
2271   GL_PIXEL_UNPACK_BUFFER_BINDING = $88EF;
2272   GL_FLOAT_MAT2x3 = $8B65;
2273   GL_FLOAT_MAT2x4 = $8B66;
2274   GL_FLOAT_MAT3x2 = $8B67;
2275   GL_FLOAT_MAT3x4 = $8B68;
2276   GL_FLOAT_MAT4x2 = $8B69;
2277   GL_FLOAT_MAT4x3 = $8B6A;
2278   GL_SRGB = $8C40;
2279   GL_SRGB8 = $8C41;
2280   GL_SRGB_ALPHA = $8C42;
2281   GL_SRGB8_ALPHA8 = $8C43;
2282   GL_COMPRESSED_SRGB = $8C48;
2283   GL_COMPRESSED_SRGB_ALPHA = $8C49;
2284 {$ifdef DGL_DEPRECATED}
2285   GL_CURRENT_RASTER_SECONDARY_COLOR = $845F;
2286   GL_SLUMINANCE_ALPHA = $8C44;
2287   GL_SLUMINANCE8_ALPHA8 = $8C45;
2288   GL_SLUMINANCE = $8C46;
2289   GL_SLUMINANCE8 = $8C47;
2290   GL_COMPRESSED_SLUMINANCE = $8C4A;
2291   GL_COMPRESSED_SLUMINANCE_ALPHA = $8C4B;
2292 {$endif}
2293
2294   // GL_VERSION_3_0
2295   GL_COMPARE_REF_TO_TEXTURE = $884E;
2296   GL_CLIP_DISTANCE0 = $3000;
2297   GL_CLIP_DISTANCE1 = $3001;
2298   GL_CLIP_DISTANCE2 = $3002;
2299   GL_CLIP_DISTANCE3 = $3003;
2300   GL_CLIP_DISTANCE4 = $3004;
2301   GL_CLIP_DISTANCE5 = $3005;
2302   GL_CLIP_DISTANCE6 = $3006;
2303   GL_CLIP_DISTANCE7 = $3007;
2304   GL_MAX_CLIP_DISTANCES = $0D32;
2305   GL_MAJOR_VERSION = $821B;
2306   GL_MINOR_VERSION = $821C;
2307   GL_NUM_EXTENSIONS = $821D;
2308   GL_CONTEXT_FLAGS = $821E;
2309   GL_DEPTH_BUFFER = $8223;
2310   GL_STENCIL_BUFFER = $8224;
2311   GL_COMPRESSED_RED = $8225;
2312   GL_COMPRESSED_RG = $8226;
2313   GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = $0001;
2314   GL_RGBA32F = $8814;
2315   GL_RGB32F = $8815;
2316   GL_RGBA16F = $881A;
2317   GL_RGB16F = $881B;
2318   GL_VERTEX_ATTRIB_ARRAY_INTEGER = $88FD;
2319   GL_MAX_ARRAY_TEXTURE_LAYERS = $88FF;
2320   GL_MIN_PROGRAM_TEXEL_OFFSET = $8904;
2321   GL_MAX_PROGRAM_TEXEL_OFFSET = $8905;
2322   GL_CLAMP_READ_COLOR = $891C;
2323   GL_FIXED_ONLY = $891D;
2324   GL_MAX_VARYING_COMPONENTS = $8B4B;
2325   GL_TEXTURE_1D_ARRAY = $8C18;
2326   GL_PROXY_TEXTURE_1D_ARRAY = $8C19;
2327   GL_TEXTURE_2D_ARRAY = $8C1A;
2328   GL_PROXY_TEXTURE_2D_ARRAY = $8C1B;
2329   GL_TEXTURE_BINDING_1D_ARRAY = $8C1C;
2330   GL_TEXTURE_BINDING_2D_ARRAY = $8C1D;
2331   GL_R11F_G11F_B10F = $8C3A;
2332   GL_UNSIGNED_INT_10F_11F_11F_REV = $8C3B;
2333   GL_RGB9_E5 = $8C3D;
2334   GL_UNSIGNED_INT_5_9_9_9_REV = $8C3E;
2335   GL_TEXTURE_SHARED_SIZE = $8C3F;
2336   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = $8C76;
2337   GL_TRANSFORM_FEEDBACK_BUFFER_MODE = $8C7F;
2338   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = $8C80;
2339   GL_TRANSFORM_FEEDBACK_VARYINGS = $8C83;
2340   GL_TRANSFORM_FEEDBACK_BUFFER_START = $8C84;
2341   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = $8C85;
2342   GL_PRIMITIVES_GENERATED = $8C87;
2343   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = $8C88;
2344   GL_RASTERIZER_DISCARD = $8C89;
2345   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = $8C8A;
2346   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = $8C8B;
2347   GL_INTERLEAVED_ATTRIBS = $8C8C;
2348   GL_SEPARATE_ATTRIBS = $8C8D;
2349   GL_TRANSFORM_FEEDBACK_BUFFER = $8C8E;
2350   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = $8C8F;
2351   GL_RGBA32UI = $8D70;
2352   GL_RGB32UI = $8D71;
2353   GL_RGBA16UI = $8D76;
2354   GL_RGB16UI = $8D77;
2355   GL_RGBA8UI = $8D7C;
2356   GL_RGB8UI = $8D7D;
2357   GL_RGBA32I = $8D82;
2358   GL_RGB32I = $8D83;
2359   GL_RGBA16I = $8D88;
2360   GL_RGB16I = $8D89;
2361   GL_RGBA8I = $8D8E;
2362   GL_RGB8I = $8D8F;
2363   GL_RED_INTEGER = $8D94;
2364   GL_GREEN_INTEGER = $8D95;
2365   GL_BLUE_INTEGER = $8D96;
2366   GL_RGB_INTEGER = $8D98;
2367   GL_RGBA_INTEGER = $8D99;
2368   GL_BGR_INTEGER = $8D9A;
2369   GL_BGRA_INTEGER = $8D9B;
2370   GL_SAMPLER_1D_ARRAY = $8DC0;
2371   GL_SAMPLER_2D_ARRAY = $8DC1;
2372   GL_SAMPLER_1D_ARRAY_SHADOW = $8DC3;
2373   GL_SAMPLER_2D_ARRAY_SHADOW = $8DC4;
2374   GL_SAMPLER_CUBE_SHADOW = $8DC5;
2375   GL_UNSIGNED_INT_VEC2 = $8DC6;
2376   GL_UNSIGNED_INT_VEC3 = $8DC7;
2377   GL_UNSIGNED_INT_VEC4 = $8DC8;
2378   GL_INT_SAMPLER_1D = $8DC9;
2379   GL_INT_SAMPLER_2D = $8DCA;
2380   GL_INT_SAMPLER_3D = $8DCB;
2381   GL_INT_SAMPLER_CUBE = $8DCC;
2382   GL_INT_SAMPLER_1D_ARRAY = $8DCE;
2383   GL_INT_SAMPLER_2D_ARRAY = $8DCF;
2384   GL_UNSIGNED_INT_SAMPLER_1D = $8DD1;
2385   GL_UNSIGNED_INT_SAMPLER_2D = $8DD2;
2386   GL_UNSIGNED_INT_SAMPLER_3D = $8DD3;
2387   GL_UNSIGNED_INT_SAMPLER_CUBE = $8DD4;
2388   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = $8DD6;
2389   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = $8DD7;
2390   GL_QUERY_WAIT = $8E13;
2391   GL_QUERY_NO_WAIT = $8E14;
2392   GL_QUERY_BY_REGION_WAIT = $8E15;
2393   GL_QUERY_BY_REGION_NO_WAIT = $8E16;
2394   GL_BUFFER_ACCESS_FLAGS = $911F;
2395   GL_BUFFER_MAP_LENGTH = $9120;
2396   GL_BUFFER_MAP_OFFSET = $9121;
2397   { Reuse tokens from ARB_depth_buffer_float }
2398   { reuse GL_DEPTH_COMPONENT32F }
2399   { reuse GL_DEPTH32F_STENCIL8 }
2400   { reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV }
2401   { Reuse tokens from ARB_framebuffer_object }
2402   { reuse GL_INVALID_FRAMEBUFFER_OPERATION }
2403   { reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING }
2404   { reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE }
2405   { reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE }
2406   { reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE }
2407   { reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE }
2408   { reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE }
2409   { reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE }
2410   { reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE }
2411   { reuse GL_FRAMEBUFFER_DEFAULT }
2412   { reuse GL_FRAMEBUFFER_UNDEFINED }
2413   { reuse GL_DEPTH_STENCIL_ATTACHMENT }
2414   { reuse GL_INDEX }
2415   { reuse GL_MAX_RENDERBUFFER_SIZE }
2416   { reuse GL_DEPTH_STENCIL }
2417   { reuse GL_UNSIGNED_INT_24_8 }
2418   { reuse GL_DEPTH24_STENCIL8 }
2419   { reuse GL_TEXTURE_STENCIL_SIZE }
2420   { reuse GL_TEXTURE_RED_TYPE }
2421   { reuse GL_TEXTURE_GREEN_TYPE }
2422   { reuse GL_TEXTURE_BLUE_TYPE }
2423   { reuse GL_TEXTURE_ALPHA_TYPE }
2424   { reuse GL_TEXTURE_DEPTH_TYPE }
2425   { reuse GL_UNSIGNED_NORMALIZED }
2426   { reuse GL_FRAMEBUFFER_BINDING }
2427   { reuse GL_DRAW_FRAMEBUFFER_BINDING }
2428   { reuse GL_RENDERBUFFER_BINDING }
2429   { reuse GL_READ_FRAMEBUFFER }
2430   { reuse GL_DRAW_FRAMEBUFFER }
2431   { reuse GL_READ_FRAMEBUFFER_BINDING }
2432   { reuse GL_RENDERBUFFER_SAMPLES }
2433   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE }
2434   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME }
2435   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL }
2436   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE }
2437   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2438   { reuse GL_FRAMEBUFFER_COMPLETE }
2439   { reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT }
2440   { reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT }
2441   { reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER }
2442   { reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER }
2443   { reuse GL_FRAMEBUFFER_UNSUPPORTED }
2444   { reuse GL_MAX_COLOR_ATTACHMENTS }
2445   { reuse GL_COLOR_ATTACHMENT0 }
2446   { reuse GL_COLOR_ATTACHMENT1 }
2447   { reuse GL_COLOR_ATTACHMENT2 }
2448   { reuse GL_COLOR_ATTACHMENT3 }
2449   { reuse GL_COLOR_ATTACHMENT4 }
2450   { reuse GL_COLOR_ATTACHMENT5 }
2451   { reuse GL_COLOR_ATTACHMENT6 }
2452   { reuse GL_COLOR_ATTACHMENT7 }
2453   { reuse GL_COLOR_ATTACHMENT8 }
2454   { reuse GL_COLOR_ATTACHMENT9 }
2455   { reuse GL_COLOR_ATTACHMENT10 }
2456   { reuse GL_COLOR_ATTACHMENT11 }
2457   { reuse GL_COLOR_ATTACHMENT12 }
2458   { reuse GL_COLOR_ATTACHMENT13 }
2459   { reuse GL_COLOR_ATTACHMENT14 }
2460   { reuse GL_COLOR_ATTACHMENT15 }
2461   { reuse GL_DEPTH_ATTACHMENT }
2462   { reuse GL_STENCIL_ATTACHMENT }
2463   { reuse GL_FRAMEBUFFER }
2464   { reuse GL_RENDERBUFFER }
2465   { reuse GL_RENDERBUFFER_WIDTH }
2466   { reuse GL_RENDERBUFFER_HEIGHT }
2467   { reuse GL_RENDERBUFFER_INTERNAL_FORMAT }
2468   { reuse GL_STENCIL_INDEX1 }
2469   { reuse GL_STENCIL_INDEX4 }
2470   { reuse GL_STENCIL_INDEX8 }
2471   { reuse GL_STENCIL_INDEX16 }
2472   { reuse GL_RENDERBUFFER_RED_SIZE }
2473   { reuse GL_RENDERBUFFER_GREEN_SIZE }
2474   { reuse GL_RENDERBUFFER_BLUE_SIZE }
2475   { reuse GL_RENDERBUFFER_ALPHA_SIZE }
2476   { reuse GL_RENDERBUFFER_DEPTH_SIZE }
2477   { reuse GL_RENDERBUFFER_STENCIL_SIZE }
2478   { reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE }
2479   { reuse GL_MAX_SAMPLES }
2480   { Reuse tokens from ARB_framebuffer_sRGB }
2481   { reuse GL_FRAMEBUFFER_SRGB }
2482   { Reuse tokens from ARB_half_float_vertex }
2483   { reuse GL_HALF_FLOAT }
2484   { Reuse tokens from ARB_map_buffer_range }
2485   { reuse GL_MAP_READ_BIT }
2486   { reuse GL_MAP_WRITE_BIT }
2487   { reuse GL_MAP_INVALIDATE_RANGE_BIT }
2488   { reuse GL_MAP_INVALIDATE_BUFFER_BIT }
2489   { reuse GL_MAP_FLUSH_EXPLICIT_BIT }
2490   { reuse GL_MAP_UNSYNCHRONIZED_BIT }
2491   { Reuse tokens from ARB_texture_compression_rgtc }
2492   { reuse GL_COMPRESSED_RED_RGTC1 }
2493   { reuse GL_COMPRESSED_SIGNED_RED_RGTC1 }
2494   { reuse GL_COMPRESSED_RG_RGTC2 }
2495   { reuse GL_COMPRESSED_SIGNED_RG_RGTC2 }
2496   { Reuse tokens from ARB_texture_rg }
2497   { reuse GL_RG }
2498   { reuse GL_RG_INTEGER }
2499   { reuse GL_R8 }
2500   { reuse GL_R16 }
2501   { reuse GL_RG8 }
2502   { reuse GL_RG16 }
2503   { reuse GL_R16F }
2504   { reuse GL_R32F }
2505   { reuse GL_RG16F }
2506   { reuse GL_RG32F }
2507   { reuse GL_R8I }
2508   { reuse GL_R8UI }
2509   { reuse GL_R16I }
2510   { reuse GL_R16UI }
2511   { reuse GL_R32I }
2512   { reuse GL_R32UI }
2513   { reuse GL_RG8I }
2514   { reuse GL_RG8UI }
2515   { reuse GL_RG16I }
2516   { reuse GL_RG16UI }
2517   { reuse GL_RG32I }
2518   { reuse GL_RG32UI }
2519   { Reuse tokens from ARB_vertex_array_object }
2520   { reuse GL_VERTEX_ARRAY_BINDING }
2521 {$ifdef DGL_DEPRECATED}
2522   GL_CLAMP_VERTEX_COLOR = $891A;
2523   GL_CLAMP_FRAGMENT_COLOR = $891B;
2524   GL_ALPHA_INTEGER = $8D97;
2525   { Reuse tokens from ARB_framebuffer_object }
2526   { reuse GL_TEXTURE_LUMINANCE_TYPE }
2527   { reuse GL_TEXTURE_INTENSITY_TYPE }
2528 {$endif}
2529
2530   // GL_VERSION_3_1
2531   GL_SAMPLER_2D_RECT = $8B63;
2532   GL_SAMPLER_2D_RECT_SHADOW = $8B64;
2533   GL_SAMPLER_BUFFER = $8DC2;
2534   GL_INT_SAMPLER_2D_RECT = $8DCD;
2535   GL_INT_SAMPLER_BUFFER = $8DD0;
2536   GL_UNSIGNED_INT_SAMPLER_2D_RECT = $8DD5;
2537   GL_UNSIGNED_INT_SAMPLER_BUFFER = $8DD8;
2538   GL_TEXTURE_BUFFER = $8C2A;
2539   GL_MAX_TEXTURE_BUFFER_SIZE = $8C2B;
2540   GL_TEXTURE_BINDING_BUFFER = $8C2C;
2541   GL_TEXTURE_BUFFER_DATA_STORE_BINDING = $8C2D;
2542   GL_TEXTURE_BUFFER_FORMAT = $8C2E;
2543   GL_TEXTURE_RECTANGLE = $84F5;
2544   GL_TEXTURE_BINDING_RECTANGLE = $84F6;
2545   GL_PROXY_TEXTURE_RECTANGLE = $84F7;
2546   GL_MAX_RECTANGLE_TEXTURE_SIZE = $84F8;
2547   GL_RED_SNORM = $8F90;
2548   GL_RG_SNORM = $8F91;
2549   GL_RGB_SNORM = $8F92;
2550   GL_RGBA_SNORM = $8F93;
2551   GL_R8_SNORM = $8F94;
2552   GL_RG8_SNORM = $8F95;
2553   GL_RGB8_SNORM = $8F96;
2554   GL_RGBA8_SNORM = $8F97;
2555   GL_R16_SNORM = $8F98;
2556   GL_RG16_SNORM = $8F99;
2557   GL_RGB16_SNORM = $8F9A;
2558   GL_RGBA16_SNORM = $8F9B;
2559   GL_SIGNED_NORMALIZED = $8F9C;
2560   GL_PRIMITIVE_RESTART = $8F9D;
2561   GL_PRIMITIVE_RESTART_INDEX = $8F9E;
2562   { Reuse tokens from ARB_copy_buffer }
2563   { reuse GL_COPY_READ_BUFFER }
2564   { reuse GL_COPY_WRITE_BUFFER }
2565   { Reuse tokens from ARB_draw_instanced (none) }
2566   { Reuse tokens from ARB_uniform_buffer_object }
2567   { reuse GL_UNIFORM_BUFFER }
2568   { reuse GL_UNIFORM_BUFFER_BINDING }
2569   { reuse GL_UNIFORM_BUFFER_START }
2570   { reuse GL_UNIFORM_BUFFER_SIZE }
2571   { reuse GL_MAX_VERTEX_UNIFORM_BLOCKS }
2572   { reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS }
2573   { reuse GL_MAX_COMBINED_UNIFORM_BLOCKS }
2574   { reuse GL_MAX_UNIFORM_BUFFER_BINDINGS }
2575   { reuse GL_MAX_UNIFORM_BLOCK_SIZE }
2576   { reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS }
2577   { reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS }
2578   { reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT }
2579   { reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH }
2580   { reuse GL_ACTIVE_UNIFORM_BLOCKS }
2581   { reuse GL_UNIFORM_TYPE }
2582   { reuse GL_UNIFORM_SIZE }
2583   { reuse GL_UNIFORM_NAME_LENGTH }
2584   { reuse GL_UNIFORM_BLOCK_INDEX }
2585   { reuse GL_UNIFORM_OFFSET }
2586   { reuse GL_UNIFORM_ARRAY_STRIDE }
2587   { reuse GL_UNIFORM_MATRIX_STRIDE }
2588   { reuse GL_UNIFORM_IS_ROW_MAJOR }
2589   { reuse GL_UNIFORM_BLOCK_BINDING }
2590   { reuse GL_UNIFORM_BLOCK_DATA_SIZE }
2591   { reuse GL_UNIFORM_BLOCK_NAME_LENGTH }
2592   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS }
2593   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES }
2594   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER }
2595   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER }
2596   { reuse GL_INVALID_INDEX }
2597
2598   // GL_VERSION_3_2
2599   GL_CONTEXT_CORE_PROFILE_BIT = $00000001;
2600   GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = $00000002;
2601   GL_LINES_ADJACENCY = $000A;
2602   GL_LINE_STRIP_ADJACENCY = $000B;
2603   GL_TRIANGLES_ADJACENCY = $000C;
2604   GL_TRIANGLE_STRIP_ADJACENCY = $000D;
2605   GL_PROGRAM_POINT_SIZE = $8642;
2606   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = $8C29;
2607   GL_FRAMEBUFFER_ATTACHMENT_LAYERED = $8DA7;
2608   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = $8DA8;
2609   GL_GEOMETRY_SHADER = $8DD9;
2610   GL_GEOMETRY_VERTICES_OUT = $8916;
2611   GL_GEOMETRY_INPUT_TYPE = $8917;
2612   GL_GEOMETRY_OUTPUT_TYPE = $8918;
2613   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = $8DDF;
2614   GL_MAX_GEOMETRY_OUTPUT_VERTICES = $8DE0;
2615   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = $8DE1;
2616   GL_MAX_VERTEX_OUTPUT_COMPONENTS = $9122;
2617   GL_MAX_GEOMETRY_INPUT_COMPONENTS = $9123;
2618   GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = $9124;
2619   GL_MAX_FRAGMENT_INPUT_COMPONENTS = $9125;
2620   GL_CONTEXT_PROFILE_MASK = $9126;
2621   { reuse GL_MAX_VARYING_COMPONENTS }
2622   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2623   { Reuse tokens from ARB_depth_clamp }
2624   { reuse GL_DEPTH_CLAMP }
2625   { Reuse tokens from ARB_draw_elements_base_vertex (none) }
2626   { Reuse tokens from ARB_fragment_coord_conventions (none) }
2627   { Reuse tokens from ARB_provoking_vertex }
2628   { reuse GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION }
2629   { reuse GL_FIRST_VERTEX_CONVENTION }
2630   { reuse GL_LAST_VERTEX_CONVENTION }
2631   { reuse GL_PROVOKING_VERTEX }
2632   { Reuse tokens from ARB_seamless_cube_map }
2633   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
2634   { Reuse tokens from ARB_sync }
2635   { reuse GL_MAX_SERVER_WAIT_TIMEOUT }
2636   { reuse GL_OBJECT_TYPE }
2637   { reuse GL_SYNC_CONDITION }
2638   { reuse GL_SYNC_STATUS }
2639   { reuse GL_SYNC_FLAGS }
2640   { reuse GL_SYNC_FENCE }
2641   { reuse GL_SYNC_GPU_COMMANDS_COMPLETE }
2642   { reuse GL_UNSIGNALED }
2643   { reuse GL_SIGNALED }
2644   { reuse GL_ALREADY_SIGNALED }
2645   { reuse GL_TIMEOUT_EXPIRED }
2646   { reuse GL_CONDITION_SATISFIED }
2647   { reuse GL_WAIT_FAILED }
2648   { reuse GL_TIMEOUT_IGNORED }
2649   { reuse GL_SYNC_FLUSH_COMMANDS_BIT }
2650   { reuse GL_TIMEOUT_IGNORED }
2651   { Reuse tokens from ARB_texture_multisample }
2652   { reuse GL_SAMPLE_POSITION }
2653   { reuse GL_SAMPLE_MASK }
2654   { reuse GL_SAMPLE_MASK_VALUE }
2655   { reuse GL_MAX_SAMPLE_MASK_WORDS }
2656   { reuse GL_TEXTURE_2D_MULTISAMPLE }
2657   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE }
2658   { reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY }
2659   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY }
2660   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE }
2661   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY }
2662   { reuse GL_TEXTURE_SAMPLES }
2663   { reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS }
2664   { reuse GL_SAMPLER_2D_MULTISAMPLE }
2665   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE }
2666   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE }
2667   { reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY }
2668   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2669   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2670   { reuse GL_MAX_COLOR_TEXTURE_SAMPLES }
2671   { reuse GL_MAX_DEPTH_TEXTURE_SAMPLES }
2672   { reuse GL_MAX_INTEGER_SAMPLES }
2673   { Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core }
2674
2675   // GL_VERSION_3_3
2676   GL_VERTEX_ATTRIB_ARRAY_DIVISOR = $88FE;
2677   { Reuse tokens from ARB_blend_func_extended }
2678   { reuse GL_SRC1_COLOR }
2679   { reuse GL_ONE_MINUS_SRC1_COLOR }
2680   { reuse GL_ONE_MINUS_SRC1_ALPHA }
2681   { reuse GL_MAX_DUAL_SOURCE_DRAW_BUFFERS }
2682   { Reuse tokens from ARB_explicit_attrib_location (none) }
2683   { Reuse tokens from ARB_occlusion_query2 }
2684   { reuse GL_ANY_SAMPLES_PASSED }
2685   { Reuse tokens from ARB_sampler_objects }
2686   { reuse GL_SAMPLER_BINDING }
2687   { Reuse tokens from ARB_shader_bit_encoding (none) }
2688   { Reuse tokens from ARB_texture_rgb10_a2ui }
2689   { reuse GL_RGB10_A2UI }
2690   { Reuse tokens from ARB_texture_swizzle }
2691   { reuse GL_TEXTURE_SWIZZLE_R }
2692   { reuse GL_TEXTURE_SWIZZLE_G }
2693   { reuse GL_TEXTURE_SWIZZLE_B }
2694   { reuse GL_TEXTURE_SWIZZLE_A }
2695   { reuse GL_TEXTURE_SWIZZLE_RGBA }
2696   { Reuse tokens from ARB_timer_query }
2697   { reuse GL_TIME_ELAPSED }
2698   { reuse GL_TIMESTAMP }
2699   { Reuse tokens from ARB_vertex_type_2_10_10_10_rev }
2700   { reuse GL_INT_2_10_10_10_REV }
2701
2702   // GL_VERSION_4_0
2703   GL_SAMPLE_SHADING = $8C36;
2704   GL_MIN_SAMPLE_SHADING_VALUE = $8C37;
2705   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5E;
2706   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5F;
2707   GL_TEXTURE_CUBE_MAP_ARRAY = $9009;
2708   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = $900A;
2709   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = $900B;
2710   GL_SAMPLER_CUBE_MAP_ARRAY = $900C;
2711   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = $900D;
2712   GL_INT_SAMPLER_CUBE_MAP_ARRAY = $900E;
2713   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = $900F;
2714   { Reuse tokens from ARB_texture_query_lod (none) }
2715   { Reuse tokens from ARB_draw_buffers_blend (none) }
2716   { Reuse tokens from ARB_draw_indirect }
2717   { reuse GL_DRAW_INDIRECT_BUFFER }
2718   { reuse GL_DRAW_INDIRECT_BUFFER_BINDING }
2719   { Reuse tokens from ARB_gpu_shader5 }
2720   { reuse GL_GEOMETRY_SHADER_INVOCATIONS }
2721   { reuse GL_MAX_GEOMETRY_SHADER_INVOCATIONS }
2722   { reuse GL_MIN_FRAGMENT_INTERPOLATION_OFFSET }
2723   { reuse GL_MAX_FRAGMENT_INTERPOLATION_OFFSET }
2724   { reuse GL_FRAGMENT_INTERPOLATION_OFFSET_BITS }
2725   { reuse GL_MAX_VERTEX_STREAMS }
2726   { Reuse tokens from ARB_gpu_shader_fp64 }
2727   { reuse GL_DOUBLE_VEC2 }
2728   { reuse GL_DOUBLE_VEC3 }
2729   { reuse GL_DOUBLE_VEC4 }
2730   { reuse GL_DOUBLE_MAT2 }
2731   { reuse GL_DOUBLE_MAT3 }
2732   { reuse GL_DOUBLE_MAT4 }
2733   { reuse GL_DOUBLE_MAT2x3 }
2734   { reuse GL_DOUBLE_MAT2x4 }
2735   { reuse GL_DOUBLE_MAT3x2 }
2736   { reuse GL_DOUBLE_MAT3x4 }
2737   { reuse GL_DOUBLE_MAT4x2 }
2738   { reuse GL_DOUBLE_MAT4x3 }
2739   { Reuse tokens from ARB_shader_subroutine }
2740   { reuse GL_ACTIVE_SUBROUTINES }
2741   { reuse GL_ACTIVE_SUBROUTINE_UNIFORMS }
2742   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS }
2743   { reuse GL_ACTIVE_SUBROUTINE_MAX_LENGTH }
2744   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH }
2745   { reuse GL_MAX_SUBROUTINES }
2746   { reuse GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS }
2747   { reuse GL_NUM_COMPATIBLE_SUBROUTINES }
2748   { reuse GL_COMPATIBLE_SUBROUTINES }
2749   { Reuse tokens from ARB_tessellation_shader }
2750   { reuse GL_PATCHES }
2751   { reuse GL_PATCH_VERTICES }
2752   { reuse GL_PATCH_DEFAULT_INNER_LEVEL }
2753   { reuse GL_PATCH_DEFAULT_OUTER_LEVEL }
2754   { reuse GL_TESS_CONTROL_OUTPUT_VERTICES }
2755   { reuse GL_TESS_GEN_MODE }
2756   { reuse GL_TESS_GEN_SPACING }
2757   { reuse GL_TESS_GEN_VERTEX_ORDER }
2758   { reuse GL_TESS_GEN_POINT_MODE }
2759   { reuse GL_ISOLINES }
2760   { reuse GL_FRACTIONAL_ODD }
2761   { reuse GL_FRACTIONAL_EVEN }
2762   { reuse GL_MAX_PATCH_VERTICES }
2763   { reuse GL_MAX_TESS_GEN_LEVEL }
2764   { reuse GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS }
2765   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS }
2766   { reuse GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS }
2767   { reuse GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS }
2768   { reuse GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS }
2769   { reuse GL_MAX_TESS_PATCH_COMPONENTS }
2770   { reuse GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS }
2771   { reuse GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS }
2772   { reuse GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS }
2773   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS }
2774   { reuse GL_MAX_TESS_CONTROL_INPUT_COMPONENTS }
2775   { reuse GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS }
2776   { reuse GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS }
2777   { reuse GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS }
2778   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER }
2779   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER }
2780   { reuse GL_TESS_EVALUATION_SHADER }
2781   { reuse GL_TESS_CONTROL_SHADER }
2782   { Reuse tokens from ARB_texture_buffer_object_rgb32 (none) }
2783   { Reuse tokens from ARB_transform_feedback2 }
2784   { reuse GL_TRANSFORM_FEEDBACK }
2785   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED }
2786   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE }
2787   { reuse GL_TRANSFORM_FEEDBACK_BINDING }
2788   { Reuse tokens from ARB_transform_feedback3 }
2789   { reuse GL_MAX_TRANSFORM_FEEDBACK_BUFFERS }
2790   { reuse GL_MAX_VERTEX_STREAMS }
2791
2792   // GL_VERSION_4_1
2793   { Reuse tokens from ARB_ES2_compatibility }
2794   { reuse GL_FIXED }
2795   { reuse GL_IMPLEMENTATION_COLOR_READ_TYPE }
2796   { reuse GL_IMPLEMENTATION_COLOR_READ_FORMAT }
2797   { reuse GL_LOW_FLOAT }
2798   { reuse GL_MEDIUM_FLOAT }
2799   { reuse GL_HIGH_FLOAT }
2800   { reuse GL_LOW_INT }
2801   { reuse GL_MEDIUM_INT }
2802   { reuse GL_HIGH_INT }
2803   { reuse GL_SHADER_COMPILER }
2804   { reuse GL_NUM_SHADER_BINARY_FORMATS }
2805   { reuse GL_MAX_VERTEX_UNIFORM_VECTORS }
2806   { reuse GL_MAX_VARYING_VECTORS }
2807   { reuse GL_MAX_FRAGMENT_UNIFORM_VECTORS }
2808   { reuse GL_RGB565 }
2809   { Reuse tokens from ARB_get_program_binary }
2810   { reuse GL_PROGRAM_BINARY_RETRIEVABLE_HINT }
2811   { reuse GL_PROGRAM_BINARY_LENGTH }
2812   { reuse GL_NUM_PROGRAM_BINARY_FORMATS }
2813   { reuse GL_PROGRAM_BINARY_FORMATS }
2814   { Reuse tokens from ARB_separate_shader_objects }
2815   { reuse GL_VERTEX_SHADER_BIT }
2816   { reuse GL_FRAGMENT_SHADER_BIT }
2817   { reuse GL_GEOMETRY_SHADER_BIT }
2818   { reuse GL_TESS_CONTROL_SHADER_BIT }
2819   { reuse GL_TESS_EVALUATION_SHADER_BIT }
2820   { reuse GL_ALL_SHADER_BITS }
2821   { reuse GL_PROGRAM_SEPARABLE }
2822   { reuse GL_ACTIVE_PROGRAM }
2823   { reuse GL_PROGRAM_PIPELINE_BINDING }
2824   { Reuse tokens from ARB_shader_precision (none) }
2825   { Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already }
2826   { Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already }
2827   { reuse GL_MAX_VIEWPORTS }
2828   { reuse GL_VIEWPORT_SUBPIXEL_BITS }
2829   { reuse GL_VIEWPORT_BOUNDS_RANGE }
2830   { reuse GL_LAYER_PROVOKING_VERTEX }
2831   { reuse GL_VIEWPORT_INDEX_PROVOKING_VERTEX }
2832   { reuse GL_UNDEFINED_VERTEX }
2833
2834   // GL_VERSION_4_2
2835   { Reuse tokens from ARB_base_instance (none) }
2836   { Reuse tokens from ARB_shading_language_420pack (none) }
2837   { Reuse tokens from ARB_transform_feedback_instanced (none) }
2838   { Reuse tokens from ARB_compressed_texture_pixel_storage }
2839   { reuse GL_UNPACK_COMPRESSED_BLOCK_WIDTH }
2840   { reuse GL_UNPACK_COMPRESSED_BLOCK_HEIGHT }
2841   { reuse GL_UNPACK_COMPRESSED_BLOCK_DEPTH }
2842   { reuse GL_UNPACK_COMPRESSED_BLOCK_SIZE }
2843   { reuse GL_PACK_COMPRESSED_BLOCK_WIDTH }
2844   { reuse GL_PACK_COMPRESSED_BLOCK_HEIGHT }
2845   { reuse GL_PACK_COMPRESSED_BLOCK_DEPTH }
2846   { reuse GL_PACK_COMPRESSED_BLOCK_SIZE }
2847   { Reuse tokens from ARB_conservative_depth (none) }
2848   { Reuse tokens from ARB_internalformat_query }
2849   { reuse GL_NUM_SAMPLE_COUNTS }
2850   { Reuse tokens from ARB_map_buffer_alignment }
2851   { reuse GL_MIN_MAP_BUFFER_ALIGNMENT }
2852   { Reuse tokens from ARB_shader_atomic_counters }
2853   { reuse GL_ATOMIC_COUNTER_BUFFER }
2854   { reuse GL_ATOMIC_COUNTER_BUFFER_BINDING }
2855   { reuse GL_ATOMIC_COUNTER_BUFFER_START }
2856   { reuse GL_ATOMIC_COUNTER_BUFFER_SIZE }
2857   { reuse GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE }
2858   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS }
2859   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES }
2860   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER }
2861   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER }
2862   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER }
2863   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER }
2864   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER }
2865   { reuse GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS }
2866   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS }
2867   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS }
2868   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS }
2869   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS }
2870   { reuse GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS }
2871   { reuse GL_MAX_VERTEX_ATOMIC_COUNTERS }
2872   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS }
2873   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS }
2874   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTERS }
2875   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTERS }
2876   { reuse GL_MAX_COMBINED_ATOMIC_COUNTERS }
2877   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE }
2878   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS }
2879   { reuse GL_ACTIVE_ATOMIC_COUNTER_BUFFERS }
2880   { reuse GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX }
2881   { reuse GL_UNSIGNED_INT_ATOMIC_COUNTER }
2882   { Reuse tokens from ARB_shader_image_load_store }
2883   { reuse GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT }
2884   { reuse GL_ELEMENT_ARRAY_BARRIER_BIT }
2885   { reuse GL_UNIFORM_BARRIER_BIT }
2886   { reuse GL_TEXTURE_FETCH_BARRIER_BIT }
2887   { reuse GL_SHADER_IMAGE_ACCESS_BARRIER_BIT }
2888   { reuse GL_COMMAND_BARRIER_BIT }
2889   { reuse GL_PIXEL_BUFFER_BARRIER_BIT }
2890   { reuse GL_TEXTURE_UPDATE_BARRIER_BIT }
2891   { reuse GL_BUFFER_UPDATE_BARRIER_BIT }
2892   { reuse GL_FRAMEBUFFER_BARRIER_BIT }
2893   { reuse GL_TRANSFORM_FEEDBACK_BARRIER_BIT }
2894   { reuse GL_ATOMIC_COUNTER_BARRIER_BIT }
2895   { reuse GL_ALL_BARRIER_BITS }
2896   { reuse GL_MAX_IMAGE_UNITS }
2897   { reuse GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS }
2898   { reuse GL_IMAGE_BINDING_NAME }
2899   { reuse GL_IMAGE_BINDING_LEVEL }
2900   { reuse GL_IMAGE_BINDING_LAYERED }
2901   { reuse GL_IMAGE_BINDING_LAYER }
2902   { reuse GL_IMAGE_BINDING_ACCESS }
2903   { reuse GL_IMAGE_1D }
2904   { reuse GL_IMAGE_2D }
2905   { reuse GL_IMAGE_3D }
2906   { reuse GL_IMAGE_2D_RECT }
2907   { reuse GL_IMAGE_CUBE }
2908   { reuse GL_IMAGE_BUFFER }
2909   { reuse GL_IMAGE_1D_ARRAY }
2910   { reuse GL_IMAGE_2D_ARRAY }
2911   { reuse GL_IMAGE_CUBE_MAP_ARRAY }
2912   { reuse GL_IMAGE_2D_MULTISAMPLE }
2913   { reuse GL_IMAGE_2D_MULTISAMPLE_ARRAY }
2914   { reuse GL_INT_IMAGE_1D }
2915   { reuse GL_INT_IMAGE_2D }
2916   { reuse GL_INT_IMAGE_3D }
2917   { reuse GL_INT_IMAGE_2D_RECT }
2918   { reuse GL_INT_IMAGE_CUBE }
2919   { reuse GL_INT_IMAGE_BUFFER }
2920   { reuse GL_INT_IMAGE_1D_ARRAY }
2921   { reuse GL_INT_IMAGE_2D_ARRAY }
2922   { reuse GL_INT_IMAGE_CUBE_MAP_ARRAY }
2923   { reuse GL_INT_IMAGE_2D_MULTISAMPLE }
2924   { reuse GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2925   { reuse GL_UNSIGNED_INT_IMAGE_1D }
2926   { reuse GL_UNSIGNED_INT_IMAGE_2D }
2927   { reuse GL_UNSIGNED_INT_IMAGE_3D }
2928   { reuse GL_UNSIGNED_INT_IMAGE_2D_RECT }
2929   { reuse GL_UNSIGNED_INT_IMAGE_CUBE }
2930   { reuse GL_UNSIGNED_INT_IMAGE_BUFFER }
2931   { reuse GL_UNSIGNED_INT_IMAGE_1D_ARRAY }
2932   { reuse GL_UNSIGNED_INT_IMAGE_2D_ARRAY }
2933   { reuse GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY }
2934   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE }
2935   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2936   { reuse GL_MAX_IMAGE_SAMPLES }
2937   { reuse GL_IMAGE_BINDING_FORMAT }
2938   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_TYPE }
2939   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE }
2940   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS }
2941   { reuse GL_MAX_VERTEX_IMAGE_UNIFORMS }
2942   { reuse GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS }
2943   { reuse GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS }
2944   { reuse GL_MAX_GEOMETRY_IMAGE_UNIFORMS }
2945   { reuse GL_MAX_FRAGMENT_IMAGE_UNIFORMS }
2946   { reuse GL_MAX_COMBINED_IMAGE_UNIFORMS }
2947   { Reuse tokens from ARB_shading_language_packing (none) }
2948   { Reuse tokens from ARB_texture_storage }
2949   { reuse GL_TEXTURE_IMMUTABLE_FORMAT }
2950
2951   // GL_VERSION_4_3
2952   GL_NUM_SHADING_LANGUAGE_VERSIONS  = $82E9;
2953   GL_VERTEX_ATTRIB_ARRAY_LONG = $874E;
2954   { Reuse tokens from ARB_arrays_of_arrays (none, GLSL only) }
2955   { Reuse tokens from ARB_fragment_layer_viewport (none, GLSL only) }
2956   { Reuse tokens from ARB_shader_image_size (none, GLSL only) }
2957   { Reuse tokens from ARB_ES3_compatibility }
2958   { reuse GL_COMPRESSED_RGB8_ETC2 }
2959   { reuse GL_COMPRESSED_SRGB8_ETC2 }
2960   { reuse GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2961   { reuse GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2962   { reuse GL_COMPRESSED_RGBA8_ETC2_EAC }
2963   { reuse GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC }
2964   { reuse GL_COMPRESSED_R11_EAC }
2965   { reuse GL_COMPRESSED_SIGNED_R11_EAC }
2966   { reuse GL_COMPRESSED_RG11_EAC }
2967   { reuse GL_COMPRESSED_SIGNED_RG11_EAC }
2968   { reuse GL_PRIMITIVE_RESTART_FIXED_INDEX }
2969   { reuse GL_ANY_SAMPLES_PASSED_CONSERVATIVE }
2970   { reuse GL_MAX_ELEMENT_INDEX }
2971   { Reuse tokens from ARB_clear_buffer_object (none) }
2972   { Reuse tokens from ARB_compute_shader }
2973   { reuse GL_COMPUTE_SHADER }
2974   { reuse GL_MAX_COMPUTE_UNIFORM_BLOCKS }
2975   { reuse GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS }
2976   { reuse GL_MAX_COMPUTE_IMAGE_UNIFORMS }
2977   { reuse GL_MAX_COMPUTE_SHARED_MEMORY_SIZE }
2978   { reuse GL_MAX_COMPUTE_UNIFORM_COMPONENTS }
2979   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS }
2980   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTERS }
2981   { reuse GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS }
2982   { reuse GL_MAX_COMPUTE_LOCAL_INVOCATIONS }
2983   { reuse GL_MAX_COMPUTE_WORK_GROUP_COUNT }
2984   { reuse GL_MAX_COMPUTE_WORK_GROUP_SIZE }
2985   { reuse GL_COMPUTE_LOCAL_WORK_SIZE }
2986   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER }
2987   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER }
2988   { reuse GL_DISPATCH_INDIRECT_BUFFER }
2989   { reuse GL_DISPATCH_INDIRECT_BUFFER_BINDING }
2990   { Reuse tokens from ARB_copy_image (none) }
2991   { Reuse tokens from KHR_debug }
2992   { reuse GL_DEBUG_OUTPUT_SYNCHRONOUS }
2993   { reuse GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH }
2994   { reuse GL_DEBUG_CALLBACK_FUNCTION }
2995   { reuse GL_DEBUG_CALLBACK_USER_PARAM }
2996   { reuse GL_DEBUG_SOURCE_API }
2997   { reuse GL_DEBUG_SOURCE_WINDOW_SYSTEM }
2998   { reuse GL_DEBUG_SOURCE_SHADER_COMPILER }
2999   { reuse GL_DEBUG_SOURCE_THIRD_PARTY }
3000   { reuse GL_DEBUG_SOURCE_APPLICATION }
3001   { reuse GL_DEBUG_SOURCE_OTHER }
3002   { reuse GL_DEBUG_TYPE_ERROR }
3003   { reuse GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR }
3004   { reuse GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR }
3005   { reuse GL_DEBUG_TYPE_PORTABILITY }
3006   { reuse GL_DEBUG_TYPE_PERFORMANCE }
3007   { reuse GL_DEBUG_TYPE_OTHER }
3008   { reuse GL_MAX_DEBUG_MESSAGE_LENGTH }
3009   { reuse GL_MAX_DEBUG_LOGGED_MESSAGES }
3010   { reuse GL_DEBUG_LOGGED_MESSAGES }
3011   { reuse GL_DEBUG_SEVERITY_HIGH }
3012   { reuse GL_DEBUG_SEVERITY_MEDIUM }
3013   { reuse GL_DEBUG_SEVERITY_LOW }
3014   { reuse GL_DEBUG_TYPE_MARKER }
3015   { reuse GL_DEBUG_TYPE_PUSH_GROUP }
3016   { reuse GL_DEBUG_TYPE_POP_GROUP }
3017   { reuse GL_DEBUG_SEVERITY_NOTIFICATION }
3018   { reuse GL_MAX_DEBUG_GROUP_STACK_DEPTH }
3019   { reuse GL_DEBUG_GROUP_STACK_DEPTH }
3020   { reuse GL_BUFFER }
3021   { reuse GL_SHADER }
3022   { reuse GL_PROGRAM }
3023   { reuse GL_QUERY }
3024   { reuse GL_PROGRAM_PIPELINE }
3025   { reuse GL_SAMPLER }
3026   { reuse GL_DISPLAY_LIST }
3027   { reuse GL_MAX_LABEL_LENGTH }
3028   { reuse GL_DEBUG_OUTPUT }
3029   { reuse GL_CONTEXT_FLAG_DEBUG_BIT }
3030   { reuse GL_STACK_UNDERFLOW }
3031   { reuse GL_STACK_OVERFLOW }
3032   { Reuse tokens from ARB_explicit_uniform_location }
3033   { reuse GL_MAX_UNIFORM_LOCATIONS }
3034   { Reuse tokens from ARB_framebuffer_no_attachments }
3035   { reuse GL_FRAMEBUFFER_DEFAULT_WIDTH }
3036   { reuse GL_FRAMEBUFFER_DEFAULT_HEIGHT }
3037   { reuse GL_FRAMEBUFFER_DEFAULT_LAYERS }
3038   { reuse GL_FRAMEBUFFER_DEFAULT_SAMPLES }
3039   { reuse GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS }
3040   { reuse GL_MAX_FRAMEBUFFER_WIDTH }
3041   { reuse GL_MAX_FRAMEBUFFER_HEIGHT }
3042   { reuse GL_MAX_FRAMEBUFFER_LAYERS }
3043   { reuse GL_MAX_FRAMEBUFFER_SAMPLES }
3044   { Reuse tokens from ARB_internalformat_query2 }
3045   { reuse GL_INTERNALFORMAT_SUPPORTED }
3046   { reuse GL_INTERNALFORMAT_PREFERRED }
3047   { reuse GL_INTERNALFORMAT_RED_SIZE }
3048   { reuse GL_INTERNALFORMAT_GREEN_SIZE }
3049   { reuse GL_INTERNALFORMAT_BLUE_SIZE }
3050   { reuse GL_INTERNALFORMAT_ALPHA_SIZE }
3051   { reuse GL_INTERNALFORMAT_DEPTH_SIZE }
3052   { reuse GL_INTERNALFORMAT_STENCIL_SIZE }
3053   { reuse GL_INTERNALFORMAT_SHARED_SIZE }
3054   { reuse GL_INTERNALFORMAT_RED_TYPE }
3055   { reuse GL_INTERNALFORMAT_GREEN_TYPE }
3056   { reuse GL_INTERNALFORMAT_BLUE_TYPE }
3057   { reuse GL_INTERNALFORMAT_ALPHA_TYPE }
3058   { reuse GL_INTERNALFORMAT_DEPTH_TYPE }
3059   { reuse GL_INTERNALFORMAT_STENCIL_TYPE }
3060   { reuse GL_MAX_WIDTH }
3061   { reuse GL_MAX_HEIGHT }
3062   { reuse GL_MAX_DEPTH }
3063   { reuse GL_MAX_LAYERS }
3064   { reuse GL_MAX_COMBINED_DIMENSIONS }
3065   { reuse GL_COLOR_COMPONENTS }
3066   { reuse GL_DEPTH_COMPONENTS }
3067   { reuse GL_STENCIL_COMPONENTS }
3068   { reuse GL_COLOR_RENDERABLE }
3069   { reuse GL_DEPTH_RENDERABLE }
3070   { reuse GL_STENCIL_RENDERABLE }
3071   { reuse GL_FRAMEBUFFER_RENDERABLE }
3072   { reuse GL_FRAMEBUFFER_RENDERABLE_LAYERED }
3073   { reuse GL_FRAMEBUFFER_BLEND }
3074   { reuse GL_READ_PIXELS }
3075   { reuse GL_READ_PIXELS_FORMAT }
3076   { reuse GL_READ_PIXELS_TYPE }
3077   { reuse GL_TEXTURE_IMAGE_FORMAT }
3078   { reuse GL_TEXTURE_IMAGE_TYPE }
3079   { reuse GL_GET_TEXTURE_IMAGE_FORMAT }
3080   { reuse GL_GET_TEXTURE_IMAGE_TYPE }
3081   { reuse GL_MIPMAP }
3082   { reuse GL_MANUAL_GENERATE_MIPMAP }
3083   { reuse GL_AUTO_GENERATE_MIPMAP }
3084   { reuse GL_COLOR_ENCODING }
3085   { reuse GL_SRGB_READ }
3086   { reuse GL_SRGB_WRITE }
3087   { reuse GL_FILTER }
3088   { reuse GL_VERTEX_TEXTURE }
3089   { reuse GL_TESS_CONTROL_TEXTURE }
3090   { reuse GL_TESS_EVALUATION_TEXTURE }
3091   { reuse GL_GEOMETRY_TEXTURE }
3092   { reuse GL_FRAGMENT_TEXTURE }
3093   { reuse GL_COMPUTE_TEXTURE }
3094   { reuse GL_TEXTURE_SHADOW }
3095   { reuse GL_TEXTURE_GATHER }
3096   { reuse GL_TEXTURE_GATHER_SHADOW }
3097   { reuse GL_SHADER_IMAGE_LOAD }
3098   { reuse GL_SHADER_IMAGE_STORE }
3099   { reuse GL_SHADER_IMAGE_ATOMIC }
3100   { reuse GL_IMAGE_TEXEL_SIZE }
3101   { reuse GL_IMAGE_COMPATIBILITY_CLASS }
3102   { reuse GL_IMAGE_PIXEL_FORMAT }
3103   { reuse GL_IMAGE_PIXEL_TYPE }
3104   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST }
3105   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST }
3106   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE }
3107   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE }
3108   { reuse GL_TEXTURE_COMPRESSED_BLOCK_WIDTH }
3109   { reuse GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT }
3110   { reuse GL_TEXTURE_COMPRESSED_BLOCK_SIZE }
3111   { reuse GL_CLEAR_BUFFER }
3112   { reuse GL_TEXTURE_VIEW }
3113   { reuse GL_VIEW_COMPATIBILITY_CLASS }
3114   { reuse GL_FULL_SUPPORT }
3115   { reuse GL_CAVEAT_SUPPORT }
3116   { reuse GL_IMAGE_CLASS_4_X_32 }
3117   { reuse GL_IMAGE_CLASS_2_X_32 }
3118   { reuse GL_IMAGE_CLASS_1_X_32 }
3119   { reuse GL_IMAGE_CLASS_4_X_16 }
3120   { reuse GL_IMAGE_CLASS_2_X_16 }
3121   { reuse GL_IMAGE_CLASS_1_X_16 }
3122   { reuse GL_IMAGE_CLASS_4_X_8 }
3123   { reuse GL_IMAGE_CLASS_2_X_8 }
3124   { reuse GL_IMAGE_CLASS_1_X_8 }
3125   { reuse GL_IMAGE_CLASS_11_11_10 }
3126   { reuse GL_IMAGE_CLASS_10_10_10_2 }
3127   { reuse GL_VIEW_CLASS_128_BITS }
3128   { reuse GL_VIEW_CLASS_96_BITS }
3129   { reuse GL_VIEW_CLASS_64_BITS }
3130   { reuse GL_VIEW_CLASS_48_BITS }
3131   { reuse GL_VIEW_CLASS_32_BITS }
3132   { reuse GL_VIEW_CLASS_24_BITS }
3133   { reuse GL_VIEW_CLASS_16_BITS }
3134   { reuse GL_VIEW_CLASS_8_BITS }
3135   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGB }
3136   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGBA }
3137   { reuse GL_VIEW_CLASS_S3TC_DXT3_RGBA }
3138   { reuse GL_VIEW_CLASS_S3TC_DXT5_RGBA }
3139   { reuse GL_VIEW_CLASS_RGTC1_RED }
3140   { reuse GL_VIEW_CLASS_RGTC2_RG }
3141   { reuse GL_VIEW_CLASS_BPTC_UNORM }
3142   { reuse GL_VIEW_CLASS_BPTC_FLOAT }
3143   { Reuse tokens from ARB_invalidate_subdata (none) }
3144   { Reuse tokens from ARB_multi_draw_indirect (none) }
3145   { Reuse tokens from ARB_program_interface_query }
3146   { reuse GL_UNIFORM }
3147   { reuse GL_UNIFORM_BLOCK }
3148   { reuse GL_PROGRAM_INPUT }
3149   { reuse GL_PROGRAM_OUTPUT }
3150   { reuse GL_BUFFER_VARIABLE }
3151   { reuse GL_SHADER_STORAGE_BLOCK }
3152   { reuse GL_VERTEX_SUBROUTINE }
3153   { reuse GL_TESS_CONTROL_SUBROUTINE }
3154   { reuse GL_TESS_EVALUATION_SUBROUTINE }
3155   { reuse GL_GEOMETRY_SUBROUTINE }
3156   { reuse GL_FRAGMENT_SUBROUTINE }
3157   { reuse GL_COMPUTE_SUBROUTINE }
3158   { reuse GL_VERTEX_SUBROUTINE_UNIFORM }
3159   { reuse GL_TESS_CONTROL_SUBROUTINE_UNIFORM }
3160   { reuse GL_TESS_EVALUATION_SUBROUTINE_UNIFORM }
3161   { reuse GL_GEOMETRY_SUBROUTINE_UNIFORM }
3162   { reuse GL_FRAGMENT_SUBROUTINE_UNIFORM }
3163   { reuse GL_COMPUTE_SUBROUTINE_UNIFORM }
3164   { reuse GL_TRANSFORM_FEEDBACK_VARYING }
3165   { reuse GL_ACTIVE_RESOURCES }
3166   { reuse GL_MAX_NAME_LENGTH }
3167   { reuse GL_MAX_NUM_ACTIVE_VARIABLES }
3168   { reuse GL_MAX_NUM_COMPATIBLE_SUBROUTINES }
3169   { reuse GL_NAME_LENGTH }
3170   { reuse GL_TYPE }
3171   { reuse GL_ARRAY_SIZE }
3172   { reuse GL_OFFSET }
3173   { reuse GL_BLOCK_INDEX }
3174   { reuse GL_ARRAY_STRIDE }
3175   { reuse GL_MATRIX_STRIDE }
3176   { reuse GL_IS_ROW_MAJOR }
3177   { reuse GL_ATOMIC_COUNTER_BUFFER_INDEX }
3178   { reuse GL_BUFFER_BINDING }
3179   { reuse GL_BUFFER_DATA_SIZE }
3180   { reuse GL_NUM_ACTIVE_VARIABLES }
3181   { reuse GL_ACTIVE_VARIABLES }
3182   { reuse GL_REFERENCED_BY_VERTEX_SHADER }
3183   { reuse GL_REFERENCED_BY_TESS_CONTROL_SHADER }
3184   { reuse GL_REFERENCED_BY_TESS_EVALUATION_SHADER }
3185   { reuse GL_REFERENCED_BY_GEOMETRY_SHADER }
3186   { reuse GL_REFERENCED_BY_FRAGMENT_SHADER }
3187   { reuse GL_REFERENCED_BY_COMPUTE_SHADER }
3188   { reuse GL_TOP_LEVEL_ARRAY_SIZE }
3189   { reuse GL_TOP_LEVEL_ARRAY_STRIDE }
3190   { reuse GL_LOCATION }
3191   { reuse GL_LOCATION_INDEX }
3192   { reuse GL_IS_PER_PATCH }
3193   { Reuse tokens from ARB_robust_buffer_access_behavior (none) }
3194   { Reuse tokens from ARB_shader_storage_buffer_object }
3195   { reuse GL_SHADER_STORAGE_BUFFER }
3196   { reuse GL_SHADER_STORAGE_BUFFER_BINDING }
3197   { reuse GL_SHADER_STORAGE_BUFFER_START }
3198   { reuse GL_SHADER_STORAGE_BUFFER_SIZE }
3199   { reuse GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS }
3200   { reuse GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS }
3201   { reuse GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS }
3202   { reuse GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS }
3203   { reuse GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS }
3204   { reuse GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS }
3205   { reuse GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS }
3206   { reuse GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS }
3207   { reuse GL_MAX_SHADER_STORAGE_BLOCK_SIZE }
3208   { reuse GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT }
3209   { reuse GL_SHADER_STORAGE_BARRIER_BIT }
3210   { reuse GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES }
3211   { Reuse tokens from ARB_stencil_texturing }
3212   { reuse GL_DEPTH_STENCIL_TEXTURE_MODE }
3213   { Reuse tokens from ARB_texture_buffer_range }
3214   { reuse GL_TEXTURE_BUFFER_OFFSET }
3215   { reuse GL_TEXTURE_BUFFER_SIZE }
3216   { reuse GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT }
3217   { Reuse tokens from ARB_texture_query_levels (none) }
3218   { Reuse tokens from ARB_texture_storage_multisample (none) }
3219   { Reuse tokens from ARB_texture_view }
3220   { reuse GL_TEXTURE_VIEW_MIN_LEVEL }
3221   { reuse GL_TEXTURE_VIEW_NUM_LEVELS }
3222   { reuse GL_TEXTURE_VIEW_MIN_LAYER }
3223   { reuse GL_TEXTURE_VIEW_NUM_LAYERS }
3224   { reuse GL_TEXTURE_IMMUTABLE_LEVELS }
3225   { Reuse tokens from ARB_vertex_attrib_binding }
3226   { reuse GL_VERTEX_ATTRIB_BINDING }
3227   { reuse GL_VERTEX_ATTRIB_RELATIVE_OFFSET }
3228   { reuse GL_VERTEX_BINDING_DIVISOR }
3229   { reuse GL_VERTEX_BINDING_OFFSET }
3230   { reuse GL_VERTEX_BINDING_STRIDE }
3231   { reuse GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET }
3232   { reuse GL_MAX_VERTEX_ATTRIB_BINDINGS }
3233
3234
3235   // GL_3DFX_multisample
3236   GL_MULTISAMPLE_3DFX = $86B2;
3237   GL_SAMPLE_BUFFERS_3DFX = $86B3;
3238   GL_SAMPLES_3DFX = $86B4;
3239   GL_MULTISAMPLE_BIT_3DFX = $20000000;
3240
3241   // GL_3DFX_texture_compression_FXT1
3242   GL_COMPRESSED_RGB_FXT1_3DFX = $86B0;
3243   GL_COMPRESSED_RGBA_FXT1_3DFX = $86B1;
3244
3245   // GL_APPLE_client_storage
3246   GL_UNPACK_CLIENT_STORAGE_APPLE = $85B2;
3247
3248   // GL_APPLE_element_array
3249   GL_ELEMENT_ARRAY_APPLE = $8A0C;
3250   GL_ELEMENT_ARRAY_TYPE_APPLE = $8A0D;
3251   GL_ELEMENT_ARRAY_POINTER_APPLE = $8A0E;
3252
3253   // GL_APPLE_fence
3254   GL_DRAW_PIXELS_APPLE = $8A0A;
3255   GL_FENCE_APPLE = $8A0B;
3256
3257   // GL_APPLE_specular_vector
3258   GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = $85B0;
3259
3260   // GL_APPLE_transform_hint
3261   GL_TRANSFORM_HINT_APPLE = $85B1;
3262
3263   // GL_APPLE_vertex_array_object
3264   GL_VERTEX_ARRAY_BINDING_APPLE = $85B5;
3265
3266   // GL_APPLE_vertex_array_range
3267   GL_VERTEX_ARRAY_RANGE_APPLE = $851D;
3268   GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = $851E;
3269   GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = $851F;
3270   GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = $8521;
3271   GL_STORAGE_CLIENT_APPLE = $85B4;
3272   GL_STORAGE_CACHED_APPLE = $85BE;
3273   GL_STORAGE_SHARED_APPLE = $85BF;
3274
3275   // GL_APPLE_ycbcr_422
3276   GL_YCBCR_422_APPLE = $85B9;
3277   GL_UNSIGNED_SHORT_8_8_APPLE = $85BA;
3278   GL_UNSIGNED_SHORT_8_8_REV_APPLE = $85BB;
3279
3280   // GL_APPLE_texture_range
3281   GL_TEXTURE_RANGE_LENGTH_APPLE = $85B7;
3282   GL_TEXTURE_RANGE_POINTER_APPLE = $85B8;
3283   GL_TEXTURE_STORAGE_HINT_APPLE = $85BC;
3284   GL_STORAGE_PRIVATE_APPLE = $85BD;
3285   { reuse GL_STORAGE_CACHED_APPLE }
3286   { reuse GL_STORAGE_SHARED_APPLE }
3287
3288   // GL_APPLE_float_pixels
3289   GL_HALF_APPLE = $140B;
3290   GL_RGBA_FLOAT32_APPLE = $8814;
3291   GL_RGB_FLOAT32_APPLE = $8815;
3292   GL_ALPHA_FLOAT32_APPLE = $8816;
3293   GL_INTENSITY_FLOAT32_APPLE = $8817;
3294   GL_LUMINANCE_FLOAT32_APPLE = $8818;
3295   GL_LUMINANCE_ALPHA_FLOAT32_APPLE = $8819;
3296   GL_RGBA_FLOAT16_APPLE = $881A;
3297   GL_RGB_FLOAT16_APPLE = $881B;
3298   GL_ALPHA_FLOAT16_APPLE = $881C;
3299   GL_INTENSITY_FLOAT16_APPLE = $881D;
3300   GL_LUMINANCE_FLOAT16_APPLE = $881E;
3301   GL_LUMINANCE_ALPHA_FLOAT16_APPLE = $881F;
3302   GL_COLOR_FLOAT_APPLE = $8A0F;
3303
3304   // GL_APPLE_vertex_program_evaluators
3305   GL_VERTEX_ATTRIB_MAP1_APPLE = $8A00;
3306   GL_VERTEX_ATTRIB_MAP2_APPLE = $8A01;
3307   GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = $8A02;
3308   GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = $8A03;
3309   GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = $8A04;
3310   GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = $8A05;
3311   GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = $8A06;
3312   GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = $8A07;
3313   GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = $8A08;
3314   GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = $8A09;
3315
3316   // GL_APPLE_aux_depth_stencil
3317   GL_AUX_DEPTH_STENCIL_APPLE = $8A14;
3318
3319   // GL_APPLE_object_purgeable
3320   GL_BUFFER_OBJECT_APPLE = $85B3;
3321   GL_RELEASED_APPLE = $8A19;
3322   GL_VOLATILE_APPLE = $8A1A;
3323   GL_RETAINED_APPLE = $8A1B;
3324   GL_UNDEFINED_APPLE = $8A1C;
3325   GL_PURGEABLE_APPLE = $8A1D;
3326
3327   // GL_APPLE_row_bytes
3328   GL_PACK_ROW_BYTES_APPLE = $8A15;
3329   GL_UNPACK_ROW_BYTES_APPLE = $8A16;
3330   
3331   // GL_APPLE_rgb_422
3332   { reuse GL_UNSIGNED_SHORT_8_8_APPLE }
3333   { reuse GL_UNSIGNED_SHORT_8_8_REV_APPLE }  
3334   
3335   // GL_ARB_depth_texture
3336   GL_DEPTH_COMPONENT16_ARB = $81A5;
3337   GL_DEPTH_COMPONENT24_ARB = $81A6;
3338   GL_DEPTH_COMPONENT32_ARB = $81A7;
3339   GL_TEXTURE_DEPTH_SIZE_ARB = $884A;
3340   GL_DEPTH_TEXTURE_MODE_ARB = $884B;
3341
3342   // GL_ARB_fragment_program
3343   GL_FRAGMENT_PROGRAM_ARB = $8804;
3344   GL_PROGRAM_ALU_INSTRUCTIONS_ARB = $8805;
3345   GL_PROGRAM_TEX_INSTRUCTIONS_ARB = $8806;
3346   GL_PROGRAM_TEX_INDIRECTIONS_ARB = $8807;
3347   GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $8808;
3348   GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $8809;
3349   GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $880A;
3350   GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = $880B;
3351   GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = $880C;
3352   GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = $880D;
3353   GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $880E;
3354   GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $880F;
3355   GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $8810;
3356   GL_MAX_TEXTURE_COORDS_ARB = $8871;
3357   GL_MAX_TEXTURE_IMAGE_UNITS_ARB = $8872;
3358
3359   // GL_ARB_imaging
3360   GL_CONSTANT_COLOR_ARB = $8001;
3361   GL_ONE_MINUS_CONSTANT_COLOR = $8002;
3362   GL_CONSTANT_ALPHA = $8003;
3363   GL_ONE_MINUS_CONSTANT_ALPHA = $8004;
3364   GL_BLEND_COLOR = $8005;
3365   GL_FUNC_ADD = $8006;
3366   GL_MIN = $8007;
3367   GL_MAX = $8008;
3368   GL_BLEND_EQUATION = $8009;
3369   GL_FUNC_SUBTRACT = $800A;
3370   GL_FUNC_REVERSE_SUBTRACT = $800B;
3371 {$ifdef DGL_DEPRECATED}
3372   GL_CONVOLUTION_1D = $8010;
3373   GL_CONVOLUTION_2D = $8011;
3374   GL_SEPARABLE_2D = $8012;
3375   GL_CONVOLUTION_BORDER_MODE = $8013;
3376   GL_CONVOLUTION_FILTER_SCALE = $8014;
3377   GL_CONVOLUTION_FILTER_BIAS = $8015;
3378   GL_REDUCE = $8016;
3379   GL_CONVOLUTION_FORMAT = $8017;
3380   GL_CONVOLUTION_WIDTH = $8018;
3381   GL_CONVOLUTION_HEIGHT = $8019;
3382   GL_MAX_CONVOLUTION_WIDTH = $801A;
3383   GL_MAX_CONVOLUTION_HEIGHT = $801B;
3384   GL_POST_CONVOLUTION_RED_SCALE = $801C;
3385   GL_POST_CONVOLUTION_GREEN_SCALE = $801D;
3386   GL_POST_CONVOLUTION_BLUE_SCALE = $801E;
3387   GL_POST_CONVOLUTION_ALPHA_SCALE = $801F;
3388   GL_POST_CONVOLUTION_RED_BIAS = $8020;
3389   GL_POST_CONVOLUTION_GREEN_BIAS = $8021;
3390   GL_POST_CONVOLUTION_BLUE_BIAS = $8022;
3391   GL_POST_CONVOLUTION_ALPHA_BIAS = $8023;
3392   GL_HISTOGRAM = $8024;
3393   GL_PROXY_HISTOGRAM = $8025;
3394   GL_HISTOGRAM_WIDTH = $8026;
3395   GL_HISTOGRAM_FORMAT = $8027;
3396   GL_HISTOGRAM_RED_SIZE = $8028;
3397   GL_HISTOGRAM_GREEN_SIZE = $8029;
3398   GL_HISTOGRAM_BLUE_SIZE = $802A;
3399   GL_HISTOGRAM_ALPHA_SIZE = $802B;
3400   GL_HISTOGRAM_LUMINANCE_SIZE = $802C;
3401   GL_HISTOGRAM_SINK = $802D;
3402   GL_MINMAX = $802E;
3403   GL_MINMAX_FORMAT = $802F;
3404   GL_MINMAX_SINK = $8030;
3405   GL_TABLE_TOO_LARGE = $8031;
3406   GL_COLOR_MATRIX = $80B1;
3407   GL_COLOR_MATRIX_STACK_DEPTH = $80B2;
3408   GL_MAX_COLOR_MATRIX_STACK_DEPTH = $80B3;
3409   GL_POST_COLOR_MATRIX_RED_SCALE = $80B4;
3410   GL_POST_COLOR_MATRIX_GREEN_SCALE = $80B5;
3411   GL_POST_COLOR_MATRIX_BLUE_SCALE = $80B6;
3412   GL_POST_COLOR_MATRIX_ALPHA_SCALE = $80B7;
3413   GL_POST_COLOR_MATRIX_RED_BIAS = $80B8;
3414   GL_POST_COLOR_MATRIX_GREEN_BIAS = $80B9;
3415   GL_POST_COLOR_MATRIX_BLUE_BIAS = $80BA;
3416   GL_POST_COLOR_MATRIX_ALPHA_BIAS = $80BB;
3417   GL_COLOR_TABLE = $80D0;
3418   GL_POST_CONVOLUTION_COLOR_TABLE = $80D1;
3419   GL_POST_COLOR_MATRIX_COLOR_TABLE = $80D2;
3420   GL_PROXY_COLOR_TABLE = $80D3;
3421   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = $80D4;
3422   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = $80D5;
3423   GL_COLOR_TABLE_SCALE = $80D6;
3424   GL_COLOR_TABLE_BIAS = $80D7;
3425   GL_COLOR_TABLE_FORMAT = $80D8;
3426   GL_COLOR_TABLE_WIDTH = $80D9;
3427   GL_COLOR_TABLE_RED_SIZE = $80DA;
3428   GL_COLOR_TABLE_GREEN_SIZE = $80DB;
3429   GL_COLOR_TABLE_BLUE_SIZE = $80DC;
3430   GL_COLOR_TABLE_ALPHA_SIZE = $80DD;
3431   GL_COLOR_TABLE_LUMINANCE_SIZE = $80DE;
3432   GL_COLOR_TABLE_INTENSITY_SIZE = $80DF;
3433   GL_CONSTANT_BORDER = $8151;
3434   GL_REPLICATE_BORDER = $8153;
3435   GL_CONVOLUTION_BORDER_COLOR = $8154;
3436 {$endif}
3437
3438   // GL_ARB_matrix_palette
3439   GL_MATRIX_PALETTE_ARB = $8840;
3440   GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = $8841;
3441   GL_MAX_PALETTE_MATRICES_ARB = $8842;
3442   GL_CURRENT_PALETTE_MATRIX_ARB = $8843;
3443   GL_MATRIX_INDEX_ARRAY_ARB = $8844;
3444   GL_CURRENT_MATRIX_INDEX_ARB = $8845;
3445   GL_MATRIX_INDEX_ARRAY_SIZE_ARB = $8846;
3446   GL_MATRIX_INDEX_ARRAY_TYPE_ARB = $8847;
3447   GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = $8848;
3448   GL_MATRIX_INDEX_ARRAY_POINTER_ARB = $8849;
3449
3450   // GL_ARB_multisample
3451   GL_MULTISAMPLE_ARB = $809D;
3452   GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = $809E;
3453   GL_SAMPLE_ALPHA_TO_ONE_ARB = $809F;
3454   GL_SAMPLE_COVERAGE_ARB = $80A0;
3455   GL_SAMPLE_BUFFERS_ARB = $80A8;
3456   GL_SAMPLES_ARB = $80A9;
3457   GL_SAMPLE_COVERAGE_VALUE_ARB = $80AA;
3458   GL_SAMPLE_COVERAGE_INVERT_ARB = $80AB;
3459   GL_MULTISAMPLE_BIT_ARB = $20000000;
3460
3461   // GL_ARB_multitexture
3462   GL_TEXTURE0_ARB = $84C0;
3463   GL_TEXTURE1_ARB = $84C1;
3464   GL_TEXTURE2_ARB = $84C2;
3465   GL_TEXTURE3_ARB = $84C3;
3466   GL_TEXTURE4_ARB = $84C4;
3467   GL_TEXTURE5_ARB = $84C5;
3468   GL_TEXTURE6_ARB = $84C6;
3469   GL_TEXTURE7_ARB = $84C7;
3470   GL_TEXTURE8_ARB = $84C8;
3471   GL_TEXTURE9_ARB = $84C9;
3472   GL_TEXTURE10_ARB = $84CA;
3473   GL_TEXTURE11_ARB = $84CB;
3474   GL_TEXTURE12_ARB = $84CC;
3475   GL_TEXTURE13_ARB = $84CD;
3476   GL_TEXTURE14_ARB = $84CE;
3477   GL_TEXTURE15_ARB = $84CF;
3478   GL_TEXTURE16_ARB = $84D0;
3479   GL_TEXTURE17_ARB = $84D1;
3480   GL_TEXTURE18_ARB = $84D2;
3481   GL_TEXTURE19_ARB = $84D3;
3482   GL_TEXTURE20_ARB = $84D4;
3483   GL_TEXTURE21_ARB = $84D5;
3484   GL_TEXTURE22_ARB = $84D6;
3485   GL_TEXTURE23_ARB = $84D7;
3486   GL_TEXTURE24_ARB = $84D8;
3487   GL_TEXTURE25_ARB = $84D9;
3488   GL_TEXTURE26_ARB = $84DA;
3489   GL_TEXTURE27_ARB = $84DB;
3490   GL_TEXTURE28_ARB = $84DC;
3491   GL_TEXTURE29_ARB = $84DD;
3492   GL_TEXTURE30_ARB = $84DE;
3493   GL_TEXTURE31_ARB = $84DF;
3494   GL_ACTIVE_TEXTURE_ARB = $84E0;
3495   GL_CLIENT_ACTIVE_TEXTURE_ARB = $84E1;
3496   GL_MAX_TEXTURE_UNITS_ARB = $84E2;
3497
3498   // GL_ARB_point_parameters
3499   GL_POINT_SIZE_MIN_ARB = $8126;
3500   GL_POINT_SIZE_MAX_ARB = $8127;
3501   GL_POINT_FADE_THRESHOLD_SIZE_ARB = $8128;
3502   GL_POINT_DISTANCE_ATTENUATION_ARB = $8129;
3503
3504   // GL_ARB_shadow
3505   GL_TEXTURE_COMPARE_MODE_ARB = $884C;
3506   GL_TEXTURE_COMPARE_FUNC_ARB = $884D;
3507   GL_COMPARE_R_TO_TEXTURE_ARB = $884E;
3508
3509   // GL_ARB_shadow_ambient
3510   GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = $80BF;
3511
3512   // GL_ARB_texture_border_clamp
3513   GL_CLAMP_TO_BORDER_ARB = $812D;
3514
3515   // GL_ARB_texture_compression
3516   GL_COMPRESSED_ALPHA_ARB = $84E9;
3517   GL_COMPRESSED_LUMINANCE_ARB = $84EA;
3518   GL_COMPRESSED_LUMINANCE_ALPHA_ARB = $84EB;
3519   GL_COMPRESSED_INTENSITY_ARB = $84EC;
3520   GL_COMPRESSED_RGB_ARB = $84ED;
3521   GL_COMPRESSED_RGBA_ARB = $84EE;
3522   GL_TEXTURE_COMPRESSION_HINT_ARB = $84EF;
3523   GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = $86A0;
3524   GL_TEXTURE_COMPRESSED_ARB = $86A1;
3525   GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = $86A2;
3526   GL_COMPRESSED_TEXTURE_FORMATS_ARB = $86A3;
3527
3528   // GL_ARB_texture_cube_map
3529   GL_NORMAL_MAP_ARB = $8511;
3530   GL_REFLECTION_MAP_ARB = $8512;
3531   GL_TEXTURE_CUBE_MAP_ARB = $8513;
3532   GL_TEXTURE_BINDING_CUBE_MAP_ARB = $8514;
3533   GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $8515;
3534   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $8516;
3535   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $8517;
3536   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $8518;
3537   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $8519;
3538   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $851A;
3539   GL_PROXY_TEXTURE_CUBE_MAP_ARB = $851B;
3540   GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = $851C;
3541
3542   // GL_ARB_texture_env_combine
3543   GL_COMBINE_ARB = $8570;
3544   GL_COMBINE_RGB_ARB = $8571;
3545   GL_COMBINE_ALPHA_ARB = $8572;
3546   GL_SOURCE0_RGB_ARB = $8580;
3547   GL_SOURCE1_RGB_ARB = $8581;
3548   GL_SOURCE2_RGB_ARB = $8582;
3549   GL_SOURCE0_ALPHA_ARB = $8588;
3550   GL_SOURCE1_ALPHA_ARB = $8589;
3551   GL_SOURCE2_ALPHA_ARB = $858A;
3552   GL_OPERAND0_RGB_ARB = $8590;
3553   GL_OPERAND1_RGB_ARB = $8591;
3554   GL_OPERAND2_RGB_ARB = $8592;
3555   GL_OPERAND0_ALPHA_ARB = $8598;
3556   GL_OPERAND1_ALPHA_ARB = $8599;
3557   GL_OPERAND2_ALPHA_ARB = $859A;
3558   GL_RGB_SCALE_ARB = $8573;
3559   GL_ADD_SIGNED_ARB = $8574;
3560   GL_INTERPOLATE_ARB = $8575;
3561   GL_SUBTRACT_ARB = $84E7;
3562   GL_CONSTANT_ARB = $8576;
3563   GL_PRIMARY_COLOR_ARB = $8577;
3564   GL_PREVIOUS_ARB = $8578;
3565
3566   // GL_ARB_texture_env_dot3
3567   GL_DOT3_RGB_ARB = $86AE;
3568   GL_DOT3_RGBA_ARB = $86AF;
3569
3570   // GL_ARB_texture_mirrored_repeat
3571   GL_MIRRORED_REPEAT_ARB = $8370;
3572
3573   // GL_ARB_transpose_matrix
3574   GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = $84E3;
3575   GL_TRANSPOSE_PROJECTION_MATRIX_ARB = $84E4;
3576   GL_TRANSPOSE_TEXTURE_MATRIX_ARB = $84E5;
3577   GL_TRANSPOSE_COLOR_MATRIX_ARB = $84E6;
3578
3579   // GL_ARB_vertex_blend
3580   GL_MAX_VERTEX_UNITS_ARB = $86A4;
3581   GL_ACTIVE_VERTEX_UNITS_ARB = $86A5;
3582   GL_WEIGHT_SUM_UNITY_ARB = $86A6;
3583   GL_VERTEX_BLEND_ARB = $86A7;
3584   GL_CURRENT_WEIGHT_ARB = $86A8;
3585   GL_WEIGHT_ARRAY_TYPE_ARB = $86A9;
3586   GL_WEIGHT_ARRAY_STRIDE_ARB = $86AA;
3587   GL_WEIGHT_ARRAY_SIZE_ARB = $86AB;
3588   GL_WEIGHT_ARRAY_POINTER_ARB = $86AC;
3589   GL_WEIGHT_ARRAY_ARB = $86AD;
3590   GL_MODELVIEW0_ARB = $1700;
3591   GL_MODELVIEW1_ARB = $850A;
3592   GL_MODELVIEW2_ARB = $8722;
3593   GL_MODELVIEW3_ARB = $8723;
3594   GL_MODELVIEW4_ARB = $8724;
3595   GL_MODELVIEW5_ARB = $8725;
3596   GL_MODELVIEW6_ARB = $8726;
3597   GL_MODELVIEW7_ARB = $8727;
3598   GL_MODELVIEW8_ARB = $8728;
3599   GL_MODELVIEW9_ARB = $8729;
3600   GL_MODELVIEW10_ARB = $872A;
3601   GL_MODELVIEW11_ARB = $872B;
3602   GL_MODELVIEW12_ARB = $872C;
3603   GL_MODELVIEW13_ARB = $872D;
3604   GL_MODELVIEW14_ARB = $872E;
3605   GL_MODELVIEW15_ARB = $872F;
3606   GL_MODELVIEW16_ARB = $8730;
3607   GL_MODELVIEW17_ARB = $8731;
3608   GL_MODELVIEW18_ARB = $8732;
3609   GL_MODELVIEW19_ARB = $8733;
3610   GL_MODELVIEW20_ARB = $8734;
3611   GL_MODELVIEW21_ARB = $8735;
3612   GL_MODELVIEW22_ARB = $8736;
3613   GL_MODELVIEW23_ARB = $8737;
3614   GL_MODELVIEW24_ARB = $8738;
3615   GL_MODELVIEW25_ARB = $8739;
3616   GL_MODELVIEW26_ARB = $873A;
3617   GL_MODELVIEW27_ARB = $873B;
3618   GL_MODELVIEW28_ARB = $873C;
3619   GL_MODELVIEW29_ARB = $873D;
3620   GL_MODELVIEW30_ARB = $873E;
3621   GL_MODELVIEW31_ARB = $873F;
3622
3623   // GL_ARB_vertex_buffer_object
3624   GL_BUFFER_SIZE_ARB = $8764;
3625   GL_BUFFER_USAGE_ARB = $8765;
3626   GL_ARRAY_BUFFER_ARB = $8892;
3627   GL_ELEMENT_ARRAY_BUFFER_ARB = $8893;
3628   GL_ARRAY_BUFFER_BINDING_ARB = $8894;
3629   GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = $8895;
3630   GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = $8896;
3631   GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = $8897;
3632   GL_COLOR_ARRAY_BUFFER_BINDING_ARB = $8898;
3633   GL_INDEX_ARRAY_BUFFER_BINDING_ARB = $8899;
3634   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = $889A;
3635   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = $889B;
3636   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = $889C;
3637   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = $889D;
3638   GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = $889E;
3639   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = $889F;
3640   GL_READ_ONLY_ARB = $88B8;
3641   GL_WRITE_ONLY_ARB = $88B9;
3642   GL_READ_WRITE_ARB = $88BA;
3643   GL_BUFFER_ACCESS_ARB = $88BB;
3644   GL_BUFFER_MAPPED_ARB = $88BC;
3645   GL_BUFFER_MAP_POINTER_ARB = $88BD;
3646   GL_STREAM_DRAW_ARB = $88E0;
3647   GL_STREAM_READ_ARB = $88E1;
3648   GL_STREAM_COPY_ARB = $88E2;
3649   GL_STATIC_DRAW_ARB = $88E4;
3650   GL_STATIC_READ_ARB = $88E5;
3651   GL_STATIC_COPY_ARB = $88E6;
3652   GL_DYNAMIC_DRAW_ARB = $88E8;
3653   GL_DYNAMIC_READ_ARB = $88E9;
3654   GL_DYNAMIC_COPY_ARB = $88EA;
3655
3656   // GL_ARB_vertex_program
3657   GL_COLOR_SUM_ARB = $8458;
3658   GL_VERTEX_PROGRAM_ARB = $8620;
3659   GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = $8622;
3660   GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = $8623;
3661   GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = $8624;
3662   GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = $8625;
3663   GL_CURRENT_VERTEX_ATTRIB_ARB = $8626;
3664   GL_PROGRAM_LENGTH_ARB = $8627;
3665   GL_PROGRAM_STRING_ARB = $8628;
3666   GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = $862E;
3667   GL_MAX_PROGRAM_MATRICES_ARB = $862F;
3668   GL_CURRENT_MATRIX_STACK_DEPTH_ARB = $8640;
3669   GL_CURRENT_MATRIX_ARB = $8641;
3670   GL_VERTEX_PROGRAM_POINT_SIZE_ARB = $8642;
3671   GL_VERTEX_PROGRAM_TWO_SIDE_ARB = $8643;
3672   GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = $8645;
3673   GL_PROGRAM_ERROR_POSITION_ARB = $864B;
3674   GL_PROGRAM_BINDING_ARB = $8677;
3675   GL_MAX_VERTEX_ATTRIBS_ARB = $8869;
3676   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = $886A;
3677   GL_PROGRAM_ERROR_STRING_ARB = $8874;
3678   GL_PROGRAM_FORMAT_ASCII_ARB = $8875;
3679   GL_PROGRAM_FORMAT_ARB = $8876;
3680   GL_PROGRAM_INSTRUCTIONS_ARB = $88A0;
3681   GL_MAX_PROGRAM_INSTRUCTIONS_ARB = $88A1;
3682   GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A2;
3683   GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A3;
3684   GL_PROGRAM_TEMPORARIES_ARB = $88A4;
3685   GL_MAX_PROGRAM_TEMPORARIES_ARB = $88A5;
3686   GL_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A6;
3687   GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A7;
3688   GL_PROGRAM_PARAMETERS_ARB = $88A8;
3689   GL_MAX_PROGRAM_PARAMETERS_ARB = $88A9;
3690   GL_PROGRAM_NATIVE_PARAMETERS_ARB = $88AA;
3691   GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = $88AB;
3692   GL_PROGRAM_ATTRIBS_ARB = $88AC;
3693   GL_MAX_PROGRAM_ATTRIBS_ARB = $88AD;
3694   GL_PROGRAM_NATIVE_ATTRIBS_ARB = $88AE;
3695   GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = $88AF;
3696   GL_PROGRAM_ADDRESS_REGISTERS_ARB = $88B0;
3697   GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = $88B1;
3698   GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B2;
3699   GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B3;
3700   GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = $88B4;
3701   GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = $88B5;
3702   GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = $88B6;
3703   GL_TRANSPOSE_CURRENT_MATRIX_ARB = $88B7;
3704   GL_MATRIX0_ARB = $88C0;
3705   GL_MATRIX1_ARB = $88C1;
3706   GL_MATRIX2_ARB = $88C2;
3707   GL_MATRIX3_ARB = $88C3;
3708   GL_MATRIX4_ARB = $88C4;
3709   GL_MATRIX5_ARB = $88C5;
3710   GL_MATRIX6_ARB = $88C6;
3711   GL_MATRIX7_ARB = $88C7;
3712   GL_MATRIX8_ARB = $88C8;
3713   GL_MATRIX9_ARB = $88C9;
3714   GL_MATRIX10_ARB = $88CA;
3715   GL_MATRIX11_ARB = $88CB;
3716   GL_MATRIX12_ARB = $88CC;
3717   GL_MATRIX13_ARB = $88CD;
3718   GL_MATRIX14_ARB = $88CE;
3719   GL_MATRIX15_ARB = $88CF;
3720   GL_MATRIX16_ARB = $88D0;
3721   GL_MATRIX17_ARB = $88D1;
3722   GL_MATRIX18_ARB = $88D2;
3723   GL_MATRIX19_ARB = $88D3;
3724   GL_MATRIX20_ARB = $88D4;
3725   GL_MATRIX21_ARB = $88D5;
3726   GL_MATRIX22_ARB = $88D6;
3727   GL_MATRIX23_ARB = $88D7;
3728   GL_MATRIX24_ARB = $88D8;
3729   GL_MATRIX25_ARB = $88D9;
3730   GL_MATRIX26_ARB = $88DA;
3731   GL_MATRIX27_ARB = $88DB;
3732   GL_MATRIX28_ARB = $88DC;
3733   GL_MATRIX29_ARB = $88DD;
3734   GL_MATRIX30_ARB = $88DE;
3735   GL_MATRIX31_ARB = $88DF;
3736
3737   // GL_ARB_draw_buffers
3738   GL_MAX_DRAW_BUFFERS_ARB = $8824;
3739   GL_DRAW_BUFFER0_ARB = $8825;
3740   GL_DRAW_BUFFER1_ARB = $8826;
3741   GL_DRAW_BUFFER2_ARB = $8827;
3742   GL_DRAW_BUFFER3_ARB = $8828;
3743   GL_DRAW_BUFFER4_ARB = $8829;
3744   GL_DRAW_BUFFER5_ARB = $882A;
3745   GL_DRAW_BUFFER6_ARB = $882B;
3746   GL_DRAW_BUFFER7_ARB = $882C;
3747   GL_DRAW_BUFFER8_ARB = $882D;
3748   GL_DRAW_BUFFER9_ARB = $882E;
3749   GL_DRAW_BUFFER10_ARB = $882F;
3750   GL_DRAW_BUFFER11_ARB = $8830;
3751   GL_DRAW_BUFFER12_ARB = $8831;
3752   GL_DRAW_BUFFER13_ARB = $8832;
3753   GL_DRAW_BUFFER14_ARB = $8833;
3754   GL_DRAW_BUFFER15_ARB = $8834;
3755
3756   // GL_ARB_texture_rectangle
3757   GL_TEXTURE_RECTANGLE_ARB = $84F5;
3758   GL_TEXTURE_BINDING_RECTANGLE_ARB = $84F6;
3759   GL_PROXY_TEXTURE_RECTANGLE_ARB = $84F7;
3760   GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = $84F8;
3761
3762   // GL_ARB_color_buffer_float
3763   GL_RGBA_FLOAT_MODE_ARB = $8820;
3764   GL_CLAMP_VERTEX_COLOR_ARB = $891A;
3765   GL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
3766   GL_CLAMP_READ_COLOR_ARB = $891C;
3767   GL_FIXED_ONLY_ARB = $891D;
3768   WGL_TYPE_RGBA_FLOAT_ARB = $21A0;
3769   GLX_RGBA_FLOAT_TYPE = $20B9;
3770   GLX_RGBA_FLOAT_BIT = $00000004;
3771
3772   // GL_ARB_half_float_pixel
3773   GL_HALF_FLOAT_ARB = $140B;
3774
3775   // GL_ARB_texture_float
3776   GL_TEXTURE_RED_TYPE_ARB = $8C10;
3777   GL_TEXTURE_GREEN_TYPE_ARB = $8C11;
3778   GL_TEXTURE_BLUE_TYPE_ARB = $8C12;
3779   GL_TEXTURE_ALPHA_TYPE_ARB = $8C13;
3780   GL_TEXTURE_LUMINANCE_TYPE_ARB = $8C14;
3781   GL_TEXTURE_INTENSITY_TYPE_ARB = $8C15;
3782   GL_TEXTURE_DEPTH_TYPE_ARB = $8C16;
3783   GL_UNSIGNED_NORMALIZED_ARB = $8C17;
3784   GL_RGBA32F_ARB = $8814;
3785   GL_RGB32F_ARB = $8815;
3786   GL_ALPHA32F_ARB = $8816;
3787   GL_INTENSITY32F_ARB = $8817;
3788   GL_LUMINANCE32F_ARB = $8818;
3789   GL_LUMINANCE_ALPHA32F_ARB = $8819;
3790   GL_RGBA16F_ARB = $881A;
3791   GL_RGB16F_ARB = $881B;
3792   GL_ALPHA16F_ARB = $881C;
3793   GL_INTENSITY16F_ARB = $881D;
3794   GL_LUMINANCE16F_ARB = $881E;
3795   GL_LUMINANCE_ALPHA16F_ARB = $881F;
3796
3797   // GL_ARB_pixel_buffer_object
3798   GL_PIXEL_PACK_BUFFER_ARB = $88EB;
3799   GL_PIXEL_UNPACK_BUFFER_ARB = $88EC;
3800   GL_PIXEL_PACK_BUFFER_BINDING_ARB = $88ED;
3801   GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = $88EF;
3802
3803   // GL_ARB_depth_buffer_float
3804   GL_DEPTH_COMPONENT32F = $8CAC;
3805   GL_DEPTH32F_STENCIL8 = $8CAD;
3806   GL_FLOAT_32_UNSIGNED_INT_24_8_REV = $8DAD;
3807
3808   // GL_ARB_framebuffer_object
3809   GL_INVALID_FRAMEBUFFER_OPERATION = $0506;
3810   GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = $8210;
3811   GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = $8211;
3812   GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = $8212;
3813   GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = $8213;
3814   GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = $8214;
3815   GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = $8215;
3816   GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = $8216;
3817   GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = $8217;
3818   GL_FRAMEBUFFER_DEFAULT = $8218;
3819   GL_FRAMEBUFFER_UNDEFINED = $8219;
3820   GL_DEPTH_STENCIL_ATTACHMENT = $821A;
3821   GL_MAX_RENDERBUFFER_SIZE = $84E8;
3822   GL_DEPTH_STENCIL = $84F9;
3823   GL_UNSIGNED_INT_24_8 = $84FA;
3824   GL_DEPTH24_STENCIL8 = $88F0;
3825   GL_TEXTURE_STENCIL_SIZE = $88F1;
3826   GL_TEXTURE_RED_TYPE = $8C10;
3827   GL_TEXTURE_GREEN_TYPE = $8C11;
3828   GL_TEXTURE_BLUE_TYPE = $8C12;
3829   GL_TEXTURE_ALPHA_TYPE = $8C13;
3830   GL_TEXTURE_DEPTH_TYPE = $8C16;
3831   GL_UNSIGNED_NORMALIZED = $8C17;
3832   GL_FRAMEBUFFER_BINDING = $8CA6;
3833   GL_DRAW_FRAMEBUFFER_BINDING = GL_FRAMEBUFFER_BINDING;
3834   GL_RENDERBUFFER_BINDING = $8CA7;
3835   GL_READ_FRAMEBUFFER = $8CA8;
3836   GL_DRAW_FRAMEBUFFER = $8CA9;
3837   GL_READ_FRAMEBUFFER_BINDING = $8CAA;
3838   GL_RENDERBUFFER_SAMPLES = $8CAB;
3839   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = $8CD0;
3840   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = $8CD1;
3841   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = $8CD2;
3842   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = $8CD3;
3843   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = $8CD4;
3844   GL_FRAMEBUFFER_COMPLETE = $8CD5;
3845   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = $8CD6;
3846   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = $8CD7;
3847   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = $8CDB;
3848   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = $8CDC;
3849   GL_FRAMEBUFFER_UNSUPPORTED = $8CDD;
3850   GL_MAX_COLOR_ATTACHMENTS = $8CDF;
3851   GL_COLOR_ATTACHMENT0 = $8CE0;
3852   GL_COLOR_ATTACHMENT1 = $8CE1;
3853   GL_COLOR_ATTACHMENT2 = $8CE2;
3854   GL_COLOR_ATTACHMENT3 = $8CE3;
3855   GL_COLOR_ATTACHMENT4 = $8CE4;
3856   GL_COLOR_ATTACHMENT5 = $8CE5;
3857   GL_COLOR_ATTACHMENT6 = $8CE6;
3858   GL_COLOR_ATTACHMENT7 = $8CE7;
3859   GL_COLOR_ATTACHMENT8 = $8CE8;
3860   GL_COLOR_ATTACHMENT9 = $8CE9;
3861   GL_COLOR_ATTACHMENT10 = $8CEA;
3862   GL_COLOR_ATTACHMENT11 = $8CEB;
3863   GL_COLOR_ATTACHMENT12 = $8CEC;
3864   GL_COLOR_ATTACHMENT13 = $8CED;
3865   GL_COLOR_ATTACHMENT14 = $8CEE;
3866   GL_COLOR_ATTACHMENT15 = $8CEF;
3867   GL_DEPTH_ATTACHMENT = $8D00;
3868   GL_STENCIL_ATTACHMENT = $8D20;
3869   GL_FRAMEBUFFER = $8D40;
3870   GL_RENDERBUFFER = $8D41;
3871   GL_RENDERBUFFER_WIDTH = $8D42;
3872   GL_RENDERBUFFER_HEIGHT = $8D43;
3873   GL_RENDERBUFFER_INTERNAL_FORMAT = $8D44;
3874   GL_STENCIL_INDEX1 = $8D46;
3875   GL_STENCIL_INDEX4 = $8D47;
3876   GL_STENCIL_INDEX8 = $8D48;
3877   GL_STENCIL_INDEX16 = $8D49;
3878   GL_RENDERBUFFER_RED_SIZE = $8D50;
3879   GL_RENDERBUFFER_GREEN_SIZE = $8D51;
3880   GL_RENDERBUFFER_BLUE_SIZE = $8D52;
3881   GL_RENDERBUFFER_ALPHA_SIZE = $8D53;
3882   GL_RENDERBUFFER_DEPTH_SIZE = $8D54;
3883   GL_RENDERBUFFER_STENCIL_SIZE = $8D55;
3884   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = $8D56;
3885   GL_MAX_SAMPLES = $8D57;
3886 {$ifdef DGL_DEPRECATED}
3887   GL_INDEX = $8222;
3888   GL_TEXTURE_LUMINANCE_TYPE = $8C14;
3889   GL_TEXTURE_INTENSITY_TYPE = $8C15;
3890 {$endif}
3891
3892   // GL_ARB_framebuffer_sRGB
3893   GL_FRAMEBUFFER_SRGB = $8DB9;
3894
3895   // GL_ARB_geometry_shader4
3896   GL_LINES_ADJACENCY_ARB = $000A;
3897   GL_LINE_STRIP_ADJACENCY_ARB = $000B;
3898   GL_TRIANGLES_ADJACENCY_ARB = $000C;
3899   GL_TRIANGLE_STRIP_ADJACENCY_ARB = $000D;
3900   GL_PROGRAM_POINT_SIZE_ARB = $8642;
3901   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = $8C29;
3902   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = $8DA7;
3903   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = $8DA8;
3904   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = $8DA9;
3905   GL_GEOMETRY_SHADER_ARB = $8DD9;
3906   GL_GEOMETRY_VERTICES_OUT_ARB = $8DDA;
3907   GL_GEOMETRY_INPUT_TYPE_ARB = $8DDB;
3908   GL_GEOMETRY_OUTPUT_TYPE_ARB = $8DDC;
3909   GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = $8DDD;
3910   GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = $8DDE;
3911   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = $8DDF;
3912   GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = $8DE0;
3913   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = $8DE1;
3914   { reuse GL_MAX_VARYING_COMPONENTS }
3915   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
3916
3917   // GL_ARB_half_float_vertex
3918   GL_HALF_FLOAT = $140B;
3919
3920   // GL_ARB_instanced_arrays
3921   GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = $88FE;
3922
3923   // GL_ARB_map_buffer_range
3924   GL_MAP_READ_BIT = $0001;
3925   GL_MAP_WRITE_BIT = $0002;
3926   GL_MAP_INVALIDATE_RANGE_BIT = $0004;
3927   GL_MAP_INVALIDATE_BUFFER_BIT = $0008;
3928   GL_MAP_FLUSH_EXPLICIT_BIT = $0010;
3929   GL_MAP_UNSYNCHRONIZED_BIT = $0020;
3930
3931   // GL_ARB_texture_buffer_object
3932   GL_TEXTURE_BUFFER_ARB = $8C2A;
3933   GL_MAX_TEXTURE_BUFFER_SIZE_ARB = $8C2B;
3934   GL_TEXTURE_BINDING_BUFFER_ARB = $8C2C;
3935   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = $8C2D;
3936   GL_TEXTURE_BUFFER_FORMAT_ARB = $8C2E;
3937
3938   // GL_ARB_texture_compression_rgtc
3939   GL_COMPRESSED_RED_RGTC1 = $8DBB;
3940   GL_COMPRESSED_SIGNED_RED_RGTC1 = $8DBC;
3941   GL_COMPRESSED_RG_RGTC2 = $8DBD;
3942   GL_COMPRESSED_SIGNED_RG_RGTC2 = $8DBE;
3943
3944   // GL_ARB_texture_rg
3945   GL_RG = $8227;
3946   GL_RG_INTEGER = $8228;
3947   GL_R8 = $8229;
3948   GL_R16 = $822A;
3949   GL_RG8 = $822B;
3950   GL_RG16 = $822C;
3951   GL_R16F = $822D;
3952   GL_R32F = $822E;
3953   GL_RG16F = $822F;
3954   GL_RG32F = $8230;
3955   GL_R8I = $8231;
3956   GL_R8UI = $8232;
3957   GL_R16I = $8233;
3958   GL_R16UI = $8234;
3959   GL_R32I = $8235;
3960   GL_R32UI = $8236;
3961   GL_RG8I = $8237;
3962   GL_RG8UI = $8238;
3963   GL_RG16I = $8239;
3964   GL_RG16UI = $823A;
3965   GL_RG32I = $823B;
3966   GL_RG32UI = $823C;
3967
3968   // GL_ARB_vertex_array_object
3969   GL_VERTEX_ARRAY_BINDING = $85B5;
3970
3971   // GL_ARB_uniform_buffer_object
3972   GL_UNIFORM_BUFFER = $8A11;
3973   GL_UNIFORM_BUFFER_BINDING = $8A28;
3974   GL_UNIFORM_BUFFER_START = $8A29;
3975   GL_UNIFORM_BUFFER_SIZE = $8A2A;
3976   GL_MAX_VERTEX_UNIFORM_BLOCKS = $8A2B;
3977   GL_MAX_GEOMETRY_UNIFORM_BLOCKS = $8A2C;
3978   GL_MAX_FRAGMENT_UNIFORM_BLOCKS = $8A2D;
3979   GL_MAX_COMBINED_UNIFORM_BLOCKS = $8A2E;
3980   GL_MAX_UNIFORM_BUFFER_BINDINGS = $8A2F;
3981   GL_MAX_UNIFORM_BLOCK_SIZE = $8A30;
3982   GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = $8A31;
3983   GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = $8A32;
3984   GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = $8A33;
3985   GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = $8A34;
3986   GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = $8A35;
3987   GL_ACTIVE_UNIFORM_BLOCKS = $8A36;
3988   GL_UNIFORM_TYPE = $8A37;
3989   GL_UNIFORM_SIZE = $8A38;
3990   GL_UNIFORM_NAME_LENGTH = $8A39;
3991   GL_UNIFORM_BLOCK_INDEX = $8A3A;
3992   GL_UNIFORM_OFFSET = $8A3B;
3993   GL_UNIFORM_ARRAY_STRIDE = $8A3C;
3994   GL_UNIFORM_MATRIX_STRIDE = $8A3D;
3995   GL_UNIFORM_IS_ROW_MAJOR = $8A3E;
3996   GL_UNIFORM_BLOCK_BINDING = $8A3F;
3997   GL_UNIFORM_BLOCK_DATA_SIZE = $8A40;
3998   GL_UNIFORM_BLOCK_NAME_LENGTH = $8A41;
3999   GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = $8A42;
4000   GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = $8A43;
4001   GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = $8A44;
4002   GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = $8A45;
4003   GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = $8A46;
4004   GL_INVALID_INDEX = $FFFFFFFF;
4005
4006   // GL_ARB_compatibility
4007   { ARB_compatibility just defines tokens from core 3.0 }
4008
4009   // GL_ARB_copy_buffer
4010   GL_COPY_READ_BUFFER_BINDING = $8F36;
4011   GL_COPY_READ_BUFFER = GL_COPY_READ_BUFFER_BINDING;
4012   GL_COPY_WRITE_BUFFER_BINDING = $8F37;
4013   GL_COPY_WRITE_BUFFER = GL_COPY_WRITE_BUFFER_BINDING;
4014
4015   // GL_ARB_depth_clamp
4016   GL_DEPTH_CLAMP = $864F;
4017
4018   // GL_ARB_provoking_vertex
4019   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = $8E4C;
4020   GL_FIRST_VERTEX_CONVENTION = $8E4D;
4021   GL_LAST_VERTEX_CONVENTION = $8E4E;
4022   GL_PROVOKING_VERTEX = $8E4F;
4023
4024   // GL_ARB_seamless_cube_map
4025   GL_TEXTURE_CUBE_MAP_SEAMLESS = $884F;
4026
4027   // GL_ARB_sync
4028   GL_MAX_SERVER_WAIT_TIMEOUT = $9111;
4029   GL_OBJECT_TYPE = $9112;
4030   GL_SYNC_CONDITION = $9113;
4031   GL_SYNC_STATUS = $9114;
4032   GL_SYNC_FLAGS = $9115;
4033   GL_SYNC_FENCE = $9116;
4034   GL_SYNC_GPU_COMMANDS_COMPLETE = $9117;
4035   GL_UNSIGNALED = $9118;
4036   GL_SIGNALED = $9119;
4037   GL_ALREADY_SIGNALED = $911A;
4038   GL_TIMEOUT_EXPIRED = $911B;
4039   GL_CONDITION_SATISFIED = $911C;
4040   GL_WAIT_FAILED = $911D;
4041   GL_SYNC_FLUSH_COMMANDS_BIT = $00000001;
4042   GL_TIMEOUT_IGNORED = $FFFFFFFFFFFFFFFF;
4043
4044   // GL_ARB_texture_multisample
4045   GL_SAMPLE_POSITION = $8E50;
4046   GL_SAMPLE_MASK = $8E51;
4047   GL_SAMPLE_MASK_VALUE = $8E52;
4048   GL_MAX_SAMPLE_MASK_WORDS = $8E59;
4049   GL_TEXTURE_2D_MULTISAMPLE = $9100;
4050   GL_PROXY_TEXTURE_2D_MULTISAMPLE = $9101;
4051   GL_TEXTURE_2D_MULTISAMPLE_ARRAY = $9102;
4052   GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = $9103;
4053   GL_TEXTURE_BINDING_2D_MULTISAMPLE = $9104;
4054   GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = $9105;
4055   GL_TEXTURE_SAMPLES = $9106;
4056   GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = $9107;
4057   GL_SAMPLER_2D_MULTISAMPLE = $9108;
4058   GL_INT_SAMPLER_2D_MULTISAMPLE = $9109;
4059   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = $910A;
4060   GL_SAMPLER_2D_MULTISAMPLE_ARRAY = $910B;
4061   GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910C;
4062   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910D;
4063   GL_MAX_COLOR_TEXTURE_SAMPLES = $910E;
4064   GL_MAX_DEPTH_TEXTURE_SAMPLES = $910F;
4065   GL_MAX_INTEGER_SAMPLES = $9110;
4066
4067   // GL_ARB_vertex_array_bgra
4068   { reuse GL_BGRA }
4069
4070   // GL_ARB_sample_shading
4071   GL_SAMPLE_SHADING_ARB = $8C36;
4072   GL_MIN_SAMPLE_SHADING_VALUE_ARB = $8C37;
4073
4074   // GL_ARB_texture_cube_map_array
4075   GL_TEXTURE_CUBE_MAP_ARRAY_ARB = $9009;
4076   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = $900A;
4077   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = $900B;
4078   GL_SAMPLER_CUBE_MAP_ARRAY_ARB = $900C;
4079   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = $900D;
4080   GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900E;
4081   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900F;
4082
4083   // GL_ARB_texture_gather
4084   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5E;
4085   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5F;
4086
4087   // GL_ARB_shading_language_include
4088   GL_SHADER_INCLUDE_ARB = $8DAE;
4089   GL_NAMED_STRING_LENGTH_ARB = $8DE9;
4090   GL_NAMED_STRING_TYPE_ARB = $8DEA;
4091
4092   // GL_ARB_texture_compression_bptc
4093   GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = $8E8C;
4094   GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = $8E8D;
4095   GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = $8E8E;
4096   GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = $8E8F;
4097
4098   // GL_ARB_blend_func_extended
4099   GL_SRC1_COLOR = $88F9;
4100   { reuse GL_SRC1_ALPHA }
4101   GL_ONE_MINUS_SRC1_COLOR = $88FA;
4102   GL_ONE_MINUS_SRC1_ALPHA = $88FB;
4103   GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = $88FC;
4104
4105   // GL_ARB_occlusion_query2
4106   GL_ANY_SAMPLES_PASSED = $8C2F;
4107
4108   // GL_ARB_sampler_objects
4109   GL_SAMPLER_BINDING = $8919;
4110
4111   // GL_ARB_texture_rgb10_a2ui
4112   GL_RGB10_A2UI = $906F;
4113
4114   // GL_ARB_texture_swizzle
4115   GL_TEXTURE_SWIZZLE_R = $8E42;
4116   GL_TEXTURE_SWIZZLE_G = $8E43;
4117   GL_TEXTURE_SWIZZLE_B = $8E44;
4118   GL_TEXTURE_SWIZZLE_A = $8E45;
4119   GL_TEXTURE_SWIZZLE_RGBA = $8E46;
4120
4121   // GL_ARB_SPARSE_TEXTURE
4122   GL_TEXTURE_SPARSE_ARB = $91A6;
4123   GL_VIRTUAL_PAGE_SIZE_INDEX_ARB = $91A7;
4124   GL_NUM_VIRTUAL_PAGE_SIZES_ARB = $91A8;
4125   GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = $91A9;
4126   GL_NUM_SPARSE_LEVELS_ARB = $91AA;
4127   GL_VIRTUAL_PAGE_SIZE_X_ARB = $9195;
4128   GL_VIRTUAL_PAGE_SIZE_Y_ARB = $9196;
4129   GL_VIRTUAL_PAGE_SIZE_Z_ARB = $9197;
4130   GL_MAX_SPARSE_TEXTURE_SIZE_ARB = $9198;
4131   GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB = $9199;
4132   GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = $919A;
4133   GL_MIN_SPARSE_LEVEL_ARB = $919B;
4134
4135   // GL_ARB_timer_query
4136   GL_TIME_ELAPSED = $88BF;
4137   GL_TIMESTAMP = $8E28;
4138
4139   // GL_ARB_vertex_type_2_10_10_10_rev
4140   { reuse GL_UNSIGNED_INT_2_10_10_10_REV }
4141   GL_INT_2_10_10_10_REV = $8D9F;
4142
4143   // GL_ARB_draw_indirect
4144   GL_DRAW_INDIRECT_BUFFER = $8F3F;
4145   GL_DRAW_INDIRECT_BUFFER_BINDING = $8F43;
4146
4147   // GL_ARB_gpu_shader5
4148   GL_GEOMETRY_SHADER_INVOCATIONS = $887F;
4149   GL_MAX_GEOMETRY_SHADER_INVOCATIONS = $8E5A;
4150   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = $8E5B;
4151   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = $8E5C;
4152   GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = $8E5D;
4153   { reuse GL_MAX_VERTEX_STREAMS }
4154
4155   // GL_ARB_gpu_shader_fp64
4156   { reuse GL_DOUBLE }
4157   GL_DOUBLE_VEC2 = $8FFC;
4158   GL_DOUBLE_VEC3 = $8FFD;
4159   GL_DOUBLE_VEC4 = $8FFE;
4160   GL_DOUBLE_MAT2 = $8F46;
4161   GL_DOUBLE_MAT3 = $8F47;
4162   GL_DOUBLE_MAT4 = $8F48;
4163   GL_DOUBLE_MAT2x3 = $8F49;
4164   GL_DOUBLE_MAT2x4 = $8F4A;
4165   GL_DOUBLE_MAT3x2 = $8F4B;
4166   GL_DOUBLE_MAT3x4 = $8F4C;
4167   GL_DOUBLE_MAT4x2 = $8F4D;
4168   GL_DOUBLE_MAT4x3 = $8F4E;
4169
4170   // GL_ARB_shader_subroutine
4171   GL_ACTIVE_SUBROUTINES = $8DE5;
4172   GL_ACTIVE_SUBROUTINE_UNIFORMS = $8DE6;
4173   GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = $8E47;
4174   GL_ACTIVE_SUBROUTINE_MAX_LENGTH = $8E48;
4175   GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = $8E49;
4176   GL_MAX_SUBROUTINES = $8DE7;
4177   GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = $8DE8;
4178   GL_NUM_COMPATIBLE_SUBROUTINES = $8E4A;
4179   GL_COMPATIBLE_SUBROUTINES = $8E4B;
4180   { reuse GL_UNIFORM_SIZE }
4181   { reuse GL_UNIFORM_NAME_LENGTH }
4182
4183   // GL_ARB_tessellation_shader
4184   GL_PATCHES = $000E;
4185   GL_PATCH_VERTICES = $8E72;
4186   GL_PATCH_DEFAULT_INNER_LEVEL = $8E73;
4187   GL_PATCH_DEFAULT_OUTER_LEVEL = $8E74;
4188   GL_TESS_CONTROL_OUTPUT_VERTICES = $8E75;
4189   GL_TESS_GEN_MODE = $8E76;
4190   GL_TESS_GEN_SPACING = $8E77;
4191   GL_TESS_GEN_VERTEX_ORDER = $8E78;
4192   GL_TESS_GEN_POINT_MODE = $8E79;
4193   { reuse GL_TRIANGLES }
4194   { reuse GL_QUADS }
4195   GL_ISOLINES = $8E7A;
4196   { reuse GL_EQUAL }
4197   GL_FRACTIONAL_ODD = $8E7B;
4198   GL_FRACTIONAL_EVEN = $8E7C;
4199   { reuse GL_CCW }
4200   { reuse GL_CW }
4201   GL_MAX_PATCH_VERTICES = $8E7D;
4202   GL_MAX_TESS_GEN_LEVEL = $8E7E;
4203   GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = $8E7F;
4204   GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E80;
4205   GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = $8E81;
4206   GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = $8E82;
4207   GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = $8E83;
4208   GL_MAX_TESS_PATCH_COMPONENTS = $8E84;
4209   GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = $8E85;
4210   GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = $8E86;
4211   GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = $8E89;
4212   GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = $8E8A;
4213   GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = $886C;
4214   GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = $886D;
4215   GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = $8E1E;
4216   GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E1F;
4217   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = $84F0;
4218   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = $84F1;
4219   GL_TESS_EVALUATION_SHADER = $8E87;
4220   GL_TESS_CONTROL_SHADER = $8E88;
4221
4222   // GL_ARB_texture_buffer_object_rgb32
4223   { reuse GL_RGB32F }
4224   { reuse GL_RGB32UI }
4225   { reuse GL_RGB32I }
4226
4227   // GL_ARB_transform_feedback2
4228   GL_TRANSFORM_FEEDBACK = $8E22;
4229   GL_TRANSFORM_FEEDBACK_PAUSED = $8E23;
4230   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = GL_TRANSFORM_FEEDBACK_PAUSED;
4231   GL_TRANSFORM_FEEDBACK_ACTIVE = $8E24;
4232   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = GL_TRANSFORM_FEEDBACK_ACTIVE;
4233   GL_TRANSFORM_FEEDBACK_BINDING = $8E25;
4234
4235   // GL_ARB_transform_feedback3
4236   GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = $8E70;
4237   GL_MAX_VERTEX_STREAMS = $8E71;
4238
4239   // GL_ARB_ES2_compatibility
4240   GL_FIXED = $140C;
4241   GL_IMPLEMENTATION_COLOR_READ_TYPE = $8B9A;
4242   GL_IMPLEMENTATION_COLOR_READ_FORMAT = $8B9B;
4243   GL_LOW_FLOAT = $8DF0;
4244   GL_MEDIUM_FLOAT = $8DF1;
4245   GL_HIGH_FLOAT = $8DF2;
4246   GL_LOW_INT = $8DF3;
4247   GL_MEDIUM_INT = $8DF4;
4248   GL_HIGH_INT = $8DF5;
4249   GL_SHADER_COMPILER = $8DFA;
4250   GL_NUM_SHADER_BINARY_FORMATS = $8DF9;
4251   GL_MAX_VERTEX_UNIFORM_VECTORS = $8DFB;
4252   GL_MAX_VARYING_VECTORS = $8DFC;
4253   GL_MAX_FRAGMENT_UNIFORM_VECTORS = $8DFD;
4254   GL_RGB565 = $8D62;
4255
4256   // GL_ARB_get_program_binary
4257   GL_PROGRAM_BINARY_RETRIEVABLE_HINT = $8257;
4258   GL_PROGRAM_BINARY_LENGTH = $8741;
4259   GL_NUM_PROGRAM_BINARY_FORMATS = $87FE;
4260   GL_PROGRAM_BINARY_FORMATS = $87FF;
4261
4262   // GL_ARB_separate_shader_objects
4263   GL_VERTEX_SHADER_BIT = $00000001;
4264   GL_FRAGMENT_SHADER_BIT = $00000002;
4265   GL_GEOMETRY_SHADER_BIT = $00000004;
4266   GL_TESS_CONTROL_SHADER_BIT = $00000008;
4267   GL_TESS_EVALUATION_SHADER_BIT = $00000010;
4268   GL_ALL_SHADER_BITS = $FFFFFFFF;
4269   GL_PROGRAM_SEPARABLE = $8258;
4270   GL_ACTIVE_PROGRAM = $8259;
4271   GL_PROGRAM_PIPELINE_BINDING = $825A;
4272
4273   // GL_ARB_vertex_attrib_64bit
4274   { reuse GL_RGB32I }
4275   { reuse GL_DOUBLE_VEC2 }
4276   { reuse GL_DOUBLE_VEC3 }
4277   { reuse GL_DOUBLE_VEC4 }
4278   { reuse GL_DOUBLE_MAT2 }
4279   { reuse GL_DOUBLE_MAT3 }
4280   { reuse GL_DOUBLE_MAT4 }
4281   { reuse GL_DOUBLE_MAT2x3 }
4282   { reuse GL_DOUBLE_MAT2x4 }
4283   { reuse GL_DOUBLE_MAT3x2 }
4284   { reuse GL_DOUBLE_MAT3x4 }
4285   { reuse GL_DOUBLE_MAT4x2 }
4286   { reuse GL_DOUBLE_MAT4x3 }
4287
4288   // GL_ARB_viewport_array
4289   { reuse GL_SCISSOR_BOX }
4290   { reuse GL_VIEWPORT }
4291   { reuse GL_DEPTH_RANGE }
4292   { reuse GL_SCISSOR_TEST }
4293   GL_MAX_VIEWPORTS = $825B;
4294   GL_VIEWPORT_SUBPIXEL_BITS = $825C;
4295   GL_VIEWPORT_BOUNDS_RANGE = $825D;
4296   GL_LAYER_PROVOKING_VERTEX = $825E;
4297   GL_VIEWPORT_INDEX_PROVOKING_VERTEX = $825F;
4298   GL_UNDEFINED_VERTEX = $8260;
4299   { reuse GL_FIRST_VERTEX_CONVENTION }
4300   { reuse GL_LAST_VERTEX_CONVENTION }
4301   { reuse GL_PROVOKING_VERTEX }
4302
4303   // GL_ARB_cl_event
4304   GL_SYNC_CL_EVENT_ARB = $8240;
4305   GL_SYNC_CL_EVENT_COMPLETE_ARB = $8241;
4306
4307   // GL_ARB_debug_output
4308   GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = $8242;
4309   GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = $8243;
4310   GL_DEBUG_CALLBACK_FUNCTION_ARB = $8244;
4311   GL_DEBUG_CALLBACK_USER_PARAM_ARB = $8245;
4312   GL_DEBUG_SOURCE_API_ARB = $8246;
4313   GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = $8247;
4314   GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = $8248;
4315   GL_DEBUG_SOURCE_THIRD_PARTY_ARB = $8249;
4316   GL_DEBUG_SOURCE_APPLICATION_ARB = $824A;
4317   GL_DEBUG_SOURCE_OTHER_ARB = $824B;
4318   GL_DEBUG_TYPE_ERROR_ARB = $824C;
4319   GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = $824D;
4320   GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = $824E;
4321   GL_DEBUG_TYPE_PORTABILITY_ARB = $824F;
4322   GL_DEBUG_TYPE_PERFORMANCE_ARB = $8250;
4323   GL_DEBUG_TYPE_OTHER_ARB = $8251;
4324   GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = $9143;
4325   GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = $9144;
4326   GL_DEBUG_LOGGED_MESSAGES_ARB = $9145;
4327   GL_DEBUG_SEVERITY_HIGH_ARB = $9146;
4328   GL_DEBUG_SEVERITY_MEDIUM_ARB = $9147;
4329   GL_DEBUG_SEVERITY_LOW_ARB = $9148;
4330
4331   // GL_ARB_robustness
4332   { reuse GL_NO_ERROR }
4333   GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = $00000004;
4334   GL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
4335   GL_GUILTY_CONTEXT_RESET_ARB = $8253;
4336   GL_INNOCENT_CONTEXT_RESET_ARB = $8254;
4337   GL_UNKNOWN_CONTEXT_RESET_ARB = $8255;
4338   GL_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
4339   GL_NO_RESET_NOTIFICATION_ARB = $8261;
4340
4341   //  GL_ARB_compressed_texture_pixel_storage
4342   GL_UNPACK_COMPRESSED_BLOCK_WIDTH  = $09127;
4343   GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = $09128;
4344   GL_UNPACK_COMPRESSED_BLOCK_DEPTH  = $09129;
4345   GL_UNPACK_COMPRESSED_BLOCK_SIZE   = $0912A;
4346   GL_PACK_COMPRESSED_BLOCK_WIDTH    = $0912B;
4347   GL_PACK_COMPRESSED_BLOCK_HEIGHT   = $0912C;
4348   GL_PACK_COMPRESSED_BLOCK_DEPTH    = $0912D;
4349   GL_PACK_COMPRESSED_BLOCK_SIZE     = $0912E;
4350
4351   // GL_ARB_internalformat_query
4352   GL_NUM_SAMPLE_COUNTS              = $09380;
4353
4354   // GL_ARB_map_buffer_alignment
4355   GL_MIN_MAP_BUFFER_ALIGNMENT       = $090BC;
4356
4357   // GL_ARB_shader_atomic_counters
4358   GL_ATOMIC_COUNTER_BUFFER          = $92C0;
4359   GL_ATOMIC_COUNTER_BUFFER_BINDING  = $92C1;
4360   GL_ATOMIC_COUNTER_BUFFER_START    = $92C2;
4361   GL_ATOMIC_COUNTER_BUFFER_SIZE     = $92C3;
4362   GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = $92C4;
4363   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = $92C5;
4364   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = $92C6;
4365   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = $92C7;
4366   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = $92C8;
4367   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = $92C9;
4368   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = $92CA;
4369   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = $92CB;
4370   GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = $92CC;
4371   GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = $92CD;
4372   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = $92CE;
4373   GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = $92CF;
4374   GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = $92D0;
4375   GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = $92D1;
4376   GL_MAX_VERTEX_ATOMIC_COUNTERS     = $92D2;
4377   GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = $92D3;
4378   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = $92D4;
4379   GL_MAX_GEOMETRY_ATOMIC_COUNTERS   = $92D5;
4380   GL_MAX_FRAGMENT_ATOMIC_COUNTERS   = $92D6;
4381   GL_MAX_COMBINED_ATOMIC_COUNTERS   = $92D7;
4382   GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = $92D8;
4383   GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = $92DC;
4384   GL_ACTIVE_ATOMIC_COUNTER_BUFFERS  = $92D9;
4385   GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = $92DA;
4386   GL_UNSIGNED_INT_ATOMIC_COUNTER    = $92DB;
4387
4388   // GL_ARB_shader_image_load_store
4389   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = $00000001;
4390   GL_ELEMENT_ARRAY_BARRIER_BIT      = $00000002;
4391   GL_UNIFORM_BARRIER_BIT            = $00000004;
4392   GL_TEXTURE_FETCH_BARRIER_BIT      = $00000008;
4393   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = $00000020;
4394   GL_COMMAND_BARRIER_BIT            = $00000040;
4395   GL_PIXEL_BUFFER_BARRIER_BIT       = $00000080;
4396   GL_TEXTURE_UPDATE_BARRIER_BIT     = $00000100;
4397   GL_BUFFER_UPDATE_BARRIER_BIT      = $00000200;
4398   GL_FRAMEBUFFER_BARRIER_BIT        = $00000400;
4399   GL_TRANSFORM_FEEDBACK_BARRIER_BIT = $00000800;
4400   GL_ATOMIC_COUNTER_BARRIER_BIT     = $00001000;
4401   GL_ALL_BARRIER_BITS               = $FFFFFFFF;
4402   GL_MAX_IMAGE_UNITS                = $8F38;
4403   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = $8F39;
4404   GL_IMAGE_BINDING_NAME             = $8F3A;
4405   GL_IMAGE_BINDING_LEVEL            = $8F3B;
4406   GL_IMAGE_BINDING_LAYERED          = $8F3C;
4407   GL_IMAGE_BINDING_LAYER            = $8F3D;
4408   GL_IMAGE_BINDING_ACCESS           = $8F3E;
4409   GL_IMAGE_1D                       = $904C;
4410   GL_IMAGE_2D                       = $904D;
4411   GL_IMAGE_3D                       = $904E;
4412   GL_IMAGE_2D_RECT                  = $904F;
4413   GL_IMAGE_CUBE                     = $9050;
4414   GL_IMAGE_BUFFER                   = $9051;
4415   GL_IMAGE_1D_ARRAY                 = $9052;
4416   GL_IMAGE_2D_ARRAY                 = $9053;
4417   GL_IMAGE_CUBE_MAP_ARRAY           = $9054;
4418   GL_IMAGE_2D_MULTISAMPLE           = $9055;
4419   GL_IMAGE_2D_MULTISAMPLE_ARRAY     = $9056;
4420   GL_INT_IMAGE_1D                   = $9057;
4421   GL_INT_IMAGE_2D                   = $9058;
4422   GL_INT_IMAGE_3D                   = $9059;
4423   GL_INT_IMAGE_2D_RECT              = $905A;
4424   GL_INT_IMAGE_CUBE                 = $905B;
4425   GL_INT_IMAGE_BUFFER               = $905C;
4426   GL_INT_IMAGE_1D_ARRAY             = $905D;
4427   GL_INT_IMAGE_2D_ARRAY             = $905E;
4428   GL_INT_IMAGE_CUBE_MAP_ARRAY       = $905F;
4429   GL_INT_IMAGE_2D_MULTISAMPLE       = $9060;
4430   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $9061;
4431   GL_UNSIGNED_INT_IMAGE_1D          = $9062;
4432   GL_UNSIGNED_INT_IMAGE_2D          = $9063;
4433   GL_UNSIGNED_INT_IMAGE_3D          = $9064;
4434   GL_UNSIGNED_INT_IMAGE_2D_RECT     = $9065;
4435   GL_UNSIGNED_INT_IMAGE_CUBE        = $9066;
4436   GL_UNSIGNED_INT_IMAGE_BUFFER      = $9067;
4437   GL_UNSIGNED_INT_IMAGE_1D_ARRAY    = $9068;
4438   GL_UNSIGNED_INT_IMAGE_2D_ARRAY    = $9069;
4439   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = $906A;
4440   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = $906B;
4441   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $906C;
4442   GL_MAX_IMAGE_SAMPLES              = $906D;
4443   GL_IMAGE_BINDING_FORMAT           = $906E;
4444   GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = $90C7;
4445   GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = $90C8;
4446   GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = $90C9;
4447   GL_MAX_VERTEX_IMAGE_UNIFORMS      = $90CA;
4448   GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = $90CB;
4449   GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = $90CC;
4450   GL_MAX_GEOMETRY_IMAGE_UNIFORMS    = $90CD;
4451   GL_MAX_FRAGMENT_IMAGE_UNIFORMS    = $90CE;
4452   GL_MAX_COMBINED_IMAGE_UNIFORMS    = $90CF;
4453
4454   // GL_ARB_texture_storage
4455   GL_TEXTURE_IMMUTABLE_FORMAT       = $912F;
4456
4457   // 4.3
4458     GL_COMPRESSED_RGBA_ASTC_4x4_KHR = $93B0;
4459     GL_COMPRESSED_RGBA_ASTC_5x4_KHR = $93B1;
4460     GL_COMPRESSED_RGBA_ASTC_5x5_KHR = $93B2;
4461     GL_COMPRESSED_RGBA_ASTC_6x5_KHR = $93B3;
4462     GL_COMPRESSED_RGBA_ASTC_6x6_KHR = $93B4;
4463     GL_COMPRESSED_RGBA_ASTC_8x5_KHR = $93B5;
4464     GL_COMPRESSED_RGBA_ASTC_8x6_KHR = $93B6;
4465     GL_COMPRESSED_RGBA_ASTC_8x8_KHR = $93B7;
4466     GL_COMPRESSED_RGBA_ASTC_105_KHR = $93B8;
4467     GL_COMPRESSED_RGBA_ASTC_106_KHR = $93B9;
4468     GL_COMPRESSED_RGBA_ASTC_108_KHR = $93BA;
4469     GL_COMPRESSED_RGBA_ASTC_110_KHR = $93BB;
4470     GL_COMPRESSED_RGBA_ASTC_12x10_KHR = $93BC;
4471     GL_COMPRESSED_RGBA_ASTC_12x12_KHR = $93BD;
4472     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = $93D0;
4473     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = $93D1;
4474     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = $93D2;
4475     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = $93D3;
4476     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = $93D4;
4477     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = $93D5;
4478     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = $93D6;
4479     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = $93D7;
4480     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = $93D8;
4481     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = $93D9;
4482     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = $93DA;
4483     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = $93DB;
4484     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = $93DC;
4485     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = $93DD;
4486     // (4.3) GL_KHR_debug
4487     GL_DEBUG_OUTPUT_SYNCHRONOUS       = $8242;
4488     GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = $8243;
4489     GL_DEBUG_CALLBACK_FUNCTION        = $8244;
4490     GL_DEBUG_CALLBACK_USER_PARAM      = $8245;
4491     GL_DEBUG_SOURCE_API               = $8246;
4492     GL_DEBUG_SOURCE_WINDOW_SYSTEM     = $8247;
4493     GL_DEBUG_SOURCE_SHADER_COMPILER   = $8248;
4494     GL_DEBUG_SOURCE_THIRD_PARTY       = $8249;
4495     GL_DEBUG_SOURCE_APPLICATION       = $824A;
4496     GL_DEBUG_SOURCE_OTHER             = $824B;
4497     GL_DEBUG_TYPE_ERROR               = $824C;
4498     GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = $824D;
4499     GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR  = $824E;
4500     GL_DEBUG_TYPE_PORTABILITY         = $824F;
4501     GL_DEBUG_TYPE_PERFORMANCE         = $8250;
4502     GL_DEBUG_TYPE_OTHER               = $8251;
4503     GL_DEBUG_TYPE_MARKER              = $8268;
4504     GL_DEBUG_TYPE_PUSH_GROUP          = $8269;
4505     GL_DEBUG_TYPE_POP_GROUP           = $826A;
4506     GL_DEBUG_SEVERITY_NOTIFICATION    = $826B;
4507     GL_MAX_DEBUG_GROUP_STACK_DEPTH    = $826C;
4508     GL_DEBUG_GROUP_STACK_DEPTH        = $826D;
4509     GL_BUFFER                         = $82E0;
4510     GL_SHADER                         = $82E1;
4511     GL_PROGRAM                        = $82E2;
4512     GL_QUERY                          = $82E3;
4513     GL_PROGRAM_PIPELINE               = $82E4;
4514     GL_SAMPLER                        = $82E6;
4515     GL_DISPLAY_LIST                   = $82E7;
4516     GL_MAX_LABEL_LENGTH               = $82E8;
4517     GL_MAX_DEBUG_MESSAGE_LENGTH       = $9143;
4518     GL_MAX_DEBUG_LOGGED_MESSAGES      = $9144;
4519     GL_DEBUG_LOGGED_MESSAGES          = $9145;
4520     GL_DEBUG_SEVERITY_HIGH            = $9146;
4521     GL_DEBUG_SEVERITY_MEDIUM          = $9147;
4522     GL_DEBUG_SEVERITY_LOW             = $9148;
4523     GL_DEBUG_OUTPUT                   = $92E0;
4524     GL_CONTEXT_FLAG_DEBUG_BIT         = $00000002;
4525     GL_COMPUTE_SHADER                 = $91B9;
4526     GL_MAX_COMPUTE_UNIFORM_BLOCKS     = $91BB;
4527     GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = $91BC;
4528     GL_MAX_COMPUTE_IMAGE_UNIFORMS     = $91BD;
4529     GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = $8262;
4530     GL_MAX_COMPUTE_UNIFORM_COMPONENTS = $8263;
4531     GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = $8264;
4532     GL_MAX_COMPUTE_ATOMIC_COUNTERS    = $8265;
4533     GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = $8266;
4534     GL_MAX_COMPUTE_LOCAL_INVOCATIONS  = $90EB;
4535     GL_MAX_COMPUTE_WORK_GROUP_COUNT   = $91BE;
4536     GL_MAX_COMPUTE_WORK_GROUP_SIZE    = $91BF;
4537     GL_COMPUTE_LOCAL_WORK_SIZE        = $8267;
4538     GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = $90EC;
4539     GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = $90ED;
4540     GL_DISPATCH_INDIRECT_BUFFER       = $90EE;
4541     GL_DISPATCH_INDIRECT_BUFFER_BINDING = $90EF;
4542     GL_COMPUTE_SHADER_BIT             = $00000020;
4543     GL_COMPRESSED_RGB8_ETC2           = $9274;
4544     GL_COMPRESSED_SRGB8_ETC2          = $9275;
4545     GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9276;
4546     GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9277;
4547     GL_COMPRESSED_RGBA8_ETC2_EAC      = $9278;
4548     GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = $9279;
4549     GL_COMPRESSED_R11_EAC             = $9270;
4550     GL_COMPRESSED_SIGNED_R11_EAC      = $9271;
4551     GL_COMPRESSED_RG11_EAC            = $9272;
4552     GL_COMPRESSED_SIGNED_RG11_EAC     = $9273;
4553     GL_PRIMITIVE_RESTART_FIXED_INDEX  = $8D69;
4554     GL_ANY_SAMPLES_PASSED_CONSERVATIVE = $8D6A;
4555     GL_MAX_ELEMENT_INDEX              = $8D6B;
4556         GL_MAX_UNIFORM_LOCATIONS          = $826E;
4557     GL_FRAMEBUFFER_DEFAULT_WIDTH      = $9310;
4558     GL_FRAMEBUFFER_DEFAULT_HEIGHT     = $9311;
4559     GL_FRAMEBUFFER_DEFAULT_LAYERS     = $9312;
4560     GL_FRAMEBUFFER_DEFAULT_SAMPLES    = $9313;
4561     GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = $9314;
4562     GL_MAX_FRAMEBUFFER_WIDTH          = $9315;
4563     GL_MAX_FRAMEBUFFER_HEIGHT         = $9316;
4564     GL_MAX_FRAMEBUFFER_LAYERS         = $9317;
4565     GL_MAX_FRAMEBUFFER_SAMPLES        = $9318;
4566           GL_INTERNALFORMAT_SUPPORTED       = $826F;
4567     GL_INTERNALFORMAT_PREFERRED       = $8270;
4568     GL_INTERNALFORMAT_RED_SIZE        = $8271;
4569     GL_INTERNALFORMAT_GREEN_SIZE      = $8272;
4570     GL_INTERNALFORMAT_BLUE_SIZE       = $8273;
4571     GL_INTERNALFORMAT_ALPHA_SIZE      = $8274;
4572     GL_INTERNALFORMAT_DEPTH_SIZE      = $8275;
4573     GL_INTERNALFORMAT_STENCIL_SIZE    = $8276;
4574     GL_INTERNALFORMAT_SHARED_SIZE     = $8277;
4575     GL_INTERNALFORMAT_RED_TYPE        = $8278;
4576     GL_INTERNALFORMAT_GREEN_TYPE      = $8279;
4577     GL_INTERNALFORMAT_BLUE_TYPE       = $827A;
4578     GL_INTERNALFORMAT_ALPHA_TYPE      = $827B;
4579     GL_INTERNALFORMAT_DEPTH_TYPE      = $827C;
4580     GL_INTERNALFORMAT_STENCIL_TYPE    = $827D;
4581     GL_MAX_WIDTH                      = $827E;
4582     GL_MAX_HEIGHT                     = $827F;
4583     GL_MAX_DEPTH                      = $8280;
4584     GL_MAX_LAYERS                     = $8281;
4585     GL_MAX_COMBINED_DIMENSIONS        = $8282;
4586     GL_COLOR_COMPONENTS               = $8283;
4587     GL_DEPTH_COMPONENTS               = $8284;
4588     GL_STENCIL_COMPONENTS             = $8285;
4589     GL_COLOR_RENDERABLE               = $8286;
4590     GL_DEPTH_RENDERABLE               = $8287;
4591     GL_STENCIL_RENDERABLE             = $8288;
4592     GL_FRAMEBUFFER_RENDERABLE         = $8289;
4593     GL_FRAMEBUFFER_RENDERABLE_LAYERED = $828A;
4594     GL_FRAMEBUFFER_BLEND              = $828B;
4595     GL_READ_PIXELS                    = $828C;
4596     GL_READ_PIXELS_FORMAT             = $828D;
4597     GL_READ_PIXELS_TYPE               = $828E;
4598     GL_TEXTURE_IMAGE_FORMAT           = $828F;
4599     GL_TEXTURE_IMAGE_TYPE             = $8290;
4600     GL_GET_TEXTURE_IMAGE_FORMAT       = $8291;
4601     GL_GET_TEXTURE_IMAGE_TYPE         = $8292;
4602     GL_MIPMAP                         = $8293;
4603     GL_MANUAL_GENERATE_MIPMAP         = $8294;
4604     GL_AUTO_GENERATE_MIPMAP           = $8295;
4605     GL_COLOR_ENCODING                 = $8296;
4606     GL_SRGB_READ                      = $8297;
4607     GL_SRGB_WRITE                     = $8298;
4608     GL_SRGB_DECODE_ARB                = $8299;
4609     GL_FILTER                         = $829A;
4610     GL_VERTEX_TEXTURE                 = $829B;
4611     GL_TESS_CONTROL_TEXTURE           = $829C;
4612     GL_TESS_EVALUATION_TEXTURE        = $829D;
4613     GL_GEOMETRY_TEXTURE               = $829E;
4614     GL_FRAGMENT_TEXTURE               = $829F;
4615     GL_COMPUTE_TEXTURE                = $82A0;
4616     GL_TEXTURE_SHADOW                 = $82A1;
4617     GL_TEXTURE_GATHER                 = $82A2;
4618     GL_TEXTURE_GATHER_SHADOW          = $82A3;
4619     GL_SHADER_IMAGE_LOAD              = $82A4;
4620     GL_SHADER_IMAGE_STORE             = $82A5;
4621     GL_SHADER_IMAGE_ATOMIC            = $82A6;
4622     GL_IMAGE_TEXEL_SIZE               = $82A7;
4623     GL_IMAGE_COMPATIBILITY_CLASS      = $82A8;
4624     GL_IMAGE_PIXEL_FORMAT             = $82A9;
4625     GL_IMAGE_PIXEL_TYPE               = $82AA;
4626     GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = $82AC;
4627     GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = $82AD;
4628     GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = $82AE;
4629     GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = $82AF;
4630     GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = $82B1;
4631     GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = $82B2;
4632     GL_TEXTURE_COMPRESSED_BLOCK_SIZE  = $82B3;
4633     GL_CLEAR_BUFFER                   = $82B4;
4634     GL_TEXTURE_VIEW                   = $82B5;
4635     GL_VIEW_COMPATIBILITY_CLASS       = $82B6;
4636     GL_FULL_SUPPORT                   = $82B7;
4637     GL_CAVEAT_SUPPORT                 = $82B8;
4638     GL_IMAGE_CLASS_4_X_32             = $82B9;
4639     GL_IMAGE_CLASS_2_X_32             = $82BA;
4640     GL_IMAGE_CLASS_1_X_32             = $82BB;
4641     GL_IMAGE_CLASS_4_X_16             = $82BC;
4642     GL_IMAGE_CLASS_2_X_16             = $82BD;
4643     GL_IMAGE_CLASS_1_X_16             = $82BE;
4644     GL_IMAGE_CLASS_4_X_8              = $82BF;
4645     GL_IMAGE_CLASS_2_X_8              = $82C0;
4646     GL_IMAGE_CLASS_1_X_8              = $82C1;
4647     GL_IMAGE_CLASS_11_11_10           = $82C2;
4648     GL_IMAGE_CLASS_10_10_10_2         = $82C3;
4649     GL_VIEW_CLASS_128_BITS            = $82C4;
4650     GL_VIEW_CLASS_96_BITS             = $82C5;
4651     GL_VIEW_CLASS_64_BITS             = $82C6;
4652     GL_VIEW_CLASS_48_BITS             = $82C7;
4653     GL_VIEW_CLASS_32_BITS             = $82C8;
4654     GL_VIEW_CLASS_24_BITS             = $82C9;
4655     GL_VIEW_CLASS_16_BITS             = $82CA;
4656     GL_VIEW_CLASS_8_BITS              = $82CB;
4657     GL_VIEW_CLASS_S3TC_DXT1_RGB       = $82CC;
4658     GL_VIEW_CLASS_S3TC_DXT1_RGBA      = $82CD;
4659     GL_VIEW_CLASS_S3TC_DXT3_RGBA      = $82CE;
4660     GL_VIEW_CLASS_S3TC_DXT5_RGBA      = $82CF;
4661     GL_VIEW_CLASS_RGTC1_RED           = $82D0;
4662     GL_VIEW_CLASS_RGTC2_RG            = $82D1;
4663     GL_VIEW_CLASS_BPTC_UNORM          = $82D2;
4664     GL_VIEW_CLASS_BPTC_FLOAT          = $82D3;
4665     GL_UNIFORM                        = $92E1;
4666     GL_UNIFORM_BLOCK                  = $92E2;
4667     GL_PROGRAM_INPUT                  = $92E3;
4668     GL_PROGRAM_OUTPUT                 = $92E4;
4669     GL_BUFFER_VARIABLE                = $92E5;
4670     GL_SHADER_STORAGE_BLOCK           = $92E6;
4671     GL_VERTEX_SUBROUTINE              = $92E8;
4672     GL_TESS_CONTROL_SUBROUTINE        = $92E9;
4673     GL_TESS_EVALUATION_SUBROUTINE     = $92EA;
4674     GL_GEOMETRY_SUBROUTINE            = $92EB;
4675     GL_FRAGMENT_SUBROUTINE            = $92EC;
4676     GL_COMPUTE_SUBROUTINE             = $92ED;
4677     GL_VERTEX_SUBROUTINE_UNIFORM      = $92EE;
4678     GL_TESS_CONTROL_SUBROUTINE_UNIFORM = $92EF;
4679     GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = $92F0;
4680     GL_GEOMETRY_SUBROUTINE_UNIFORM    = $92F1;
4681     GL_FRAGMENT_SUBROUTINE_UNIFORM    = $92F2;
4682     GL_COMPUTE_SUBROUTINE_UNIFORM     = $92F3;
4683     GL_TRANSFORM_FEEDBACK_VARYING     = $92F4;
4684     GL_ACTIVE_RESOURCES               = $92F5;
4685     GL_MAX_NAME_LENGTH                = $92F6;
4686     GL_MAX_NUM_ACTIVE_VARIABLES       = $92F7;
4687     GL_MAX_NUM_COMPATIBLE_SUBROUTINES = $92F8;
4688     GL_NAME_LENGTH                    = $92F9;
4689     GL_TYPE                           = $92FA;
4690     GL_ARRAY_SIZE                     = $92FB;
4691     GL_OFFSET                         = $92FC;
4692     GL_BLOCK_INDEX                    = $92FD;
4693     GL_ARRAY_STRIDE                   = $92FE;
4694     GL_MATRIX_STRIDE                  = $92FF;
4695     GL_IS_ROW_MAJOR                   = $9300;
4696     GL_ATOMIC_COUNTER_BUFFER_INDEX    = $9301;
4697     GL_BUFFER_BINDING                 = $9302;
4698     GL_BUFFER_DATA_SIZE               = $9303;
4699     GL_NUM_ACTIVE_VARIABLES           = $9304;
4700     GL_ACTIVE_VARIABLES               = $9305;
4701     GL_REFERENCED_BY_VERTEX_SHADER    = $9306;
4702     GL_REFERENCED_BY_TESS_CONTROL_SHADER = $9307;
4703     GL_REFERENCED_BY_TESS_EVALUATION_SHADER = $9308;
4704     GL_REFERENCED_BY_GEOMETRY_SHADER  = $9309;
4705     GL_REFERENCED_BY_FRAGMENT_SHADER  = $930A;
4706     GL_REFERENCED_BY_COMPUTE_SHADER   = $930B;
4707     GL_TOP_LEVEL_ARRAY_SIZE           = $930C;
4708     GL_TOP_LEVEL_ARRAY_STRIDE         = $930D;
4709     GL_LOCATION                       = $930E;
4710     GL_LOCATION_INDEX                 = $930F;
4711     GL_IS_PER_PATCH                   = $92E7;
4712     GL_SHADER_STORAGE_BUFFER          = $90D2;
4713     GL_SHADER_STORAGE_BUFFER_BINDING  = $90D3;
4714     GL_SHADER_STORAGE_BUFFER_START    = $90D4;
4715     GL_SHADER_STORAGE_BUFFER_SIZE     = $90D5;
4716     GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = $90D6;
4717     GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = $90D7;
4718     GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = $90D8;
4719     GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = $90D9;
4720     GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = $90DA;
4721     GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = $90DB;
4722     GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = $90DC;
4723     GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = $90DD;
4724     GL_MAX_SHADER_STORAGE_BLOCK_SIZE  = $90DE;
4725     GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = $90DF;
4726     GL_SHADER_STORAGE_BARRIER_BIT     = $2000;
4727     GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS;
4728     GL_DEPTH_STENCIL_TEXTURE_MODE     = $90EA;
4729
4730     GL_TEXTURE_BUFFER_OFFSET          = $919D;
4731     GL_TEXTURE_BUFFER_SIZE            = $919E;
4732     GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = $919F;
4733     GL_TEXTURE_VIEW_MIN_LEVEL         = $82DB;
4734     GL_TEXTURE_VIEW_NUM_LEVELS        = $82DC;
4735     GL_TEXTURE_VIEW_MIN_LAYER         = $82DD;
4736     GL_TEXTURE_VIEW_NUM_LAYERS        = $82DE;
4737     GL_TEXTURE_IMMUTABLE_LEVELS       = $82DF;
4738     GL_VERTEX_ATTRIB_BINDING          = $82D4;
4739     GL_VERTEX_ATTRIB_RELATIVE_OFFSET  = $82D5;
4740     GL_VERTEX_BINDING_DIVISOR         = $82D6;
4741     GL_VERTEX_BINDING_OFFSET          = $82D7;
4742     GL_VERTEX_BINDING_STRIDE          = $82D8;
4743     GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D9;
4744     GL_MAX_VERTEX_ATTRIB_BINDINGS     = $82DA;
4745         // END 4.3
4746
4747   // GL 4.4
4748     GL_MAX_VERTEX_ATTRIB_STRIDE         = $82E5;
4749     GL_MAP_PERSISTENT_BIT               = $0040;
4750     GL_MAP_COHERENT_BIT                 = $0080;
4751     GL_DYNAMIC_STORAGE_BIT              = $0100;
4752     GL_CLIENT_STORAGE_BIT               = $0200;
4753     GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = $00004000;
4754     GL_BUFFER_IMMUTABLE_STORAGE         = $821F;
4755     GL_BUFFER_STORAGE_FLAGS             = $8220;
4756     GL_CLEAR_TEXTURE                    = $9365;
4757     GL_LOCATION_COMPONENT               = $934A;
4758     GL_TRANSFORM_FEEDBACK_BUFFER_INDEX  = $934B;
4759     GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = $934C;
4760     GL_QUERY_BUFFER                     = $9192;
4761     GL_QUERY_BUFFER_BARRIER_BIT         = $00008000;
4762     GL_QUERY_BUFFER_BINDING             = $9193;
4763     GL_QUERY_RESULT_NO_WAIT             = $9194;
4764     GL_MIRROR_CLAMP_TO_EDGE             = $8743;
4765   // END GL 4.4
4766
4767   // GL_ATI_draw_buffers
4768   GL_MAX_DRAW_BUFFERS_ATI = $8824;
4769   GL_DRAW_BUFFER0_ATI = $8825;
4770   GL_DRAW_BUFFER1_ATI = $8826;
4771   GL_DRAW_BUFFER2_ATI = $8827;
4772   GL_DRAW_BUFFER3_ATI = $8828;
4773   GL_DRAW_BUFFER4_ATI = $8829;
4774   GL_DRAW_BUFFER5_ATI = $882A;
4775   GL_DRAW_BUFFER6_ATI = $882B;
4776   GL_DRAW_BUFFER7_ATI = $882C;
4777   GL_DRAW_BUFFER8_ATI = $882D;
4778   GL_DRAW_BUFFER9_ATI = $882E;
4779   GL_DRAW_BUFFER10_ATI = $882F;
4780   GL_DRAW_BUFFER11_ATI = $8830;
4781   GL_DRAW_BUFFER12_ATI = $8831;
4782   GL_DRAW_BUFFER13_ATI = $8832;
4783   GL_DRAW_BUFFER14_ATI = $8833;
4784   GL_DRAW_BUFFER15_ATI = $8834;
4785
4786   // GL_ATI_element_array
4787   GL_ELEMENT_ARRAY_ATI = $8768;
4788   GL_ELEMENT_ARRAY_TYPE_ATI = $8769;
4789   GL_ELEMENT_ARRAY_POINTER_ATI = $876A;
4790
4791   // GL_ATI_envmap_bumpmap
4792   GL_BUMP_ROT_MATRIX_ATI = $8775;
4793   GL_BUMP_ROT_MATRIX_SIZE_ATI = $8776;
4794   GL_BUMP_NUM_TEX_UNITS_ATI = $8777;
4795   GL_BUMP_TEX_UNITS_ATI = $8778;
4796   GL_DUDV_ATI = $8779;
4797   GL_DU8DV8_ATI = $877A;
4798   GL_BUMP_ENVMAP_ATI = $877B;
4799   GL_BUMP_TARGET_ATI = $877C;
4800
4801   // GL_ATI_fragment_shader
4802   GL_FRAGMENT_SHADER_ATI = $8920;
4803   GL_REG_0_ATI = $8921;
4804   GL_REG_1_ATI = $8922;
4805   GL_REG_2_ATI = $8923;
4806   GL_REG_3_ATI = $8924;
4807   GL_REG_4_ATI = $8925;
4808   GL_REG_5_ATI = $8926;
4809   GL_REG_6_ATI = $8927;
4810   GL_REG_7_ATI = $8928;
4811   GL_REG_8_ATI = $8929;
4812   GL_REG_9_ATI = $892A;
4813   GL_REG_10_ATI = $892B;
4814   GL_REG_11_ATI = $892C;
4815   GL_REG_12_ATI = $892D;
4816   GL_REG_13_ATI = $892E;
4817   GL_REG_14_ATI = $892F;
4818   GL_REG_15_ATI = $8930;
4819   GL_REG_16_ATI = $8931;
4820   GL_REG_17_ATI = $8932;
4821   GL_REG_18_ATI = $8933;
4822   GL_REG_19_ATI = $8934;
4823   GL_REG_20_ATI = $8935;
4824   GL_REG_21_ATI = $8936;
4825   GL_REG_22_ATI = $8937;
4826   GL_REG_23_ATI = $8938;
4827   GL_REG_24_ATI = $8939;
4828   GL_REG_25_ATI = $893A;
4829   GL_REG_26_ATI = $893B;
4830   GL_REG_27_ATI = $893C;
4831   GL_REG_28_ATI = $893D;
4832   GL_REG_29_ATI = $893E;
4833   GL_REG_30_ATI = $893F;
4834   GL_REG_31_ATI = $8940;
4835   GL_CON_0_ATI = $8941;
4836   GL_CON_1_ATI = $8942;
4837   GL_CON_2_ATI = $8943;
4838   GL_CON_3_ATI = $8944;
4839   GL_CON_4_ATI = $8945;
4840   GL_CON_5_ATI = $8946;
4841   GL_CON_6_ATI = $8947;
4842   GL_CON_7_ATI = $8948;
4843   GL_CON_8_ATI = $8949;
4844   GL_CON_9_ATI = $894A;
4845   GL_CON_10_ATI = $894B;
4846   GL_CON_11_ATI = $894C;
4847   GL_CON_12_ATI = $894D;
4848   GL_CON_13_ATI = $894E;
4849   GL_CON_14_ATI = $894F;
4850   GL_CON_15_ATI = $8950;
4851   GL_CON_16_ATI = $8951;
4852   GL_CON_17_ATI = $8952;
4853   GL_CON_18_ATI = $8953;
4854   GL_CON_19_ATI = $8954;
4855   GL_CON_20_ATI = $8955;
4856   GL_CON_21_ATI = $8956;
4857   GL_CON_22_ATI = $8957;
4858   GL_CON_23_ATI = $8958;
4859   GL_CON_24_ATI = $8959;
4860   GL_CON_25_ATI = $895A;
4861   GL_CON_26_ATI = $895B;
4862   GL_CON_27_ATI = $895C;
4863   GL_CON_28_ATI = $895D;
4864   GL_CON_29_ATI = $895E;
4865   GL_CON_30_ATI = $895F;
4866   GL_CON_31_ATI = $8960;
4867   GL_MOV_ATI = $8961;
4868   GL_ADD_ATI = $8963;
4869   GL_MUL_ATI = $8964;
4870   GL_SUB_ATI = $8965;
4871   GL_DOT3_ATI = $8966;
4872   GL_DOT4_ATI = $8967;
4873   GL_MAD_ATI = $8968;
4874   GL_LERP_ATI = $8969;
4875   GL_CND_ATI = $896A;
4876   GL_CND0_ATI = $896B;
4877   GL_DOT2_ADD_ATI = $896C;
4878   GL_SECONDARY_INTERPOLATOR_ATI = $896D;
4879   GL_NUM_FRAGMENT_REGISTERS_ATI = $896E;
4880   GL_NUM_FRAGMENT_CONSTANTS_ATI = $896F;
4881   GL_NUM_PASSES_ATI = $8970;
4882   GL_NUM_INSTRUCTIONS_PER_PASS_ATI = $8971;
4883   GL_NUM_INSTRUCTIONS_TOTAL_ATI = $8972;
4884   GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = $8973;
4885   GL_NUM_LOOPBACK_COMPONENTS_ATI = $8974;
4886   GL_COLOR_ALPHA_PAIRING_ATI = $8975;
4887   GL_SWIZZLE_STR_ATI = $8976;
4888   GL_SWIZZLE_STQ_ATI = $8977;
4889   GL_SWIZZLE_STR_DR_ATI = $8978;
4890   GL_SWIZZLE_STQ_DQ_ATI = $8979;
4891   GL_SWIZZLE_STRQ_ATI = $897A;
4892   GL_SWIZZLE_STRQ_DQ_ATI = $897B;
4893   GL_RED_BIT_ATI = $00000001;
4894   GL_GREEN_BIT_ATI = $00000002;
4895   GL_BLUE_BIT_ATI = $00000004;
4896   GL_2X_BIT_ATI = $00000001;
4897   GL_4X_BIT_ATI = $00000002;
4898   GL_8X_BIT_ATI = $00000004;
4899   GL_HALF_BIT_ATI = $00000008;
4900   GL_QUARTER_BIT_ATI = $00000010;
4901   GL_EIGHTH_BIT_ATI = $00000020;
4902   GL_SATURATE_BIT_ATI = $00000040;
4903   GL_COMP_BIT_ATI = $00000002;
4904   GL_NEGATE_BIT_ATI = $00000004;
4905   GL_BIAS_BIT_ATI = $00000008;
4906
4907   // GL_ATI_pn_triangles
4908   GL_PN_TRIANGLES_ATI = $87F0;
4909   GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F1;
4910   GL_PN_TRIANGLES_POINT_MODE_ATI = $87F2;
4911   GL_PN_TRIANGLES_NORMAL_MODE_ATI = $87F3;
4912   GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F4;
4913   GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = $87F5;
4914   GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = $87F6;
4915   GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = $87F7;
4916   GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = $87F8;
4917
4918   // GL_ATI_separate_stencil
4919   GL_STENCIL_BACK_FUNC_ATI = $8800;
4920   GL_STENCIL_BACK_FAIL_ATI = $8801;
4921   GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = $8802;
4922   GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = $8803;
4923
4924   // GL_ATI_text_fragment_shader
4925   GL_TEXT_FRAGMENT_SHADER_ATI = $8200;
4926
4927   // GL_ATI_texture_env_combine3
4928   GL_MODULATE_ADD_ATI = $8744;
4929   GL_MODULATE_SIGNED_ADD_ATI = $8745;
4930   GL_MODULATE_SUBTRACT_ATI = $8746;
4931
4932   // GL_ATI_texture_float
4933   GL_RGBA_FLOAT32_ATI = $8814;
4934   GL_RGB_FLOAT32_ATI = $8815;
4935   GL_ALPHA_FLOAT32_ATI = $8816;
4936   GL_INTENSITY_FLOAT32_ATI = $8817;
4937   GL_LUMINANCE_FLOAT32_ATI = $8818;
4938   GL_LUMINANCE_ALPHA_FLOAT32_ATI = $8819;
4939   GL_RGBA_FLOAT16_ATI = $881A;
4940   GL_RGB_FLOAT16_ATI = $881B;
4941   GL_ALPHA_FLOAT16_ATI = $881C;
4942   GL_INTENSITY_FLOAT16_ATI = $881D;
4943   GL_LUMINANCE_FLOAT16_ATI = $881E;
4944   GL_LUMINANCE_ALPHA_FLOAT16_ATI = $881F;
4945
4946   // GL_ATI_texture_mirror_once
4947   GL_MIRROR_CLAMP_ATI = $8742;
4948   GL_MIRROR_CLAMP_TO_EDGE_ATI = $8743;
4949
4950   // GL_ATI_vertex_array_object
4951   GL_STATIC_ATI = $8760;
4952   GL_DYNAMIC_ATI = $8761;
4953   GL_PRESERVE_ATI = $8762;
4954   GL_DISCARD_ATI = $8763;
4955   GL_OBJECT_BUFFER_SIZE_ATI = $8764;
4956   GL_OBJECT_BUFFER_USAGE_ATI = $8765;
4957   GL_ARRAY_OBJECT_BUFFER_ATI = $8766;
4958   GL_ARRAY_OBJECT_OFFSET_ATI = $8767;
4959
4960   // GL_ATI_vertex_streams
4961   GL_MAX_VERTEX_STREAMS_ATI = $876B;
4962   GL_VERTEX_STREAM0_ATI = $876C;
4963   GL_VERTEX_STREAM1_ATI = $876D;
4964   GL_VERTEX_STREAM2_ATI = $876E;
4965   GL_VERTEX_STREAM3_ATI = $876F;
4966   GL_VERTEX_STREAM4_ATI = $8770;
4967   GL_VERTEX_STREAM5_ATI = $8771;
4968   GL_VERTEX_STREAM6_ATI = $8772;
4969   GL_VERTEX_STREAM7_ATI = $8773;
4970   GL_VERTEX_SOURCE_ATI = $8774;
4971
4972   // GL_ATI_meminfo
4973   GL_VBO_FREE_MEMORY_ATI = $87FB;
4974   GL_TEXTURE_FREE_MEMORY_ATI = $87FC;
4975   GL_RENDERBUFFER_FREE_MEMORY_ATI = $87FD;
4976
4977   // GL_AMD_performance_monitor
4978   GL_COUNTER_TYPE_AMD = $8BC0;
4979   GL_COUNTER_RANGE_AMD = $8BC1;
4980   GL_UNSIGNED_INT64_AMD = $8BC2;
4981   GL_PERCENTAGE_AMD = $8BC3;
4982   GL_PERFMON_RESULT_AVAILABLE_AMD = $8BC4;
4983   GL_PERFMON_RESULT_SIZE_AMD = $8BC5;
4984   GL_PERFMON_RESULT_AMD = $8BC6;
4985   
4986   // GL_AMD_vertex_shader_tesselator
4987   GL_SAMPLER_BUFFER_AMD = $9001;
4988   GL_INT_SAMPLER_BUFFER_AMD = $9002;
4989   GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = $9003;
4990   GL_TESSELLATION_MODE_AMD = $9004;
4991   GL_TESSELLATION_FACTOR_AMD = $9005;
4992   GL_DISCRETE_AMD = $9006;
4993   GL_CONTINUOUS_AMD = $9007;
4994
4995   // GL_AMD_seamless_cubemap_per_texture
4996   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
4997
4998   // GL_AMD_name_gen_delete
4999   GL_DATA_BUFFER_AMD = $9151;
5000   GL_PERFORMANCE_MONITOR_AMD = $9152;
5001   GL_QUERY_OBJECT_AMD = $9153;
5002   GL_VERTEX_ARRAY_OBJECT_AMD = $9154;
5003   GL_SAMPLER_OBJECT_AMD = $9155;
5004
5005   // GL_AMD_debug_output
5006   GL_MAX_DEBUG_LOGGED_MESSAGES_AMD = $9144;
5007   GL_DEBUG_LOGGED_MESSAGES_AMD = $9145;
5008   GL_DEBUG_SEVERITY_HIGH_AMD = $9146;
5009   GL_DEBUG_SEVERITY_MEDIUM_AMD = $9147;
5010   GL_DEBUG_SEVERITY_LOW_AMD = $9148;
5011   GL_DEBUG_CATEGORY_API_ERROR_AMD = $9149;
5012   GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = $914A;
5013   GL_DEBUG_CATEGORY_DEPRECATION_AMD = $914B;
5014   GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = $914C;
5015   GL_DEBUG_CATEGORY_PERFORMANCE_AMD = $914D;
5016   GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD = $914E;
5017   GL_DEBUG_CATEGORY_APPLICATION_AMD = $914F;
5018   GL_DEBUG_CATEGORY_OTHER_AMD = $9150;
5019
5020   // GL_AMD_depth_clamp_separate
5021   GL_DEPTH_CLAMP_NEAR_AMD = $901E;
5022   GL_DEPTH_CLAMP_FAR_AMD = $901F;
5023
5024   // GL_EXT_422_pixels
5025   GL_422_EXT = $80CC;
5026   GL_422_REV_EXT = $80CD;
5027   GL_422_AVERAGE_EXT = $80CE;
5028   GL_422_REV_AVERAGE_EXT = $80CF;
5029
5030   // GL_EXT_abgr
5031   GL_ABGR_EXT = $8000;
5032
5033   // GL_EXT_bgra
5034   GL_BGR_EXT = $80E0;
5035   GL_BGRA_EXT = $80E1;
5036
5037   // GL_EXT_blend_color
5038   GL_CONSTANT_COLOR_EXT = $8001;
5039   GL_ONE_MINUS_CONSTANT_COLOR_EXT = $8002;
5040   GL_CONSTANT_ALPHA_EXT = $8003;
5041   GL_ONE_MINUS_CONSTANT_ALPHA_EXT = $8004;
5042   GL_BLEND_COLOR_EXT = $8005;
5043
5044   // GL_EXT_blend_func_separate
5045   GL_BLEND_DST_RGB_EXT = $80C8;
5046   GL_BLEND_SRC_RGB_EXT = $80C9;
5047   GL_BLEND_DST_ALPHA_EXT = $80CA;
5048   GL_BLEND_SRC_ALPHA_EXT = $80CB;
5049
5050   // GL_EXT_blend_minmax
5051   GL_FUNC_ADD_EXT = $8006;
5052   GL_MIN_EXT = $8007;
5053   GL_MAX_EXT = $8008;
5054   GL_BLEND_EQUATION_EXT = $8009;
5055
5056   // GL_EXT_blend_subtract
5057   GL_FUNC_SUBTRACT_EXT = $800A;
5058   GL_FUNC_REVERSE_SUBTRACT_EXT = $800B;
5059
5060   // GL_EXT_clip_volume_hint
5061   GL_CLIP_VOLUME_CLIPPING_HINT_EXT = $80F0;
5062
5063   // GL_EXT_cmyka
5064   GL_CMYK_EXT = $800C;
5065   GL_CMYKA_EXT = $800D;
5066   GL_PACK_CMYK_HINT_EXT = $800E;
5067   GL_UNPACK_CMYK_HINT_EXT = $800F;
5068
5069   // GL_EXT_compiled_vertex_array
5070   GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = $81A8;
5071   GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = $81A9;
5072
5073   // GL_EXT_convolution
5074   GL_CONVOLUTION_1D_EXT = $8010;
5075   GL_CONVOLUTION_2D_EXT = $8011;
5076   GL_SEPARABLE_2D_EXT = $8012;
5077   GL_CONVOLUTION_BORDER_MODE_EXT = $8013;
5078   GL_CONVOLUTION_FILTER_SCALE_EXT = $8014;
5079   GL_CONVOLUTION_FILTER_BIAS_EXT = $8015;
5080   GL_REDUCE_EXT = $8016;
5081   GL_CONVOLUTION_FORMAT_EXT = $8017;
5082   GL_CONVOLUTION_WIDTH_EXT = $8018;
5083   GL_CONVOLUTION_HEIGHT_EXT = $8019;
5084   GL_MAX_CONVOLUTION_WIDTH_EXT = $801A;
5085   GL_MAX_CONVOLUTION_HEIGHT_EXT = $801B;
5086   GL_POST_CONVOLUTION_RED_SCALE_EXT = $801C;
5087   GL_POST_CONVOLUTION_GREEN_SCALE_EXT = $801D;
5088   GL_POST_CONVOLUTION_BLUE_SCALE_EXT = $801E;
5089   GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = $801F;
5090   GL_POST_CONVOLUTION_RED_BIAS_EXT = $8020;
5091   GL_POST_CONVOLUTION_GREEN_BIAS_EXT = $8021;
5092   GL_POST_CONVOLUTION_BLUE_BIAS_EXT = $8022;
5093   GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = $8023;
5094
5095   // GL_EXT_coordinate_frame
5096   GL_TANGENT_ARRAY_EXT = $8439;
5097   GL_BINORMAL_ARRAY_EXT = $843A;
5098   GL_CURRENT_TANGENT_EXT = $843B;
5099   GL_CURRENT_BINORMAL_EXT = $843C;
5100   GL_TANGENT_ARRAY_TYPE_EXT = $843E;
5101   GL_TANGENT_ARRAY_STRIDE_EXT = $843F;
5102   GL_BINORMAL_ARRAY_TYPE_EXT = $8440;
5103   GL_BINORMAL_ARRAY_STRIDE_EXT = $8441;
5104   GL_TANGENT_ARRAY_POINTER_EXT = $8442;
5105   GL_BINORMAL_ARRAY_POINTER_EXT = $8443;
5106   GL_MAP1_TANGENT_EXT = $8444;
5107   GL_MAP2_TANGENT_EXT = $8445;
5108   GL_MAP1_BINORMAL_EXT = $8446;
5109   GL_MAP2_BINORMAL_EXT = $8447;
5110
5111   // GL_EXT_cull_vertex
5112   GL_CULL_VERTEX_EXT = $81AA;
5113   GL_CULL_VERTEX_EYE_POSITION_EXT = $81AB;
5114   GL_CULL_VERTEX_OBJECT_POSITION_EXT = $81AC;
5115
5116   // GL_EXT_draw_range_elements
5117   GL_MAX_ELEMENTS_VERTICES_EXT = $80E8;
5118   GL_MAX_ELEMENTS_INDICES_EXT = $80E9;
5119
5120   // GL_EXT_fog_coord
5121   GL_FOG_COORDINATE_SOURCE_EXT = $8450;
5122   GL_FOG_COORDINATE_EXT = $8451;
5123   GL_FRAGMENT_DEPTH_EXT = $8452;
5124   GL_CURRENT_FOG_COORDINATE_EXT = $8453;
5125   GL_FOG_COORDINATE_ARRAY_TYPE_EXT = $8454;
5126   GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = $8455;
5127   GL_FOG_COORDINATE_ARRAY_POINTER_EXT = $8456;
5128   GL_FOG_COORDINATE_ARRAY_EXT = $8457;
5129
5130   // GL_EXT_framebuffer_object
5131   GL_FRAMEBUFFER_EXT = $8D40;
5132   GL_RENDERBUFFER_EXT = $8D41;
5133   GL_STENCIL_INDEX_EXT = $8D45;
5134   GL_STENCIL_INDEX1_EXT = $8D46;
5135   GL_STENCIL_INDEX4_EXT = $8D47;
5136   GL_STENCIL_INDEX8_EXT = $8D48;
5137   GL_STENCIL_INDEX16_EXT = $8D49;
5138   GL_RENDERBUFFER_WIDTH_EXT = $8D42;
5139   GL_RENDERBUFFER_HEIGHT_EXT = $8D43;
5140   GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = $8D44;
5141   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = $8CD0;
5142   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = $8CD1;
5143   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = $8CD2;
5144   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = $8CD3;
5145   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = $8CD4;
5146   GL_COLOR_ATTACHMENT0_EXT = $8CE0;
5147   GL_COLOR_ATTACHMENT1_EXT = $8CE1;
5148   GL_COLOR_ATTACHMENT2_EXT = $8CE2;
5149   GL_COLOR_ATTACHMENT3_EXT = $8CE3;
5150   GL_COLOR_ATTACHMENT4_EXT = $8CE4;
5151   GL_COLOR_ATTACHMENT5_EXT = $8CE5;
5152   GL_COLOR_ATTACHMENT6_EXT = $8CE6;
5153   GL_COLOR_ATTACHMENT7_EXT = $8CE7;
5154   GL_COLOR_ATTACHMENT8_EXT = $8CE8;
5155   GL_COLOR_ATTACHMENT9_EXT = $8CE9;
5156   GL_COLOR_ATTACHMENT10_EXT = $8CEA;
5157   GL_COLOR_ATTACHMENT11_EXT = $8CEB;
5158   GL_COLOR_ATTACHMENT12_EXT = $8CEC;
5159   GL_COLOR_ATTACHMENT13_EXT = $8CED;
5160   GL_COLOR_ATTACHMENT14_EXT = $8CEE;
5161   GL_COLOR_ATTACHMENT15_EXT = $8CEF;
5162   GL_DEPTH_ATTACHMENT_EXT = $8D00;
5163   GL_STENCIL_ATTACHMENT_EXT = $8D20;
5164   GL_FRAMEBUFFER_COMPLETE_EXT = $8CD5;
5165   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = $8CD6;
5166   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = $8CD7;
5167   GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = $8CD8;
5168   GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = $8CD9;
5169   GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = $8CDA;
5170   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = $8CDB;
5171   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = $8CDC;
5172   GL_FRAMEBUFFER_UNSUPPORTED_EXT = $8CDD;
5173   GL_FRAMEBUFFER_STATUS_ERROR_EXT = $8CDE;
5174   GL_FRAMEBUFFER_BINDING_EXT = $8CA6;
5175   GL_RENDERBUFFER_BINDING_EXT = $8CA7;
5176   GL_MAX_COLOR_ATTACHMENTS_EXT = $8CDF;
5177   GL_MAX_RENDERBUFFER_SIZE_EXT = $84E8;
5178   GL_INVALID_FRAMEBUFFER_OPERATION_EXT = $0506;
5179
5180   // GL_EXT_histogram
5181   GL_HISTOGRAM_EXT = $8024;
5182   GL_PROXY_HISTOGRAM_EXT = $8025;
5183   GL_HISTOGRAM_WIDTH_EXT = $8026;
5184   GL_HISTOGRAM_FORMAT_EXT = $8027;
5185   GL_HISTOGRAM_RED_SIZE_EXT = $8028;
5186   GL_HISTOGRAM_GREEN_SIZE_EXT = $8029;
5187   GL_HISTOGRAM_BLUE_SIZE_EXT = $802A;
5188   GL_HISTOGRAM_ALPHA_SIZE_EXT = $802B;
5189   GL_HISTOGRAM_LUMINANCE_SIZE_EXT = $802C;
5190   GL_HISTOGRAM_SINK_EXT = $802D;
5191   GL_MINMAX_EXT = $802E;
5192   GL_MINMAX_FORMAT_EXT = $802F;
5193   GL_MINMAX_SINK_EXT = $8030;
5194   GL_TABLE_TOO_LARGE_EXT = $8031;
5195
5196   // GL_EXT_index_array_formats
5197   GL_IUI_V2F_EXT = $81AD;
5198   GL_IUI_V3F_EXT = $81AE;
5199   GL_IUI_N3F_V2F_EXT = $81AF;
5200   GL_IUI_N3F_V3F_EXT = $81B0;
5201   GL_T2F_IUI_V2F_EXT = $81B1;
5202   GL_T2F_IUI_V3F_EXT = $81B2;
5203   GL_T2F_IUI_N3F_V2F_EXT = $81B3;
5204   GL_T2F_IUI_N3F_V3F_EXT = $81B4;
5205
5206   // GL_EXT_index_func
5207   GL_INDEX_TEST_EXT = $81B5;
5208   GL_INDEX_TEST_FUNC_EXT = $81B6;
5209   GL_INDEX_TEST_REF_EXT = $81B7;
5210
5211   // GL_EXT_index_material
5212   GL_INDEX_MATERIAL_EXT = $81B8;
5213   GL_INDEX_MATERIAL_PARAMETER_EXT = $81B9;
5214   GL_INDEX_MATERIAL_FACE_EXT = $81BA;
5215
5216   // GL_EXT_light_texture
5217   GL_FRAGMENT_MATERIAL_EXT = $8349;
5218   GL_FRAGMENT_NORMAL_EXT = $834A;
5219   GL_FRAGMENT_COLOR_EXT = $834C;
5220   GL_ATTENUATION_EXT = $834D;
5221   GL_SHADOW_ATTENUATION_EXT = $834E;
5222   GL_TEXTURE_APPLICATION_MODE_EXT = $834F;
5223   GL_TEXTURE_LIGHT_EXT = $8350;
5224   GL_TEXTURE_MATERIAL_FACE_EXT = $8351;
5225   GL_TEXTURE_MATERIAL_PARAMETER_EXT = $8352;
5226
5227   // GL_EXT_multisample
5228   GL_MULTISAMPLE_EXT = $809D;
5229   GL_SAMPLE_ALPHA_TO_MASK_EXT = $809E;
5230   GL_SAMPLE_ALPHA_TO_ONE_EXT = $809F;
5231   GL_SAMPLE_MASK_EXT = $80A0;
5232   GL_1PASS_EXT = $80A1;
5233   GL_2PASS_0_EXT = $80A2;
5234   GL_2PASS_1_EXT = $80A3;
5235   GL_4PASS_0_EXT = $80A4;
5236   GL_4PASS_1_EXT = $80A5;
5237   GL_4PASS_2_EXT = $80A6;
5238   GL_4PASS_3_EXT = $80A7;
5239   GL_SAMPLE_BUFFERS_EXT = $80A8;
5240   GL_SAMPLES_EXT = $80A9;
5241   GL_SAMPLE_MASK_VALUE_EXT = $80AA;
5242   GL_SAMPLE_MASK_INVERT_EXT = $80AB;
5243   GL_SAMPLE_PATTERN_EXT = $80AC;
5244   GL_MULTISAMPLE_BIT_EXT = $20000000;
5245
5246   // GL_EXT_packed_pixels
5247   GL_UNSIGNED_BYTE_3_3_2_EXT = $8032;
5248   GL_UNSIGNED_SHORT_4_4_4_4_EXT = $8033;
5249   GL_UNSIGNED_SHORT_5_5_5_1_EXT = $8034;
5250   GL_UNSIGNED_INT_8_8_8_8_EXT = $8035;
5251   GL_UNSIGNED_INT_10_10_10_2_EXT = $8036;
5252
5253   // GL_EXT_paletted_texture
5254   GL_COLOR_INDEX1_EXT = $80E2;
5255   GL_COLOR_INDEX2_EXT = $80E3;
5256   GL_COLOR_INDEX4_EXT = $80E4;
5257   GL_COLOR_INDEX8_EXT = $80E5;
5258   GL_COLOR_INDEX12_EXT = $80E6;
5259   GL_COLOR_INDEX16_EXT = $80E7;
5260   GL_TEXTURE_INDEX_SIZE_EXT = $80ED;
5261
5262   // GL_EXT_pixel_transform
5263   GL_PIXEL_TRANSFORM_2D_EXT = $8330;
5264   GL_PIXEL_MAG_FILTER_EXT = $8331;
5265   GL_PIXEL_MIN_FILTER_EXT = $8332;
5266   GL_PIXEL_CUBIC_WEIGHT_EXT = $8333;
5267   GL_CUBIC_EXT = $8334;
5268   GL_AVERAGE_EXT = $8335;
5269   GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8336;
5270   GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8337;
5271   GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = $8338;
5272
5273   // GL_EXT_point_parameters
5274   GL_POINT_SIZE_MIN_EXT = $8126;
5275   GL_POINT_SIZE_MAX_EXT = $8127;
5276   GL_POINT_FADE_THRESHOLD_SIZE_EXT = $8128;
5277   GL_DISTANCE_ATTENUATION_EXT = $8129;
5278
5279   // GL_EXT_polygon_offset
5280   GL_POLYGON_OFFSET_EXT = $8037;
5281   GL_POLYGON_OFFSET_FACTOR_EXT = $8038;
5282   GL_POLYGON_OFFSET_BIAS_EXT = $8039;
5283
5284   // GL_EXT_rescale_normal
5285   GL_RESCALE_NORMAL_EXT = $803A;
5286
5287   // GL_EXT_secondary_color
5288   GL_COLOR_SUM_EXT = $8458;
5289   GL_CURRENT_SECONDARY_COLOR_EXT = $8459;
5290   GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = $845A;
5291   GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = $845B;
5292   GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = $845C;
5293   GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = $845D;
5294   GL_SECONDARY_COLOR_ARRAY_EXT = $845E;
5295
5296   // GL_EXT_separate_specular_color
5297   GL_LIGHT_MODEL_COLOR_CONTROL_EXT = $81F8;
5298   GL_SINGLE_COLOR_EXT = $81F9;
5299   GL_SEPARATE_SPECULAR_COLOR_EXT = $81FA;
5300
5301   // GL_EXT_shared_texture_palette
5302   GL_SHARED_TEXTURE_PALETTE_EXT = $81FB;
5303
5304   // GL_EXT_stencil_two_side
5305   GL_STENCIL_TEST_TWO_SIDE_EXT = $8910;
5306   GL_ACTIVE_STENCIL_FACE_EXT = $8911;
5307
5308   // GL_EXT_stencil_wrap
5309   GL_INCR_WRAP_EXT = $8507;
5310   GL_DECR_WRAP_EXT = $8508;
5311
5312   // GL_EXT_texture
5313   GL_ALPHA4_EXT = $803B;
5314   GL_ALPHA8_EXT = $803C;
5315   GL_ALPHA12_EXT = $803D;
5316   GL_ALPHA16_EXT = $803E;
5317   GL_LUMINANCE4_EXT = $803F;
5318   GL_LUMINANCE8_EXT = $8040;
5319   GL_LUMINANCE12_EXT = $8041;
5320   GL_LUMINANCE16_EXT = $8042;
5321   GL_LUMINANCE4_ALPHA4_EXT = $8043;
5322   GL_LUMINANCE6_ALPHA2_EXT = $8044;
5323   GL_LUMINANCE8_ALPHA8_EXT = $8045;
5324   GL_LUMINANCE12_ALPHA4_EXT = $8046;
5325   GL_LUMINANCE12_ALPHA12_EXT = $8047;
5326   GL_LUMINANCE16_ALPHA16_EXT = $8048;
5327   GL_INTENSITY_EXT = $8049;
5328   GL_INTENSITY4_EXT = $804A;
5329   GL_INTENSITY8_EXT = $804B;
5330   GL_INTENSITY12_EXT = $804C;
5331   GL_INTENSITY16_EXT = $804D;
5332   GL_RGB2_EXT = $804E;
5333   GL_RGB4_EXT = $804F;
5334   GL_RGB5_EXT = $8050;
5335   GL_RGB8_EXT = $8051;
5336   GL_RGB10_EXT = $8052;
5337   GL_RGB12_EXT = $8053;
5338   GL_RGB16_EXT = $8054;
5339   GL_RGBA2_EXT = $8055;
5340   GL_RGBA4_EXT = $8056;
5341   GL_RGB5_A1_EXT = $8057;
5342   GL_RGBA8_EXT = $8058;
5343   GL_RGB10_A2_EXT = $8059;
5344   GL_RGBA12_EXT = $805A;
5345   GL_RGBA16_EXT = $805B;
5346   GL_TEXTURE_RED_SIZE_EXT = $805C;
5347   GL_TEXTURE_GREEN_SIZE_EXT = $805D;
5348   GL_TEXTURE_BLUE_SIZE_EXT = $805E;
5349   GL_TEXTURE_ALPHA_SIZE_EXT = $805F;
5350   GL_TEXTURE_LUMINANCE_SIZE_EXT = $8060;
5351   GL_TEXTURE_INTENSITY_SIZE_EXT = $8061;
5352   GL_REPLACE_EXT = $8062;
5353   GL_PROXY_TEXTURE_1D_EXT = $8063;
5354   GL_PROXY_TEXTURE_2D_EXT = $8064;
5355   GL_TEXTURE_TOO_LARGE_EXT = $8065;
5356
5357   // GL_EXT_texture3D
5358   GL_PACK_SKIP_IMAGES_EXT = $806B;
5359   GL_PACK_IMAGE_HEIGHT_EXT = $806C;
5360   GL_UNPACK_SKIP_IMAGES_EXT = $806D;
5361   GL_UNPACK_IMAGE_HEIGHT_EXT = $806E;
5362   GL_TEXTURE_3D_EXT = $806F;
5363   GL_PROXY_TEXTURE_3D_EXT = $8070;
5364   GL_TEXTURE_DEPTH_EXT = $8071;
5365   GL_TEXTURE_WRAP_R_EXT = $8072;
5366   GL_MAX_3D_TEXTURE_SIZE_EXT = $8073;
5367
5368   // GL_EXT_texture_compression_s3tc
5369   GL_COMPRESSED_RGB_S3TC_DXT1_EXT = $83F0;
5370   GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = $83F1;
5371   GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = $83F2;
5372   GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = $83F3;
5373
5374   // GL_EXT_texture_cube_map
5375   GL_NORMAL_MAP_EXT = $8511;
5376   GL_REFLECTION_MAP_EXT = $8512;
5377   GL_TEXTURE_CUBE_MAP_EXT = $8513;
5378   GL_TEXTURE_BINDING_CUBE_MAP_EXT = $8514;
5379   GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = $8515;
5380   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = $8516;
5381   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = $8517;
5382   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = $8518;
5383   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = $8519;
5384   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = $851A;
5385   GL_PROXY_TEXTURE_CUBE_MAP_EXT = $851B;
5386   GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = $851C;
5387
5388   // GL_EXT_texture_edge_clamp
5389   GL_CLAMP_TO_EDGE_EXT = $812F;
5390
5391   // GL_EXT_texture_env_combine
5392   GL_COMBINE_EXT = $8570;
5393   GL_COMBINE_RGB_EXT = $8571;
5394   GL_COMBINE_ALPHA_EXT = $8572;
5395   GL_RGB_SCALE_EXT = $8573;
5396   GL_ADD_SIGNED_EXT = $8574;
5397   GL_INTERPOLATE_EXT = $8575;
5398   GL_CONSTANT_EXT = $8576;
5399   GL_PRIMARY_COLOR_EXT = $8577;
5400   GL_PREVIOUS_EXT = $8578;
5401   GL_SOURCE0_RGB_EXT = $8580;
5402   GL_SOURCE1_RGB_EXT = $8581;
5403   GL_SOURCE2_RGB_EXT = $8582;
5404   GL_SOURCE0_ALPHA_EXT = $8588;
5405   GL_SOURCE1_ALPHA_EXT = $8589;
5406   GL_SOURCE2_ALPHA_EXT = $858A;
5407   GL_OPERAND0_RGB_EXT = $8590;
5408   GL_OPERAND1_RGB_EXT = $8591;
5409   GL_OPERAND2_RGB_EXT = $8592;
5410   GL_OPERAND0_ALPHA_EXT = $8598;
5411   GL_OPERAND1_ALPHA_EXT = $8599;
5412   GL_OPERAND2_ALPHA_EXT = $859A;
5413
5414   // GL_EXT_texture_env_dot3
5415   GL_DOT3_RGB_EXT = $8740;
5416   GL_DOT3_RGBA_EXT = $8741;
5417
5418   // GL_EXT_texture_filter_anisotropic
5419   GL_TEXTURE_MAX_ANISOTROPY_EXT = $84FE;
5420   GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF;
5421
5422   // GL_EXT_texture_lod_bias
5423   GL_MAX_TEXTURE_LOD_BIAS_EXT = $84FD;
5424   GL_TEXTURE_FILTER_CONTROL_EXT = $8500;
5425   GL_TEXTURE_LOD_BIAS_EXT = $8501;
5426
5427   // GL_EXT_texture_object
5428   GL_TEXTURE_PRIORITY_EXT = $8066;
5429   GL_TEXTURE_RESIDENT_EXT = $8067;
5430   GL_TEXTURE_1D_BINDING_EXT = $8068;
5431   GL_TEXTURE_2D_BINDING_EXT = $8069;
5432   GL_TEXTURE_3D_BINDING_EXT = $806A;
5433
5434   // GL_EXT_texture_perturb_normal
5435   GL_PERTURB_EXT = $85AE;
5436   GL_TEXTURE_NORMAL_EXT = $85AF;
5437
5438   // GL_EXT_texture_rectangle
5439   GL_TEXTURE_RECTANGLE_EXT = $84F5;
5440   GL_TEXTURE_BINDING_RECTANGLE_EXT = $84F6;
5441   GL_PROXY_TEXTURE_RECTANGLE_EXT = $84F7;
5442   GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT = $84F8;
5443
5444   // GL_EXT_vertex_array
5445   GL_VERTEX_ARRAY_EXT = $8074;
5446   GL_NORMAL_ARRAY_EXT = $8075;
5447   GL_COLOR_ARRAY_EXT = $8076;
5448   GL_INDEX_ARRAY_EXT = $8077;
5449   GL_TEXTURE_COORD_ARRAY_EXT = $8078;
5450   GL_EDGE_FLAG_ARRAY_EXT = $8079;
5451   GL_VERTEX_ARRAY_SIZE_EXT = $807A;
5452   GL_VERTEX_ARRAY_TYPE_EXT = $807B;
5453   GL_VERTEX_ARRAY_STRIDE_EXT = $807C;
5454   GL_VERTEX_ARRAY_COUNT_EXT = $807D;
5455   GL_NORMAL_ARRAY_TYPE_EXT = $807E;
5456   GL_NORMAL_ARRAY_STRIDE_EXT = $807F;
5457   GL_NORMAL_ARRAY_COUNT_EXT = $8080;
5458   GL_COLOR_ARRAY_SIZE_EXT = $8081;
5459   GL_COLOR_ARRAY_TYPE_EXT = $8082;
5460   GL_COLOR_ARRAY_STRIDE_EXT = $8083;
5461   GL_COLOR_ARRAY_COUNT_EXT = $8084;
5462   GL_INDEX_ARRAY_TYPE_EXT = $8085;
5463   GL_INDEX_ARRAY_STRIDE_EXT = $8086;
5464   GL_INDEX_ARRAY_COUNT_EXT = $8087;
5465   GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088;
5466   GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089;
5467   GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
5468   GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B;
5469   GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C;
5470   GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D;
5471   GL_VERTEX_ARRAY_POINTER_EXT = $808E;
5472   GL_NORMAL_ARRAY_POINTER_EXT = $808F;
5473   GL_COLOR_ARRAY_POINTER_EXT = $8090;
5474   GL_INDEX_ARRAY_POINTER_EXT = $8091;
5475   GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
5476   GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093;
5477
5478   // GL_EXT_vertex_shader
5479   GL_VERTEX_SHADER_EXT = $8780;
5480   GL_VERTEX_SHADER_BINDING_EXT = $8781;
5481   GL_OP_INDEX_EXT = $8782;
5482   GL_OP_NEGATE_EXT = $8783;
5483   GL_OP_DOT3_EXT = $8784;
5484   GL_OP_DOT4_EXT = $8785;
5485   GL_OP_MUL_EXT = $8786;
5486   GL_OP_ADD_EXT = $8787;
5487   GL_OP_MADD_EXT = $8788;
5488   GL_OP_FRAC_EXT = $8789;
5489   GL_OP_MAX_EXT = $878A;
5490   GL_OP_MIN_EXT = $878B;
5491   GL_OP_SET_GE_EXT = $878C;
5492   GL_OP_SET_LT_EXT = $878D;
5493   GL_OP_CLAMP_EXT = $878E;
5494   GL_OP_FLOOR_EXT = $878F;
5495   GL_OP_ROUND_EXT = $8790;
5496   GL_OP_EXP_BASE_2_EXT = $8791;
5497   GL_OP_LOG_BASE_2_EXT = $8792;
5498   GL_OP_POWER_EXT = $8793;
5499   GL_OP_RECIP_EXT = $8794;
5500   GL_OP_RECIP_SQRT_EXT = $8795;
5501   GL_OP_SUB_EXT = $8796;
5502   GL_OP_CROSS_PRODUCT_EXT = $8797;
5503   GL_OP_MULTIPLY_MATRIX_EXT = $8798;
5504   GL_OP_MOV_EXT = $8799;
5505   GL_OUTPUT_VERTEX_EXT = $879A;
5506   GL_OUTPUT_COLOR0_EXT = $879B;
5507   GL_OUTPUT_COLOR1_EXT = $879C;
5508   GL_OUTPUT_TEXTURE_COORD0_EXT = $879D;
5509   GL_OUTPUT_TEXTURE_COORD1_EXT = $879E;
5510   GL_OUTPUT_TEXTURE_COORD2_EXT = $879F;
5511   GL_OUTPUT_TEXTURE_COORD3_EXT = $87A0;
5512   GL_OUTPUT_TEXTURE_COORD4_EXT = $87A1;
5513   GL_OUTPUT_TEXTURE_COORD5_EXT = $87A2;
5514   GL_OUTPUT_TEXTURE_COORD6_EXT = $87A3;
5515   GL_OUTPUT_TEXTURE_COORD7_EXT = $87A4;
5516   GL_OUTPUT_TEXTURE_COORD8_EXT = $87A5;
5517   GL_OUTPUT_TEXTURE_COORD9_EXT = $87A6;
5518   GL_OUTPUT_TEXTURE_COORD10_EXT = $87A7;
5519   GL_OUTPUT_TEXTURE_COORD11_EXT = $87A8;
5520   GL_OUTPUT_TEXTURE_COORD12_EXT = $87A9;
5521   GL_OUTPUT_TEXTURE_COORD13_EXT = $87AA;
5522   GL_OUTPUT_TEXTURE_COORD14_EXT = $87AB;
5523   GL_OUTPUT_TEXTURE_COORD15_EXT = $87AC;
5524   GL_OUTPUT_TEXTURE_COORD16_EXT = $87AD;
5525   GL_OUTPUT_TEXTURE_COORD17_EXT = $87AE;
5526   GL_OUTPUT_TEXTURE_COORD18_EXT = $87AF;
5527   GL_OUTPUT_TEXTURE_COORD19_EXT = $87B0;
5528   GL_OUTPUT_TEXTURE_COORD20_EXT = $87B1;
5529   GL_OUTPUT_TEXTURE_COORD21_EXT = $87B2;
5530   GL_OUTPUT_TEXTURE_COORD22_EXT = $87B3;
5531   GL_OUTPUT_TEXTURE_COORD23_EXT = $87B4;
5532   GL_OUTPUT_TEXTURE_COORD24_EXT = $87B5;
5533   GL_OUTPUT_TEXTURE_COORD25_EXT = $87B6;
5534   GL_OUTPUT_TEXTURE_COORD26_EXT = $87B7;
5535   GL_OUTPUT_TEXTURE_COORD27_EXT = $87B8;
5536   GL_OUTPUT_TEXTURE_COORD28_EXT = $87B9;
5537   GL_OUTPUT_TEXTURE_COORD29_EXT = $87BA;
5538   GL_OUTPUT_TEXTURE_COORD30_EXT = $87BB;
5539   GL_OUTPUT_TEXTURE_COORD31_EXT = $87BC;
5540   GL_OUTPUT_FOG_EXT = $87BD;
5541   GL_SCALAR_EXT = $87BE;
5542   GL_VECTOR_EXT = $87BF;
5543   GL_MATRIX_EXT = $87C0;
5544   GL_VARIANT_EXT = $87C1;
5545   GL_INVARIANT_EXT = $87C2;
5546   GL_LOCAL_CONSTANT_EXT = $87C3;
5547   GL_LOCAL_EXT = $87C4;
5548   GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = $87C5;
5549   GL_MAX_VERTEX_SHADER_VARIANTS_EXT = $87C6;
5550   GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = $87C7;
5551   GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87C8;
5552   GL_MAX_VERTEX_SHADER_LOCALS_EXT = $87C9;
5553   GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CA;
5554   GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = $87CB;
5555   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87CC;
5556   GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = $87CD;
5557   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = $87CE;
5558   GL_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CF;
5559   GL_VERTEX_SHADER_VARIANTS_EXT = $87D0;
5560   GL_VERTEX_SHADER_INVARIANTS_EXT = $87D1;
5561   GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87D2;
5562   GL_VERTEX_SHADER_LOCALS_EXT = $87D3;
5563   GL_VERTEX_SHADER_OPTIMIZED_EXT = $87D4;
5564   GL_X_EXT = $87D5;
5565   GL_Y_EXT = $87D6;
5566   GL_Z_EXT = $87D7;
5567   GL_W_EXT = $87D8;
5568   GL_NEGATIVE_X_EXT = $87D9;
5569   GL_NEGATIVE_Y_EXT = $87DA;
5570   GL_NEGATIVE_Z_EXT = $87DB;
5571   GL_NEGATIVE_W_EXT = $87DC;
5572   GL_ZERO_EXT = $87DD;
5573   GL_ONE_EXT = $87DE;
5574   GL_NEGATIVE_ONE_EXT = $87DF;
5575   GL_NORMALIZED_RANGE_EXT = $87E0;
5576   GL_FULL_RANGE_EXT = $87E1;
5577   GL_CURRENT_VERTEX_EXT = $87E2;
5578   GL_MVP_MATRIX_EXT = $87E3;
5579   GL_VARIANT_VALUE_EXT = $87E4;
5580   GL_VARIANT_DATATYPE_EXT = $87E5;
5581   GL_VARIANT_ARRAY_STRIDE_EXT = $87E6;
5582   GL_VARIANT_ARRAY_TYPE_EXT = $87E7;
5583   GL_VARIANT_ARRAY_EXT = $87E8;
5584   GL_VARIANT_ARRAY_POINTER_EXT = $87E9;
5585   GL_INVARIANT_VALUE_EXT = $87EA;
5586   GL_INVARIANT_DATATYPE_EXT = $87EB;
5587   GL_LOCAL_CONSTANT_VALUE_EXT = $87EC;
5588   GL_LOCAL_CONSTANT_DATATYPE_EXT = $87ED;
5589
5590   // GL_EXT_vertex_weighting
5591   GL_MODELVIEW0_STACK_DEPTH_EXT = $0BA3;
5592   GL_MODELVIEW1_STACK_DEPTH_EXT = $8502;
5593   GL_MODELVIEW0_MATRIX_EXT = $0BA6;
5594   GL_MODELVIEW1_MATRIX_EXT = $8506;
5595   GL_VERTEX_WEIGHTING_EXT = $8509;
5596   GL_MODELVIEW0_EXT = $1700;
5597   GL_MODELVIEW1_EXT = $850A;
5598   GL_CURRENT_VERTEX_WEIGHT_EXT = $850B;
5599   GL_VERTEX_WEIGHT_ARRAY_EXT = $850C;
5600   GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = $850D;
5601   GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = $850E;
5602   GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = $850F;
5603   GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = $8510;
5604
5605   // GL_EXT_depth_bounds_test
5606   GL_DEPTH_BOUNDS_TEST_EXT = $8890;
5607   GL_DEPTH_BOUNDS_EXT = $8891;
5608
5609   // GL_EXT_texture_mirror_clamp
5610   GL_MIRROR_CLAMP_EXT = $8742;
5611   GL_MIRROR_CLAMP_TO_EDGE_EXT = $8743;
5612   GL_MIRROR_CLAMP_TO_BORDER_EXT = $8912;
5613
5614   // GL_EXT_blend_equation_separate
5615   GL_BLEND_EQUATION_RGB_EXT = $8009; 
5616   GL_BLEND_EQUATION_ALPHA_EXT = $883D;
5617
5618   // GL_EXT_pixel_buffer_object
5619   GL_PIXEL_PACK_BUFFER_EXT = $88EB;
5620   GL_PIXEL_UNPACK_BUFFER_EXT = $88EC;
5621   GL_PIXEL_PACK_BUFFER_BINDING_EXT = $88ED;
5622   GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = $88EF;
5623
5624   // GL_EXT_stencil_clear_tag
5625   GL_STENCIL_TAG_BITS_EXT = $88F2;
5626   GL_STENCIL_CLEAR_TAG_VALUE_EXT = $88F3;
5627
5628   // GL_EXT_packed_depth_stencil
5629   GL_DEPTH_STENCIL_EXT = $84F9;
5630   GL_UNSIGNED_INT_24_8_EXT = $84FA;
5631   GL_DEPTH24_STENCIL8_EXT = $88F0;
5632   GL_TEXTURE_STENCIL_SIZE_EXT = $88F1;
5633
5634   // GL_EXT_texture_sRGB
5635   GL_SRGB_EXT = $8C40;
5636   GL_SRGB8_EXT = $8C41;
5637   GL_SRGB_ALPHA_EXT = $8C42;
5638   GL_SRGB8_ALPHA8_EXT = $8C43;
5639   GL_SLUMINANCE_ALPHA_EXT = $8C44;
5640   GL_SLUMINANCE8_ALPHA8_EXT = $8C45;
5641   GL_SLUMINANCE_EXT = $8C46;
5642   GL_SLUMINANCE8_EXT = $8C47;
5643   GL_COMPRESSED_SRGB_EXT = $8C48;
5644   GL_COMPRESSED_SRGB_ALPHA_EXT = $8C49;
5645   GL_COMPRESSED_SLUMINANCE_EXT = $8C4A;
5646   GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = $8C4B;
5647   GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = $8C4C;
5648   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = $8C4D;
5649   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = $8C4E;
5650   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = $8C4F;
5651
5652   // GL_EXT_framebuffer_blit
5653   GL_READ_FRAMEBUFFER_EXT = $8CA8;
5654   GL_DRAW_FRAMEBUFFER_EXT = $8CA9;
5655   GL_READ_FRAMEBUFFER_BINDING_EXT = GL_FRAMEBUFFER_BINDING_EXT;
5656   GL_DRAW_FRAMEBUFFER_BINDING_EXT = $8CAA;
5657
5658   // GL_EXT_framebuffer_multisample
5659   GL_RENDERBUFFER_SAMPLES_EXT = $8CAB;
5660   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = $8D56;
5661   GL_MAX_SAMPLES_EXT = $8D57;
5662
5663   // GL_EXT_timer_query
5664   GL_TIME_ELAPSED_EXT = $88BF;
5665
5666   // GL_EXT_bindable_uniform
5667   GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = $8DE2;
5668   GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = $8DE3;
5669   GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = $8DE4;
5670   GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = $8DED;
5671   GL_UNIFORM_BUFFER_EXT = $8DEE;
5672   GL_UNIFORM_BUFFER_BINDING_EXT = $8DEF;
5673
5674   // GL_EXT_framebuffer_sRGB
5675   GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
5676   WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20A9;
5677   GL_FRAMEBUFFER_SRGB_EXT = $8DB9;
5678   GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $8DBA;
5679
5680   // GL_EXT_geometry_shader4
5681   GL_GEOMETRY_SHADER_EXT = $8DD9;
5682   GL_GEOMETRY_VERTICES_OUT_EXT = $8DDA;
5683   GL_GEOMETRY_INPUT_TYPE_EXT = $8DDB;
5684   GL_GEOMETRY_OUTPUT_TYPE_EXT = $8DDC;
5685   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = $8C29;
5686   GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = $8DDD;
5687   GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = $8DDE;
5688   GL_MAX_VARYING_COMPONENTS_EXT = $8B4B;
5689   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = $8DDF;
5690   GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = $8DE0;
5691   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = $8DE1;
5692   GL_LINES_ADJACENCY_EXT = $A;
5693   GL_LINE_STRIP_ADJACENCY_EXT = $B;
5694   GL_TRIANGLES_ADJACENCY_EXT = $C;
5695   GL_TRIANGLE_STRIP_ADJACENCY_EXT = $D;
5696   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = $8DA8;
5697   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = $8DA9;
5698   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = $8DA7;
5699   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = $8CD4;
5700   GL_PROGRAM_POINT_SIZE_EXT = $8642;
5701
5702   // GL_EXT_gpu_shader4
5703   GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = $88FD;
5704   GL_SAMPLER_1D_ARRAY_EXT = $8DC0;
5705   GL_SAMPLER_2D_ARRAY_EXT = $8DC1;
5706   GL_SAMPLER_BUFFER_EXT = $8DC2;
5707   GL_SAMPLER_1D_ARRAY_SHADOW_EXT = $8DC3;
5708   GL_SAMPLER_2D_ARRAY_SHADOW_EXT = $8DC4;
5709   GL_SAMPLER_CUBE_SHADOW_EXT = $8DC5;
5710   GL_UNSIGNED_INT_VEC2_EXT = $8DC6;
5711   GL_UNSIGNED_INT_VEC3_EXT = $8DC7;
5712   GL_UNSIGNED_INT_VEC4_EXT = $8DC8;
5713   GL_INT_SAMPLER_1D_EXT = $8DC9;
5714   GL_INT_SAMPLER_2D_EXT = $8DCA;
5715   GL_INT_SAMPLER_3D_EXT = $8DCB;
5716   GL_INT_SAMPLER_CUBE_EXT = $8DCC;
5717   GL_INT_SAMPLER_2D_RECT_EXT = $8DCD;
5718   GL_INT_SAMPLER_1D_ARRAY_EXT = $8DCE;
5719   GL_INT_SAMPLER_2D_ARRAY_EXT = $8DCF;
5720   GL_INT_SAMPLER_BUFFER_EXT = $8DD0;
5721   GL_UNSIGNED_INT_SAMPLER_1D_EXT = $8DD1;
5722   GL_UNSIGNED_INT_SAMPLER_2D_EXT = $8DD2;
5723   GL_UNSIGNED_INT_SAMPLER_3D_EXT = $8DD3;
5724   GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = $8DD4;
5725   GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = $8DD5;
5726   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = $8DD6;
5727   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = $8DD7;
5728   GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = $8DD8;
5729   GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = $8904;
5730   GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = $8905;
5731
5732   // GL_EXT_packed_float
5733   GL_R11F_G11F_B10F_EXT = $8C3A;
5734   GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = $8C3B;
5735   RGBA_SIGNED_COMPONENTS_EXT = $8C3C;
5736   WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT = $20A8;
5737   GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
5738   GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
5739
5740   // GL_EXT_texture_array
5741   GL_TEXTURE_1D_ARRAY_EXT = $8C18;
5742   GL_TEXTURE_2D_ARRAY_EXT = $8C1A;
5743   GL_PROXY_TEXTURE_2D_ARRAY_EXT = $8C1B;
5744   GL_PROXY_TEXTURE_1D_ARRAY_EXT = $8C19;
5745   GL_TEXTURE_BINDING_1D_ARRAY_EXT = $8C1C;
5746   GL_TEXTURE_BINDING_2D_ARRAY_EXT = $8C1D;
5747   GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = $88FF;
5748   GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = $884E;
5749
5750   // GL_EXT_texture_buffer_object
5751   GL_TEXTURE_BUFFER_EXT = $8C2A;
5752   GL_MAX_TEXTURE_BUFFER_SIZE_EXT = $8C2B;
5753   GL_TEXTURE_BINDING_BUFFER_EXT = $8C2C;
5754   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = $8C2D;
5755   GL_TEXTURE_BUFFER_FORMAT_EXT = $8C2E;
5756
5757   // GL_EXT_texture_compression_latc
5758   GL_COMPRESSED_LUMINANCE_LATC1_EXT = $8C70;
5759   GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = $8C71;
5760   GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = $8C72;
5761   GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = $8C73;
5762
5763   // GL_EXT_texture_compression_rgtc
5764   GL_COMPRESSED_RED_RGTC1_EXT = $8DBB;
5765   GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = $8DBC;
5766   GL_COMPRESSED_RED_GREEN_RGTC2_EXT = $8DBD;
5767   GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = $8DBE;
5768
5769   // GL_EXT_texture_integer
5770   GL_RGBA_INTEGER_MODE_EXT = $8D9E;
5771   GL_RGBA32UI_EXT = $8D70;
5772   GL_RGB32UI_EXT = $8D71;
5773   GL_ALPHA32UI_EXT = $8D72;
5774   GL_INTENSITY32UI_EXT = $8D73;
5775   GL_LUMINANCE32UI_EXT = $8D74;
5776   GL_LUMINANCE_ALPHA32UI_EXT = $8D75;
5777   GL_RGBA16UI_EXT = $8D76;
5778   GL_RGB16UI_EXT = $8D77;
5779   GL_ALPHA16UI_EXT = $8D78;
5780   GL_INTENSITY16UI_EXT = $8D79;
5781   GL_LUMINANCE16UI_EXT = $8D7A;
5782   GL_LUMINANCE_ALPHA16UI_EXT = $8D7B;
5783   GL_RGBA8UI_EXT = $8D7C;
5784   GL_RGB8UI_EXT = $8D7D;
5785   GL_ALPHA8UI_EXT = $8D7E;
5786   GL_INTENSITY8UI_EXT = $8D7F;
5787   GL_LUMINANCE8UI_EXT = $8D80;
5788   GL_LUMINANCE_ALPHA8UI_EXT = $8D81;
5789   GL_RGBA32I_EXT = $8D82;
5790   GL_RGB32I_EXT = $8D83;
5791   GL_ALPHA32I_EXT = $8D84;
5792   GL_INTENSITY32I_EXT = $8D85;
5793   GL_LUMINANCE32I_EXT = $8D86;
5794   GL_LUMINANCE_ALPHA32I_EXT = $8D87;
5795   GL_RGBA16I_EXT = $8D88;
5796   GL_RGB16I_EXT = $8D89;
5797   GL_ALPHA16I_EXT = $8D8A;
5798   GL_INTENSITY16I_EXT = $8D8B;
5799   GL_LUMINANCE16I_EXT = $8D8C;
5800   GL_LUMINANCE_ALPHA16I_EXT = $8D8D;
5801   GL_RGBA8I_EXT = $8D8E;
5802   GL_RGB8I_EXT = $8D8F;
5803   GL_ALPHA8I_EXT = $8D90;
5804   GL_INTENSITY8I_EXT = $8D91;
5805   GL_LUMINANCE8I_EXT = $8D92;
5806   GL_LUMINANCE_ALPHA8I_EXT = $8D93;
5807   GL_RED_INTEGER_EXT = $8D94;
5808   GL_GREEN_INTEGER_EXT = $8D95;
5809   GL_BLUE_INTEGER_EXT = $8D96;
5810   GL_ALPHA_INTEGER_EXT = $8D97;
5811   GL_RGB_INTEGER_EXT = $8D98;
5812   GL_RGBA_INTEGER_EXT = $8D99;
5813   GL_BGR_INTEGER_EXT = $8D9A;
5814   GL_BGRA_INTEGER_EXT = $8D9B;
5815   GL_LUMINANCE_INTEGER_EXT = $8D9C;
5816   GL_LUMINANCE_ALPHA_INTEGER_EXT = $8D9D;
5817
5818   // GL_EXT_texture_shared_exponent
5819   GL_RGB9_E5_EXT = $8C3D;
5820   GL_UNSIGNED_INT_5_9_9_9_REV_EXT = $8C3E;
5821   GL_TEXTURE_SHARED_SIZE_EXT = $8C3F;
5822
5823   // GL_EXT_transform_feedback
5824   GL_TRANSFORM_FEEDBACK_BUFFER_EXT = $8C8E;
5825   GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = $8C84;
5826   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = $8C85;
5827   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = $8C8F;
5828   GL_INTERLEAVED_ATTRIBS_EXT = $8C8C;
5829   GL_SEPARATE_ATTRIBS_EXT = $8C8D;
5830   GL_PRIMITIVES_GENERATED_EXT = $8C87;
5831   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = $8C88;
5832   GL_RASTERIZER_DISCARD_EXT = $8C89;
5833   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = $8C8A;
5834   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = $8C8B;
5835   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = $8C80;
5836   GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = $8C83;
5837   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = $8C7F;
5838   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = $8C76;
5839
5840   // GL_EXT_direct_state_access
5841   GL_PROGRAM_MATRIX_EXT = $8E2D;
5842   GL_TRANSPOSE_PROGRAM_MATRIX_EXT = $8E2E;
5843   GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = $8E2F;
5844
5845   // GL_EXT_texture_swizzle
5846   GL_TEXTURE_SWIZZLE_R_EXT = $8E42;
5847   GL_TEXTURE_SWIZZLE_G_EXT = $8E43;
5848   GL_TEXTURE_SWIZZLE_B_EXT = $8E44;
5849   GL_TEXTURE_SWIZZLE_A_EXT = $8E45;
5850   GL_TEXTURE_SWIZZLE_RGBA_EXT = $8E46;
5851
5852   // GL_EXT_provoking_vertex
5853   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = $8E4C;
5854   GL_FIRST_VERTEX_CONVENTION_EXT = $8E4D;
5855   GL_LAST_VERTEX_CONVENTION_EXT = $8E4E;
5856   GL_PROVOKING_VERTEX_EXT = $8E4F;
5857   
5858   // GL_EXT_texture_snorm
5859   GL_ALPHA_SNORM = $9010;
5860   GL_LUMINANCE_SNORM = $9011;
5861   GL_LUMINANCE_ALPHA_SNORM = $9012;
5862   GL_INTENSITY_SNORM = $9013;
5863   GL_ALPHA8_SNORM = $9014;
5864   GL_LUMINANCE8_SNORM = $9015;
5865   GL_LUMINANCE8_ALPHA8_SNORM = $9016;
5866   GL_INTENSITY8_SNORM = $9017;
5867   GL_ALPHA16_SNORM = $9018;
5868   GL_LUMINANCE16_SNORM = $9019;
5869   GL_LUMINANCE16_ALPHA16_SNORM = $901A;
5870   GL_INTENSITY16_SNORM = $901B;
5871   { reuse GL_RED_SNORM }
5872   { reuse GL_RG_SNORM }
5873   { reuse GL_RGB_SNORM }
5874   { reuse GL_RGBA_SNORM }
5875   { reuse GL_R8_SNORM }
5876   { reuse GL_RG8_SNORM }
5877   { reuse GL_RGB8_SNORM }
5878   { reuse GL_RGBA8_SNORM }
5879   { reuse GL_R16_SNORM }
5880   { reuse GL_RG16_SNORM }
5881   { reuse GL_RGB16_SNORM }
5882   { reuse GL_RGBA16_SNORM }
5883   { reuse GL_SIGNED_NORMALIZED }
5884   
5885   // GL_EXT_separate_shader_objects
5886   GL_ACTIVE_PROGRAM_EXT = $8B8D;
5887   
5888   // GL_EXT_shader_image_load_store
5889   GL_MAX_IMAGE_UNITS_EXT = $8F38;
5890   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = $8F39;
5891   GL_IMAGE_BINDING_NAME_EXT = $8F3A;
5892   GL_IMAGE_BINDING_LEVEL_EXT = $8F3B;
5893   GL_IMAGE_BINDING_LAYERED_EXT = $8F3C;
5894   GL_IMAGE_BINDING_LAYER_EXT = $8F3D;
5895   GL_IMAGE_BINDING_ACCESS_EXT = $8F3E;
5896   GL_IMAGE_1D_EXT = $904C;
5897   GL_IMAGE_2D_EXT = $904D;
5898   GL_IMAGE_3D_EXT = $904E;
5899   GL_IMAGE_2D_RECT_EXT = $904F;
5900   GL_IMAGE_CUBE_EXT = $9050;
5901   GL_IMAGE_BUFFER_EXT = $9051;
5902   GL_IMAGE_1D_ARRAY_EXT = $9052;
5903   GL_IMAGE_2D_ARRAY_EXT = $9053;
5904   GL_IMAGE_CUBE_MAP_ARRAY_EXT = $9054;
5905   GL_IMAGE_2D_MULTISAMPLE_EXT = $9055;
5906   GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9056;
5907   GL_INT_IMAGE_1D_EXT = $9057;
5908   GL_INT_IMAGE_2D_EXT = $9058;
5909   GL_INT_IMAGE_3D_EXT = $9059;
5910   GL_INT_IMAGE_2D_RECT_EXT = $905A;
5911   GL_INT_IMAGE_CUBE_EXT = $905B;
5912   GL_INT_IMAGE_BUFFER_EXT = $905C;
5913   GL_INT_IMAGE_1D_ARRAY_EXT = $905D;
5914   GL_INT_IMAGE_2D_ARRAY_EXT = $905E;
5915   GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $905F;
5916   GL_INT_IMAGE_2D_MULTISAMPLE_EXT = $9060;
5917   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9061;
5918   GL_UNSIGNED_INT_IMAGE_1D_EXT = $9062;
5919   GL_UNSIGNED_INT_IMAGE_2D_EXT = $9063;
5920   GL_UNSIGNED_INT_IMAGE_3D_EXT = $9064;
5921   GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT = $9065;
5922   GL_UNSIGNED_INT_IMAGE_CUBE_EXT = $9066;
5923   GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = $9067;
5924   GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = $9068;
5925   GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = $9069;
5926   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $906A;
5927   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = $906B;
5928   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $906C;
5929   GL_MAX_IMAGE_SAMPLES_EXT = $906D;
5930   GL_IMAGE_BINDING_FORMAT_EXT = $906E;
5931   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = $00000001;
5932   GL_ELEMENT_ARRAY_BARRIER_BIT_EXT = $00000002;
5933   GL_UNIFORM_BARRIER_BIT_EXT = $00000004;
5934   GL_TEXTURE_FETCH_BARRIER_BIT_EXT = $00000008;
5935   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = $00000020;
5936   GL_COMMAND_BARRIER_BIT_EXT = $00000040;
5937   GL_PIXEL_BUFFER_BARRIER_BIT_EXT = $00000080;
5938   GL_TEXTURE_UPDATE_BARRIER_BIT_EXT = $00000100;
5939   GL_BUFFER_UPDATE_BARRIER_BIT_EXT = $00000200;
5940   GL_FRAMEBUFFER_BARRIER_BIT_EXT = $00000400;
5941   GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = $00000800;
5942   GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = $00001000;
5943   GL_ALL_BARRIER_BITS_EXT = $FFFFFFFF;
5944   
5945   // GL_EXT_vertex_attrib_64bit
5946   { reuse GL_DOUBLE }
5947   GL_DOUBLE_VEC2_EXT = $8FFC;
5948   GL_DOUBLE_VEC3_EXT = $8FFD;
5949   GL_DOUBLE_VEC4_EXT = $8FFE;
5950   GL_DOUBLE_MAT2_EXT = $8F46;
5951   GL_DOUBLE_MAT3_EXT = $8F47;
5952   GL_DOUBLE_MAT4_EXT = $8F48;
5953   GL_DOUBLE_MAT2x3_EXT = $8F49;
5954   GL_DOUBLE_MAT2x4_EXT = $8F4A;
5955   GL_DOUBLE_MAT3x2_EXT = $8F4B;
5956   GL_DOUBLE_MAT3x4_EXT = $8F4C;
5957   GL_DOUBLE_MAT4x2_EXT = $8F4D;
5958   GL_DOUBLE_MAT4x3_EXT = $8F4E;
5959
5960   // GL_EXT_texture_sRGB_decode
5961   GL_TEXTURE_SRGB_DECODE_EXT = $8A48;
5962   GL_DECODE_EXT = $8A49;
5963   GL_SKIP_DECODE_EXT = $8A4A;
5964
5965   // GL_NV_texture_multisample 
5966   GL_TEXTURE_COVERAGE_SAMPLES_NV    = $9045;
5967   GL_TEXTURE_COLOR_SAMPLES_NV       = $9046;
5968
5969   // GL_AMD_blend_minmax_factor
5970   GL_FACTOR_MIN_AMD                 = $901C;
5971   GL_FACTOR_MAX_AMD                 = $901D;
5972
5973   // GL_AMD_sample_positions
5974   GL_SUBSAMPLE_DISTANCE_AMD         = $883F;
5975
5976   // GL_EXT_x11_sync_object
5977   GL_SYNC_X11_FENCE_EXT             = $90E1;
5978
5979   // GL_EXT_framebuffer_multisample_blit_scaled
5980   GL_SCALED_RESOLVE_FASTEST_EXT     = $90BA;
5981   GL_SCALED_RESOLVE_NICEST_EXT      = $90BB;
5982
5983   // (4.3) GL_NV_path_rendering
5984         GL_PATH_FORMAT_SVG_NV            = $9070;
5985         GL_PATH_FORMAT_PS_NV             = $9071;
5986         GL_STANDARD_FONT_NAME_NV         = $9072;
5987         GL_SYSTEM_FONT_NAME_NV           = $9073;
5988         GL_FILE_NAME_NV                  = $9074;
5989         GL_PATH_STROKE_WIDTH_NV          = $9075;
5990         GL_PATH_END_CAPS_NV              = $9076;
5991         GL_PATH_INITIAL_END_CAP_NV       = $9077;
5992         GL_PATH_TERMINAL_END_CAP_NV      = $9078;
5993         GL_PATH_JOIN_STYLE_NV            = $9079;
5994         GL_PATH_MITER_LIMIT_NV           = $907A;
5995         GL_PATH_DASH_CAPS_NV             = $907B;
5996         GL_PATH_INITIAL_DASH_CAP_NV      = $907C;
5997         GL_PATH_TERMINAL_DASH_CAP_NV     = $907D;
5998         GL_PATH_DASH_OFFSET_NV           = $907E;
5999         GL_PATH_CLIENT_LENGTH_NV         = $907F;
6000         GL_PATH_FILL_MODE_NV             = $9080;
6001         GL_PATH_FILL_MASK_NV             = $9081;
6002         GL_PATH_FILL_COVER_MODE_NV       = $9082;
6003         GL_PATH_STROKE_COVER_MODE_NV     = $9083;
6004         GL_PATH_STROKE_MASK_NV           = $9084;
6005         GL_PATH_SAMPLE_QUALITY_NV        = $9085;
6006         GL_PATH_STROKE_BOUND_NV          = $9086;
6007         GL_PATH_STROKE_OVERSAMPLE_COUNT_NV= $9087;
6008         GL_COUNT_UP_NV                   = $9088;
6009         GL_COUNT_DOWN_NV                 = $9089;
6010         GL_PATH_OBJECT_BOUNDING_BOX_NV   = $908A;
6011         GL_CONVEX_HULL_NV                = $908B;
6012         GL_MULTI_HULLS_NV                = $908C;
6013         GL_BOUNDING_BOX_NV               = $908D;
6014         GL_TRANSLATE_X_NV                = $908E;
6015         GL_TRANSLATE_Y_NV                = $908F;
6016         GL_TRANSLATE_2D_NV               = $9090;
6017         GL_TRANSLATE_3D_NV               = $9091;
6018         GL_AFFINE_2D_NV                  = $9092;
6019         GL_PROJECTIVE_2D_NV              = $9093;
6020         GL_AFFINE_3D_NV                  = $9094;
6021         GL_PROJECTIVE_3D_NV              = $9095;
6022         GL_TRANSPOSE_AFFINE_2D_NV        = $9096;
6023         GL_TRANSPOSE_PROJECTIVE_2D_NV    = $9097;
6024         GL_TRANSPOSE_AFFINE_3D_NV        = $9098;
6025         GL_TRANSPOSE_PROJECTIVE_3D_NV    = $9099;
6026         GL_UTF8_NV                       = $909A;
6027         GL_UTF16_NV                      = $909B;
6028         GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV= $909C;
6029         GL_PATH_COMMAND_COUNT_NV         = $909D;
6030         GL_PATH_COORD_COUNT_NV           = $909E;
6031   GL_PATH_DASH_ARRAY_COUNT_NV      = $909F;
6032   GL_PATH_COMPUTED_LENGTH_NV       = $90A0;
6033   GL_PATH_FILL_BOUNDING_BOX_NV     = $90A1;
6034   GL_PATH_STROKE_BOUNDING_BOX_NV   = $90A2;
6035   GL_SQUARE_NV                     = $90A3;
6036   GL_ROUND_NV                      = $90A4;
6037   GL_TRIANGULAR_NV                 = $90A5;
6038   GL_BEVEL_NV                      = $90A6;
6039   GL_MITER_REVERT_NV               = $90A7;
6040   GL_MITER_TRUNCATE_NV             = $90A8;
6041   GL_SKIP_MISSING_GLYPH_NV         = $90A9;
6042   GL_USE_MISSING_GLYPH_NV          = $90AA;
6043   GL_PATH_ERROR_POSITION_NV        = $90AB;
6044   GL_PATH_FOG_GEN_MODE_NV          = $90AC;
6045   GL_ACCUM_ADJACENT_PAIRS_NV       = $90AD;
6046   GL_ADJACENT_PAIRS_NV             = $90AE;
6047   GL_FIRST_TO_REST_NV              = $90AF;
6048   GL_PATH_GEN_MODE_NV              = $90B0;
6049   GL_PATH_GEN_COEFF_NV             = $90B1;
6050   GL_PATH_GEN_COLOR_FORMAT_NV      = $90B2;
6051   GL_PATH_GEN_COMPONENTS_NV        = $90B3;
6052   GL_PATH_STENCIL_FUNC_NV          = $90B7;
6053   GL_PATH_STENCIL_REF_NV           = $90B8;
6054   GL_PATH_STENCIL_VALUE_MASK_NV    = $90B9;
6055   GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV= $90BD;
6056   GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV= $90BE;
6057   GL_PATH_COVER_DEPTH_FUNC_NV      = $90BF;
6058   GL_PATH_DASH_OFFSET_RESET_NV     = $90B4;
6059   GL_MOVE_TO_RESETS_NV             = $90B5;
6060   GL_MOVE_TO_CONTINUES_NV          = $90B6;
6061   GL_CLOSE_PATH_NV                 = $00;
6062   GL_MOVE_TO_NV                    = $02;
6063   GL_RELATIVE_MOVE_TO_NV           = $03;
6064   GL_LINE_TO_NV                    = $04;
6065   GL_RELATIVE_LINE_TO_NV           = $05;
6066   GL_HORIZONTAL_LINE_TO_NV         = $06;
6067   GL_RELATIVE_HORIZONTAL_LINE_TO_NV= $07;
6068   GL_VERTICAL_LINE_TO_NV           = $08;
6069   GL_RELATIVE_VERTICAL_LINE_TO_NV  = $09;
6070   GL_QUADRATIC_CURVE_TO_NV         = $0A;
6071   GL_RELATIVE_QUADRATIC_CURVE_TO_NV= $0B;
6072   GL_CUBIC_CURVE_TO_NV             = $0C;
6073   GL_RELATIVE_CUBIC_CURVE_TO_NV    = $0D;
6074   GL_SMOOTH_QUADRATIC_CURVE_TO_NV  = $0E;
6075   GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV= $0F;
6076   GL_SMOOTH_CUBIC_CURVE_TO_NV      = $10;
6077   GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV= $11;
6078   GL_SMALL_CCW_ARC_TO_NV           = $12;
6079   GL_RELATIVE_SMALL_CCW_ARC_TO_NV  = $13;
6080   GL_SMALL_CW_ARC_TO_NV            = $14;
6081   GL_RELATIVE_SMALL_CW_ARC_TO_NV   = $15;
6082   GL_LARGE_CCW_ARC_TO_NV           = $16;
6083   GL_RELATIVE_LARGE_CCW_ARC_TO_NV  = $17;
6084   GL_LARGE_CW_ARC_TO_NV            = $18;
6085   GL_RELATIVE_LARGE_CW_ARC_TO_NV   = $19;
6086   GL_RESTART_PATH_NV               = $F0;
6087   GL_DUP_FIRST_CUBIC_CURVE_TO_NV   = $F2;
6088   GL_DUP_LAST_CUBIC_CURVE_TO_NV    = $F4;
6089   GL_RECT_NV                       = $F6;
6090   GL_CIRCULAR_CCW_ARC_TO_NV        = $F8;
6091   GL_CIRCULAR_CW_ARC_TO_NV         = $FA;
6092   GL_CIRCULAR_TANGENT_ARC_TO_NV    = $FC;
6093   GL_ARC_TO_NV                     = $FE;
6094   GL_RELATIVE_ARC_TO_NV            = $FF;
6095   GL_BOLD_BIT_NV                   = $01;
6096   GL_ITALIC_BIT_NV                 = $02;
6097   GL_GLYPH_WIDTH_BIT_NV            = $01;
6098   GL_GLYPH_HEIGHT_BIT_NV           = $02;
6099   GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV= $04;
6100   GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV= $08;
6101   GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV= $10;
6102   GL_GLYPH_VERTICAL_BEARING_X_BIT_NV= $20;
6103   GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV= $40;
6104   GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV= $80;
6105   GL_GLYPH_HAS_KERNING_NV          = $100;
6106   GL_FONT_X_MIN_BOUNDS_NV          = $00010000;
6107   GL_FONT_Y_MIN_BOUNDS_NV          = $00020000;
6108   GL_FONT_X_MAX_BOUNDS_NV          = $00040000;
6109   GL_FONT_Y_MAX_BOUNDS_NV          = $00080000;
6110   GL_FONT_UNITS_PER_EM_NV          = $00100000;
6111   GL_FONT_ASCENDER_NV              = $00200000;
6112   GL_FONT_DESCENDER_NV             = $00400000;
6113   GL_FONT_HEIGHT_NV                = $00800000;
6114   GL_FONT_MAX_ADVANCE_WIDTH_NV     = $01000000;
6115   GL_FONT_MAX_ADVANCE_HEIGHT_NV    = $02000000;
6116   GL_FONT_UNDERLINE_POSITION_NV    = $04000000;
6117   GL_FONT_UNDERLINE_THICKNESS_NV   = $08000000;
6118   GL_FONT_HAS_KERNING_NV           = $10000000;
6119
6120   // (4.3) GL_AMD_pinned_memory
6121   GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD= $9160;
6122
6123   // (4.3) GL_AMD_stencil_operation_extended
6124   GL_SET_AMD                       = $874A;
6125   GL_REPLACE_VALUE_AMD             = $874B;
6126   GL_STENCIL_OP_VALUE_AMD          = $874C;
6127   GL_STENCIL_BACK_OP_VALUE_AMD     = $874D;
6128
6129   // (4.3) GL_AMD_vertex_shader_viewport_index
6130
6131   // (4.3) GL_AMD_vertex_shader_layer
6132
6133   // (4.3) GL_NV_bindless_texture
6134
6135   // (4.3) GL_NV_shader_atomic_float
6136
6137   // (4.3) GL_AMD_query_buffer_object
6138   GL_QUERY_BUFFER_AMD              = $9192;
6139   GL_QUERY_BUFFER_BINDING_AMD      = $9193;
6140   GL_QUERY_RESULT_NO_WAIT_AMD      = $9194;
6141
6142   // GL_FfdMaskSGIX
6143   GL_TEXTURE_DEFORMATION_BIT_SGIX = $00000001;
6144   GL_GEOMETRY_DEFORMATION_BIT_SGIX = $00000002;
6145
6146   // GL_HP_convolution_border_modes
6147   GL_IGNORE_BORDER_HP = $8150;
6148   GL_CONSTANT_BORDER_HP = $8151;
6149   GL_REPLICATE_BORDER_HP = $8153;
6150   GL_CONVOLUTION_BORDER_COLOR_HP = $8154;
6151
6152   // GL_HP_image_transform
6153   GL_IMAGE_SCALE_X_HP = $8155;
6154   GL_IMAGE_SCALE_Y_HP = $8156;
6155   GL_IMAGE_TRANSLATE_X_HP = $8157;
6156   GL_IMAGE_TRANSLATE_Y_HP = $8158;
6157   GL_IMAGE_ROTATE_ANGLE_HP = $8159;
6158   GL_IMAGE_ROTATE_ORIGIN_X_HP = $815A;
6159   GL_IMAGE_ROTATE_ORIGIN_Y_HP = $815B;
6160   GL_IMAGE_MAG_FILTER_HP = $815C;
6161   GL_IMAGE_MIN_FILTER_HP = $815D;
6162   GL_IMAGE_CUBIC_WEIGHT_HP = $815E;
6163   GL_CUBIC_HP = $815F;
6164   GL_AVERAGE_HP = $8160;
6165   GL_IMAGE_TRANSFORM_2D_HP = $8161;
6166   GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8162;
6167   GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8163;
6168
6169   // GL_HP_occlusion_test
6170   GL_OCCLUSION_TEST_HP = $8165;
6171   GL_OCCLUSION_TEST_RESULT_HP = $8166;
6172
6173   // GL_HP_texture_lighting
6174   GL_TEXTURE_LIGHTING_MODE_HP = $8167;
6175   GL_TEXTURE_POST_SPECULAR_HP = $8168;
6176   GL_TEXTURE_PRE_SPECULAR_HP = $8169;
6177
6178   // GL_IBM_cull_vertex
6179   GL_CULL_VERTEX_IBM = 103050;
6180
6181   // GL_IBM_rasterpos_clip
6182   GL_RASTER_POSITION_UNCLIPPED_IBM = $19262;
6183
6184   // GL_IBM_texture_mirrored_repeat
6185   GL_MIRRORED_REPEAT_IBM = $8370;
6186
6187   // GL_IBM_vertex_array_lists
6188   GL_VERTEX_ARRAY_LIST_IBM = 103070;
6189   GL_NORMAL_ARRAY_LIST_IBM = 103071;
6190   GL_COLOR_ARRAY_LIST_IBM = 103072;
6191   GL_INDEX_ARRAY_LIST_IBM = 103073;
6192   GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074;
6193   GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075;
6194   GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076;
6195   GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077;
6196   GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080;
6197   GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081;
6198   GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082;
6199   GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083;
6200   GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084;
6201   GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085;
6202   GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086;
6203   GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087;
6204
6205   // GL_INGR_color_clamp
6206   GL_RED_MIN_CLAMP_INGR = $8560;
6207   GL_GREEN_MIN_CLAMP_INGR = $8561;
6208   GL_BLUE_MIN_CLAMP_INGR = $8562;
6209   GL_ALPHA_MIN_CLAMP_INGR = $8563;
6210   GL_RED_MAX_CLAMP_INGR = $8564;
6211   GL_GREEN_MAX_CLAMP_INGR = $8565;
6212   GL_BLUE_MAX_CLAMP_INGR = $8566;
6213   GL_ALPHA_MAX_CLAMP_INGR = $8567;
6214
6215   // GL_INGR_interlace_read
6216   GL_INTERLACE_READ_INGR = $8568;
6217
6218   // GL_INTEL_parallel_arrays
6219   GL_PARALLEL_ARRAYS_INTEL = $83F4;
6220   GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = $83F5;
6221   GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = $83F6;
6222   GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = $83F7;
6223   GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = $83F8;
6224
6225   // GL_NV_copy_depth_to_color
6226   GL_DEPTH_STENCIL_TO_RGBA_NV = $886E;
6227   GL_DEPTH_STENCIL_TO_BGRA_NV = $886F;
6228
6229   // GL_NV_depth_clamp
6230   GL_DEPTH_CLAMP_NV = $864F;
6231
6232   // GL_NV_evaluators
6233   GL_EVAL_2D_NV = $86C0;
6234   GL_EVAL_TRIANGULAR_2D_NV = $86C1;
6235   GL_MAP_TESSELLATION_NV = $86C2;
6236   GL_MAP_ATTRIB_U_ORDER_NV = $86C3;
6237   GL_MAP_ATTRIB_V_ORDER_NV = $86C4;
6238   GL_EVAL_FRACTIONAL_TESSELLATION_NV = $86C5;
6239   GL_EVAL_VERTEX_ATTRIB0_NV = $86C6;
6240   GL_EVAL_VERTEX_ATTRIB1_NV = $86C7;
6241   GL_EVAL_VERTEX_ATTRIB2_NV = $86C8;
6242   GL_EVAL_VERTEX_ATTRIB3_NV = $86C9;
6243   GL_EVAL_VERTEX_ATTRIB4_NV = $86CA;
6244   GL_EVAL_VERTEX_ATTRIB5_NV = $86CB;
6245   GL_EVAL_VERTEX_ATTRIB6_NV = $86CC;
6246   GL_EVAL_VERTEX_ATTRIB7_NV = $86CD;
6247   GL_EVAL_VERTEX_ATTRIB8_NV = $86CE;
6248   GL_EVAL_VERTEX_ATTRIB9_NV = $86CF;
6249   GL_EVAL_VERTEX_ATTRIB10_NV = $86D0;
6250   GL_EVAL_VERTEX_ATTRIB11_NV = $86D1;
6251   GL_EVAL_VERTEX_ATTRIB12_NV = $86D2;
6252   GL_EVAL_VERTEX_ATTRIB13_NV = $86D3;
6253   GL_EVAL_VERTEX_ATTRIB14_NV = $86D4;
6254   GL_EVAL_VERTEX_ATTRIB15_NV = $86D5;
6255   GL_MAX_MAP_TESSELLATION_NV = $86D6;
6256   GL_MAX_RATIONAL_EVAL_ORDER_NV = $86D7;
6257
6258   // GL_NV_fence
6259   GL_ALL_COMPLETED_NV = $84F2;
6260   GL_FENCE_STATUS_NV = $84F3;
6261   GL_FENCE_CONDITION_NV = $84F4;
6262
6263   // GL_NV_float_buffer
6264   GL_FLOAT_R_NV = $8880;
6265   GL_FLOAT_RG_NV = $8881;
6266   GL_FLOAT_RGB_NV = $8882;
6267   GL_FLOAT_RGBA_NV = $8883;
6268   GL_FLOAT_R16_NV = $8884;
6269   GL_FLOAT_R32_NV = $8885;
6270   GL_FLOAT_RG16_NV = $8886;
6271   GL_FLOAT_RG32_NV = $8887;
6272   GL_FLOAT_RGB16_NV = $8888;
6273   GL_FLOAT_RGB32_NV = $8889;
6274   GL_FLOAT_RGBA16_NV = $888A;
6275   GL_FLOAT_RGBA32_NV = $888B;
6276   GL_TEXTURE_FLOAT_COMPONENTS_NV = $888C;
6277   GL_FLOAT_CLEAR_COLOR_VALUE_NV = $888D;
6278   GL_FLOAT_RGBA_MODE_NV = $888E;
6279
6280   // GL_NV_fog_distance
6281   GL_FOG_DISTANCE_MODE_NV = $855A;
6282   GL_EYE_RADIAL_NV = $855B;
6283   GL_EYE_PLANE_ABSOLUTE_NV = $855C;
6284
6285   // GL_NV_fragment_program
6286   GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = $8868;
6287   GL_FRAGMENT_PROGRAM_NV = $8870;
6288   GL_MAX_TEXTURE_COORDS_NV = $8871;
6289   GL_MAX_TEXTURE_IMAGE_UNITS_NV = $8872;
6290   GL_FRAGMENT_PROGRAM_BINDING_NV = $8873;
6291   GL_PROGRAM_ERROR_STRING_NV = $8874;
6292
6293   // GL_NV_half_float
6294   GL_HALF_FLOAT_NV = $140B;
6295
6296   // GL_NV_light_max_exponent
6297   GL_MAX_SHININESS_NV = $8504;
6298   GL_MAX_SPOT_EXPONENT_NV = $8505;
6299
6300   // GL_NV_multisample_filter_hint
6301   GL_MULTISAMPLE_FILTER_HINT_NV = $8534;
6302
6303   // GL_NV_occlusion_query
6304   GL_PIXEL_COUNTER_BITS_NV = $8864;
6305   GL_CURRENT_OCCLUSION_QUERY_ID_NV = $8865;
6306   GL_PIXEL_COUNT_NV = $8866;
6307   GL_PIXEL_COUNT_AVAILABLE_NV = $8867;
6308
6309   // GL_NV_packed_depth_stencil
6310   GL_DEPTH_STENCIL_NV = $84F9;
6311   GL_UNSIGNED_INT_24_8_NV = $84FA;
6312
6313   // GL_NV_pixel_data_range
6314   GL_WRITE_PIXEL_DATA_RANGE_NV = $8878;
6315   GL_READ_PIXEL_DATA_RANGE_NV = $8879;
6316   GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = $887A;
6317   GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = $887B;
6318   GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = $887C;
6319   GL_READ_PIXEL_DATA_RANGE_POINTER_NV = $887D;
6320
6321   // GL_NV_point_sprite
6322   GL_POINT_SPRITE_NV = $8861;
6323   GL_COORD_REPLACE_NV = $8862;
6324   GL_POINT_SPRITE_R_MODE_NV = $8863;
6325
6326   // GL_NV_primitive_restart
6327   GL_PRIMITIVE_RESTART_NV = $8558;
6328   GL_PRIMITIVE_RESTART_INDEX_NV = $8559;
6329
6330   // GL_NV_register_combiners
6331   GL_REGISTER_COMBINERS_NV = $8522;
6332   GL_VARIABLE_A_NV = $8523;
6333   GL_VARIABLE_B_NV = $8524;
6334   GL_VARIABLE_C_NV = $8525;
6335   GL_VARIABLE_D_NV = $8526;
6336   GL_VARIABLE_E_NV = $8527;
6337   GL_VARIABLE_F_NV = $8528;
6338   GL_VARIABLE_G_NV = $8529;
6339   GL_CONSTANT_COLOR0_NV = $852A;
6340   GL_CONSTANT_COLOR1_NV = $852B;
6341   GL_PRIMARY_COLOR_NV = $852C;
6342   GL_SECONDARY_COLOR_NV = $852D;
6343   GL_SPARE0_NV = $852E;
6344   GL_SPARE1_NV = $852F;
6345   GL_DISCARD_NV = $8530;
6346   GL_E_TIMES_F_NV = $8531;
6347   GL_SPARE0_PLUS_SECONDARY_COLOR_NV = $8532;
6348   GL_UNSIGNED_IDENTITY_NV = $8536;
6349   GL_UNSIGNED_INVERT_NV = $8537;
6350   GL_EXPAND_NORMAL_NV = $8538;
6351   GL_EXPAND_NEGATE_NV = $8539;
6352   GL_HALF_BIAS_NORMAL_NV = $853A;
6353   GL_HALF_BIAS_NEGATE_NV = $853B;
6354   GL_SIGNED_IDENTITY_NV = $853C;
6355   GL_SIGNED_NEGATE_NV = $853D;
6356   GL_SCALE_BY_TWO_NV = $853E;
6357   GL_SCALE_BY_FOUR_NV = $853F;
6358   GL_SCALE_BY_ONE_HALF_NV = $8540;
6359   GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = $8541;
6360   GL_COMBINER_INPUT_NV = $8542;
6361   GL_COMBINER_MAPPING_NV = $8543;
6362   GL_COMBINER_COMPONENT_USAGE_NV = $8544;
6363   GL_COMBINER_AB_DOT_PRODUCT_NV = $8545;
6364   GL_COMBINER_CD_DOT_PRODUCT_NV = $8546;
6365   GL_COMBINER_MUX_SUM_NV = $8547;
6366   GL_COMBINER_SCALE_NV = $8548;
6367   GL_COMBINER_BIAS_NV = $8549;
6368   GL_COMBINER_AB_OUTPUT_NV = $854A;
6369   GL_COMBINER_CD_OUTPUT_NV = $854B;
6370   GL_COMBINER_SUM_OUTPUT_NV = $854C;
6371   GL_MAX_GENERAL_COMBINERS_NV = $854D;
6372   GL_NUM_GENERAL_COMBINERS_NV = $854E;
6373   GL_COLOR_SUM_CLAMP_NV = $854F;
6374   GL_COMBINER0_NV = $8550;
6375   GL_COMBINER1_NV = $8551;
6376   GL_COMBINER2_NV = $8552;
6377   GL_COMBINER3_NV = $8553;
6378   GL_COMBINER4_NV = $8554;
6379   GL_COMBINER5_NV = $8555;
6380   GL_COMBINER6_NV = $8556;
6381   GL_COMBINER7_NV = $8557;
6382
6383   // GL_NV_register_combiners2
6384   GL_PER_STAGE_CONSTANTS_NV = $8535;
6385
6386   // GL_NV_texgen_emboss
6387   GL_EMBOSS_LIGHT_NV = $855D;
6388   GL_EMBOSS_CONSTANT_NV = $855E;
6389   GL_EMBOSS_MAP_NV = $855F;
6390
6391   // GL_NV_texgen_reflection
6392   GL_NORMAL_MAP_NV = $8511;
6393   GL_REFLECTION_MAP_NV = $8512;
6394
6395   // GL_NV_texture_env_combine4
6396   GL_COMBINE4_NV = $8503;
6397   GL_SOURCE3_RGB_NV = $8583;
6398   GL_SOURCE3_ALPHA_NV = $858B;
6399   GL_OPERAND3_RGB_NV = $8593;
6400   GL_OPERAND3_ALPHA_NV = $859B;
6401
6402   // GL_NV_texture_expand_normal
6403   GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = $888F;
6404
6405   // GL_NV_texture_rectangle
6406   GL_TEXTURE_RECTANGLE_NV = $84F5;
6407   GL_TEXTURE_BINDING_RECTANGLE_NV = $84F6;
6408   GL_PROXY_TEXTURE_RECTANGLE_NV = $84F7;
6409   GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = $84F8;
6410
6411   // GL_NV_texture_shader
6412   GL_OFFSET_TEXTURE_RECTANGLE_NV = $864C;
6413   GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = $864D;
6414   GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = $864E;
6415   GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = $86D9;
6416   GL_UNSIGNED_INT_S8_S8_8_8_NV = $86DA;
6417   GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = $86DB;
6418   GL_DSDT_MAG_INTENSITY_NV = $86DC;
6419   GL_SHADER_CONSISTENT_NV = $86DD;
6420   GL_TEXTURE_SHADER_NV = $86DE;
6421   GL_SHADER_OPERATION_NV = $86DF;
6422   GL_CULL_MODES_NV = $86E0;
6423   GL_OFFSET_TEXTURE_MATRIX_NV = $86E1;
6424   GL_OFFSET_TEXTURE_SCALE_NV = $86E2;
6425   GL_OFFSET_TEXTURE_BIAS_NV = $86E3;
6426   GL_OFFSET_TEXTURE_2D_MATRIX_NV = GL_OFFSET_TEXTURE_MATRIX_NV;
6427   GL_OFFSET_TEXTURE_2D_SCALE_NV = GL_OFFSET_TEXTURE_SCALE_NV;
6428   GL_OFFSET_TEXTURE_2D_BIAS_NV = GL_OFFSET_TEXTURE_BIAS_NV;
6429   GL_PREVIOUS_TEXTURE_INPUT_NV = $86E4;
6430   GL_CONST_EYE_NV = $86E5;
6431   GL_PASS_THROUGH_NV = $86E6;
6432   GL_CULL_FRAGMENT_NV = $86E7;
6433   GL_OFFSET_TEXTURE_2D_NV = $86E8;
6434   GL_DEPENDENT_AR_TEXTURE_2D_NV = $86E9;
6435   GL_DEPENDENT_GB_TEXTURE_2D_NV = $86EA;
6436   GL_DOT_PRODUCT_NV = $86EC;
6437   GL_DOT_PRODUCT_DEPTH_REPLACE_NV = $86ED;
6438   GL_DOT_PRODUCT_TEXTURE_2D_NV = $86EE;
6439   GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = $86F0;
6440   GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = $86F1;
6441   GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = $86F2;
6442   GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = $86F3;
6443   GL_HILO_NV = $86F4;
6444   GL_DSDT_NV = $86F5;
6445   GL_DSDT_MAG_NV = $86F6;
6446   GL_DSDT_MAG_VIB_NV = $86F7;
6447   GL_HILO16_NV = $86F8;
6448   GL_SIGNED_HILO_NV = $86F9;
6449   GL_SIGNED_HILO16_NV = $86FA;
6450   GL_SIGNED_RGBA_NV = $86FB;
6451   GL_SIGNED_RGBA8_NV = $86FC;
6452   GL_SIGNED_RGB_NV = $86FE;
6453   GL_SIGNED_RGB8_NV = $86FF;
6454   GL_SIGNED_LUMINANCE_NV = $8701;
6455   GL_SIGNED_LUMINANCE8_NV = $8702;
6456   GL_SIGNED_LUMINANCE_ALPHA_NV = $8703;
6457   GL_SIGNED_LUMINANCE8_ALPHA8_NV = $8704;
6458   GL_SIGNED_ALPHA_NV = $8705;
6459   GL_SIGNED_ALPHA8_NV = $8706;
6460   GL_SIGNED_INTENSITY_NV = $8707;
6461   GL_SIGNED_INTENSITY8_NV = $8708;
6462   GL_DSDT8_NV = $8709;
6463   GL_DSDT8_MAG8_NV = $870A;
6464   GL_DSDT8_MAG8_INTENSITY8_NV = $870B;
6465   GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = $870C;
6466   GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = $870D;
6467   GL_HI_SCALE_NV = $870E;
6468   GL_LO_SCALE_NV = $870F;
6469   GL_DS_SCALE_NV = $8710;
6470   GL_DT_SCALE_NV = $8711;
6471   GL_MAGNITUDE_SCALE_NV = $8712;
6472   GL_VIBRANCE_SCALE_NV = $8713;
6473   GL_HI_BIAS_NV = $8714;
6474   GL_LO_BIAS_NV = $8715;
6475   GL_DS_BIAS_NV = $8716;
6476   GL_DT_BIAS_NV = $8717;
6477   GL_MAGNITUDE_BIAS_NV = $8718;
6478   GL_VIBRANCE_BIAS_NV = $8719;
6479   GL_TEXTURE_BORDER_VALUES_NV = $871A;
6480   GL_TEXTURE_HI_SIZE_NV = $871B;
6481   GL_TEXTURE_LO_SIZE_NV = $871C;
6482   GL_TEXTURE_DS_SIZE_NV = $871D;
6483   GL_TEXTURE_DT_SIZE_NV = $871E;
6484   GL_TEXTURE_MAG_SIZE_NV = $871F;
6485
6486   // GL_NV_texture_shader2
6487   GL_DOT_PRODUCT_TEXTURE_3D_NV = $86EF;
6488
6489   // GL_NV_texture_shader3
6490   GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = $8850;
6491   GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = $8851;
6492   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8852;
6493   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = $8853;
6494   GL_OFFSET_HILO_TEXTURE_2D_NV = $8854;
6495   GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = $8855;
6496   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = $8856;
6497   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8857;
6498   GL_DEPENDENT_HILO_TEXTURE_2D_NV = $8858;
6499   GL_DEPENDENT_RGB_TEXTURE_3D_NV = $8859;
6500   GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = $885A;
6501   GL_DOT_PRODUCT_PASS_THROUGH_NV = $885B;
6502   GL_DOT_PRODUCT_TEXTURE_1D_NV = $885C;
6503   GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = $885D;
6504   GL_HILO8_NV = $885E;
6505   GL_SIGNED_HILO8_NV = $885F;
6506   GL_FORCE_BLUE_TO_ONE_NV = $8860;
6507
6508   // GL_NV_vertex_array_range
6509   GL_VERTEX_ARRAY_RANGE_NV = $851D;
6510   GL_VERTEX_ARRAY_RANGE_LENGTH_NV = $851E;
6511   GL_VERTEX_ARRAY_RANGE_VALID_NV = $851F;
6512   GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = $8520;
6513   GL_VERTEX_ARRAY_RANGE_POINTER_NV = $8521;
6514
6515   // GL_NV_vertex_array_range2
6516   GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = $8533;
6517
6518   // GL_NV_vertex_program
6519   GL_VERTEX_PROGRAM_NV = $8620;
6520   GL_VERTEX_STATE_PROGRAM_NV = $8621;
6521   GL_ATTRIB_ARRAY_SIZE_NV = $8623;
6522   GL_ATTRIB_ARRAY_STRIDE_NV = $8624;
6523   GL_ATTRIB_ARRAY_TYPE_NV = $8625;
6524   GL_CURRENT_ATTRIB_NV = $8626;
6525   GL_PROGRAM_LENGTH_NV = $8627;
6526   GL_PROGRAM_STRING_NV = $8628;
6527   GL_MODELVIEW_PROJECTION_NV = $8629;
6528   GL_IDENTITY_NV = $862A;
6529   GL_INVERSE_NV = $862B;
6530   GL_TRANSPOSE_NV = $862C;
6531   GL_INVERSE_TRANSPOSE_NV = $862D;
6532   GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = $862E;
6533   GL_MAX_TRACK_MATRICES_NV = $862F;
6534   GL_MATRIX0_NV = $8630;
6535   GL_MATRIX1_NV = $8631;
6536   GL_MATRIX2_NV = $8632;
6537   GL_MATRIX3_NV = $8633;
6538   GL_MATRIX4_NV = $8634;
6539   GL_MATRIX5_NV = $8635;
6540   GL_MATRIX6_NV = $8636;
6541   GL_MATRIX7_NV = $8637;
6542   GL_CURRENT_MATRIX_STACK_DEPTH_NV = $8640;
6543   GL_CURRENT_MATRIX_NV = $8641;
6544   GL_VERTEX_PROGRAM_POINT_SIZE_NV = $8642;
6545   GL_VERTEX_PROGRAM_TWO_SIDE_NV = $8643;
6546   GL_PROGRAM_PARAMETER_NV = $8644;
6547   GL_ATTRIB_ARRAY_POINTER_NV = $8645;
6548   GL_PROGRAM_TARGET_NV = $8646;
6549   GL_PROGRAM_RESIDENT_NV = $8647;
6550   GL_TRACK_MATRIX_NV = $8648;
6551   GL_TRACK_MATRIX_TRANSFORM_NV = $8649;
6552   GL_VERTEX_PROGRAM_BINDING_NV = $864A;
6553   GL_PROGRAM_ERROR_POSITION_NV = $864B;
6554   GL_VERTEX_ATTRIB_ARRAY0_NV = $8650;
6555   GL_VERTEX_ATTRIB_ARRAY1_NV = $8651;
6556   GL_VERTEX_ATTRIB_ARRAY2_NV = $8652;
6557   GL_VERTEX_ATTRIB_ARRAY3_NV = $8653;
6558   GL_VERTEX_ATTRIB_ARRAY4_NV = $8654;
6559   GL_VERTEX_ATTRIB_ARRAY5_NV = $8655;
6560   GL_VERTEX_ATTRIB_ARRAY6_NV = $8656;
6561   GL_VERTEX_ATTRIB_ARRAY7_NV = $8657;
6562   GL_VERTEX_ATTRIB_ARRAY8_NV = $8658;
6563   GL_VERTEX_ATTRIB_ARRAY9_NV = $8659;
6564   GL_VERTEX_ATTRIB_ARRAY10_NV = $865A;
6565   GL_VERTEX_ATTRIB_ARRAY11_NV = $865B;
6566   GL_VERTEX_ATTRIB_ARRAY12_NV = $865C;
6567   GL_VERTEX_ATTRIB_ARRAY13_NV = $865D;
6568   GL_VERTEX_ATTRIB_ARRAY14_NV = $865E;
6569   GL_VERTEX_ATTRIB_ARRAY15_NV = $865F;
6570   GL_MAP1_VERTEX_ATTRIB0_4_NV = $8660;
6571   GL_MAP1_VERTEX_ATTRIB1_4_NV = $8661;
6572   GL_MAP1_VERTEX_ATTRIB2_4_NV = $8662;
6573   GL_MAP1_VERTEX_ATTRIB3_4_NV = $8663;
6574   GL_MAP1_VERTEX_ATTRIB4_4_NV = $8664;
6575   GL_MAP1_VERTEX_ATTRIB5_4_NV = $8665;
6576   GL_MAP1_VERTEX_ATTRIB6_4_NV = $8666;
6577   GL_MAP1_VERTEX_ATTRIB7_4_NV = $8667;
6578   GL_MAP1_VERTEX_ATTRIB8_4_NV = $8668;
6579   GL_MAP1_VERTEX_ATTRIB9_4_NV = $8669;
6580   GL_MAP1_VERTEX_ATTRIB10_4_NV = $866A;
6581   GL_MAP1_VERTEX_ATTRIB11_4_NV = $866B;
6582   GL_MAP1_VERTEX_ATTRIB12_4_NV = $866C;
6583   GL_MAP1_VERTEX_ATTRIB13_4_NV = $866D;
6584   GL_MAP1_VERTEX_ATTRIB14_4_NV = $866E;
6585   GL_MAP1_VERTEX_ATTRIB15_4_NV = $866F;
6586   GL_MAP2_VERTEX_ATTRIB0_4_NV = $8670;
6587   GL_MAP2_VERTEX_ATTRIB1_4_NV = $8671;
6588   GL_MAP2_VERTEX_ATTRIB2_4_NV = $8672;
6589   GL_MAP2_VERTEX_ATTRIB3_4_NV = $8673;
6590   GL_MAP2_VERTEX_ATTRIB4_4_NV = $8674;
6591   GL_MAP2_VERTEX_ATTRIB5_4_NV = $8675;
6592   GL_MAP2_VERTEX_ATTRIB6_4_NV = $8676;
6593   GL_MAP2_VERTEX_ATTRIB7_4_NV = $8677;
6594   GL_MAP2_VERTEX_ATTRIB8_4_NV = $8678;
6595   GL_MAP2_VERTEX_ATTRIB9_4_NV = $8679;
6596   GL_MAP2_VERTEX_ATTRIB10_4_NV = $867A;
6597   GL_MAP2_VERTEX_ATTRIB11_4_NV = $867B;
6598   GL_MAP2_VERTEX_ATTRIB12_4_NV = $867C;
6599   GL_MAP2_VERTEX_ATTRIB13_4_NV = $867D;
6600   GL_MAP2_VERTEX_ATTRIB14_4_NV = $867E;
6601   GL_MAP2_VERTEX_ATTRIB15_4_NV = $867F;
6602
6603   // GL_NV_fragment_program2 and GL_NV_vertex_program2_option
6604   GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = $88F4;
6605   GL_MAX_PROGRAM_CALL_DEPTH_NV = $88F5;
6606
6607   // GL_NV_fragment_program2
6608   GL_MAX_PROGRAM_IF_DEPTH_NV = $88F6;
6609   GL_MAX_PROGRAM_LOOP_DEPTH_NV = $88F7;
6610   GL_MAX_PROGRAM_LOOP_COUNT_NV = $88F8;
6611
6612   // GL_NV_vertex_program3
6613   MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
6614
6615   // GL_NV_depth_buffer_float
6616   GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = $8DAD;
6617   GL_DEPTH_BUFFER_FLOAT_MODE_NV = $8DAF;
6618
6619   // GL_NV_framebuffer_multisample_coverage
6620   GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = $8CAB;
6621   GL_RENDERBUFFER_COLOR_SAMPLES_NV = $8E10;
6622
6623   // GL_NV_geometry_program4
6624   GL_GEOMETRY_PROGRAM_NV = $8C26;
6625   GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = $8C27;
6626   GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = $8C28;
6627
6628   // GL_NV_gpu_program4
6629   GL_PROGRAM_ATTRIB_COMPONENTS_NV = $8906;
6630   GL_PROGRAM_RESULT_COMPONENTS_NV = $8907;
6631   GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = $8908;
6632   GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = $8909;
6633   GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = $8DA5;
6634   GL_MAX_PROGRAM_GENERIC_RESULTS_NV = $8DA6;
6635
6636   // GL_NV_parameter_buffer_object
6637   GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = $8DA0;
6638   GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = $8DA1;
6639   GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = $8DA2;
6640   GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = $8DA3;
6641   GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = $8DA4;
6642
6643   // GL_NV_transform_feedback
6644   GL_TRANSFORM_FEEDBACK_BUFFER_NV = $8C8E;
6645   GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = $8C84;
6646   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = $8C85;
6647   GL_TRANSFORM_FEEDBACK_RECORD_NV = $8C86;
6648   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = $8C8F;
6649   GL_INTERLEAVED_ATTRIBS_NV = $8C8C;
6650   GL_SEPARATE_ATTRIBS_NV = $8C8D;
6651   GL_PRIMITIVES_GENERATED_NV = $8C87;
6652   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = $8C88;
6653   GL_RASTERIZER_DISCARD_NV = $8C89;
6654   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = $8C8A;
6655   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = $8C8B;
6656   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = $8C80;
6657   GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = $8C7E;
6658   GL_ACTIVE_VARYINGS_NV = $8C81;
6659   GL_ACTIVE_VARYING_MAX_LENGTH_NV = $8C82;
6660   GL_TRANSFORM_FEEDBACK_VARYINGS_NV = $8C83;
6661   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = $8C7F;
6662   GL_BACK_PRIMARY_COLOR_NV = $8C77;
6663   GL_BACK_SECONDARY_COLOR_NV = $8C78;
6664   GL_TEXTURE_COORD_NV = $8C79;
6665   GL_CLIP_DISTANCE_NV = $8C7A;
6666   GL_VERTEX_ID_NV = $8C7B;
6667   GL_PRIMITIVE_ID_NV = $8C7C;
6668   GL_GENERIC_ATTRIB_NV = $8C7D;
6669   GL_LAYER_NV = $8DAA;
6670   GL_NEXT_BUFFER_NV = -2;
6671   GL_SKIP_COMPONENTS4_NV = -3;
6672   GL_SKIP_COMPONENTS3_NV = -4;
6673   GL_SKIP_COMPONENTS2_NV = -5;
6674   GL_SKIP_COMPONENTS1_NV = -6;
6675
6676   // GL_NV_conditional_render
6677   GL_QUERY_WAIT_NV = $8E13;
6678   GL_QUERY_NO_WAIT_NV = $8E14;
6679   GL_QUERY_BY_REGION_WAIT_NV = $8E15;
6680   GL_QUERY_BY_REGION_NO_WAIT_NV = $8E16;
6681
6682   // GL_NV_present_video
6683   GL_FRAME_NV = $8E26;
6684   GL_FIELDS_NV = $8E27;
6685   GL_CURRENT_TIME_NV = $8E28;
6686   GL_NUM_FILL_STREAMS_NV = $8E29;
6687   GL_PRESENT_TIME_NV = $8E2A;
6688   GL_PRESENT_DURATION_NV = $8E2B;
6689
6690   // GL_NV_explicit_multisample
6691   GL_SAMPLE_POSITION_NV = $8E50;
6692   GL_SAMPLE_MASK_NV = $8E51;
6693   GL_SAMPLE_MASK_VALUE_NV = $8E52;
6694   GL_TEXTURE_BINDING_RENDERBUFFER_NV = $8E53;
6695   GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = $8E54;
6696   GL_TEXTURE_RENDERBUFFER_NV = $8E55;
6697   GL_SAMPLER_RENDERBUFFER_NV = $8E56;
6698   GL_INT_SAMPLER_RENDERBUFFER_NV = $8E57;
6699   GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = $8E58;
6700   GL_MAX_SAMPLE_MASK_WORDS_NV = $8E59;
6701
6702   // GL_NV_transform_feedback2
6703   GL_TRANSFORM_FEEDBACK_NV = $8E22;
6704   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = $8E23;
6705   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = $8E24;
6706   GL_TRANSFORM_FEEDBACK_BINDING_NV = $8E25;
6707   
6708   // GL_NV_video_capture
6709   GL_VIDEO_BUFFER_NV = $9020;
6710   GL_VIDEO_BUFFER_BINDING_NV = $9021;
6711   GL_FIELD_UPPER_NV = $9022;
6712   GL_FIELD_LOWER_NV = $9023;
6713   GL_NUM_VIDEO_CAPTURE_STREAMS_NV = $9024;
6714   GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = $9025;
6715   GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = $9026;
6716   GL_LAST_VIDEO_CAPTURE_STATUS_NV = $9027;
6717   GL_VIDEO_BUFFER_PITCH_NV = $9028;
6718   GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = $9029;
6719   GL_VIDEO_COLOR_CONVERSION_MAX_NV = $902A;
6720   GL_VIDEO_COLOR_CONVERSION_MIN_NV = $902B;
6721   GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = $902C;
6722   GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = $902D;
6723   GL_PARTIAL_SUCCESS_NV = $902E;
6724   GL_SUCCESS_NV = $902F;
6725   GL_FAILURE_NV = $9030;
6726   GL_YCBYCR8_422_NV = $9031;
6727   GL_YCBAYCR8A_4224_NV = $9032;
6728   GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = $9033;
6729   GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = $9034;
6730   GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = $9035;
6731   GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = $9036;
6732   GL_Z4Y12Z4CB12Z4CR12_444_NV = $9037;
6733   GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = $9038;
6734   GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = $9039;
6735   GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = $903A;
6736   GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = $903B;
6737   GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = $903C;
6738   
6739   // GL_NV_shader_buffer_load
6740   GL_BUFFER_GPU_ADDRESS_NV = $8F1D;
6741   GL_GPU_ADDRESS_NV = $8F34;
6742   GL_MAX_SHADER_BUFFER_ADDRESS_NV = $8F35;
6743
6744   // GL_NV_vertex_buffer_unified_memory
6745   GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = $8F1E;
6746   GL_ELEMENT_ARRAY_UNIFIED_NV = $8F1F;
6747   GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = $8F20;
6748   GL_VERTEX_ARRAY_ADDRESS_NV = $8F21;
6749   GL_NORMAL_ARRAY_ADDRESS_NV = $8F22;
6750   GL_COLOR_ARRAY_ADDRESS_NV = $8F23;
6751   GL_INDEX_ARRAY_ADDRESS_NV = $8F24;
6752   GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = $8F25;
6753   GL_EDGE_FLAG_ARRAY_ADDRESS_NV = $8F26;
6754   GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = $8F27;
6755   GL_FOG_COORD_ARRAY_ADDRESS_NV = $8F28;
6756   GL_ELEMENT_ARRAY_ADDRESS_NV = $8F29;
6757   GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = $8F2A;
6758   GL_VERTEX_ARRAY_LENGTH_NV = $8F2B;
6759   GL_NORMAL_ARRAY_LENGTH_NV = $8F2C;
6760   GL_COLOR_ARRAY_LENGTH_NV = $8F2D;
6761   GL_INDEX_ARRAY_LENGTH_NV = $8F2E;
6762   GL_TEXTURE_COORD_ARRAY_LENGTH_NV = $8F2F;
6763   GL_EDGE_FLAG_ARRAY_LENGTH_NV = $8F30;
6764   GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = $8F31;
6765   GL_FOG_COORD_ARRAY_LENGTH_NV = $8F32;
6766   GL_ELEMENT_ARRAY_LENGTH_NV = $8F33;
6767   GL_DRAW_INDIRECT_UNIFIED_NV = $8F40;
6768   GL_DRAW_INDIRECT_ADDRESS_NV = $8F41;
6769   GL_DRAW_INDIRECT_LENGTH_NV = $8F42;
6770
6771   // GL_NV_gpu_program5
6772   GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = $8E5A;
6773   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5B;
6774   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5C;
6775   GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = $8E5D;
6776   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5E;
6777   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5F;
6778   GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = $8F44;
6779   GL_MAX_PROGRAM_SUBROUTINE_NUM_NV = $8F45;
6780
6781   // GL_NV_gpu_shader5
6782   GL_INT64_NV = $140E;
6783   GL_UNSIGNED_INT64_NV = $140F;
6784   GL_INT8_NV = $8FE0;
6785   GL_INT8_VEC2_NV = $8FE1;
6786   GL_INT8_VEC3_NV = $8FE2;
6787   GL_INT8_VEC4_NV = $8FE3;
6788   GL_INT16_NV = $8FE4;
6789   GL_INT16_VEC2_NV = $8FE5;
6790   GL_INT16_VEC3_NV = $8FE6;
6791   GL_INT16_VEC4_NV = $8FE7;
6792   GL_INT64_VEC2_NV = $8FE9;
6793   GL_INT64_VEC3_NV = $8FEA;
6794   GL_INT64_VEC4_NV = $8FEB;
6795   GL_UNSIGNED_INT8_NV = $8FEC;
6796   GL_UNSIGNED_INT8_VEC2_NV = $8FED;
6797   GL_UNSIGNED_INT8_VEC3_NV = $8FEE;
6798   GL_UNSIGNED_INT8_VEC4_NV = $8FEF;
6799   GL_UNSIGNED_INT16_NV = $8FF0;
6800   GL_UNSIGNED_INT16_VEC2_NV = $8FF1;
6801   GL_UNSIGNED_INT16_VEC3_NV = $8FF2;
6802   GL_UNSIGNED_INT16_VEC4_NV = $8FF3;
6803   GL_UNSIGNED_INT64_VEC2_NV = $8FF5;
6804   GL_UNSIGNED_INT64_VEC3_NV = $8FF6;
6805   GL_UNSIGNED_INT64_VEC4_NV = $8FF7;
6806   GL_FLOAT16_NV = $8FF8;
6807   GL_FLOAT16_VEC2_NV = $8FF9;
6808   GL_FLOAT16_VEC3_NV = $8FFA;
6809   GL_FLOAT16_VEC4_NV = $8FFB;
6810   { reuse GL_PATCHES }
6811
6812   // GL_NV_shader_buffer_store
6813   GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = $00000010;
6814   { reuse GL_READ_WRITE }
6815   { reuse GL_WRITE_ONLY }
6816
6817   // GL_NV_tessellation_program5
6818   GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = $86D8;
6819   GL_TESS_CONTROL_PROGRAM_NV = $891E;
6820   GL_TESS_EVALUATION_PROGRAM_NV = $891F;
6821   GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = $8C74;
6822   GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = $8C75;
6823
6824   // GL_NV_vertex_attrib_integer_64bit
6825   { reuse GL_INT64_NV }
6826   { reuse GL_UNSIGNED_INT64_NV }
6827
6828   // GL_NV_multisample_coverage
6829   GL_COVERAGE_SAMPLES_NV = $80A9;
6830   GL_COLOR_SAMPLES_NV = $8E20;
6831
6832   // GL_NV_vdpau_interop
6833   GL_SURFACE_STATE_NV = $86EB;
6834   GL_SURFACE_REGISTERED_NV = $86FD;
6835   GL_SURFACE_MAPPED_NV = $8700;
6836   GL_WRITE_DISCARD_NV = $88BE;
6837
6838   // GL_OML_interlace
6839   GL_INTERLACE_OML = $8980;
6840   GL_INTERLACE_READ_OML = $8981;
6841
6842   // GL_OML_resample
6843   GL_PACK_RESAMPLE_OML = $8984;
6844   GL_UNPACK_RESAMPLE_OML = $8985;
6845   GL_RESAMPLE_REPLICATE_OML = $8986;
6846   GL_RESAMPLE_ZERO_FILL_OML = $8987;
6847   GL_RESAMPLE_AVERAGE_OML = $8988;
6848   GL_RESAMPLE_DECIMATE_OML = $8989;
6849
6850   // GL_OML_subsample
6851   GL_FORMAT_SUBSAMPLE_24_24_OML = $8982;
6852   GL_FORMAT_SUBSAMPLE_244_244_OML = $8983;
6853
6854   // GL_PGI_misc_hints
6855   GL_PREFER_DOUBLEBUFFER_HINT_PGI = $1A1F8;
6856   GL_CONSERVE_MEMORY_HINT_PGI = $1A1FD;
6857   GL_RECLAIM_MEMORY_HINT_PGI = $1A1FE;
6858   GL_NATIVE_GRAPHICS_HANDLE_PGI = $1A202;
6859   GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = $1A203;
6860   GL_NATIVE_GRAPHICS_END_HINT_PGI = $1A204;
6861   GL_ALWAYS_FAST_HINT_PGI = $1A20C;
6862   GL_ALWAYS_SOFT_HINT_PGI = $1A20D;
6863   GL_ALLOW_DRAW_OBJ_HINT_PGI = $1A20E;
6864   GL_ALLOW_DRAW_WIN_HINT_PGI = $1A20F;
6865   GL_ALLOW_DRAW_FRG_HINT_PGI = $1A210;
6866   GL_ALLOW_DRAW_MEM_HINT_PGI = $1A211;
6867   GL_STRICT_DEPTHFUNC_HINT_PGI = $1A216;
6868   GL_STRICT_LIGHTING_HINT_PGI = $1A217;
6869   GL_STRICT_SCISSOR_HINT_PGI = $1A218;
6870   GL_FULL_STIPPLE_HINT_PGI = $1A219;
6871   GL_CLIP_NEAR_HINT_PGI = $1A220;
6872   GL_CLIP_FAR_HINT_PGI = $1A221;
6873   GL_WIDE_LINE_HINT_PGI = $1A222;
6874   GL_BACK_NORMALS_HINT_PGI = $1A223;
6875
6876   // GL_PGI_vertex_hints
6877   GL_VERTEX_DATA_HINT_PGI = $1A22A;
6878   GL_VERTEX_CONSISTENT_HINT_PGI = $1A22B;
6879   GL_MATERIAL_SIDE_HINT_PGI = $1A22C;
6880   GL_MAX_VERTEX_HINT_PGI = $1A22D;
6881   GL_COLOR3_BIT_PGI = $00010000;
6882   GL_COLOR4_BIT_PGI = $00020000;
6883   GL_EDGEFLAG_BIT_PGI = $00040000;
6884   GL_INDEX_BIT_PGI = $00080000;
6885   GL_MAT_AMBIENT_BIT_PGI = $00100000;
6886   GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = $00200000;
6887   GL_MAT_DIFFUSE_BIT_PGI = $00400000;
6888   GL_MAT_EMISSION_BIT_PGI = $00800000;
6889   GL_MAT_COLOR_INDEXES_BIT_PGI = $01000000;
6890   GL_MAT_SHININESS_BIT_PGI = $02000000;
6891   GL_MAT_SPECULAR_BIT_PGI = $04000000;
6892   GL_NORMAL_BIT_PGI = $08000000;
6893   GL_TEXCOORD1_BIT_PGI = $10000000;
6894   GL_TEXCOORD2_BIT_PGI = $20000000;
6895   GL_TEXCOORD3_BIT_PGI = $40000000;
6896   GL_TEXCOORD4_BIT_PGI = $80000000;
6897   GL_VERTEX23_BIT_PGI = $00000004;
6898   GL_VERTEX4_BIT_PGI = $00000008;
6899
6900   // GL_REND_screen_coordinates
6901   GL_SCREEN_COORDINATES_REND = $8490;
6902   GL_INVERTED_SCREEN_W_REND = $8491;
6903
6904   // GL_S3_s3tc
6905   GL_RGB_S3TC = $83A0;
6906   GL_RGB4_S3TC = $83A1;
6907   GL_RGBA_S3TC = $83A2;
6908   GL_RGBA4_S3TC = $83A3;
6909
6910   // GL_SGIS_detail_texture
6911   GL_DETAIL_TEXTURE_2D_SGIS = $8095;
6912   GL_DETAIL_TEXTURE_2D_BINDING_SGIS = $8096;
6913   GL_LINEAR_DETAIL_SGIS = $8097;
6914   GL_LINEAR_DETAIL_ALPHA_SGIS = $8098;
6915   GL_LINEAR_DETAIL_COLOR_SGIS = $8099;
6916   GL_DETAIL_TEXTURE_LEVEL_SGIS = $809A;
6917   GL_DETAIL_TEXTURE_MODE_SGIS = $809B;
6918   GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = $809C;
6919
6920   // GL_SGIS_fog_function
6921   GL_FOG_FUNC_SGIS = $812A;
6922   GL_FOG_FUNC_POINTS_SGIS = $812B;
6923   GL_MAX_FOG_FUNC_POINTS_SGIS = $812C;
6924
6925   // GL_SGIS_generate_mipmap
6926   GL_GENERATE_MIPMAP_SGIS = $8191;
6927   GL_GENERATE_MIPMAP_HINT_SGIS = $8192;
6928
6929   // GL_SGIS_multisample
6930   GL_MULTISAMPLE_SGIS = $809D;
6931   GL_SAMPLE_ALPHA_TO_MASK_SGIS = $809E;
6932   GL_SAMPLE_ALPHA_TO_ONE_SGIS = $809F;
6933   GL_SAMPLE_MASK_SGIS = $80A0;
6934   GL_1PASS_SGIS = $80A1;
6935   GL_2PASS_0_SGIS = $80A2;
6936   GL_2PASS_1_SGIS = $80A3;
6937   GL_4PASS_0_SGIS = $80A4;
6938   GL_4PASS_1_SGIS = $80A5;
6939   GL_4PASS_2_SGIS = $80A6;
6940   GL_4PASS_3_SGIS = $80A7;
6941   GL_SAMPLE_BUFFERS_SGIS = $80A8;
6942   GL_SAMPLES_SGIS = $80A9;
6943   GL_SAMPLE_MASK_VALUE_SGIS = $80AA;
6944   GL_SAMPLE_MASK_INVERT_SGIS = $80AB;
6945   GL_SAMPLE_PATTERN_SGIS = $80AC;
6946
6947   // GL_SGIS_pixel_texture
6948   GL_PIXEL_TEXTURE_SGIS = $8353;
6949   GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = $8354;
6950   GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = $8355;
6951   GL_PIXEL_GROUP_COLOR_SGIS = $8356;
6952
6953   // GL_SGIS_point_line_texgen
6954   GL_EYE_DISTANCE_TO_POINT_SGIS = $81F0;
6955   GL_OBJECT_DISTANCE_TO_POINT_SGIS = $81F1;
6956   GL_EYE_DISTANCE_TO_LINE_SGIS = $81F2;
6957   GL_OBJECT_DISTANCE_TO_LINE_SGIS = $81F3;
6958   GL_EYE_POINT_SGIS = $81F4;
6959   GL_OBJECT_POINT_SGIS = $81F5;
6960   GL_EYE_LINE_SGIS = $81F6;
6961   GL_OBJECT_LINE_SGIS = $81F7;
6962
6963   // GL_SGIS_point_parameters
6964   GL_POINT_SIZE_MIN_SGIS = $8126;
6965   GL_POINT_SIZE_MAX_SGIS = $8127;
6966   GL_POINT_FADE_THRESHOLD_SIZE_SGIS = $8128;
6967   GL_DISTANCE_ATTENUATION_SGIS = $8129;
6968
6969   // GL_SGIS_sharpen_texture
6970   GL_LINEAR_SHARPEN_SGIS = $80AD;
6971   GL_LINEAR_SHARPEN_ALPHA_SGIS = $80AE;
6972   GL_LINEAR_SHARPEN_COLOR_SGIS = $80AF;
6973   GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = $80B0;
6974
6975   // GL_SGIS_texture4D
6976   GL_PACK_SKIP_VOLUMES_SGIS = $8130;
6977   GL_PACK_IMAGE_DEPTH_SGIS = $8131;
6978   GL_UNPACK_SKIP_VOLUMES_SGIS = $8132;
6979   GL_UNPACK_IMAGE_DEPTH_SGIS = $8133;
6980   GL_TEXTURE_4D_SGIS = $8134;
6981   GL_PROXY_TEXTURE_4D_SGIS = $8135;
6982   GL_TEXTURE_4DSIZE_SGIS = $8136;
6983   GL_TEXTURE_WRAP_Q_SGIS = $8137;
6984   GL_MAX_4D_TEXTURE_SIZE_SGIS = $8138;
6985   GL_TEXTURE_4D_BINDING_SGIS = $814F;
6986
6987   // GL_SGIS_texture_color_mask
6988   GL_TEXTURE_COLOR_WRITEMASK_SGIS = $81EF;
6989
6990   // GL_SGIS_texture_edge_clamp
6991   GL_CLAMP_TO_EDGE_SGIS = $812F;
6992
6993   // GL_SGIS_texture_filter4
6994   GL_FILTER4_SGIS = $8146;
6995   GL_TEXTURE_FILTER4_SIZE_SGIS = $8147;
6996
6997   // GL_SGIS_texture_lod
6998   GL_TEXTURE_MIN_LOD_SGIS = $813A;
6999   GL_TEXTURE_MAX_LOD_SGIS = $813B;
7000   GL_TEXTURE_BASE_LEVEL_SGIS = $813C;
7001   GL_TEXTURE_MAX_LEVEL_SGIS = $813D;
7002
7003   // GL_SGIS_texture_select
7004   GL_DUAL_ALPHA4_SGIS = $8110;
7005   GL_DUAL_ALPHA8_SGIS = $8111;
7006   GL_DUAL_ALPHA12_SGIS = $8112;
7007   GL_DUAL_ALPHA16_SGIS = $8113;
7008   GL_DUAL_LUMINANCE4_SGIS = $8114;
7009   GL_DUAL_LUMINANCE8_SGIS = $8115;
7010   GL_DUAL_LUMINANCE12_SGIS = $8116;
7011   GL_DUAL_LUMINANCE16_SGIS = $8117;
7012   GL_DUAL_INTENSITY4_SGIS = $8118;
7013   GL_DUAL_INTENSITY8_SGIS = $8119;
7014   GL_DUAL_INTENSITY12_SGIS = $811A;
7015   GL_DUAL_INTENSITY16_SGIS = $811B;
7016   GL_DUAL_LUMINANCE_ALPHA4_SGIS = $811C;
7017   GL_DUAL_LUMINANCE_ALPHA8_SGIS = $811D;
7018   GL_QUAD_ALPHA4_SGIS = $811E;
7019   GL_QUAD_ALPHA8_SGIS = $811F;
7020   GL_QUAD_LUMINANCE4_SGIS = $8120;
7021   GL_QUAD_LUMINANCE8_SGIS = $8121;
7022   GL_QUAD_INTENSITY4_SGIS = $8122;
7023   GL_QUAD_INTENSITY8_SGIS = $8123;
7024   GL_DUAL_TEXTURE_SELECT_SGIS = $8124;
7025   GL_QUAD_TEXTURE_SELECT_SGIS = $8125;
7026
7027   // GL_SGIX_async
7028   GL_ASYNC_MARKER_SGIX = $8329;
7029
7030   // GL_SGIX_async_histogram
7031   GL_ASYNC_HISTOGRAM_SGIX = $832C;
7032   GL_MAX_ASYNC_HISTOGRAM_SGIX = $832D;
7033
7034   // GL_SGIX_async_pixel
7035   GL_ASYNC_TEX_IMAGE_SGIX = $835C;
7036   GL_ASYNC_DRAW_PIXELS_SGIX = $835D;
7037   GL_ASYNC_READ_PIXELS_SGIX = $835E;
7038   GL_MAX_ASYNC_TEX_IMAGE_SGIX = $835F;
7039   GL_MAX_ASYNC_DRAW_PIXELS_SGIX = $8360;
7040   GL_MAX_ASYNC_READ_PIXELS_SGIX = $8361;
7041
7042   // GL_SGIX_blend_alpha_minmax
7043   GL_ALPHA_MIN_SGIX = $8320;
7044   GL_ALPHA_MAX_SGIX = $8321;
7045
7046   // GL_SGIX_calligraphic_fragment
7047   GL_CALLIGRAPHIC_FRAGMENT_SGIX = $8183;
7048
7049   // GL_SGIX_clipmap
7050   GL_LINEAR_CLIPMAP_LINEAR_SGIX = $8170;
7051   GL_TEXTURE_CLIPMAP_CENTER_SGIX = $8171;
7052   GL_TEXTURE_CLIPMAP_FRAME_SGIX = $8172;
7053   GL_TEXTURE_CLIPMAP_OFFSET_SGIX = $8173;
7054   GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8174;
7055   GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = $8175;
7056   GL_TEXTURE_CLIPMAP_DEPTH_SGIX = $8176;
7057   GL_MAX_CLIPMAP_DEPTH_SGIX = $8177;
7058   GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8178;
7059   GL_NEAREST_CLIPMAP_NEAREST_SGIX = $844D;
7060   GL_NEAREST_CLIPMAP_LINEAR_SGIX = $844E;
7061   GL_LINEAR_CLIPMAP_NEAREST_SGIX = $844F;
7062
7063   // GL_SGIX_convolution_accuracy
7064   GL_CONVOLUTION_HINT_SGIX = $8316;
7065
7066   // GL_SGIX_depth_texture
7067   GL_DEPTH_COMPONENT16_SGIX = $81A5;
7068   GL_DEPTH_COMPONENT24_SGIX = $81A6;
7069   GL_DEPTH_COMPONENT32_SGIX = $81A7;
7070
7071   // GL_SGIX_fog_offset
7072   GL_FOG_OFFSET_SGIX = $8198;
7073   GL_FOG_OFFSET_VALUE_SGIX = $8199;
7074
7075   // GL_SGIX_fog_scale
7076   GL_FOG_SCALE_SGIX = $81FC;
7077   GL_FOG_SCALE_VALUE_SGIX = $81FD;
7078
7079   // GL_SGIX_fragment_lighting
7080   GL_FRAGMENT_LIGHTING_SGIX = $8400;
7081   GL_FRAGMENT_COLOR_MATERIAL_SGIX = $8401;
7082   GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = $8402;
7083   GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = $8403;
7084   GL_MAX_FRAGMENT_LIGHTS_SGIX = $8404;
7085   GL_MAX_ACTIVE_LIGHTS_SGIX = $8405;
7086   GL_CURRENT_RASTER_NORMAL_SGIX = $8406;
7087   GL_LIGHT_ENV_MODE_SGIX = $8407;
7088   GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = $8408;
7089   GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = $8409;
7090   GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = $840A;
7091   GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = $840B;
7092   GL_FRAGMENT_LIGHT0_SGIX = $840C;
7093   GL_FRAGMENT_LIGHT1_SGIX = $840D;
7094   GL_FRAGMENT_LIGHT2_SGIX = $840E;
7095   GL_FRAGMENT_LIGHT3_SGIX = $840F;
7096   GL_FRAGMENT_LIGHT4_SGIX = $8410;
7097   GL_FRAGMENT_LIGHT5_SGIX = $8411;
7098   GL_FRAGMENT_LIGHT6_SGIX = $8412;
7099   GL_FRAGMENT_LIGHT7_SGIX = $8413;
7100
7101   // GL_SGIX_framezoom
7102   GL_FRAMEZOOM_SGIX = $818B;
7103   GL_FRAMEZOOM_FACTOR_SGIX = $818C;
7104   GL_MAX_FRAMEZOOM_FACTOR_SGIX = $818D;
7105
7106   // GL_SGIX_impact_pixel_texture
7107   GL_PIXEL_TEX_GEN_Q_CEILING_SGIX = $8184;
7108   GL_PIXEL_TEX_GEN_Q_ROUND_SGIX = $8185;
7109   GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX = $8186;
7110   GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = $8187;
7111   GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = $8188;
7112   GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX = $8189;
7113   GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX = $818A;
7114
7115   // GL_SGIX_instruments
7116   GL_INSTRUMENT_BUFFER_POINTER_SGIX = $8180;
7117   GL_INSTRUMENT_MEASUREMENTS_SGIX = $8181;
7118
7119   // GL_SGIX_interlace
7120   GL_INTERLACE_SGIX = $8094;
7121
7122   // GL_SGIX_ir_instrument1
7123   GL_IR_INSTRUMENT1_SGIX = $817F;
7124
7125   // GL_SGIX_list_priority
7126   GL_LIST_PRIORITY_SGIX = $8182;
7127
7128   // GL_SGIX_pixel_texture
7129   GL_PIXEL_TEX_GEN_SGIX = $8139;
7130   GL_PIXEL_TEX_GEN_MODE_SGIX = $832B;
7131
7132   // GL_SGIX_pixel_tiles
7133   GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = $813E;
7134   GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = $813F;
7135   GL_PIXEL_TILE_WIDTH_SGIX = $8140;
7136   GL_PIXEL_TILE_HEIGHT_SGIX = $8141;
7137   GL_PIXEL_TILE_GRID_WIDTH_SGIX = $8142;
7138   GL_PIXEL_TILE_GRID_HEIGHT_SGIX = $8143;
7139   GL_PIXEL_TILE_GRID_DEPTH_SGIX = $8144;
7140   GL_PIXEL_TILE_CACHE_SIZE_SGIX = $8145;
7141
7142   // GL_SGIX_polynomial_ffd
7143   GL_GEOMETRY_DEFORMATION_SGIX = $8194;
7144   GL_TEXTURE_DEFORMATION_SGIX = $8195;
7145   GL_DEFORMATIONS_MASK_SGIX = $8196;
7146   GL_MAX_DEFORMATION_ORDER_SGIX = $8197;
7147
7148   // GL_SGIX_reference_plane
7149   GL_REFERENCE_PLANE_SGIX = $817D;
7150   GL_REFERENCE_PLANE_EQUATION_SGIX = $817E;
7151
7152   // GL_SGIX_resample
7153   GL_PACK_RESAMPLE_SGIX = $842C;
7154   GL_UNPACK_RESAMPLE_SGIX = $842D;
7155   GL_RESAMPLE_REPLICATE_SGIX = $842E;
7156   GL_RESAMPLE_ZERO_FILL_SGIX = $842F;
7157   GL_RESAMPLE_DECIMATE_SGIX = $8430;
7158
7159   // GL_SGIX_scalebias_hint
7160   GL_SCALEBIAS_HINT_SGIX = $8322;
7161
7162   // GL_SGIX_shadow
7163   GL_TEXTURE_COMPARE_SGIX = $819A;
7164   GL_TEXTURE_COMPARE_OPERATOR_SGIX = $819B;
7165   GL_TEXTURE_LEQUAL_R_SGIX = $819C;
7166   GL_TEXTURE_GEQUAL_R_SGIX = $819D;
7167
7168   // GL_SGIX_shadow_ambient
7169   GL_SHADOW_AMBIENT_SGIX = $80BF;
7170
7171   // GL_SGIX_sprite
7172   GL_SPRITE_SGIX = $8148;
7173   GL_SPRITE_MODE_SGIX = $8149;
7174   GL_SPRITE_AXIS_SGIX = $814A;
7175   GL_SPRITE_TRANSLATION_SGIX = $814B;
7176   GL_SPRITE_AXIAL_SGIX = $814C;
7177   GL_SPRITE_OBJECT_ALIGNED_SGIX = $814D;
7178   GL_SPRITE_EYE_ALIGNED_SGIX = $814E;
7179
7180   // GL_SGIX_subsample
7181   GL_PACK_SUBSAMPLE_RATE_SGIX = $85A0;
7182   GL_UNPACK_SUBSAMPLE_RATE_SGIX = $85A1;
7183   GL_PIXEL_SUBSAMPLE_4444_SGIX = $85A2;
7184   GL_PIXEL_SUBSAMPLE_2424_SGIX = $85A3;
7185   GL_PIXEL_SUBSAMPLE_4242_SGIX = $85A4;
7186
7187   // GL_SGIX_texture_add_env
7188   GL_TEXTURE_ENV_BIAS_SGIX = $80BE;
7189
7190   // GL_SGIX_texture_coordinate_clamp
7191   GL_TEXTURE_MAX_CLAMP_S_SGIX = $8369;
7192   GL_TEXTURE_MAX_CLAMP_T_SGIX = $836A;
7193   GL_TEXTURE_MAX_CLAMP_R_SGIX = $836B;
7194
7195   // GL_SGIX_texture_lod_bias
7196   GL_TEXTURE_LOD_BIAS_S_SGIX = $818E;
7197   GL_TEXTURE_LOD_BIAS_T_SGIX = $818F;
7198   GL_TEXTURE_LOD_BIAS_R_SGIX = $8190;
7199
7200   // GL_SGIX_texture_multi_buffer
7201   GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = $812E;
7202
7203   // GL_SGIX_texture_scale_bias
7204   GL_POST_TEXTURE_FILTER_BIAS_SGIX = $8179;
7205   GL_POST_TEXTURE_FILTER_SCALE_SGIX = $817A;
7206   GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = $817B;
7207   GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = $817C;
7208
7209   // GL_SGIX_vertex_preclip
7210   GL_VERTEX_PRECLIP_SGIX = $83EE;
7211   GL_VERTEX_PRECLIP_HINT_SGIX = $83EF;
7212
7213   // GL_SGIX_ycrcb
7214   GL_YCRCB_422_SGIX = $81BB;
7215   GL_YCRCB_444_SGIX = $81BC;
7216
7217   // GL_SGIX_ycrcba
7218   GL_YCRCB_SGIX = $8318;
7219   GL_YCRCBA_SGIX = $8319;
7220
7221   // GL_SGI_color_matrix
7222   GL_COLOR_MATRIX_SGI = $80B1;
7223   GL_COLOR_MATRIX_STACK_DEPTH_SGI = $80B2;
7224   GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = $80B3;
7225   GL_POST_COLOR_MATRIX_RED_SCALE_SGI = $80B4;
7226   GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = $80B5;
7227   GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = $80B6;
7228   GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = $80B7;
7229   GL_POST_COLOR_MATRIX_RED_BIAS_SGI = $80B8;
7230   GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = $80B9;
7231   GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = $80BA;
7232   GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = $80BB;
7233
7234   // GL_SGI_color_table
7235   GL_COLOR_TABLE_SGI = $80D0;
7236   GL_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D1;
7237   GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D2;
7238   GL_PROXY_COLOR_TABLE_SGI = $80D3;
7239   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D4;
7240   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D5;
7241   GL_COLOR_TABLE_SCALE_SGI = $80D6;
7242   GL_COLOR_TABLE_BIAS_SGI = $80D7;
7243   GL_COLOR_TABLE_FORMAT_SGI = $80D8;
7244   GL_COLOR_TABLE_WIDTH_SGI = $80D9;
7245   GL_COLOR_TABLE_RED_SIZE_SGI = $80DA;
7246   GL_COLOR_TABLE_GREEN_SIZE_SGI = $80DB;
7247   GL_COLOR_TABLE_BLUE_SIZE_SGI = $80DC;
7248   GL_COLOR_TABLE_ALPHA_SIZE_SGI = $80DD;
7249   GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = $80DE;
7250   GL_COLOR_TABLE_INTENSITY_SIZE_SGI = $80DF;
7251
7252   // GL_SGI_depth_pass_instrument
7253   GL_DEPTH_PASS_INSTRUMENT_SGIX = $8310;
7254   GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = $8311;
7255   GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX = $8312;
7256
7257   // GL_SGI_texture_color_table
7258   GL_TEXTURE_COLOR_TABLE_SGI = $80BC;
7259   GL_PROXY_TEXTURE_COLOR_TABLE_SGI = $80BD;
7260
7261   // GL_SUNX_constant_data
7262   GL_UNPACK_CONSTANT_DATA_SUNX = $81D5;
7263   GL_TEXTURE_CONSTANT_DATA_SUNX = $81D6;
7264
7265   // GL_SUN_convolution_border_modes
7266   GL_WRAP_BORDER_SUN = $81D4;
7267
7268   // GL_SUN_global_alpha
7269   GL_GLOBAL_ALPHA_SUN = $81D9;
7270   GL_GLOBAL_ALPHA_FACTOR_SUN = $81DA;
7271
7272   // GL_SUN_mesh_array
7273   GL_QUAD_MESH_SUN = $8614;
7274   GL_TRIANGLE_MESH_SUN = $8615;
7275
7276   // GL_SUN_slice_accum
7277   GL_SLICE_ACCUM_SUN = $85CC;
7278
7279   // GL_SUN_triangle_list
7280   GL_RESTART_SUN = $0001;
7281   GL_REPLACE_MIDDLE_SUN = $0002;
7282   GL_REPLACE_OLDEST_SUN = $0003;
7283   GL_TRIANGLE_LIST_SUN = $81D7;
7284   GL_REPLACEMENT_CODE_SUN = $81D8;
7285   GL_REPLACEMENT_CODE_ARRAY_SUN = $85C0;
7286   GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = $85C1;
7287   GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = $85C2;
7288   GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = $85C3;
7289   GL_R1UI_V3F_SUN = $85C4;
7290   GL_R1UI_C4UB_V3F_SUN = $85C5;
7291   GL_R1UI_C3F_V3F_SUN = $85C6;
7292   GL_R1UI_N3F_V3F_SUN = $85C7;
7293   GL_R1UI_C4F_N3F_V3F_SUN = $85C8;
7294   GL_R1UI_T2F_V3F_SUN = $85C9;
7295   GL_R1UI_T2F_N3F_V3F_SUN = $85CA;
7296   GL_R1UI_T2F_C4F_N3F_V3F_SUN = $85CB;
7297
7298   // GL_WIN_phong_shading
7299   GL_PHONG_WIN = $80EA;
7300   GL_PHONG_HINT_WIN = $80EB;
7301
7302   // GL_WIN_specular_fog
7303   GL_FOG_SPECULAR_TEXTURE_WIN = $80EC;
7304
7305    // GL_ARB_vertex_shader
7306   GL_VERTEX_SHADER_ARB = $8B31;
7307   GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = $8B4A;
7308   GL_MAX_VARYING_FLOATS_ARB = $8B4B;
7309   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
7310   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = $8B4D;
7311   GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = $8B89;
7312   GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = $8B8A;
7313
7314   // GL_ARB_fragment_shader
7315   GL_FRAGMENT_SHADER_ARB = $8B30;
7316   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = $8B49; // 1.4
7317   GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = $8B8B; // 1.4
7318
7319   // GL_ARB_occlusion_query
7320   GL_SAMPLES_PASSED_ARB = $8914;
7321   GL_QUERY_COUNTER_BITS_ARB = $8864;
7322   GL_CURRENT_QUERY_ARB = $8865;
7323   GL_QUERY_RESULT_ARB = $8866;
7324   GL_QUERY_RESULT_AVAILABLE_ARB = $8867;
7325
7326   // GL_ARB_point_sprite
7327   GL_POINT_SPRITE_ARB = $8861;
7328   GL_COORD_REPLACE_ARB = $8862;
7329
7330   // GL_ARB_shading_language_100
7331   GL_SHADING_LANGUAGE_VERSION_ARB = $8B8C; // 1.4
7332
7333   // GL_ARB_shader_objects
7334   GL_PROGRAM_OBJECT_ARB = $8B40;
7335
7336   GL_OBJECT_TYPE_ARB = $8B4E;
7337   GL_OBJECT_SUBTYPE_ARB = $8B4F;
7338   GL_OBJECT_DELETE_STATUS_ARB = $8B80;
7339   GL_OBJECT_COMPILE_STATUS_ARB = $8B81;
7340   GL_OBJECT_LINK_STATUS_ARB = $8B82;
7341   GL_OBJECT_VALIDATE_STATUS_ARB = $8B83;
7342   GL_OBJECT_INFO_LOG_LENGTH_ARB = $8B84;
7343   GL_OBJECT_ATTACHED_OBJECTS_ARB = $8B85;
7344   GL_OBJECT_ACTIVE_UNIFORMS_ARB = $8B86;
7345   GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = $8B87;
7346   GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = $8B88;
7347
7348   GL_SHADER_OBJECT_ARB = $8B48;
7349
7350   GL_FLOAT_VEC2_ARB = $8B50;
7351   GL_FLOAT_VEC3_ARB = $8B51;
7352   GL_FLOAT_VEC4_ARB = $8B52;
7353   GL_INT_VEC2_ARB = $8B53;
7354   GL_INT_VEC3_ARB = $8B54;
7355   GL_INT_VEC4_ARB = $8B55;
7356   GL_BOOL_ARB = $8B56;
7357   GL_BOOL_VEC2_ARB = $8B57;
7358   GL_BOOL_VEC3_ARB = $8B58;
7359   GL_BOOL_VEC4_ARB = $8B59;
7360   GL_FLOAT_MAT2_ARB = $8B5A;
7361   GL_FLOAT_MAT3_ARB = $8B5B;
7362   GL_FLOAT_MAT4_ARB = $8B5C;
7363   GL_SAMPLER_1D_ARB = $8B5D;
7364   GL_SAMPLER_2D_ARB = $8B5E;
7365   GL_SAMPLER_3D_ARB = $8B5F;
7366   GL_SAMPLER_CUBE_ARB = $8B60;
7367   GL_SAMPLER_1D_SHADOW_ARB = $8B61;
7368   GL_SAMPLER_2D_SHADOW_ARB = $8B62;
7369   GL_SAMPLER_2D_RECT_ARB = $8B63;
7370   GL_SAMPLER_2D_RECT_SHADOW_ARB = $8B64;
7371
7372   // WGL_3DFX_multisample
7373   WGL_SAMPLE_BUFFERS_3DFX = $2060;
7374   WGL_SAMPLES_3DFX = $2061;
7375
7376   // WGL_ARB_buffer_region
7377   WGL_FRONT_COLOR_BUFFER_BIT_ARB = $00000001;
7378   WGL_BACK_COLOR_BUFFER_BIT_ARB = $00000002;
7379   WGL_DEPTH_BUFFER_BIT_ARB = $00000004;
7380   WGL_STENCIL_BUFFER_BIT_ARB = $00000008;
7381
7382   // WGL_ARB_make_current_read
7383   ERROR_INVALID_PIXEL_TYPE_ARB = $2043;
7384   ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB = $2054;
7385
7386   // WGL_ARB_multisample
7387   WGL_SAMPLE_BUFFERS_ARB = $2041;
7388   WGL_SAMPLES_ARB = $2042;
7389
7390   // WGL_ARB_pbuffer
7391   WGL_DRAW_TO_PBUFFER_ARB = $202D;
7392   WGL_MAX_PBUFFER_PIXELS_ARB = $202E;
7393   WGL_MAX_PBUFFER_WIDTH_ARB = $202F;
7394   WGL_MAX_PBUFFER_HEIGHT_ARB = $2030;
7395   WGL_PBUFFER_LARGEST_ARB = $2033;
7396   WGL_PBUFFER_WIDTH_ARB = $2034;
7397   WGL_PBUFFER_HEIGHT_ARB = $2035;
7398   WGL_PBUFFER_LOST_ARB = $2036;
7399
7400   // WGL_ARB_pixel_format
7401   WGL_NUMBER_PIXEL_FORMATS_ARB = $2000;
7402   WGL_DRAW_TO_WINDOW_ARB = $2001;
7403   WGL_DRAW_TO_BITMAP_ARB = $2002;
7404   WGL_ACCELERATION_ARB = $2003;
7405   WGL_NEED_PALETTE_ARB = $2004;
7406   WGL_NEED_SYSTEM_PALETTE_ARB = $2005;
7407   WGL_SWAP_LAYER_BUFFERS_ARB = $2006;
7408   WGL_SWAP_METHOD_ARB = $2007;
7409   WGL_NUMBER_OVERLAYS_ARB = $2008;
7410   WGL_NUMBER_UNDERLAYS_ARB = $2009;
7411   WGL_TRANSPARENT_ARB = $200A;
7412   WGL_TRANSPARENT_RED_VALUE_ARB = $2037;
7413   WGL_TRANSPARENT_GREEN_VALUE_ARB = $2038;
7414   WGL_TRANSPARENT_BLUE_VALUE_ARB = $2039;
7415   WGL_TRANSPARENT_ALPHA_VALUE_ARB = $203A;
7416   WGL_TRANSPARENT_INDEX_VALUE_ARB = $203B;
7417   WGL_SHARE_DEPTH_ARB = $200C;
7418   WGL_SHARE_STENCIL_ARB = $200D;
7419   WGL_SHARE_ACCUM_ARB = $200E;
7420   WGL_SUPPORT_GDI_ARB = $200F;
7421   WGL_SUPPORT_OPENGL_ARB = $2010;
7422   WGL_DOUBLE_BUFFER_ARB = $2011;
7423   WGL_STEREO_ARB = $2012;
7424   WGL_PIXEL_TYPE_ARB = $2013;
7425   WGL_COLOR_BITS_ARB = $2014;
7426   WGL_RED_BITS_ARB = $2015;
7427   WGL_RED_SHIFT_ARB = $2016;
7428   WGL_GREEN_BITS_ARB = $2017;
7429   WGL_GREEN_SHIFT_ARB = $2018;
7430   WGL_BLUE_BITS_ARB = $2019;
7431   WGL_BLUE_SHIFT_ARB = $201A;
7432   WGL_ALPHA_BITS_ARB = $201B;
7433   WGL_ALPHA_SHIFT_ARB = $201C;
7434   WGL_ACCUM_BITS_ARB = $201D;
7435   WGL_ACCUM_RED_BITS_ARB = $201E;
7436   WGL_ACCUM_GREEN_BITS_ARB = $201F;
7437   WGL_ACCUM_BLUE_BITS_ARB = $2020;
7438   WGL_ACCUM_ALPHA_BITS_ARB = $2021;
7439   WGL_DEPTH_BITS_ARB = $2022;
7440   WGL_STENCIL_BITS_ARB = $2023;
7441   WGL_AUX_BUFFERS_ARB = $2024;
7442   WGL_NO_ACCELERATION_ARB = $2025;
7443   WGL_GENERIC_ACCELERATION_ARB = $2026;
7444   WGL_FULL_ACCELERATION_ARB = $2027;
7445   WGL_SWAP_EXCHANGE_ARB = $2028;
7446   WGL_SWAP_COPY_ARB = $2029;
7447   WGL_SWAP_UNDEFINED_ARB = $202A;
7448   WGL_TYPE_RGBA_ARB = $202B;
7449   WGL_TYPE_COLORINDEX_ARB = $202C;
7450
7451   // WGL_ARB_pixel_format_float
7452   WGL_RGBA_FLOAT_MODE_ARB = $8820;
7453   WGL_CLAMP_VERTEX_COLOR_ARB = $891A;
7454   WGL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
7455   WGL_CLAMP_READ_COLOR_ARB = $891C;
7456   WGL_FIXED_ONLY_ARB = $891D;
7457
7458   // WGL_ARB_render_texture
7459   WGL_BIND_TO_TEXTURE_RGB_ARB = $2070;
7460   WGL_BIND_TO_TEXTURE_RGBA_ARB = $2071;
7461   WGL_TEXTURE_FORMAT_ARB = $2072;
7462   WGL_TEXTURE_TARGET_ARB = $2073;
7463   WGL_MIPMAP_TEXTURE_ARB = $2074;
7464   WGL_TEXTURE_RGB_ARB = $2075;
7465   WGL_TEXTURE_RGBA_ARB = $2076;
7466   WGL_NO_TEXTURE_ARB = $2077;
7467   WGL_TEXTURE_CUBE_MAP_ARB = $2078;
7468   WGL_TEXTURE_1D_ARB = $2079;
7469   WGL_TEXTURE_2D_ARB = $207A;
7470   WGL_MIPMAP_LEVEL_ARB = $207B;
7471   WGL_CUBE_MAP_FACE_ARB = $207C;
7472   WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $207D;
7473   WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $207E;
7474   WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $207F;
7475   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $2080;
7476   WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $2081;
7477   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $2082;
7478   WGL_FRONT_LEFT_ARB = $2083;
7479   WGL_FRONT_RIGHT_ARB = $2084;
7480   WGL_BACK_LEFT_ARB = $2085;
7481   WGL_BACK_RIGHT_ARB = $2086;
7482   WGL_AUX0_ARB = $2087;
7483   WGL_AUX1_ARB = $2088;
7484   WGL_AUX2_ARB = $2089;
7485   WGL_AUX3_ARB = $208A;
7486   WGL_AUX4_ARB = $208B;
7487   WGL_AUX5_ARB = $208C;
7488   WGL_AUX6_ARB = $208D;
7489   WGL_AUX7_ARB = $208E;
7490   WGL_AUX8_ARB = $208F;
7491   WGL_AUX9_ARB = $2090;
7492
7493   // WGL_ARB_create_context
7494   WGL_CONTEXT_DEBUG_BIT_ARB = $00000001;
7495   WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7496   WGL_CONTEXT_MAJOR_VERSION_ARB = $2091;
7497   WGL_CONTEXT_MINOR_VERSION_ARB = $2092;
7498   WGL_CONTEXT_LAYER_PLANE_ARB = $2093;
7499   WGL_CONTEXT_FLAGS_ARB = $2094;
7500   ERROR_INVALID_VERSION_ARB = $2095;
7501
7502   // WGL_ARB_create_context_profile
7503   WGL_CONTEXT_PROFILE_MASK_ARB = $9126;
7504   WGL_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7505   WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7506   ERROR_INVALID_PROFILE_ARB = $2096;
7507
7508   // WGL_ARB_framebuffer_sRGB
7509   WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20A9;
7510
7511   // WGL_ARB_create_context_robustness
7512   WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7513   WGL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7514   WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7515   WGL_NO_RESET_NOTIFICATION_ARB = $8261;
7516
7517   // WGL_ATI_pixel_format_float
7518   WGL_TYPE_RGBA_FLOAT_ATI = $21A0;
7519   GL_TYPE_RGBA_FLOAT_ATI = $8820;
7520   GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = $8835;
7521
7522   // WGL_AMD_gpu_association
7523   WGL_GPU_VENDOR_AMD = $1F00;
7524   WGL_GPU_RENDERER_STRING_AMD = $1F01;
7525   WGL_GPU_OPENGL_VERSION_STRING_AMD = $1F02;
7526   WGL_GPU_FASTEST_TARGET_GPUS_AMD = $21A2;
7527   WGL_GPU_RAM_AMD = $21A3;
7528   WGL_GPU_CLOCK_AMD = $21A4;
7529   WGL_GPU_NUM_PIPES_AMD = $21A5;
7530   WGL_GPU_NUM_SIMD_AMD = $21A6;
7531   WGL_GPU_NUM_RB_AMD = $21A7;
7532   WGL_GPU_NUM_SPI_AMD = $21A8;
7533
7534   // WGL_EXT_depth_float
7535   WGL_DEPTH_FLOAT_EXT = $2040;
7536
7537   // WGL_EXT_make_current_read
7538   ERROR_INVALID_PIXEL_TYPE_EXT = $2043;
7539
7540   // WGL_EXT_multisample
7541   WGL_SAMPLE_BUFFERS_EXT = $2041;
7542   WGL_SAMPLES_EXT = $2042;
7543
7544   // WGL_EXT_pbuffer
7545   WGL_DRAW_TO_PBUFFER_EXT = $202D;
7546   WGL_MAX_PBUFFER_PIXELS_EXT = $202E;
7547   WGL_MAX_PBUFFER_WIDTH_EXT = $202F;
7548   WGL_MAX_PBUFFER_HEIGHT_EXT = $2030;
7549   WGL_OPTIMAL_PBUFFER_WIDTH_EXT = $2031;
7550   WGL_OPTIMAL_PBUFFER_HEIGHT_EXT = $2032;
7551   WGL_PBUFFER_LARGEST_EXT = $2033;
7552   WGL_PBUFFER_WIDTH_EXT = $2034;
7553   WGL_PBUFFER_HEIGHT_EXT = $2035;
7554
7555   // WGL_EXT_pixel_format
7556   WGL_NUMBER_PIXEL_FORMATS_EXT = $2000;
7557   WGL_DRAW_TO_WINDOW_EXT = $2001;
7558   WGL_DRAW_TO_BITMAP_EXT = $2002;
7559   WGL_ACCELERATION_EXT = $2003;
7560   WGL_NEED_PALETTE_EXT = $2004;
7561   WGL_NEED_SYSTEM_PALETTE_EXT = $2005;
7562   WGL_SWAP_LAYER_BUFFERS_EXT = $2006;
7563   WGL_SWAP_METHOD_EXT = $2007;
7564   WGL_NUMBER_OVERLAYS_EXT = $2008;
7565   WGL_NUMBER_UNDERLAYS_EXT = $2009;
7566   WGL_TRANSPARENT_EXT = $200A;
7567   WGL_TRANSPARENT_VALUE_EXT = $200B;
7568   WGL_SHARE_DEPTH_EXT = $200C;
7569   WGL_SHARE_STENCIL_EXT = $200D;
7570   WGL_SHARE_ACCUM_EXT = $200E;
7571   WGL_SUPPORT_GDI_EXT = $200F;
7572   WGL_SUPPORT_OPENGL_EXT = $2010;
7573   WGL_DOUBLE_BUFFER_EXT = $2011;
7574   WGL_STEREO_EXT = $2012;
7575   WGL_PIXEL_TYPE_EXT = $2013;
7576   WGL_COLOR_BITS_EXT = $2014;
7577   WGL_RED_BITS_EXT = $2015;
7578   WGL_RED_SHIFT_EXT = $2016;
7579   WGL_GREEN_BITS_EXT = $2017;
7580   WGL_GREEN_SHIFT_EXT = $2018;
7581   WGL_BLUE_BITS_EXT = $2019;
7582   WGL_BLUE_SHIFT_EXT = $201A;
7583   WGL_ALPHA_BITS_EXT = $201B;
7584   WGL_ALPHA_SHIFT_EXT = $201C;
7585   WGL_ACCUM_BITS_EXT = $201D;
7586   WGL_ACCUM_RED_BITS_EXT = $201E;
7587   WGL_ACCUM_GREEN_BITS_EXT = $201F;
7588   WGL_ACCUM_BLUE_BITS_EXT = $2020;
7589   WGL_ACCUM_ALPHA_BITS_EXT = $2021;
7590   WGL_DEPTH_BITS_EXT = $2022;
7591   WGL_STENCIL_BITS_EXT = $2023;
7592   WGL_AUX_BUFFERS_EXT = $2024;
7593   WGL_NO_ACCELERATION_EXT = $2025;
7594   WGL_GENERIC_ACCELERATION_EXT = $2026;
7595   WGL_FULL_ACCELERATION_EXT = $2027;
7596   WGL_SWAP_EXCHANGE_EXT = $2028;
7597   WGL_SWAP_COPY_EXT = $2029;
7598   WGL_SWAP_UNDEFINED_EXT = $202A;
7599   WGL_TYPE_RGBA_EXT = $202B;
7600   WGL_TYPE_COLORINDEX_EXT = $202C;
7601
7602   // WGL_I3D_digital_video_control
7603   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D = $2050;
7604   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D = $2051;
7605   WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D = $2052;
7606   WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D = $2053;
7607
7608   // WGL_I3D_gamma
7609   WGL_GAMMA_TABLE_SIZE_I3D = $204E;
7610   WGL_GAMMA_EXCLUDE_DESKTOP_I3D = $204F;
7611
7612   // WGL_I3D_genlock
7613   WGL_GENLOCK_SOURCE_MULTIVIEW_I3D = $2044;
7614   WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D = $2045;
7615   WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D = $2046;
7616   WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D = $2047;
7617   WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D = $2048;
7618   WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D = $2049;
7619   WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D = $204A;
7620   WGL_GENLOCK_SOURCE_EDGE_RISING_I3D = $204B;
7621   WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D = $204C;
7622
7623   // WGL_I3D_image_buffer
7624   WGL_IMAGE_BUFFER_MIN_ACCESS_I3D = $00000001;
7625   WGL_IMAGE_BUFFER_LOCK_I3D = $00000002;
7626
7627   // WGL_NV_float_buffer
7628   WGL_FLOAT_COMPONENTS_NV = $20B0;
7629   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV = $20B1;
7630   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV = $20B2;
7631   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV = $20B3;
7632   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV = $20B4;
7633   WGL_TEXTURE_FLOAT_R_NV = $20B5;
7634   WGL_TEXTURE_FLOAT_RG_NV = $20B6;
7635   WGL_TEXTURE_FLOAT_RGB_NV = $20B7;
7636   WGL_TEXTURE_FLOAT_RGBA_NV = $20B8;
7637
7638   // WGL_NV_render_depth_texture
7639   WGL_BIND_TO_TEXTURE_DEPTH_NV = $20A3;
7640   WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV = $20A4;
7641   WGL_DEPTH_TEXTURE_FORMAT_NV = $20A5;
7642   WGL_TEXTURE_DEPTH_COMPONENT_NV = $20A6;
7643   WGL_DEPTH_COMPONENT_NV = $20A7;
7644
7645   // WGL_NV_render_texture_rectangle
7646   WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV = $20A0;
7647   WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV = $20A1;
7648   WGL_TEXTURE_RECTANGLE_NV = $20A2;
7649
7650   // WGL_NV_present_video
7651   WGL_NUM_VIDEO_SLOTS_NV = $20F0;
7652   
7653   // WGL_NV_video_output
7654   WGL_BIND_TO_VIDEO_RGB_NV = $20C0;
7655   WGL_BIND_TO_VIDEO_RGBA_NV = $20C1;
7656   WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV = $20C2;
7657   WGL_VIDEO_OUT_COLOR_NV = $20C3;
7658   WGL_VIDEO_OUT_ALPHA_NV = $20C4;
7659   WGL_VIDEO_OUT_DEPTH_NV = $20C5;
7660   WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV = $20C6;
7661   WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV = $20C7;
7662   WGL_VIDEO_OUT_FRAME = $20C8;
7663   WGL_VIDEO_OUT_FIELD_1 = $20C9;
7664   WGL_VIDEO_OUT_FIELD_2 = $20CA;
7665   WGL_VIDEO_OUT_STACKED_FIELDS_1_2 = $20CB;
7666   WGL_VIDEO_OUT_STACKED_FIELDS_2_1 = $20CC;
7667
7668   // WGL_NV_gpu_affinity
7669   WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV = $20D0;
7670   WGL_ERROR_MISSING_AFFINITY_MASK_NV = $20D1;
7671
7672   // WGL_NV_video_capture
7673   WGL_UNIQUE_ID_NV = $20CE;
7674   WGL_NUM_VIDEO_CAPTURE_SLOTS_NV = $20CF;
7675   
7676   // WGL_NV_multisample_coverage
7677   WGL_COVERAGE_SAMPLES_NV = $2042;
7678   WGL_COLOR_SAMPLES_NV = $20B9;
7679
7680   // WGL_EXT_create_context_es2_profile
7681   WGL_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7682
7683   // WGL_NV_DX_interop
7684   WGL_ACCESS_READ_ONLY_NV        = $00000000;
7685   WGL_ACCESS_READ_WRITE_NV       = $00000001;
7686   WGL_ACCESS_WRITE_DISCARD_NV    = $00000002;
7687
7688   // WIN_draw_range_elements
7689   GL_MAX_ELEMENTS_VERTICES_WIN = $80E8;
7690   GL_MAX_ELEMENTS_INDICES_WIN = $80E9;
7691
7692   // GLX 1.1 and later:
7693   GLX_VENDOR = 1;
7694   GLX_VERSION = 2;
7695   GLX_EXTENSIONS = 3;
7696
7697   GLX_USE_GL = 1;
7698   GLX_BUFFER_SIZE = 2;
7699   GLX_LEVEL = 3;
7700   GLX_RGBA = 4;
7701   GLX_DOUBLEBUFFER = 5;
7702   GLX_STEREO = 6;
7703   GLX_AUX_BUFFERS = 7;
7704   GLX_RED_SIZE = 8;
7705   GLX_GREEN_SIZE = 9;
7706   GLX_BLUE_SIZE = 10;
7707   GLX_ALPHA_SIZE = 11;
7708   GLX_DEPTH_SIZE = 12;
7709   GLX_STENCIL_SIZE = 13;
7710   GLX_ACCUM_RED_SIZE = 14;
7711   GLX_ACCUM_GREEN_SIZE = 15;
7712   GLX_ACCUM_BLUE_SIZE = 16;
7713   GLX_ACCUM_ALPHA_SIZE = 17;
7714
7715   // GLX_VERSION_1_3
7716   GLX_WINDOW_BIT = $00000001;
7717   GLX_PIXMAP_BIT = $00000002;
7718   GLX_PBUFFER_BIT = $00000004;
7719   GLX_RGBA_BIT = $00000001;
7720   GLX_COLOR_INDEX_BIT = $00000002;
7721   GLX_PBUFFER_CLOBBER_MASK = $08000000;
7722   GLX_FRONT_LEFT_BUFFER_BIT = $00000001;
7723   GLX_FRONT_RIGHT_BUFFER_BIT = $00000002;
7724   GLX_BACK_LEFT_BUFFER_BIT = $00000004;
7725   GLX_BACK_RIGHT_BUFFER_BIT = $00000008;
7726   GLX_AUX_BUFFERS_BIT = $00000010;
7727   GLX_DEPTH_BUFFER_BIT = $00000020;
7728   GLX_STENCIL_BUFFER_BIT = $00000040;
7729   GLX_ACCUM_BUFFER_BIT = $00000080;
7730   GLX_CONFIG_CAVEAT = $20;
7731   GLX_X_VISUAL_TYPE = $22;
7732   GLX_TRANSPARENT_TYPE = $23;
7733   GLX_TRANSPARENT_INDEX_VALUE = $24;
7734   GLX_TRANSPARENT_RED_VALUE = $25;
7735   GLX_TRANSPARENT_GREEN_VALUE = $26;
7736   GLX_TRANSPARENT_BLUE_VALUE = $27;
7737   GLX_TRANSPARENT_ALPHA_VALUE = $28;
7738   GLX_DONT_CARE = $FFFFFFFF;
7739   GLX_NONE = $8000;
7740   GLX_SLOW_CONFIG = $8001;
7741   GLX_TRUE_COLOR = $8002;
7742   GLX_DIRECT_COLOR = $8003;
7743   GLX_PSEUDO_COLOR = $8004;
7744   GLX_STATIC_COLOR = $8005;
7745   GLX_GRAY_SCALE = $8006;
7746   GLX_STATIC_GRAY = $8007;
7747   GLX_TRANSPARENT_RGB = $8008;
7748   GLX_TRANSPARENT_INDEX = $8009;
7749   GLX_VISUAL_ID = $800B;
7750   GLX_SCREEN = $800C;
7751   GLX_NON_CONFORMANT_CONFIG = $800D;
7752   GLX_DRAWABLE_TYPE = $8010;
7753   GLX_RENDER_TYPE = $8011;
7754   GLX_X_RENDERABLE = $8012;
7755   GLX_FBCONFIG_ID = $8013;
7756   GLX_RGBA_TYPE = $8014;
7757   GLX_COLOR_INDEX_TYPE = $8015;
7758   GLX_MAX_PBUFFER_WIDTH = $8016;
7759   GLX_MAX_PBUFFER_HEIGHT = $8017;
7760   GLX_MAX_PBUFFER_PIXELS = $8018;
7761   GLX_PRESERVED_CONTENTS = $801B;
7762   GLX_LARGEST_PBUFFER = $801C;
7763   GLX_WIDTH = $801D;
7764   GLX_HEIGHT = $801E;
7765   GLX_EVENT_MASK = $801F;
7766   GLX_DAMAGED = $8020;
7767   GLX_SAVED = $8021;
7768   GLX_WINDOW = $8022;
7769   GLX_PBUFFER = $8023;
7770   GLX_PBUFFER_HEIGHT = $8040;
7771   GLX_PBUFFER_WIDTH = $8041;
7772
7773   // GLX_VERSION_1_4
7774   GLX_SAMPLE_BUFFERS = 100000;
7775   GLX_SAMPLES = 100001;
7776
7777   // GLX_ARB_multisample
7778   GLX_SAMPLE_BUFFERS_ARB = 100000;
7779   GLX_SAMPLES_ARB = 100001;
7780
7781   // GLX_ARB_fbconfig_float
7782   GLX_RGBA_FLOAT_TYPE_ARB = $20B9;
7783   GLX_RGBA_FLOAT_BIT_ARB = $00000004;
7784
7785   // GLX_ARB_create_context
7786   GLX_CONTEXT_DEBUG_BIT_ARB = $00000001;
7787   GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7788   GLX_CONTEXT_MAJOR_VERSION_ARB = $2091;
7789   GLX_CONTEXT_MINOR_VERSION_ARB = $2092;
7790   GLX_CONTEXT_FLAGS_ARB = $2094;
7791
7792   // GLX_ARB_create_context_profile
7793   GLX_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7794   GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7795   GLX_CONTEXT_PROFILE_MASK_ARB = $9126;
7796
7797   // GLX_ARB_vertex_buffer_object
7798   GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB = $2095;
7799
7800   // GLX_ARB_framebuffer_sRGB
7801   GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20B2;
7802
7803   // GLX_ARB_create_context_robustness
7804   GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7805   GLX_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7806   GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7807   GLX_NO_RESET_NOTIFICATION_ARB = $8261;
7808
7809   // GLX_EXT_visual_info
7810   GLX_X_VISUAL_TYPE_EXT = $22;
7811   GLX_TRANSPARENT_TYPE_EXT = $23;
7812   GLX_TRANSPARENT_INDEX_VALUE_EXT = $24;
7813   GLX_TRANSPARENT_RED_VALUE_EXT = $25;
7814   GLX_TRANSPARENT_GREEN_VALUE_EXT = $26;
7815   GLX_TRANSPARENT_BLUE_VALUE_EXT = $27;
7816   GLX_TRANSPARENT_ALPHA_VALUE_EXT = $28;
7817   GLX_NONE_EXT = $8000;
7818   GLX_TRUE_COLOR_EXT = $8002;
7819   GLX_DIRECT_COLOR_EXT = $8003;
7820   GLX_PSEUDO_COLOR_EXT = $8004;
7821   GLX_STATIC_COLOR_EXT = $8005;
7822   GLX_GRAY_SCALE_EXT = $8006;
7823   GLX_STATIC_GRAY_EXT = $8007;
7824   GLX_TRANSPARENT_RGB_EXT = $8008;
7825   GLX_TRANSPARENT_INDEX_EXT = $8009;
7826   
7827   // GLX_EXT_visual_rating
7828   GLX_VISUAL_CAVEAT_EXT = $20;
7829   GLX_SLOW_VISUAL_EXT = $8001;
7830   GLX_NON_CONFORMANT_VISUAL_EXT = $800D;
7831   (* reuse GLX_NONE_EXT *)
7832   
7833   // GLX_EXT_import_context
7834   GLX_SHARE_CONTEXT_EXT = $800A;
7835   GLX_VISUAL_ID_EXT = $800B;
7836   GLX_SCREEN_EXT = $800C;
7837
7838   // GLX_EXT_fbconfig_packed_float
7839 //  GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
7840 //  GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
7841
7842   // GLX_EXT_framebuffer_sRGB
7843 //  GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
7844
7845   // GLX_EXT_texture_from_pixmap
7846   GLX_TEXTURE_1D_BIT_EXT = $00000001;
7847   GLX_TEXTURE_2D_BIT_EXT = $00000002;
7848   GLX_TEXTURE_RECTANGLE_BIT_EXT = $00000004;
7849   GLX_BIND_TO_TEXTURE_RGB_EXT = $20D0;
7850   GLX_BIND_TO_TEXTURE_RGBA_EXT = $20D1;
7851   GLX_BIND_TO_MIPMAP_TEXTURE_EXT = $20D2;
7852   GLX_BIND_TO_TEXTURE_TARGETS_EXT = $20D3;
7853   GLX_Y_INVERTED_EXT = $20D4;
7854   GLX_TEXTURE_FORMAT_EXT = $20D5;
7855   GLX_TEXTURE_TARGET_EXT = $20D6;
7856   GLX_MIPMAP_TEXTURE_EXT = $20D7;
7857   GLX_TEXTURE_FORMAT_NONE_EXT = $20D8;
7858   GLX_TEXTURE_FORMAT_RGB_EXT = $20D9;
7859   GLX_TEXTURE_FORMAT_RGBA_EXT = $20DA;
7860   GLX_TEXTURE_1D_EXT = $20DB;
7861   GLX_TEXTURE_2D_EXT = $20DC;
7862   GLX_TEXTURE_RECTANGLE_EXT = $20DD;
7863   GLX_FRONT_LEFT_EXT = $20DE;
7864   GLX_FRONT_RIGHT_EXT = $20DF;
7865   GLX_BACK_LEFT_EXT = $20E0;
7866   GLX_BACK_RIGHT_EXT = $20E1;
7867   GLX_FRONT_EXT = GLX_FRONT_LEFT_EXT;
7868   GLX_BACK_EXT = GLX_BACK_LEFT_EXT;
7869   GLX_AUX0_EXT = $20E2;
7870   GLX_AUX1_EXT = $20E3;
7871   GLX_AUX2_EXT = $20E4;
7872   GLX_AUX3_EXT = $20E5;
7873   GLX_AUX4_EXT = $20E6;
7874   GLX_AUX5_EXT = $20E7;
7875   GLX_AUX6_EXT = $20E8;
7876   GLX_AUX7_EXT = $20E9;
7877   GLX_AUX8_EXT = $20EA;
7878   GLX_AUX9_EXT = $20EB;
7879
7880   // GLX_EXT_swap_control
7881   GLX_SWAP_INTERVAL_EXT = $20F1;
7882   GLX_MAX_SWAP_INTERVAL_EXT = $20F2;
7883
7884   // GLX_EXT_create_context_es2_profile
7885   GLX_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7886
7887   // GL_EXT_Late_Swaps
7888   GLX_LATE_SWAPS_TEAR_EXT         = $20F3;
7889
7890   // GLU
7891   GLU_INVALID_ENUM = 100900;
7892   GLU_INVALID_VALUE = 100901;
7893   GLU_OUT_OF_MEMORY = 100902;
7894   GLU_INCOMPATIBLE_GL_VERSION = 100903;
7895   GLU_VERSION = 100800;
7896   GLU_EXTENSIONS = 100801;
7897   GLU_TRUE = GL_TRUE;
7898   GLU_FALSE = GL_FALSE;
7899   GLU_SMOOTH = 100000;
7900   GLU_FLAT = 100001;
7901   GLU_NONE = 100002;
7902   GLU_POINT = 100010;
7903   GLU_LINE = 100011;
7904   GLU_FILL = 100012;
7905   GLU_SILHOUETTE = 100013;
7906   GLU_OUTSIDE = 100020;
7907   GLU_INSIDE = 100021;
7908   GLU_TESS_MAX_COORD = 1.0E150;
7909   GLU_TESS_WINDING_RULE = 100140;
7910   GLU_TESS_BOUNDARY_ONLY = 100141;
7911   GLU_TESS_TOLERANCE = 100142;
7912   GLU_TESS_WINDING_ODD = 100130;
7913   GLU_TESS_WINDING_NONZERO = 100131;
7914   GLU_TESS_WINDING_POSITIVE = 100132;
7915   GLU_TESS_WINDING_NEGATIVE = 100133;
7916   GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
7917   GLU_TESS_BEGIN = 100100; // TGLUTessBeginProc
7918   GLU_TESS_VERTEX = 100101; // TGLUTessVertexProc
7919   GLU_TESS_END = 100102; // TGLUTessEndProc
7920   GLU_TESS_ERROR = 100103; // TGLUTessErrorProc
7921   GLU_TESS_EDGE_FLAG = 100104; // TGLUTessEdgeFlagProc
7922   GLU_TESS_COMBINE = 100105; // TGLUTessCombineProc
7923   GLU_TESS_BEGIN_DATA = 100106; // TGLUTessBeginDataProc
7924   GLU_TESS_VERTEX_DATA = 100107; // TGLUTessVertexDataProc
7925   GLU_TESS_END_DATA = 100108; // TGLUTessEndDataProc
7926   GLU_TESS_ERROR_DATA = 100109; // TGLUTessErrorDataProc
7927   GLU_TESS_EDGE_FLAG_DATA = 100110; // TGLUTessEdgeFlagDataProc
7928   GLU_TESS_COMBINE_DATA = 100111; // TGLUTessCombineDataProc
7929   GLU_TESS_ERROR1 = 100151;
7930   GLU_TESS_ERROR2 = 100152;
7931   GLU_TESS_ERROR3 = 100153;
7932   GLU_TESS_ERROR4 = 100154;
7933   GLU_TESS_ERROR5 = 100155;
7934   GLU_TESS_ERROR6 = 100156;
7935   GLU_TESS_ERROR7 = 100157;
7936   GLU_TESS_ERROR8 = 100158;
7937   GLU_TESS_MISSING_BEGIN_POLYGON = GLU_TESS_ERROR1;
7938   GLU_TESS_MISSING_BEGIN_CONTOUR = GLU_TESS_ERROR2;
7939   GLU_TESS_MISSING_END_POLYGON = GLU_TESS_ERROR3;
7940   GLU_TESS_MISSING_END_CONTOUR = GLU_TESS_ERROR4;
7941   GLU_TESS_COORD_TOO_LARGE = GLU_TESS_ERROR5;
7942   GLU_TESS_NEED_COMBINE_CALLBACK = GLU_TESS_ERROR6;
7943   GLU_AUTO_LOAD_MATRIX = 100200;
7944   GLU_CULLING = 100201;
7945   GLU_SAMPLING_TOLERANCE = 100203;
7946   GLU_DISPLAY_MODE = 100204;
7947   GLU_PARAMETRIC_TOLERANCE = 100202;
7948   GLU_SAMPLING_METHOD = 100205;
7949   GLU_U_STEP = 100206;
7950   GLU_V_STEP = 100207;
7951   GLU_PATH_LENGTH = 100215;
7952   GLU_PARAMETRIC_ERROR = 100216;
7953   GLU_DOMAIN_DISTANCE = 100217;
7954   GLU_MAP1_TRIM_2 = 100210;
7955   GLU_MAP1_TRIM_3 = 100211;
7956   GLU_OUTLINE_POLYGON = 100240;
7957   GLU_OUTLINE_PATCH = 100241;
7958   GLU_NURBS_ERROR1 = 100251;
7959   GLU_NURBS_ERROR2 = 100252;
7960   GLU_NURBS_ERROR3 = 100253;
7961   GLU_NURBS_ERROR4 = 100254;
7962   GLU_NURBS_ERROR5 = 100255;
7963   GLU_NURBS_ERROR6 = 100256;
7964   GLU_NURBS_ERROR7 = 100257;
7965   GLU_NURBS_ERROR8 = 100258;
7966   GLU_NURBS_ERROR9 = 100259;
7967   GLU_NURBS_ERROR10 = 100260;
7968   GLU_NURBS_ERROR11 = 100261;
7969   GLU_NURBS_ERROR12 = 100262;
7970   GLU_NURBS_ERROR13 = 100263;
7971   GLU_NURBS_ERROR14 = 100264;
7972   GLU_NURBS_ERROR15 = 100265;
7973   GLU_NURBS_ERROR16 = 100266;
7974   GLU_NURBS_ERROR17 = 100267;
7975   GLU_NURBS_ERROR18 = 100268;
7976   GLU_NURBS_ERROR19 = 100269;
7977   GLU_NURBS_ERROR20 = 100270;
7978   GLU_NURBS_ERROR21 = 100271;
7979   GLU_NURBS_ERROR22 = 100272;
7980   GLU_NURBS_ERROR23 = 100273;
7981   GLU_NURBS_ERROR24 = 100274;
7982   GLU_NURBS_ERROR25 = 100275;
7983   GLU_NURBS_ERROR26 = 100276;
7984   GLU_NURBS_ERROR27 = 100277;
7985   GLU_NURBS_ERROR28 = 100278;
7986   GLU_NURBS_ERROR29 = 100279;
7987   GLU_NURBS_ERROR30 = 100280;
7988   GLU_NURBS_ERROR31 = 100281;
7989   GLU_NURBS_ERROR32 = 100282;
7990   GLU_NURBS_ERROR33 = 100283;
7991   GLU_NURBS_ERROR34 = 100284;
7992   GLU_NURBS_ERROR35 = 100285;
7993   GLU_NURBS_ERROR36 = 100286;
7994   GLU_NURBS_ERROR37 = 100287;
7995   GLU_CW = 100120;
7996   GLU_CCW = 100121;
7997   GLU_INTERIOR = 100122;
7998   GLU_EXTERIOR = 100123;
7999   GLU_UNKNOWN = 100124;
8000   GLU_BEGIN = GLU_TESS_BEGIN;
8001   GLU_VERTEX = GLU_TESS_VERTEX;
8002   GLU_END = GLU_TESS_END;
8003   GLU_ERROR = GLU_TESS_ERROR;
8004   GLU_EDGE_FLAG = GLU_TESS_EDGE_FLAG;
8005
8006 type
8007   // GL_VERSION_1_0
8008   TglCullFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8009   TglFrontFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8010   TglHint = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8011   TglLineWidth = procedure(width: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8012   TglPointSize = procedure(size: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8013   TglPolygonMode = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8014   TglScissor = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8015   TglTexParameterf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8016   TglTexParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8017   TglTexParameteri = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8018   TglTexParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8019   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}
8020   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}
8021   TglDrawBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8022   TglClear = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8023   TglClearColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8024   TglClearStencil = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8025   TglClearDepth = procedure(depth: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8026   TglStencilMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8027   TglColorMask = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8028   TglDepthMask = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8029   TglDisable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8030   TglEnable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8031   TglFinish = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8032   TglFlush = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8033   TglBlendFunc = procedure(sfactor: GLenum; dfactor: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8034   TglLogicOp = procedure(opcode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8035   TglStencilFunc = procedure(func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8036   TglStencilOp = procedure(fail: GLenum; zfail: GLenum; zpass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8037   TglDepthFunc = procedure(func: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8038   TglPixelStoref = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8039   TglPixelStorei = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8040   TglReadBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8041   TglReadPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8042   TglGetBooleanv = procedure(pname: GLenum; params: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8043   TglGetDoublev = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8044   TglGetError = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8045   TglGetFloatv = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8046   TglGetIntegerv = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8047   TglGetString = function(name: GLenum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8048   TglGetTexImage = procedure(target: GLenum; level: GLint; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8049   TglGetTexParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8050   TglGetTexParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8051   TglGetTexLevelParameterfv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8052   TglGetTexLevelParameteriv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8053   TglIsEnabled = function(cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8054   TglDepthRange = procedure(zNear: GLclampd; zFar: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8055   TglViewport = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8056
8057   // GL_VERSION_1_1
8058   TglDrawArrays = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8059   TglDrawElements = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8060   TglGetPointerv = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8061   TglPolygonOffset = procedure(factor: GLfloat; units: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8062   TglCopyTexImage1D = procedure(target: GLenum; level: GLint; internalFormat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8063   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}
8064   TglCopyTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8065   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}
8066   TglTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8067   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}
8068   TglBindTexture = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8069   TglDeleteTextures = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8070   TglGenTextures = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8071   
8072 {$ifdef DGL_DEPRECATED}
8073   TglAccum = procedure(op: GLenum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8074   TglAlphaFunc = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8075   TglAreTexturesResident = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8076   TglArrayElement = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8077   TglBegin = procedure(mode: GLenum); {$IFNDEF CLR}{$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}{$ENDIF}
8078   TglBitmap = procedure(width: GLsizei; height: GLsizei; xorig: GLfloat; yorig: GLfloat; xmove: GLfloat; ymove: GLfloat; const bitmap: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8079   TglCallList = procedure(list: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8080   TglCallLists = procedure(n: GLsizei; _type: GLenum; const lists: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8081   TglClearAccum = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8082   TglClearIndex = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8083   TglClipPlane = procedure(plane: GLenum; const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8084   TglColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8085   TglColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8086   TglColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8087   TglColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8088   TglColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8089   TglColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8090   TglColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8091   TglColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8092   TglColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8093   TglColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8094   TglColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8095   TglColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8096   TglColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8097   TglColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8098   TglColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8099   TglColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8100   TglColor4b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte; alpha: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8101   TglColor4bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8102   TglColor4d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble; alpha: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8103   TglColor4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8104   TglColor4f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8105   TglColor4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8106   TglColor4i = procedure(red: GLint; green: GLint; blue: GLint; alpha: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8107   TglColor4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8108   TglColor4s = procedure(red: GLshort; green: GLshort; blue: GLshort; alpha: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8109   TglColor4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8110   TglColor4ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte; alpha: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8111   TglColor4ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8112   TglColor4ui = procedure(red: GLuint; green: GLuint; blue: GLuint; alpha: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8113   TglColor4uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8114   TglColor4us = procedure(red: GLushort; green: GLushort; blue: GLushort; alpha: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8115   TglColor4usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8116   TglColorMaterial = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8117   TglColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8118   TglCopyPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; _type: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8119   TglDeleteLists = procedure(list: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8120   TglDisableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8121   TglDrawPixels = procedure(width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8122   TglEdgeFlag = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8123   TglEdgeFlagPointer = procedure(stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8124   TglEdgeFlagv = procedure(const flag: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8125   TglEnableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8126   TglEnd = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8127   TglEndList = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8128   TglEvalCoord1d = procedure(u: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8129   TglEvalCoord1dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8130   TglEvalCoord1f = procedure(u: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8131   TglEvalCoord1fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8132   TglEvalCoord2d = procedure(u: GLdouble; v: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8133   TglEvalCoord2dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8134   TglEvalCoord2f = procedure(u: GLfloat; v: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8135   TglEvalCoord2fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8136   TglEvalMesh1 = procedure(mode: GLenum; i1: GLint; i2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8137   TglEvalMesh2 = procedure(mode: GLenum; i1: GLint; i2: GLint; j1: GLint; j2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8138   TglEvalPoint1 = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8139   TglEvalPoint2 = procedure(i: GLint; j: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8140   TglFeedbackBuffer = procedure(size: GLsizei; _type: GLenum; buffer: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8141   TglFogf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8142   TglFogfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8143   TglFogi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8144   TglFogiv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8145   TglFrustum = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8146   TglGenLists = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8147   TglGetClipPlane = procedure(plane: GLenum; equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8148   TglGetLightfv = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8149   TglGetLightiv = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8150   TglGetMapdv = procedure(target: GLenum; query: GLenum; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8151   TglGetMapfv = procedure(target: GLenum; query: GLenum; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8152   TglGetMapiv = procedure(target: GLenum; query: GLenum; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8153   TglGetMaterialfv = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8154   TglGetMaterialiv = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8155   TglGetPixelMapfv = procedure(map: GLenum; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8156   TglGetPixelMapuiv = procedure(map: GLenum; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8157   TglGetPixelMapusv = procedure(map: GLenum; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8158   TglGetPolygonStipple = procedure(mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8159   TglGetTexEnvfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8160   TglGetTexEnviv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8161   TglGetTexGendv = procedure(coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8162   TglGetTexGenfv = procedure(coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8163   TglGetTexGeniv = procedure(coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8164   TglIndexMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8165   TglIndexPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8166   TglIndexd = procedure(c: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8167   TglIndexdv = procedure(const c: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8168   TglIndexf = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8169   TglIndexfv = procedure(const c: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8170   TglIndexi = procedure(c: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8171   TglIndexiv = procedure(const c: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8172   TglIndexs = procedure(c: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8173   TglIndexsv = procedure(const c: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8174   TglIndexub = procedure(c: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8175   TglIndexubv = procedure(const c: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8176   TglInitNames = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8177   TglInterleavedArrays = procedure(format: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8178   TglIsList = function(list: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8179   TglIsTexture = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8180   TglLightModelf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8181   TglLightModelfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8182   TglLightModeli = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8183   TglLightModeliv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8184   TglLightf = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8185   TglLightfv = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8186   TglLighti = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8187   TglLightiv = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8188   TglLineStipple = procedure(factor: GLint; pattern: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8189   TglListBase = procedure(base: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8190   TglLoadIdentity = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8191   TglLoadMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8192   TglLoadMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8193   TglLoadName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8194   TglMap1d = procedure(target: GLenum; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8195   TglMap1f = procedure(target: GLenum; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8196   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}
8197   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}
8198   TglMapGrid1d = procedure(un: GLint; u1: GLdouble; u2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8199   TglMapGrid1f = procedure(un: GLint; u1: GLfloat; u2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8200   TglMapGrid2d = procedure(un: GLint; u1: GLdouble; u2: GLdouble; vn: GLint; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8201   TglMapGrid2f = procedure(un: GLint; u1: GLfloat; u2: GLfloat; vn: GLint; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8202   TglMaterialf = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8203   TglMaterialfv = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8204   TglMateriali = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8205   TglMaterialiv = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8206   TglMatrixMode = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8207   TglMultMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8208   TglMultMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8209   TglNewList = procedure(list: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8210   TglNormal3b = procedure(nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8211   TglNormal3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8212   TglNormal3d = procedure(nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8213   TglNormal3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8214   TglNormal3f = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8215   TglNormal3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8216   TglNormal3i = procedure(nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8217   TglNormal3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8218   TglNormal3s = procedure(nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8219   TglNormal3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8220   TglNormalPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8221   TglOrtho = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8222   TglPassThrough = procedure(token: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8223   TglPixelMapfv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8224   TglPixelMapuiv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8225   TglPixelMapusv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8226   TglPixelTransferf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8227   TglPixelTransferi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8228   TglPixelZoom = procedure(xfactor: GLfloat; yfactor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8229   TglPolygonStipple = procedure(const mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8230   TglPopAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8231   TglPopClientAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8232   TglPopMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8233   TglPopName = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8234   TglPrioritizeTextures = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8235   TglPushAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8236   TglPushClientAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8237   TglPushMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8238   TglPushName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8239   TglRasterPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8240   TglRasterPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8241   TglRasterPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8242   TglRasterPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8243   TglRasterPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8244   TglRasterPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8245   TglRasterPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8246   TglRasterPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8247   TglRasterPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8248   TglRasterPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8249   TglRasterPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8250   TglRasterPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8251   TglRasterPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8252   TglRasterPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8253   TglRasterPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8254   TglRasterPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8255   TglRasterPos4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8256   TglRasterPos4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8257   TglRasterPos4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8258   TglRasterPos4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8259   TglRasterPos4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8260   TglRasterPos4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8261   TglRasterPos4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8262   TglRasterPos4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8263   TglRectd = procedure(x1: GLdouble; y1: GLdouble; x2: GLdouble; y2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8264   TglRectdv = procedure(const v1: PGLdouble; const v2: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8265   TglRectf = procedure(x1: GLfloat; y1: GLfloat; x2: GLfloat; y2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8266   TglRectfv = procedure(const v1: PGLfloat; const v2: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8267   TglRecti = procedure(x1: GLint; y1: GLint; x2: GLint; y2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8268   TglRectiv = procedure(const v1: PGLint; const v2: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8269   TglRects = procedure(x1: GLshort; y1: GLshort; x2: GLshort; y2: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8270   TglRectsv = procedure(const v1: PGLshort; const v2: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8271   TglRenderMode = function(mode: GLenum): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8272   TglRotated = procedure(angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8273   TglRotatef = procedure(angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8274   TglScaled = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8275   TglScalef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8276   TglSelectBuffer = procedure(size: GLsizei; buffer: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8277   TglShadeModel = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8278   TglTexCoord1d = procedure(s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8279   TglTexCoord1dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8280   TglTexCoord1f = procedure(s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8281   TglTexCoord1fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8282   TglTexCoord1i = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8283   TglTexCoord1iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8284   TglTexCoord1s = procedure(s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8285   TglTexCoord1sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8286   TglTexCoord2d = procedure(s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8287   TglTexCoord2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8288   TglTexCoord2f = procedure(s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8289   TglTexCoord2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8290   TglTexCoord2i = procedure(s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8291   TglTexCoord2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8292   TglTexCoord2s = procedure(s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8293   TglTexCoord2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8294   TglTexCoord3d = procedure(s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8295   TglTexCoord3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8296   TglTexCoord3f = procedure(s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8297   TglTexCoord3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8298   TglTexCoord3i = procedure(s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8299   TglTexCoord3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8300   TglTexCoord3s = procedure(s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8301   TglTexCoord3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8302   TglTexCoord4d = procedure(s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8303   TglTexCoord4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8304   TglTexCoord4f = procedure(s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8305   TglTexCoord4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8306   TglTexCoord4i = procedure(s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8307   TglTexCoord4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8308   TglTexCoord4s = procedure(s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8309   TglTexCoord4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8310   TglTexCoordPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8311   TglTexEnvf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8312   TglTexEnvfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8313   TglTexEnvi = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8314   TglTexEnviv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8315   TglTexGend = procedure(coord: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8316   TglTexGendv = procedure(coord: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8317   TglTexGenf = procedure(coord: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8318   TglTexGenfv = procedure(coord: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8319   TglTexGeni = procedure(coord: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8320   TglTexGeniv = procedure(coord: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8321
8322
8323   TglTranslated = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8324   TglTranslatef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8325   TglVertex2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8326   TglVertex2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8327   TglVertex2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8328   TglVertex2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8329   TglVertex2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8330   TglVertex2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8331   TglVertex2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8332   TglVertex2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8333   TglVertex3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8334   TglVertex3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8335   TglVertex3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8336   TglVertex3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8337   TglVertex3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8338   TglVertex3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8339   TglVertex3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8340   TglVertex3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8341   TglVertex4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8342   TglVertex4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8343   TglVertex4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8344   TglVertex4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8345   TglVertex4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8346   TglVertex4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8347   TglVertex4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8348   TglVertex4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8349   TglVertexPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8350 {$endif}
8351
8352   // GL_VERSION_1_2
8353   TglBlendColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8354   TglBlendEquation = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8355   TglDrawRangeElements = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8356   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}
8357   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}
8358   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}
8359 {$ifdef DGL_DEPRECATED}
8360   TglColorTable = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8361   TglColorTableParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8362   TglColorTableParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8363   TglCopyColorTable = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8364   TglGetColorTable = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8365   TglGetColorTableParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8366   TglGetColorTableParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8367   TglColorSubTable = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8368   TglCopyColorSubTable = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8369   TglConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8370   TglConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8371   TglConvolutionParameterf = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8372   TglConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8373   TglConvolutionParameteri = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8374   TglConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8375   TglCopyConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8376   TglCopyConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8377   TglGetConvolutionFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8378   TglGetConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8379   TglGetConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8380   TglGetSeparableFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8381   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}
8382   TglGetHistogram = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8383   TglGetHistogramParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8384   TglGetHistogramParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8385   TglGetMinmax = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8386   TglGetMinmaxParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8387   TglGetMinmaxParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8388   TglHistogram = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8389   TglMinmax = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8390   TglResetHistogram = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8391   TglResetMinmax = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8392 {$endif}
8393
8394   // GL_VERSION_1_3
8395   TglActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8396   TglSampleCoverage = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8397   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}
8398   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}
8399   TglCompressedTexImage1D = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8400   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}
8401   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}
8402   TglCompressedTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8403   TglGetCompressedTexImage = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8404 {$ifdef DGL_DEPRECATED}
8405   TglClientActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8406   TglMultiTexCoord1d = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8407   TglMultiTexCoord1dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8408   TglMultiTexCoord1f = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8409   TglMultiTexCoord1fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8410   TglMultiTexCoord1i = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8411   TglMultiTexCoord1iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8412   TglMultiTexCoord1s = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8413   TglMultiTexCoord1sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8414   TglMultiTexCoord2d = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8415   TglMultiTexCoord2dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8416   TglMultiTexCoord2f = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8417   TglMultiTexCoord2fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8418   TglMultiTexCoord2i = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8419   TglMultiTexCoord2iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8420   TglMultiTexCoord2s = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8421   TglMultiTexCoord2sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8422   TglMultiTexCoord3d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8423   TglMultiTexCoord3dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8424   TglMultiTexCoord3f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8425   TglMultiTexCoord3fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8426   TglMultiTexCoord3i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8427   TglMultiTexCoord3iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8428   TglMultiTexCoord3s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8429   TglMultiTexCoord3sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8430   TglMultiTexCoord4d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8431   TglMultiTexCoord4dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8432   TglMultiTexCoord4f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8433   TglMultiTexCoord4fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8434   TglMultiTexCoord4i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8435   TglMultiTexCoord4iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8436   TglMultiTexCoord4s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8437   TglMultiTexCoord4sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8438   TglLoadTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8439   TglLoadTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8440   TglMultTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8441   TglMultTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8442 {$endif}
8443
8444   // GL_VERSION_1_4
8445   TglBlendFuncSeparate = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8446   TglMultiDrawArrays = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8447   TglMultiDrawElements = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8448   TglPointParameterf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8449   TglPointParameterfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8450   TglPointParameteri = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8451   TglPointParameteriv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8452 {$ifdef DGL_DEPRECATED}
8453   TglFogCoordf = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8454   TglFogCoordfv = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8455   TglFogCoordd = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8456   TglFogCoorddv = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8457   TglFogCoordPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8458   TglSecondaryColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8459   TglSecondaryColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8460   TglSecondaryColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8461   TglSecondaryColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8462   TglSecondaryColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8463   TglSecondaryColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8464   TglSecondaryColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8465   TglSecondaryColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8466   TglSecondaryColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8467   TglSecondaryColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8468   TglSecondaryColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8469   TglSecondaryColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8470   TglSecondaryColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8471   TglSecondaryColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8472   TglSecondaryColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8473   TglSecondaryColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8474   TglSecondaryColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8475   TglWindowPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8476   TglWindowPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8477   TglWindowPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8478   TglWindowPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8479   TglWindowPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8480   TglWindowPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8481   TglWindowPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8482   TglWindowPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8483   TglWindowPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8484   TglWindowPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8485   TglWindowPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8486   TglWindowPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8487   TglWindowPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8488   TglWindowPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8489   TglWindowPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8490   TglWindowPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8491 {$endif}
8492
8493   // GL_VERSION_1_5
8494   TglGenQueries = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8495   TglDeleteQueries = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8496   TglIsQuery = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8497   TglBeginQuery = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8498   TglEndQuery = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8499   TglGetQueryiv = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8500   TglGetQueryObjectiv = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8501   TglGetQueryObjectuiv = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8502   TglBindBuffer = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8503   TglDeleteBuffers = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8504   TglGenBuffers = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8505   TglIsBuffer = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8506   TglBufferData = procedure(target: GLenum; size: GLsizeiptr; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8507   TglBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8508   TglGetBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8509   TglMapBuffer = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8510   TglUnmapBuffer = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8511   TglGetBufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8512   TglGetBufferPointerv = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8513
8514   // GL_VERSION_2_0
8515   TglBlendEquationSeparate = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8516   TglDrawBuffers = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8517   TglStencilOpSeparate = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8518   TglStencilFuncSeparate = procedure(face: GLenum; func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8519   TglStencilMaskSeparate = procedure(face: GLenum; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8520   TglAttachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8521   TglBindAttribLocation = procedure(programObj: GLhandle; index: GLuint; name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8522   TglCompileShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8523   TglCreateProgram = function: GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8524   TglCreateShader = function(shaderType: GLenum): GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8525   TglDeleteProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8526   TglDeleteShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8527   TglDetachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8528   TglDisableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8529   TglEnableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8530   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}
8531   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}
8532   TglGetAttachedShaders = procedure(programObj: GLhandle; MaxCount: GLsizei; var Count: GLint; shaders: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8533   TglGetAttribLocation = function(programObj: GLhandle; char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8534   TglGetProgramiv = procedure(programObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8535   TglGetProgramInfoLog = procedure(programObj: GLHandle; maxLength: glsizei; length: PGLsizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8536   TglGetShaderiv = procedure(shaderObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8537   TglGetShaderInfoLog = procedure(shaderObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8538   TglGetShaderSource = procedure(shaderObj: GLhandle; maxlength: GLsizei; var length: GLsizei; source: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8539   TglGetUniformLocation = function(programObj: GLhandle; const char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8540   TglGetUniformfv = procedure(programObj: GLhandle; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8541   TglGetUniformiv = procedure(programObj: GLhandle; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8542   TglGetVertexAttribfv = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8543   TglGetVertexAttribiv = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8544   TglGetVertexAttribPointerv = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8545   TglIsProgram = function(programObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8546   TglIsShader = function(shaderObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8547   TglLinkProgram = procedure(programObj: GLHandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8548   TglShaderSource = procedure(shaderObj: GLHandle; count: glsizei; const _string: PPGLChar; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8549   TglUseProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8550   TglUniform1f = procedure(location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8551   TglUniform2f = procedure(location: GLint; v0, v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8552   TglUniform3f = procedure(location: GLint; v0, v1, v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8553   TglUniform4f = procedure(location: GLint; v0, v1, v2, v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8554   TglUniform1i = procedure(location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8555   TglUniform2i = procedure(location: GLint; v0, v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8556   TglUniform3i = procedure(location: GLint; v0, v1, v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8557   TglUniform4i = procedure(location: GLint; v0, v1, v2, v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8558   TglUniform1fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8559   TglUniform2fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8560   TglUniform3fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8561   TglUniform4fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8562   TglUniform1iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8563   TglUniform2iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8564   TglUniform3iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8565   TglUniform4iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8566   TglUniformMatrix2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8567   TglUniformMatrix3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8568   TglUniformMatrix4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8569   TglValidateProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8570   TglVertexAttrib1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8571   TglVertexAttrib1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8572   TglVertexAttrib1f = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8573   TglVertexAttrib1fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8574   TglVertexAttrib1s = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8575   TglVertexAttrib1sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8576   TglVertexAttrib2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8577   TglVertexAttrib2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8578   TglVertexAttrib2f = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8579   TglVertexAttrib2fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8580   TglVertexAttrib2s = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8581   TglVertexAttrib2sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8582   TglVertexAttrib3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8583   TglVertexAttrib3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8584   TglVertexAttrib3f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8585   TglVertexAttrib3fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8586   TglVertexAttrib3s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8587   TglVertexAttrib3sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8588   TglVertexAttrib4Nbv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8589   TglVertexAttrib4Niv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8590   TglVertexAttrib4Nsv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8591   TglVertexAttrib4Nub = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8592   TglVertexAttrib4Nubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8593   TglVertexAttrib4Nuiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8594   TglVertexAttrib4Nusv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8595   TglVertexAttrib4bv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8596   TglVertexAttrib4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8597   TglVertexAttrib4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8598   TglVertexAttrib4f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8599   TglVertexAttrib4fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8600   TglVertexAttrib4iv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8601   TglVertexAttrib4s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8602   TglVertexAttrib4sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8603   TglVertexAttrib4ubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8604   TglVertexAttrib4uiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8605   TglVertexAttrib4usv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8606   TglVertexAttribPointer = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8607
8608   // GL_VERSION_2_1
8609   TglUniformMatrix2x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8610   TglUniformMatrix3x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8611   TglUniformMatrix2x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8612   TglUniformMatrix4x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8613   TglUniformMatrix3x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8614   TglUniformMatrix4x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8615
8616   // GL_VERSION_3_0
8617   { OpenGL 3.0 also reuses entry points from these extensions: }
8618   { ARB_framebuffer_object }
8619   { ARB_map_buffer_range }
8620   { ARB_vertex_array_object }
8621   TglColorMaski = procedure(index_: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8622   TglGetBooleani_v = procedure(target: GLenum; index_: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8623   TglGetIntegeri_v = procedure(target: GLenum; index_: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8624   TglEnablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8625   TglDisablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8626   TglIsEnabledi = function(target: GLenum; index_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8627   TglBeginTransformFeedback = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8628   TglEndTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8629   TglBindBufferRange = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8630   TglBindBufferBase = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8631   TglTransformFeedbackVaryings = procedure(program_: GLuint; count: GLsizei; const varyings: PPGLchar; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8632   TglGetTransformFeedbackVarying = procedure(program_: GLuint; index_: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; type_: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8633   TglClampColor = procedure(targe: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8634   TglBeginConditionalRender = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8635   TglEndConditionalRender = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8636   TglVertexAttribIPointer = procedure(index_: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8637   TglGetVertexAttribIiv = procedure(index_: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8638   TglGetVertexAttribIuiv = procedure(index_: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8639   TglVertexAttribI1i = procedure(index_: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8640   TglVertexAttribI2i = procedure(index_: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8641   TglVertexAttribI3i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8642   TglVertexAttribI4i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8643   TglVertexAttribI1ui = procedure(index_: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8644   TglVertexAttribI2ui = procedure(index_: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8645   TglVertexAttribI3ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8646   TglVertexAttribI4ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8647   TglVertexAttribI1iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8648   TglVertexAttribI2iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8649   TglVertexAttribI3iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8650   TglVertexAttribI4iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8651   TglVertexAttribI1uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8652   TglVertexAttribI2uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8653   TglVertexAttribI3uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8654   TglVertexAttribI4uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8655   TglVertexAttribI4bv = procedure(index_: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8656   TglVertexAttribI4sv = procedure(index_: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8657   TglVertexAttribI4ubv = procedure(index_: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8658   TglVertexAttribI4usv = procedure(index_: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8659   TglGetUniformuiv = procedure(program_: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8660   TglBindFragDataLocation = procedure(program_: GLuint; color: GLuint; const name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8661   TglGetFragDataLocation = function(program_: GLuint; const name: PGLChar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8662   TglUniform1ui = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8663   TglUniform2ui = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8664   TglUniform3ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8665   TglUniform4ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8666   TglUniform1uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8667   TglUniform2uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8668   TglUniform3uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8669   TglUniform4uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8670   TglTexParameterIiv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8671   TglTexParameterIuiv = procedure(target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8672   TglGetTexParameterIiv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8673   TglGetTexParameterIuiv = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8674   TglClearBufferiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8675   TglClearBufferuiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8676   TglClearBufferfv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8677   TglClearBufferfi = procedure(buffer: GLenum; drawbuffer: GLint; depth: GLfloat; stencil: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8678   TglGetStringi = function(name: GLenum; index: GLuint): PGLubyte; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8679
8680   // GL_VERSION_2_1
8681   TglEnableVertexArrayEXT = procedure(vaobj: GLuint; array_: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8682   TglEnableVertexArrayAttribEXT = procedure(vaobj: GLuint; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8683   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}
8684
8685   // GL_VERSION_3_1
8686   { OpenGL 3.1 also reuses entry points from these extensions: }
8687   { ARB_copy_buffer }
8688   { ARB_uniform_buffer_object }
8689   TglDrawArraysInstanced = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8690   TglDrawElementsInstanced = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8691   TglTexBuffer = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8692   TglPrimitiveRestartIndex = procedure(index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8693
8694   // GL_VERSION_3_2
8695   { OpenGL 3.2 also reuses entry points from these extensions: }
8696   { ARB_draw_elements_base_vertex }
8697   { ARB_provoking_vertex }
8698   { ARB_sync }
8699   { ARB_texture_multisample }
8700   TglGetInteger64i_v = procedure(target: GLenum; index_: GLuint; data: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8701   TglGetBufferParameteri64v = procedure(target: GLenum; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8702   TglFramebufferTexture = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8703 //  TglFramebufferTextureFace = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8704
8705   // GL_VERSION_3_3
8706   { OpenGL 3.3 also reuses entry points from these extensions: }
8707   { ARB_blend_func_extended }
8708   { ARB_sampler_objects }
8709   { ARB_explicit_attrib_location, but it has none }
8710   { ARB_occlusion_query2 (no entry points) }
8711   { ARB_shader_bit_encoding (no entry points) }
8712   { ARB_texture_rgb10_a2ui (no entry points) }
8713   { ARB_texture_swizzle (no entry points) }
8714   { ARB_timer_query }
8715   { ARB_vertex_type_2_10_10_10_rev }
8716   TglVertexAttribDivisor = procedure(index: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8717   
8718   // GL_VERSION_4_0
8719   { OpenGL 4.0 also reuses entry points from these extensions: }
8720   { ARB_texture_query_lod (no entry points) }
8721   { ARB_draw_indirect }
8722   { ARB_gpu_shader5 (no entry points) }
8723   { ARB_gpu_shader_fp64 }
8724   { ARB_shader_subroutine }
8725   { ARB_tessellation_shader }
8726   { ARB_texture_buffer_object_rgb32 (no entry points) }
8727   { ARB_texture_cube_map_array (no entry points) }
8728   { ARB_texture_gather (no entry points) }
8729   { ARB_transform_feedback2 }
8730   { ARB_transform_feedback3 }
8731   TglMinSampleShading = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8732   TglBlendEquationi = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8733   TglBlendEquationSeparatei = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8734   TglBlendFunci = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8735   TglBlendFuncSeparatei = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8736
8737   // GL_VERSION_4_1
8738   { OpenGL 4.1 also reuses entry points from these extensions: }
8739   { ARB_ES2_compatibility }
8740   { ARB_get_program_binary }
8741   { ARB_separate_shader_objects }
8742   { ARB_shader_precision (no entry points) }
8743   { ARB_vertex_attrib_64bit }
8744   { ARB_viewport_array }
8745
8746   // GL_3DFX_tbuffer
8747   TglTbufferMask3DFX = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8748
8749   // GL_APPLE_element_array
8750   TglElementPointerAPPLE = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8751   TglDrawElementArrayAPPLE = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8752   TglDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8753   TglMultiDrawElementArrayAPPLE = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8754   TglMultiDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8755
8756   // GL_APPLE_fence
8757   TglGenFencesAPPLE = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8758   TglDeleteFencesAPPLE = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8759   TglSetFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8760   TglIsFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8761   TglTestFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8762   TglFinishFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8763   TglTestObjectAPPLE = function(_object: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8764   TglFinishObjectAPPLE = procedure(_object: GLenum; name: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8765
8766   // GL_APPLE_vertex_array_object
8767   TglBindVertexArrayAPPLE = procedure(_array: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8768   TglDeleteVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8769   TglGenVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8770   TglIsVertexArrayAPPLE = function(_array: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8771
8772   // GL_APPLE_vertex_array_range
8773   TglVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8774   TglFlushVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8775   TglVertexArrayParameteriAPPLE = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8776
8777   // GL_APPLE_texture_range
8778   TglTextureRangeAPPLE = procedure(target: GLenum; length: GLsizei; const Pointer_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8779   TglGetTexParameterPointervAPPLE = procedure(target: GLenum; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8780
8781   // GL_APPLE_vertex_program_evaluators
8782   TglEnableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8783   TglDisableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8784   TglIsVertexAttribEnabledAPPLE = function(index_: GLuint; pname: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8785   TglMapVertexAttrib1dAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8786   TglMapVertexAttrib1fAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8787   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}
8788   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}
8789
8790   // GL_APPLE_object_purgeable
8791   TglObjectPurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8792   TglObjectUnpurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8793   TglGetObjectParameterivAPPLE = procedure(objectType: GLenum; name: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8794
8795   // GL_ARB_matrix_palette
8796   TglCurrentPaletteMatrixARB = procedure(index: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8797   TglMatrixIndexubvARB = procedure(size: GLint; const indices: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8798   TglMatrixIndexusvARB = procedure(size: GLint; const indices: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8799   TglMatrixIndexuivARB = procedure(size: GLint; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8800   TglMatrixIndexPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8801
8802   // GL_ARB_multisample
8803   TglSampleCoverageARB = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8804
8805   // GL_ARB_multitexture
8806   TglActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8807   TglClientActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8808   TglMultiTexCoord1dARB = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8809   TglMultiTexCoord1dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8810   TglMultiTexCoord1fARB = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8811   TglMultiTexCoord1fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8812   TglMultiTexCoord1iARB = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8813   TglMultiTexCoord1ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8814   TglMultiTexCoord1sARB = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8815   TglMultiTexCoord1svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8816   TglMultiTexCoord2dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8817   TglMultiTexCoord2dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8818   TglMultiTexCoord2fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8819   TglMultiTexCoord2fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8820   TglMultiTexCoord2iARB = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8821   TglMultiTexCoord2ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8822   TglMultiTexCoord2sARB = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8823   TglMultiTexCoord2svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8824   TglMultiTexCoord3dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8825   TglMultiTexCoord3dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8826   TglMultiTexCoord3fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8827   TglMultiTexCoord3fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8828   TglMultiTexCoord3iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8829   TglMultiTexCoord3ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8830   TglMultiTexCoord3sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8831   TglMultiTexCoord3svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8832   TglMultiTexCoord4dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8833   TglMultiTexCoord4dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8834   TglMultiTexCoord4fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8835   TglMultiTexCoord4fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8836   TglMultiTexCoord4iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8837   TglMultiTexCoord4ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8838   TglMultiTexCoord4sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8839   TglMultiTexCoord4svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8840
8841   // GL_ARB_point_parameters
8842   TglPointParameterfARB = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8843   TglPointParameterfvARB = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8844
8845   // GL_ARB_texture_compression
8846   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}
8847   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}
8848   TglCompressedTexImage1DARB = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8849   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}
8850   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}
8851   TglCompressedTexSubImage1DARB = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8852   TglGetCompressedTexImageARB = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8853
8854   // GL_ARB_transpose_matrix
8855   TglLoadTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8856   TglLoadTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8857   TglMultTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8858   TglMultTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8859
8860   // GL_ARB_vertex_blend
8861   TglWeightbvARB = procedure(size: GLint; const weights: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8862   TglWeightsvARB = procedure(size: GLint; const weights: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8863   TglWeightivARB = procedure(size: GLint; const weights: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8864   TglWeightfvARB = procedure(size: GLint; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8865   TglWeightdvARB = procedure(size: GLint; const weights: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8866   TglWeightubvARB = procedure(size: GLint; const weights: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8867   TglWeightusvARB = procedure(size: GLint; const weights: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8868   TglWeightuivARB = procedure(size: GLint; const weights: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8869   TglWeightPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8870   TglVertexBlendARB = procedure(count: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8871
8872   // GL_ARB_vertex_buffer_object
8873   TglBindBufferARB = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8874   TglDeleteBuffersARB = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8875   TglGenBuffersARB = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8876   TglIsBufferARB = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8877   TglBufferDataARB = procedure(target: GLenum; size: GLsizeiptrARB; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8878   TglBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8879   TglGetBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8880   TglMapBufferARB = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8881   TglUnmapBufferARB = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8882   TglGetBufferParameterivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8883   TglGetBufferPointervARB = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8884
8885   // GL_ARB_vertex_program
8886   TglVertexAttrib1dARB = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8887   TglVertexAttrib1dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8888   TglVertexAttrib1fARB = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8889   TglVertexAttrib1fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8890   TglVertexAttrib1sARB = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8891   TglVertexAttrib1svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8892   TglVertexAttrib2dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8893   TglVertexAttrib2dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8894   TglVertexAttrib2fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8895   TglVertexAttrib2fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8896   TglVertexAttrib2sARB = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8897   TglVertexAttrib2svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8898   TglVertexAttrib3dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8899   TglVertexAttrib3dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8900   TglVertexAttrib3fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8901   TglVertexAttrib3fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8902   TglVertexAttrib3sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8903   TglVertexAttrib3svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8904   TglVertexAttrib4NbvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8905   TglVertexAttrib4NivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8906   TglVertexAttrib4NsvARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8907   TglVertexAttrib4NubARB = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8908   TglVertexAttrib4NubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8909   TglVertexAttrib4NuivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8910   TglVertexAttrib4NusvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8911   TglVertexAttrib4bvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8912   TglVertexAttrib4dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8913   TglVertexAttrib4dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8914   TglVertexAttrib4fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8915   TglVertexAttrib4fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8916   TglVertexAttrib4ivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8917   TglVertexAttrib4sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8918   TglVertexAttrib4svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8919   TglVertexAttrib4ubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8920   TglVertexAttrib4uivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8921   TglVertexAttrib4usvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8922   TglVertexAttribPointerARB = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8923   TglEnableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8924   TglDisableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8925   TglProgramStringARB = procedure(target: GLenum; format: GLenum; len: GLsizei; const _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8926   TglBindProgramARB = procedure(target: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8927   TglDeleteProgramsARB = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8928   TglGenProgramsARB = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8929   TglProgramEnvParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8930   TglProgramEnvParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8931   TglProgramEnvParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8932   TglProgramEnvParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8933   TglProgramLocalParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8934   TglProgramLocalParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8935   TglProgramLocalParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8936   TglProgramLocalParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8937   TglGetProgramEnvParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8938   TglGetProgramEnvParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8939   TglGetProgramLocalParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8940   TglGetProgramLocalParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8941   TglGetProgramivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8942   TglGetProgramStringARB = procedure(target: GLenum; pname: GLenum; _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8943   TglGetVertexAttribdvARB = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8944   TglGetVertexAttribfvARB = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8945   TglGetVertexAttribivARB = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8946   TglGetVertexAttribPointervARB = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8947   TglIsProgramARB = function(_program: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8948
8949   // GL_ARB_window_pos
8950   TglWindowPos2dARB = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8951   TglWindowPos2dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8952   TglWindowPos2fARB = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8953   TglWindowPos2fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8954   TglWindowPos2iARB = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8955   TglWindowPos2ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8956   TglWindowPos2sARB = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8957   TglWindowPos2svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8958   TglWindowPos3dARB = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8959   TglWindowPos3dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8960   TglWindowPos3fARB = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8961   TglWindowPos3fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8962   TglWindowPos3iARB = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8963   TglWindowPos3ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8964   TglWindowPos3sARB = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8965   TglWindowPos3svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8966
8967   // GL_ARB_draw_buffers
8968   TglDrawBuffersARB = procedure(n: GLsizei; bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8969
8970   // GL_ARB_color_buffer_float
8971   TglClampColorARB = procedure(target: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8972
8973   // GL_ARB_vertex_shader
8974   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}
8975   TglGetAttribLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8976   TglBindAttribLocationARB = procedure(programObj: GLhandleARB; index: GLuint; const name: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8977
8978   // GL_ARB_shader_objects
8979   TglDeleteObjectARB = procedure(Obj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8980   TglGetHandleARB = function(pname: GlEnum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8981   TglDetachObjectARB = procedure(container, attached: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8982   TglCreateShaderObjectARB = function(shaderType: glenum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8983   TglShaderSourceARB = procedure(shaderObj: GLHandleARB; count: glsizei; const _string: PPGLCharARB; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8984   TglCompileShaderARB = procedure(shaderObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8985   TglCreateProgramObjectARB = function: GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8986   TglAttachObjectARB = procedure(programObj, shaderObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8987   TglLinkProgramARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8988   TglUseProgramObjectARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8989   TglValidateProgramARB = procedure(programObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8990   TglUniform1fARB = procedure(location: glint; v0: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8991   TglUniform2fARB = procedure(location: glint; v0, v1: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8992   TglUniform3fARB = procedure(location: glint; v0, v1, v2: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8993   TglUniform4fARB = procedure(location: glint; v0, v1, v2, v3: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8994   TglUniform1iARB = procedure(location: glint; v0: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8995   TglUniform2iARB = procedure(location: glint; v0, v1: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8996   TglUniform3iARB = procedure(location: glint; v0, v1, v2: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8997   TglUniform4iARB = procedure(location: glint; v0, v1, v2, v3: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8998   TglUniform1fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8999   TglUniform2fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9000   TglUniform3fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9001   TglUniform4fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9002   TglUniform1ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9003   TglUniform2ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9004   TglUniform3ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9005   TglUniform4ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9006   TglUniformMatrix2fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9007   TglUniformMatrix3fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9008   TglUniformMatrix4fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9009   TglGetObjectParameterfvARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9010   TglGetObjectParameterivARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9011   TglGetInfoLogARB = procedure(shaderObj: GLHandleARB; maxLength: glsizei; var length: glint; infoLog: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9012   TglGetAttachedObjectsARB = procedure(programobj: GLhandleARB; maxCount: GLsizei; var count: GLsizei; objects: PGLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9013   TglGetUniformLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9014   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}
9015   TglGetUniformfvARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9016   TglGetUniformivARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9017   TglGetShaderSourceARB = procedure(shader: GLhandleARB; maxLength: GLsizei; var length: GLsizei; source: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9018
9019   // GL_ARB_Occlusion_Query
9020   TglGenQueriesARB = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9021   TglDeleteQueriesARB = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9022   TglIsQueryARB = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9023   TglBeginQueryARB = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9024   TglEndQueryARB = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9025   TglGetQueryivARB = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9026   TglGetQueryObjectivARB = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9027   TglGetQueryObjectuivARB = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9028
9029   // GL_ARB_draw_instanced
9030   TglDrawArraysInstancedARB = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9031   TglDrawElementsInstancedARB = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9032
9033   // GL_ARB_framebuffer_object
9034   TglIsRenderbuffer = function(renderbuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9035   TglBindRenderbuffer = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9036   TglDeleteRenderbuffers = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9037   TglGenRenderbuffers = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9038   TglRenderbufferStorage = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9039   TglGetRenderbufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9040   TglIsFramebuffer = function(framebuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9041   TglBindFramebuffer = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9042   TglDeleteFramebuffers = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9043   TglGenFramebuffers = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9044   TglCheckFramebufferStatus = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9045   TglFramebufferTexture1D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9046   TglFramebufferTexture2D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9047   TglFramebufferTexture3D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9048   TglFramebufferRenderbuffer = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9049   TglGetFramebufferAttachmentParameteriv = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9050   TglGenerateMipmap = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9051   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}
9052   TglRenderbufferStorageMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9053   TglFramebufferTextureLayer = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9054
9055   // GL_ARB_geometry_shader4
9056   TglProgramParameteriARB = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9057   TglFramebufferTextureARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9058   TglFramebufferTextureLayerARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9059   TglFramebufferTextureFaceARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9060
9061   // GL_ARB_instanced_arrays
9062   TglVertexAttribDivisorARB = procedure(index_: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9063
9064   // GL_ARB_map_buffer_range
9065   TglMapBufferRange = function(target: GLenum; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9066   TglFlushMappedBufferRange = procedure(target: GLenum; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9067
9068   // GL_ARB_texture_buffer_object
9069   TglTexBufferARB = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9070
9071   // GL_ARB_vertex_array_object
9072   TglBindVertexArray = procedure(array_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9073   TglDeleteVertexArrays = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9074   TglGenVertexArrays = procedure(n: GLsizei; arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9075   TglIsVertexArray = function(array_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9076
9077   // GL_ARB_uniform_buffer_object
9078   TglGetUniformIndices = procedure(program_: GLuint; uniformCount: GLsizei; const uniformNames: PPGLchar; uniformIndices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9079   TglGetActiveUniformsiv = procedure(program_: GLuint; uniformCount: GLsizei; const uniformIndices: PGLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9080   TglGetActiveUniformName = procedure(program_: GLuint; uniformIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9081   TglGetUniformBlockIndex = function(program_: GLuint; const uniformBlockName: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9082   TglGetActiveUniformBlockiv = procedure(program_: GLuint; uniformBlockIndex: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9083   TglGetActiveUniformBlockName = procedure(program_: GLuint; uniformBlockIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformBlockName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9084   TglUniformBlockBinding = procedure(program_: GLuint; uniformBlockIndex: GLuint; uniformBlockBinding: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9085
9086   // GL_ARB_copy_buffer
9087   TglCopyBufferSubData = procedure(readTarget: GLenum; writeTarget: GLenum; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9088
9089   // GL_ARB_draw_elements_base_vertex
9090   TglDrawElementsBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9091   TglDrawRangeElementsBaseVertex = procedure(mode: GLenum; start: GLuint; end_: GLuint; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9092   TglDrawElementsInstancedBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9093   TglMultiDrawElementsBaseVertex = procedure(mode: GLenum; const count: PGLsizei; type_: GLenum; const indices: PPGLvoid; primcount: GLsizei; const basevertex: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9094
9095   // GL_ARB_provoking_vertex
9096   TglProvokingVertex = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9097
9098   // GL_ARB_sync
9099   TglFenceSync = function(condition: GLenum; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9100   TglIsSync = function(sync: GLsync): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9101   TglDeleteSync = procedure(sync: GLsync); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9102   TglClientWaitSync = function(sync: GLsync; flags: GLbitfield; timeout: GLuint64): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9103   TglWaitSync = procedure(sync: GLsync; flags: GLbitfield; timeout: GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9104   TglGetInteger64v = procedure(pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9105   TglGetSynciv = procedure(sync: GLsync; pname: GLenum; butSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9106
9107   // GL_ARB_texture_multisample
9108   TglTexImage2DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9109   TglTexImage3DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9110   TglGetMultisamplefv = procedure(pname: GLenum; index_: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9111   TglSampleMaski = procedure(index_: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9112
9113   // GL_ARB_draw_buffers_blend
9114   TglBlendEquationiARB = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9115   TglBlendEquationSeparateiARB = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9116   TglBlendFunciARB = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9117   TglBlendFuncSeparateiARB = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9118
9119   // GL_ARB_sample_shading
9120   TglMinSampleShadingARB = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9121
9122   // GL_ARB_shading_language_include
9123   TglNamedStringARB = procedure(type_: GLenum; namelen: GLint; const name: PGLchar; stringlen: GLint; const string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9124   TglDeleteNamedStringARB = procedure(namelen: GLint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9125   TglCompileShaderIncludeARB = procedure (shader: GLuint; count: GLsizei; const path: PPGLchar; const length: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9126   TglIsNamedStringARB = function(namelen: GLint; const name: PGLchar): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9127   TglGetNamedStringARB = procedure(namelen: GLint; const name: PGLchar; bufSize: GLsizei; stringlen: GLint; string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9128   TglGetNamedStringivARB = procedure(namelen: GLint; const name: PGLchar; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9129
9130   // GL_ARB_blend_func_extended
9131   TglBindFragDataLocationIndexed = procedure(program_: GLuint; colorNumber: GLuint; index: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9132   TglGetFragDataIndex = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9133
9134   // GL_ARB_sampler_objects
9135   TglGenSamplers = procedure(count: GLsizei; samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9136   TglDeleteSamplers = procedure(count: GLsizei; const samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9137   TglIsSampler = function(sampler: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9138   TglBindSampler = procedure(unit_: GLuint; sampler: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9139   TglSamplerParameteri = procedure(sampler: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9140   TglSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9141   TglSamplerParameterf = procedure(sampler: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9142   TglSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9143   TglSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9144   TglSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9145   TglGetSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9146   TglGetSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9147   TglGetSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9148   TglGetSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9149
9150   // GL_ARB_timer_query
9151   TglQueryCounter = procedure(id: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9152   TglGetQueryObjecti64v = procedure(id: GLuint; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9153   TglGetQueryObjectui64v = procedure(id: GLuint; pname: GLenum; params: PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9154
9155   // GL_ARB_vertex_type_2_10_10_10_rev
9156   TglVertexP2ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9157   TglVertexP2uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9158   TglVertexP3ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9159   TglVertexP3uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9160   TglVertexP4ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9161   TglVertexP4uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9162   TglTexCoordP1ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9163   TglTexCoordP1uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9164   TglTexCoordP2ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9165   TglTexCoordP2uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9166   TglTexCoordP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9167   TglTexCoordP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9168   TglTexCoordP4ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9169   TglTexCoordP4uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9170   TglMultiTexCoordP1ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9171   TglMultiTexCoordP1uiv = procedure(texture: GLenum; type_: GLenum; const coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9172   TglMultiTexCoordP2ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9173   TglMultiTexCoordP2uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9174   TglMultiTexCoordP3ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9175   TglMultiTexCoordP3uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9176   TglMultiTexCoordP4ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9177   TglMultiTexCoordP4uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9178   TglNormalP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9179   TglNormalP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9180   TglColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9181   TglColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9182   TglColorP4ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9183   TglColorP4uiv = procedure(type_: GLenum; const color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9184   TglSecondaryColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9185   TglSecondaryColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9186   TglVertexAttribP1ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9187   TglVertexAttribP1uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9188   TglVertexAttribP2ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9189   TglVertexAttribP2uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9190   TglVertexAttribP3ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9191   TglVertexAttribP3uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9192   TglVertexAttribP4ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9193   TglVertexAttribP4uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9194
9195   // GL_ARB_draw_indirect
9196   TglDrawArraysIndirect = procedure(mode: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9197   TglDrawElementsIndirect = procedure(mode: GLenum; type_: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9198
9199   // GL_ARB_gpu_shader_fp64
9200   TglUniform1d = procedure(location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9201   TglUniform2d = procedure(location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9202   TglUniform3d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9203   TglUniform4d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9204   TglUniform1dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9205   TglUniform2dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9206   TglUniform3dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9207   TglUniform4dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9208   TglUniformMatrix2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9209   TglUniformMatrix3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9210   TglUniformMatrix4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9211   TglUniformMatrix2x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9212   TglUniformMatrix2x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9213   TglUniformMatrix3x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9214   TglUniformMatrix3x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9215   TglUniformMatrix4x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9216   TglUniformMatrix4x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9217   TglGetUniformdv = procedure(program_: GLuint; location: GLint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9218
9219   // GL_ARB_shader_subroutine
9220   TglGetSubroutineUniformLocation = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9221   TglGetSubroutineIndex = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9222   TglGetActiveSubroutineUniformiv = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9223   TglGetActiveSubroutineUniformName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9224   TglGetActiveSubroutineName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9225   TglUniformSubroutinesuiv = procedure(shadertype: GLenum; count: GLsizei; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9226   TglGetUniformSubroutineuiv = procedure(shadertype: GLenum; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9227   TglGetProgramStageiv = procedure(program_: GLuint; shadertype: GLenum; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9228
9229   // GL_ARB_tessellation_shader
9230   TglPatchParameteri = procedure(pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9231   TglPatchParameterfv = procedure(pname: GLenum; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9232
9233   // GL_ARB_transform_feedback2
9234   TglBindTransformFeedback = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9235   TglDeleteTransformFeedbacks = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9236   TglGenTransformFeedbacks = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9237   TglIsTransformFeedback = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9238   TglPauseTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9239   TglResumeTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9240   TglDrawTransformFeedback = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9241
9242   // GL_ARB_transform_feedback3
9243   TglDrawTransformFeedbackStream = procedure(mode: GLenum; id: GLuint; stream: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9244   TglBeginQueryIndexed = procedure(target: GLenum; index: GLuint; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9245   TglEndQueryIndexed = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9246   TglGetQueryIndexediv = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9247
9248   // GL_ARB_ES2_compatibility
9249   TglReleaseShaderCompiler = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9250   TglShaderBinary = procedure(count: GLsizei; const shaders: PGLuint; binaryformat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9251   TglGetShaderPrecisionFormat = procedure(shadertype: GLenum; precisiontype: GLenum; range: PGLint; precision: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9252   TglDepthRangef = procedure(n: GLclampf; f: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9253   TglClearDepthf = procedure(d: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9254
9255   // GL_ARB_get_program_binary
9256   TglGetProgramBinary = procedure(program_: GLuint; bufSize: GLsizei; length: PGLsizei; binaryFormat: PGLenum; binary: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9257   TglProgramBinary = procedure(program_: GLuint; binaryFormat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9258   TglProgramParameteri = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9259   
9260   // GL_ARB_separate_shader_objects
9261   TglUseProgramStages = procedure(pipeline: GLuint; stages: GLbitfield; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9262   TglActiveShaderProgram = procedure(pipeline: GLuint; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9263   TglCreateShaderProgramv = function(type_: GLenum; count: GLsizei; const strings: PPGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9264   TglBindProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9265   TglDeleteProgramPipelines = procedure(n: GLsizei; const pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9266   TglGenProgramPipelines = procedure(n: GLsizei; pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9267   TglIsProgramPipeline = function(pipeline: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9268   TglGetProgramPipelineiv = procedure(pipeline: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9269   TglProgramUniform1i = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9270   TglProgramUniform1iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9271   TglProgramUniform1f = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9272   TglProgramUniform1fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9273   TglProgramUniform1d = procedure(program_: GLuint; location: GLint; v0: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9274   TglProgramUniform1dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9275   TglProgramUniform1ui = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9276   TglProgramUniform1uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9277   TglProgramUniform2i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9278   TglProgramUniform2iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9279   TglProgramUniform2f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9280   TglProgramUniform2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9281   TglProgramUniform2d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9282   TglProgramUniform2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9283   TglProgramUniform2ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9284   TglProgramUniform2uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9285   TglProgramUniform3i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9286   TglProgramUniform3iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9287   TglProgramUniform3f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9288   TglProgramUniform3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9289   TglProgramUniform3d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9290   TglProgramUniform3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9291   TglProgramUniform3ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9292   TglProgramUniform3uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9293   TglProgramUniform4i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9294   TglProgramUniform4iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9295   TglProgramUniform4f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9296   TglProgramUniform4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9297   TglProgramUniform4d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble; v3: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9298   TglProgramUniform4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9299   TglProgramUniform4ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9300   TglProgramUniform4uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9301   TglProgramUniformMatrix2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9302   TglProgramUniformMatrix3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9303   TglProgramUniformMatrix4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9304   TglProgramUniformMatrix2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9305   TglProgramUniformMatrix3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9306   TglProgramUniformMatrix4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9307   TglProgramUniformMatrix2x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9308   TglProgramUniformMatrix3x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9309   TglProgramUniformMatrix2x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9310   TglProgramUniformMatrix4x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9311   TglProgramUniformMatrix3x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9312   TglProgramUniformMatrix4x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9313   TglProgramUniformMatrix2x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9314   TglProgramUniformMatrix3x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9315   TglProgramUniformMatrix2x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9316   TglProgramUniformMatrix4x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9317   TglProgramUniformMatrix3x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9318   TglProgramUniformMatrix4x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9319   TglValidateProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9320   TglGetProgramPipelineInfoLog = procedure(pipeline: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9321
9322   // GL_ARB_vertex_attrib_64bit
9323   TglVertexAttribL1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9324   TglVertexAttribL2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9325   TglVertexAttribL3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9326   TglVertexAttribL4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9327   TglVertexAttribL1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9328   TglVertexAttribL2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9329   TglVertexAttribL3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9330   TglVertexAttribL4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9331   TglVertexAttribLPointer = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9332   TglGetVertexAttribLdv = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9333
9334   // GL_ARB_viewport_array
9335   TglViewportArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9336   TglViewportIndexedf = procedure(index: GLuint; x: GLfloat; y: GLfloat; w: GLfloat; h: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9337   TglViewportIndexedfv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9338   TglScissorArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9339   TglScissorIndexed = procedure(index: GLuint; left: GLint; bottom: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9340   TglScissorIndexedv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9341   TglDepthRangeArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9342   TglDepthRangeIndexed = procedure(index: GLuint; n: GLclampd; f: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9343   TglGetFloati_v = procedure(target: GLenum; index: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9344   TglGetDoublei_v = procedure(target: GLenum; index: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9345
9346   // GL 4.2
9347
9348   // GL_ARB_base_instance
9349   TglDrawArraysInstancedBaseInstance = procedure(mode : GLenum; first : GLint; count :GLsizei; primcount : GLsizei; baseinstance : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9350   TglDrawElementsInstancedBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount : GLsizei; baseinstance : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9351   TglDrawElementsInstancedBaseVertexBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount :GLsizei; basevertex : GLint; baseinstance : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9352
9353   // GL_ARB_transform_feedback_instanced
9354   TglDrawTransformFeedbackInstanced = procedure(mode : GLenum; id : GLuint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9355   TglDrawTransformFeedbackStreamInstanced = procedure(mode : GLenum; id : GLUInt; stream : GLUint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9356
9357   // GL_ARB_internalformat_query
9358   TglGetInternalformativ = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9359
9360   // GL_ARB_shader_atomic_counters
9361   TglGetActiveAtomicCounterBufferiv = procedure(_program : GLuint; bufferIndex : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9362
9363   /// GL_ARB_shader_image_load_store
9364   TglBindImageTexture = procedure(_unit : GLuint; texture : GLuint; level :GLint; layered : GLboolean; layer : GLint; access : GLenum; format : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9365   TglMemoryBarrier = procedure(barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9366
9367   // GL_ARB_texture_storage
9368   TglTexStorage1D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9369   TglTexStorage2D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9370   TglTexStorage3D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9371   TglTextureStorage1DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9372   TglTextureStorage2DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9373   TglTextureStorage3DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9374
9375
9376   // GL 4.3
9377
9378   // GL_KHR_debug
9379   TglDebugMessageControl = procedure(source : GLenum; type_ : GLenum; severity : TGLenum; count : GLsizei; const ids : PGLUInt; enabled : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9380   TglDebugMessageInsert = procedure(source : GLenum;  type_ : GLenum; id : GLuint; sverity : GLenum; length : GLsizei; const buf : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9381   TglDebugMessageCallback = procedure(callback : TGLDEBUGPROC; const userParam : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9382   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}
9383   TglPushDebugGroup = procedure(source : GLenum; id : GLuint; length : GLsizei; const message_ : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9384   TglPopDebugGroup = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9385   TglObjectLabel = procedure(identifier : GLenum; name : GLuint; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9386   TglGetObjectLabel = procedure(identifier : GLenum; name : GLuint; bufsize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9387   TglObjectPtrLabel = procedure(const ptr : Pointer; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9388   TglGetObjectPtrLabel = procedure(const ptr : Pointer; bufSize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9389
9390   // GL_ARB_clear_buffer_object
9391   TglClearBufferData = procedure(target : GLenum; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9392   TglClearBufferSubData = procedure(target : GLenum; internalformat : GLenum; offset : GLintptr; size : GLsizeiptr; format : GLenum; type_ : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9393   TglClearNamedBufferDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9394   TglClearNamedBufferSubDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLenum; type_ : GLenum; offset : GLsizeiptr; size : GLsizeiptr; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9395
9396   // GL_ARB_compute_shader 1
9397   TglDispatchCompute = procedure(num_groups_x : GLuint; num_groups_y : GLuint; num_groups_z : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9398   TglDispatchComputeIndirect = procedure(indirect : GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9399
9400   // GL_ARB_copy_image
9401   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}
9402
9403   // GL_ARB_debug_group
9404   // ARB_debug_group reuses entry points from KHR_debug
9405
9406   // GL_ARB_debug_label
9407   // ARB_debug_label reuses entry points from KHR_debug
9408
9409   // GL_ARB_debug_output2
9410
9411   // GL_ARB_ES3_compatibility
9412
9413   // GL_ARB_explicit_uniform_location
9414
9415   // GL_ARB_fragment_layer_viewport
9416
9417   // GL_ARB_framebuffer_no_attachments
9418   TglFramebufferParameteri = procedure(target : GLenum; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9419   TglGetFramebufferParameteriv = procedure(target : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9420   TglNamedFramebufferParameteriEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9421   TglGetNamedFramebufferParameterivEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9422
9423   // GL_ARB_internalformat_query2
9424   TglGetInternalformati64v = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9425
9426   // GL_ARB_invalidate_subdata
9427   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}
9428   TglInvalidateTexImage = procedure(texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9429   TglInvalidateBufferSubData = procedure(buffer : GLuint; offset : GLintptr; length : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9430   TglInvalidateBufferData = procedure(buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9431   TglInvalidateFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9432   TglInvalidateSubFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9433
9434   // GL_ARB_multi_draw_indirect
9435   TglMultiDrawArraysIndirect = procedure(mode : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9436   TglMultiDrawElementsIndirect = procedure(mode : GLenum; type_ : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9437
9438   // GL_ARB_program_interface_query
9439   TglGetProgramInterfaceiv = procedure(program_ : GLUInt;programInterface : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9440   TglGetProgramResourceIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLUInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9441   TglGetProgramResourceName = procedure(program_ : GLUInt;programInterface : GLenum; index : GLuint; bufSize : GLsizei; length : PGLsizei; name : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9442   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}
9443   TglGetProgramResourceLocation = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9444   TglGetProgramResourceLocationIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9445
9446   // GL_ARB_robust_buffer_access_behavior
9447
9448   // GL_ARB_shader_image_size
9449
9450   // GL_ARB_shader_storage_buffer_object
9451   TglShaderStorageBlockBinding = procedure(program_ : GLuint; storageBlockIndex : GLuint; storageBlockBinding : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9452
9453   // GL_ARB_stencil_texturing
9454
9455   // GL_ARB_texture_buffer_range
9456   TglTexBufferRange = procedure(target : GLenum; internalformat : GLenum; buffer : GLuint; offset :GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9457   TglTextureBufferRangeEXT = procedure(texture : GLuint; target : GLenum; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9458
9459   // GL_ARB_texture_query_levels
9460
9461   // GL_ARB_texture_storage_multisample
9462   TglTexStorage2DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9463   TglTexStorage3DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9464   TglTextureStorage2DMultisampleEXT = procedure(texture : GLuint; target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9465   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}
9466
9467   // GL 4.4
9468
9469   TglBufferStorage = procedure(target : GLenum; size : GLsizeiptr; const data : pointer; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9470         TglClearTexImage = procedure(texture : GLuint; level : GLint; format : GLenum; _type : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9471         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}
9472         TglBindBuffersBase = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9473         TglBindBuffersRange = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : GLintptr; const sizes : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9474         TglBindTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9475         TglBindSamplers = procedure(first : GLuint; count : GLsizei; const samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9476         TglBindImageTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9477         TglBindVertexBuffers = procedure(first : GLuint; count : GLsizei; const buffers : GLuint; const offsets : GLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9478
9479   TglTexPageCommitmentARB = procedure(target : glenum; level : glint; xoffset : glint; yoffset : glint; zoffset : glint; width : glsizei; height : glsizei; depth : glsizei; resident : glboolean);  {$IFDEF DGL_WIN} stdcall; {$ELSE}cdecl; {$ENDIF}
9480
9481   // END GL 4.4
9482
9483
9484   // GL_ARB_texture_view
9485   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}
9486
9487   // GL_ARB_vertex_attrib_binding
9488   TglBindVertexBuffer = procedure(bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9489   TglVertexAttribFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9490   TglVertexAttribIFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9491   TglVertexAttribLFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9492   TglVertexAttribBinding = procedure(attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9493   TglVertexBindingDivisor = procedure(bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9494   TglVertexArrayBindVertexBufferEXT = procedure(vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9495   TglVertexArrayVertexAttribFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9496   TglVertexArrayVertexAttribIFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9497   TglVertexArrayVertexAttribLFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9498   TglVertexArrayVertexAttribBindingEXT = procedure(vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9499   TglVertexArrayVertexBindingDivisorEXT = procedure(vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9500
9501   // GL_ARB_robustness_isolation
9502
9503   //
9504
9505   // GL_ARB_cl_event
9506   TglCreateSyncFromCLeventARB = function(context: p_cl_context; event: p_cl_event; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9507
9508   // GL_ARB_debug_output
9509   TglDebugMessageControlARB = procedure(source: GLenum; type_: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9510   TglDebugMessageInsertARB = procedure(source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9511   TglDebugMessageCallbackARB = procedure(callback: TglDebugProcARB; const userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9512   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}
9513
9514   // GL_ARB_robustness
9515   TglGetGraphicsResetStatusARB = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9516   TglGetnMapdvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9517   TglGetnMapfvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9518   TglGetnMapivARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9519   TglGetnPixelMapfvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9520   TglGetnPixelMapuivARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9521   TglGetnPixelMapusvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9522   TglGetnPolygonStippleARB = procedure(bufSize: GLsizei; pattern: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9523   TglGetnColorTableARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9524   TglGetnConvolutionFilterARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9525   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}
9526   TglGetnHistogramARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9527   TglGetnMinmaxARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9528   TglGetnTexImageARB = procedure(target: GLenum; level: GLint; format: GLenum; type_: GLenum; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9529   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}
9530   TglGetnCompressedTexImageARB = procedure(target: GLenum; lod: GLint; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9531   TglGetnUniformfvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9532   TglGetnUniformivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9533   TglGetnUniformuivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9534   TglGetnUniformdvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9535
9536   // GL_ATI_draw_buffers
9537   TglDrawBuffersATI = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9538
9539   // GL_ATI_element_array
9540   TglElementPointerATI = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9541   TglDrawElementArrayATI = procedure(mode: GLenum; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9542   TglDrawRangeElementArrayATI = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9543
9544   // GL_ATI_envmap_bumpmap
9545   TglTexBumpParameterivATI = procedure(pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9546   TglTexBumpParameterfvATI = procedure(pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9547   TglGetTexBumpParameterivATI = procedure(pname: GLenum; param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9548   TglGetTexBumpParameterfvATI = procedure(pname: GLenum; param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9549
9550   // GL_ATI_fragment_shader
9551   TglGenFragmentShadersATI = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9552   TglBindFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9553   TglDeleteFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9554   TglBeginFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9555   TglEndFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9556   TglPassTexCoordATI = procedure(dst: GLuint; coord: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9557   TglSampleMapATI = procedure(dst: GLuint; interp: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9558   TglColorFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9559   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}
9560   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}
9561   TglAlphaFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9562   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}
9563   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}
9564   TglSetFragmentShaderConstantATI = procedure(dst: GLuint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9565
9566   // GL_ATI_map_object_buffer
9567   TglMapObjectBufferATI = function(buffer: GLuint): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9568   TglUnmapObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9569
9570   // GL_ATI_pn_triangles
9571   TglPNTrianglesiATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9572   TglPNTrianglesfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9573
9574   // GL_ATI_separate_stencil
9575   TglStencilOpSeparateATI = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9576   TglStencilFuncSeparateATI = procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9577
9578   // GL_ATI_vertex_array_object
9579   TglNewObjectBufferATI = function(size: GLsizei; const _pointer: PGLvoid; usage: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9580   TglIsObjectBufferATI = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9581   TglUpdateObjectBufferATI = procedure(buffer: GLuint; offset: GLuint; size: GLsizei; const _pointer: PGLvoid; preserve: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9582   TglGetObjectBufferfvATI = procedure(buffer: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9583   TglGetObjectBufferivATI = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9584   TglFreeObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9585   TglArrayObjectATI = procedure(_array: GLenum; size: GLint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9586   TglGetArrayObjectfvATI = procedure(_array: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9587   TglGetArrayObjectivATI = procedure(_array: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9588   TglVariantArrayObjectATI = procedure(id: GLuint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9589   TglGetVariantArrayObjectfvATI = procedure(id: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9590   TglGetVariantArrayObjectivATI = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9591
9592   // GL_ATI_vertex_attrib_array_object
9593   TglVertexAttribArrayObjectATI = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9594   TglGetVertexAttribArrayObjectfvATI = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9595   TglGetVertexAttribArrayObjectivATI = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9596
9597   // GL_ATI_vertex_streams
9598   TglVertexStream1sATI = procedure(stream: GLenum; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9599   TglVertexStream1svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9600   TglVertexStream1iATI = procedure(stream: GLenum; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9601   TglVertexStream1ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9602   TglVertexStream1fATI = procedure(stream: GLenum; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9603   TglVertexStream1fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9604   TglVertexStream1dATI = procedure(stream: GLenum; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9605   TglVertexStream1dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9606   TglVertexStream2sATI = procedure(stream: GLenum; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9607   TglVertexStream2svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9608   TglVertexStream2iATI = procedure(stream: GLenum; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9609   TglVertexStream2ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9610   TglVertexStream2fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9611   TglVertexStream2fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9612   TglVertexStream2dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9613   TglVertexStream2dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9614   TglVertexStream3sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9615   TglVertexStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9616   TglVertexStream3iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9617   TglVertexStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9618   TglVertexStream3fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9619   TglVertexStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9620   TglVertexStream3dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9621   TglVertexStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9622   TglVertexStream4sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9623   TglVertexStream4svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9624   TglVertexStream4iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9625   TglVertexStream4ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9626   TglVertexStream4fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9627   TglVertexStream4fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9628   TglVertexStream4dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9629   TglVertexStream4dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9630   TglNormalStream3bATI = procedure(stream: GLenum; nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9631   TglNormalStream3bvATI = procedure(stream: GLenum; const coords: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9632   TglNormalStream3sATI = procedure(stream: GLenum; nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9633   TglNormalStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9634   TglNormalStream3iATI = procedure(stream: GLenum; nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9635   TglNormalStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9636   TglNormalStream3fATI = procedure(stream: GLenum; nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9637   TglNormalStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9638   TglNormalStream3dATI = procedure(stream: GLenum; nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9639   TglNormalStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9640   TglClientActiveVertexStreamATI = procedure(stream: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9641   TglVertexBlendEnviATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9642   TglVertexBlendEnvfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9643
9644   // GL_AMD_performance_monitor
9645   TglGetPerfMonitorGroupsAMD = procedure(numGroups: PGLint; groupsSize: GLsizei; groups: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9646   TglGetPerfMonitorCountersAMD = procedure(group: GLuint; numCounters: PGLint; maxActiveCouters: PGLint; counterSize: GLsizei; counters: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9647   TglGetPerfMonitorGroupStringAMD = procedure(group: GLuint; bufSize: GLsizei; length: PGLsizei; groupString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9648   TglGetPerfMonitorCounterStringAMD = procedure(group: GLuint; counter: GLuint; bufSize: GLsizei; length: PGLsizei; counterString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9649   TglGetPerfMonitorCounterInfoAMD = procedure(group: GLuint; counter: GLuint; pname: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9650   TglGenPerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9651   TglDeletePerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9652   TglSelectPerfMonitorCountersAMD = procedure(monitor: GLuint; enable: GLboolean; group: GLuint; numCounters: GLint; counterList: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9653   TglBeginPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9654   TglEndPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9655   TglGetPerfMonitorCounterDataAMD = procedure(monitor: GLuint; pname: GLenum; dataSize: GLsizei; data: PGLuint; bytesWritten: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9656
9657   // GL_AMD_vertex_shader_tesselator
9658   TglTessellationFactorAMD = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9659   TglTessellationModeAMD = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9660
9661   // GL_AMD_draw_buffers_blend
9662   TglBlendFuncIndexedAMD = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9663   TglBlendFuncSeparateIndexedAMD = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9664   TglBlendEquationIndexedAMD = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9665   TglBlendEquationSeparateIndexedAMD = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9666
9667   // GL_AMD_name_gen_delete
9668   TglGenNamesAMD = procedure(identifier: GLenum; num: GLuint; names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9669   TglDeleteNamesAMD = procedure(identifier: GLenum; num: GLuint; const names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9670   TglIsNameAMD = function(identifier: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9671
9672   // GL_AMD_debug_output
9673   TglDebugMessageEnableAMD = procedure(category: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9674   TglDebugMessageInsertAMD = procedure(category: GLenum; severity: GLenum; id: GLuint; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9675   TglDebugMessageCallbackAMD = procedure(callback: TGLDebugProcAMD; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9676   TglGetDebugMessageLogAMD = function(count: GLuint; bufsize: GLsizei; categories: PGLenum; severities: PGLuint; ids: PGLuint; lengths: PGLsizei; message: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9677
9678   // GL_EXT_blend_color
9679   TglBlendColorEXT = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9680
9681   // GL_EXT_blend_func_separate
9682   TglBlendFuncSeparateEXT = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9683
9684   // GL_EXT_blend_minmax
9685   TglBlendEquationEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9686
9687   // GL_EXT_color_subtable
9688   TglColorSubTableEXT = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9689   TglCopyColorSubTableEXT = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9690
9691   // GL_EXT_compiled_vertex_array
9692   TglLockArraysEXT = procedure(first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9693   TglUnlockArraysEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9694
9695   // GL_EXT_convolution
9696   TglConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9697   TglConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9698   TglConvolutionParameterfEXT = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9699   TglConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9700   TglConvolutionParameteriEXT = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9701   TglConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9702   TglCopyConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9703   TglCopyConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9704   TglGetConvolutionFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9705   TglGetConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9706   TglGetConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9707   TglGetSeparableFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9708   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}
9709
9710   // GL_EXT_coordinate_frame
9711   TglTangent3bEXT = procedure(tx: GLbyte; ty: GLbyte; tz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9712   TglTangent3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9713   TglTangent3dEXT = procedure(tx: GLdouble; ty: GLdouble; tz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9714   TglTangent3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9715   TglTangent3fEXT = procedure(tx: GLfloat; ty: GLfloat; tz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9716   TglTangent3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9717   TglTangent3iEXT = procedure(tx: GLint; ty: GLint; tz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9718   TglTangent3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9719   TglTangent3sEXT = procedure(tx: GLshort; ty: GLshort; tz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9720   TglTangent3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9721   TglBinormal3bEXT = procedure(bx: GLbyte; by: GLbyte; bz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9722   TglBinormal3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9723   TglBinormal3dEXT = procedure(bx: GLdouble; by: GLdouble; bz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9724   TglBinormal3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9725   TglBinormal3fEXT = procedure(bx: GLfloat; by: GLfloat; bz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9726   TglBinormal3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9727   TglBinormal3iEXT = procedure(bx: GLint; by: GLint; bz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9728   TglBinormal3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9729   TglBinormal3sEXT = procedure(bx: GLshort; by: GLshort; bz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9730   TglBinormal3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9731   TglTangentPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9732   TglBinormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9733
9734   // GL_EXT_copy_texture
9735   TglCopyTexImage1DEXT = procedure(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9736   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}
9737   TglCopyTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9738   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}
9739   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}
9740
9741   // GL_EXT_cull_vertex
9742   TglCullParameterdvEXT = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9743   TglCullParameterfvEXT = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9744
9745   // GL_EXT_draw_range_elements
9746   TglDrawRangeElementsEXT = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9747
9748   // GL_EXT_fog_coord
9749   TglFogCoordfEXT = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9750   TglFogCoordfvEXT = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9751   TglFogCoorddEXT = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9752   TglFogCoorddvEXT = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9753   TglFogCoordPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9754
9755   // GL_EXT_framebuffer_object
9756   TglIsRenderbufferEXT = function(renderbuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9757   TglBindRenderbufferEXT = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9758   TglDeleteRenderbuffersEXT = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9759   TglGenRenderbuffersEXT = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9760   TglRenderbufferStorageEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9761   TglGetRenderbufferParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9762   TglIsFramebufferEXT = function(framebuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9763   TglBindFramebufferEXT = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9764   TglDeleteFramebuffersEXT = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9765   TglGenFramebuffersEXT = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9766   TglCheckFramebufferStatusEXT = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9767   TglFramebufferTexture1DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9768   TglFramebufferTexture2DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9769   TglFramebufferTexture3DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9770   TglFramebufferRenderbufferEXT = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9771   TglGetFramebufferAttachmentParameterivEXT = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9772   TglGenerateMipmapEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9773
9774   // GL_EXT_histogram
9775   TglGetHistogramEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9776   TglGetHistogramParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9777   TglGetHistogramParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9778   TglGetMinmaxEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9779   TglGetMinmaxParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9780   TglGetMinmaxParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9781   TglHistogramEXT = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9782   TglMinmaxEXT = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9783   TglResetHistogramEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9784   TglResetMinmaxEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9785
9786   // GL_EXT_index_func
9787   TglIndexFuncEXT = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9788
9789   // GL_EXT_index_material
9790   TglIndexMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9791
9792   // GL_EXT_light_texture
9793   TglApplyTextureEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9794   TglTextureLightEXT = procedure(pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9795   TglTextureMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9796
9797   // GL_EXT_multi_draw_arrays
9798   TglMultiDrawArraysEXT = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9799   TglMultiDrawElementsEXT = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9800
9801   // GL_EXT_multisample
9802   TglSampleMaskEXT = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9803   TglSamplePatternEXT = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9804
9805   // GL_EXT_paletted_texture
9806   TglColorTableEXT = procedure(target: GLenum; internalFormat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9807   TglGetColorTableEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9808   TglGetColorTableParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9809   TglGetColorTableParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9810
9811   // GL_EXT_pixel_transform
9812   TglPixelTransformParameteriEXT = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9813   TglPixelTransformParameterfEXT = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9814   TglPixelTransformParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9815   TglPixelTransformParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9816
9817   // GL_EXT_point_parameters
9818   TglPointParameterfEXT = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9819   TglPointParameterfvEXT = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9820
9821   // GL_EXT_polygon_offset
9822   TglPolygonOffsetEXT = procedure(factor: GLfloat; bias: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9823
9824   // GL_EXT_secondary_color
9825   TglSecondaryColor3bEXT = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9826   TglSecondaryColor3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9827   TglSecondaryColor3dEXT = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9828   TglSecondaryColor3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9829   TglSecondaryColor3fEXT = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9830   TglSecondaryColor3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9831   TglSecondaryColor3iEXT = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9832   TglSecondaryColor3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9833   TglSecondaryColor3sEXT = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9834   TglSecondaryColor3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9835   TglSecondaryColor3ubEXT = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9836   TglSecondaryColor3ubvEXT = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9837   TglSecondaryColor3uiEXT = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9838   TglSecondaryColor3uivEXT = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9839   TglSecondaryColor3usEXT = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9840   TglSecondaryColor3usvEXT = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9841   TglSecondaryColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9842
9843   // GL_EXT_stencil_two_side
9844   TglActiveStencilFaceEXT = procedure(face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9845
9846   // GL_EXT_subtexture
9847   TglTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9848   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}
9849
9850   // GL_EXT_texture3D
9851   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}
9852   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}
9853
9854   // GL_EXT_texture_object
9855   TglAreTexturesResidentEXT = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9856   TglBindTextureEXT = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9857   TglDeleteTexturesEXT = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9858   TglGenTexturesEXT = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9859   TglIsTextureEXT = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9860   TglPrioritizeTexturesEXT = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9861
9862   // GL_EXT_texture_perturb_normal
9863   TglTextureNormalEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9864
9865   // GL_EXT_vertex_array
9866   TglArrayElementEXT = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9867   TglColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9868   TglDrawArraysEXT = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9869   TglEdgeFlagPointerEXT = procedure(stride: GLsizei; count: GLsizei; const _pointer: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9870   TglGetPointervEXT = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9871   TglIndexPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9872   TglNormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9873   TglTexCoordPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9874   TglVertexPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9875
9876   // GL_EXT_vertex_shader
9877   TglBeginVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9878   TglEndVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9879   TglBindVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9880   TglGenVertexShadersEXT = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9881   TglDeleteVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9882   TglShaderOp1EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9883   TglShaderOp2EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9884   TglShaderOp3EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint; arg3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9885   TglSwizzleEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9886   TglWriteMaskEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9887   TglInsertComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9888   TglExtractComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9889   TglGenSymbolsEXT = function(datatype: GLenum; storagetype: GLenum; range: GLenum; components: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9890   TglSetInvariantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9891   TglSetLocalConstantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9892   TglVariantbvEXT = procedure(id: GLuint; const addr: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9893   TglVariantsvEXT = procedure(id: GLuint; const addr: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9894   TglVariantivEXT = procedure(id: GLuint; const addr: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9895   TglVariantfvEXT = procedure(id: GLuint; const addr: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9896   TglVariantdvEXT = procedure(id: GLuint; const addr: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9897   TglVariantubvEXT = procedure(id: GLuint; const addr: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9898   TglVariantusvEXT = procedure(id: GLuint; const addr: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9899   TglVariantuivEXT = procedure(id: GLuint; const addr: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9900   TglVariantPointerEXT = procedure(id: GLuint; _type: GLenum; stride: GLuint; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9901   TglEnableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9902   TglDisableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9903   TglBindLightParameterEXT = function(light: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9904   TglBindMaterialParameterEXT = function(face: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9905   TglBindTexGenParameterEXT = function(_unit: GLenum; coord: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9906   TglBindTextureUnitParameterEXT = function(_unit: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9907   TglBindParameterEXT = function(value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9908   TglIsVariantEnabledEXT = function(id: GLuint; cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9909   TglGetVariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9910   TglGetVariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9911   TglGetVariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9912   TglGetVariantPointervEXT = procedure(id: GLuint; value: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9913   TglGetInvariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9914   TglGetInvariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9915   TglGetInvariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9916   TglGetLocalConstantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9917   TglGetLocalConstantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9918   TglGetLocalConstantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9919
9920   // GL_EXT_vertex_weighting
9921   TglVertexWeightfEXT = procedure(weight: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9922   TglVertexWeightfvEXT = procedure(const weight: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9923   TglVertexWeightPointerEXT = procedure(size: GLsizei; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9924
9925   // GL_EXT_stencil_clear_tag
9926   TglStencilClearTagEXT = procedure(stencilTagBits: GLsizei; stencilClearTag: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9927
9928   // GL_EXT_framebuffer_blit
9929   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}
9930
9931   // GL_EXT_framebuffer_multisample
9932   TglRenderbufferStorageMultisampleEXT = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9933
9934   // GL_EXT_timer_query
9935   TglGetQueryObjecti64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9936   TglGetQueryObjectui64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9937
9938   // GL_EXT_gpu_program_parameters
9939   TglProgramEnvParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9940   TglProgramLocalParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9941
9942   // GL_EXT_bindable_uniform
9943   TglUniformBufferEXT = procedure(_program: GLuint; location: GLint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9944   TglGetUniformBufferSizeEXT = function(_program: GLuint; location: GLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9945   TglGetUniformOffsetEXT = function(_program: GLuint; location: GLint): GLintptr; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9946
9947   // GL_EXT_draw_buffers2
9948   TglColorMaskIndexedEXT = procedure(buf: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9949   TglGetBooleanIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9950   TglGetIntegerIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9951   TglEnableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9952   TglDisableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9953   TglIsEnabledIndexedEXT = function(target: GLenum; index: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9954
9955   // GL_EXT_draw_instanced
9956   TglDrawArraysInstancedEXT = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9957   TglDrawElementsInstancedEXT = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: Pointer; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9958
9959   // GL_EXT_geometry_shader4
9960   TglProgramParameteriEXT = procedure (_program: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9961   TglFramebufferTextureEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9962 //  TglFramebufferTextureLayerEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9963   TglFramebufferTextureFaceEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9964
9965   // GL_EXT_gpu_shader4
9966   TglVertexAttribI1iEXT = procedure(index: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9967   TglVertexAttribI2iEXT = procedure(index: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9968   TglVertexAttribI3iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9969   TglVertexAttribI4iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9970   TglVertexAttribI1uiEXT = procedure(index: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9971   TglVertexAttribI2uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9972   TglVertexAttribI3uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9973   TglVertexAttribI4uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9974   TglVertexAttribI1ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9975   TglVertexAttribI2ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9976   TglVertexAttribI3ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9977   TglVertexAttribI4ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9978   TglVertexAttribI1uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9979   TglVertexAttribI2uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9980   TglVertexAttribI3uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9981   TglVertexAttribI4uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9982   TglVertexAttribI4bvEXT = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9983   TglVertexAttribI4svEXT = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9984   TglVertexAttribI4ubvEXT = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9985   TglVertexAttribI4usvEXT = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9986   TglVertexAttribIPointerEXT = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const _pointer: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9987   TglGetVertexAttribIivEXT = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9988   TglGetVertexAttribIuivEXT = procedure(index: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9989   TglUniform1uiEXT = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9990   TglUniform2uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9991   TglUniform3uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9992   TglUniform4uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9993   TglUniform1uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9994   TglUniform2uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9995   TglUniform3uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9996   TglUniform4uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9997   TglGetUniformuivEXT = procedure(_program: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9998   TglBindFragDataLocationEXT = procedure(_program: GLuint; colorNumber: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9999   TglGetFragDataLocationEXT = function(_program: GLuint; const name: PGLchar): GLint;
10000
10001   // GL_EXT_texture_array
10002   TglFramebufferTextureLayerEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10003
10004   // GL_EXT_texture_buffer_object
10005   TglTexBufferEXT = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10006
10007   // GL_EXT_texture_integer
10008   TglClearColorIiEXT = procedure(r: GLint; g: GLint; b: GLint; a: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10009   TglClearColorIuiEXT = procedure(r: GLuint; g: GLuint; b: GLuint; a: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10010   TglTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10011   TglTexParameterIuivEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10012   TglGetTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10013   TglGetTexParameterIiuvEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10014
10015   // GL_HP_image_transform
10016   TglImageTransformParameteriHP = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10017   TglImageTransformParameterfHP = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10018   TglImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10019   TglImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10020   TglGetImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10021   TglGetImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10022
10023   // GL_EXT_depth_bounds_test
10024   TglDepthBoundsEXT = procedure(zmin: GLclampd; zmax: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10025
10026   // GL_EXT_blend_equation_separate
10027   TglBlendEquationSeparateEXT = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10028
10029   // GL_EXT_transform_feedback
10030   TglBeginTransformFeedbackEXT = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10031   TglEndTransformFeedbackEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10032   TglBindBufferRangeEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10033   TglBindBufferOffsetEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10034   TglBindBufferBaseEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10035   TglTransformFeedbackVaryingsEXT = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10036   TglGetTransformFeedbackVaryingEXT = procedure(program_: GLuint; index_: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10037
10038   // GL_EXT_direct_state_access
10039   TglClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10040   TglPushClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10041   TglMatrixLoadfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10042   TglMatrixLoaddEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10043   TglMatrixMultfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10044   TglMatrixMultdEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10045   TglMatrixLoadIdentityEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10046   TglMatrixRotatefEXT = procedure(mode: GLenum; angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10047   TglMatrixRotatedEXT = procedure(mode: GLenum; angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10048   TglMatrixScalefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10049   TglMatrixScaledEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10050   TglMatrixTranslatefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10051   TglMatrixTranslatedEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10052   TglMatrixFrustumEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10053   TglMatrixOrthoEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10054   TglMatrixPopEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10055   TglMatrixPushEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10056   TglMatrixLoadTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10057   TglMatrixLoadTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10058   TglMatrixMultTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10059   TglMatrixMultTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10060   TglTextureParameterfEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10061   TglTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10062   TglTextureParameteriEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10063   TglTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10064   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}
10065   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}
10066   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}
10067   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}
10068   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}
10069   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}
10070   TglCopyTextureSubImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10071   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}
10072   TglGetTextureImageEXT = procedure(texture: GLuint; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10073   TglGetTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10074   TglGetTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10075   TglGetTextureLevelParameterfvEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10076   TglGetTextureLevelParameterivEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10077   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}
10078   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}
10079   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}
10080   TglMultiTexParameterfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10081   TglMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10082   TglMultiTexParameteriEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10083   TglMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10084   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}
10085   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}
10086   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}
10087   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}
10088   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}
10089   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}
10090   TglCopyMultiTexSubImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10091   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}
10092   TglGetMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10093   TglGetMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10094   TglGetMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10095   TglGetMultiTexLevelParameterfvEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10096   TglGetMultiTexLevelParameterivEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10097   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}
10098   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}
10099   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}
10100   TglBindMultiTextureEXT = procedure(texunit: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10101   TglEnableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10102   TglDisableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10103   TglMultiTexCoordPointerEXT = procedure(texunit: GLenum; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10104   TglMultiTexEnvfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10105   TglMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10106   TglMultiTexEnviEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10107   TglMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10108   TglMultiTexGendEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10109   TglMultiTexGendvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10110   TglMultiTexGenfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10111   TglMultiTexGenfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10112   TglMultiTexGeniEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10113   TglMultiTexGenivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10114   TglGetMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10115   TglGetMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10116   TglGetMultiTexGendvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10117   TglGetMultiTexGenfvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10118   TglGetMultiTexGenivEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10119   TglGetFloatIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10120   TglGetDoubleIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10121   TglGetPointerIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10122   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}
10123   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}
10124   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}
10125   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}
10126   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}
10127   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}
10128   TglGetCompressedTextureImageEXT = procedure(texture: GLuint; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10129   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}
10130   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}
10131   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}
10132   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}
10133   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}
10134   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}
10135   TglGetCompressedMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10136   TglNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; format: GLenum; len: GLsizei; const string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10137   TglNamedProgramLocalParameter4dEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10138   TglNamedProgramLocalParameter4dvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10139   TglNamedProgramLocalParameter4fEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10140   TglNamedProgramLocalParameter4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10141   TglGetNamedProgramLocalParameterdvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10142   TglGetNamedProgramLocalParameterfvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10143   TglGetNamedProgramivEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10144   TglGetNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10145   TglNamedProgramLocalParameters4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10146   TglNamedProgramLocalParameterI4iEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10147   TglNamedProgramLocalParameterI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10148   TglNamedProgramLocalParametersI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10149   TglNamedProgramLocalParameterI4uiEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10150   TglNamedProgramLocalParameterI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10151   TglNamedProgramLocalParametersI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10152   TglGetNamedProgramLocalParameterIivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10153   TglGetNamedProgramLocalParameterIuivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10154   TglTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10155   TglTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10156   TglGetTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10157   TglGetTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10158   TglMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10159   TglMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10160   TglGetMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10161   TglGetMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10162   TglProgramUniform1fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10163   TglProgramUniform2fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10164   TglProgramUniform3fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10165   TglProgramUniform4fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10166   TglProgramUniform1iEXT = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10167   TglProgramUniform2iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10168   TglProgramUniform3iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10169   TglProgramUniform4iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10170   TglProgramUniform1fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10171   TglProgramUniform2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10172   TglProgramUniform3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10173   TglProgramUniform4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10174   TglProgramUniform1ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10175   TglProgramUniform2ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10176   TglProgramUniform3ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10177   TglProgramUniform4ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10178   TglProgramUniformMatrix2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10179   TglProgramUniformMatrix3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10180   TglProgramUniformMatrix4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10181   TglProgramUniformMatrix2x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10182   TglProgramUniformMatrix3x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10183   TglProgramUniformMatrix2x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10184   TglProgramUniformMatrix4x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10185   TglProgramUniformMatrix3x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10186   TglProgramUniformMatrix4x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10187   TglProgramUniform1uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10188   TglProgramUniform2uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10189   TglProgramUniform3uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10190   TglProgramUniform4uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10191   TglProgramUniform1uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10192   TglProgramUniform2uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10193   TglProgramUniform3uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10194   TglProgramUniform4uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10195   TglNamedBufferDataEXT = procedure(buffer: GLuint; size: GLsizei; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10196   TglNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10197   TglMapNamedBufferEXT = function(buffer: GLuint; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10198   TglUnmapNamedBufferEXT = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10199   TglMapNamedBufferRangeEXT = function(buffer: GLuint; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10200   TglFlushMappedNamedBufferRangeEXT = procedure(buffer: GLuint; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10201   TglNamedCopyBufferSubDataEXT = procedure(readBuffer: GLuint; writeBuffer: GLuint; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10202   TglGetNamedBufferParameterivEXT = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10203   TglGetNamedBufferPointervEXT = procedure(buffer: GLuint; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10204   TglGetNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10205   TglTextureBufferEXT = procedure(texture: GLuint; target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10206   TglMultiTexBufferEXT = procedure(texunit: GLenum; target: GLenum; interformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10207   TglNamedRenderbufferStorageEXT = procedure(renderbuffer: GLuint; interformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10208   TglGetNamedRenderbufferParameterivEXT = procedure(renderbuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10209   TglCheckNamedFramebufferStatusEXT = function(framebuffer: GLuint; target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10210   TglNamedFramebufferTexture1DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10211   TglNamedFramebufferTexture2DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10212   TglNamedFramebufferTexture3DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10213   TglNamedFramebufferRenderbufferEXT = procedure(framebuffer: GLuint; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10214   TglGetNamedFramebufferAttachmentParameterivEXT = procedure(framebuffer: GLuint; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10215   TglGenerateTextureMipmapEXT = procedure(texture: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10216   TglGenerateMultiTexMipmapEXT = procedure(texunit: GLenum; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10217   TglFramebufferDrawBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10218   TglFramebufferDrawBuffersEXT = procedure(framebuffer: GLuint; n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10219   TglFramebufferReadBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10220   TglGetFramebufferParameterivEXT = procedure(framebuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10221   TglNamedRenderbufferStorageMultisampleEXT = procedure(renderbuffer: GLuint; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10222   TglNamedRenderbufferStorageMultisampleCoverageEXT = procedure(renderbuffer: GLuint; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10223   TglNamedFramebufferTextureEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10224   TglNamedFramebufferTextureLayerEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10225   TglNamedFramebufferTextureFaceEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10226   TglTextureRenderbufferEXT = procedure(texture: GLuint; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10227   TglMultiTexRenderbufferEXT = procedure(texunit: GLenum; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10228   TglProgramUniform1dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10229   TglProgramUniform2dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10230   TglProgramUniform3dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10231   TglProgramUniform4dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10232   TglProgramUniform1dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10233   TglProgramUniform2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10234   TglProgramUniform3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10235   TglProgramUniform4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10236   TglProgramUniformMatrix2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10237   TglProgramUniformMatrix3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10238   TglProgramUniformMatrix4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10239   TglProgramUniformMatrix2x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10240   TglProgramUniformMatrix2x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10241   TglProgramUniformMatrix3x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10242   TglProgramUniformMatrix3x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10243   TglProgramUniformMatrix4x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10244   TglProgramUniformMatrix4x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10245
10246   // GL_EXT_separate_shader_objects
10247   TglUseShaderProgramEXT = procedure(_type: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10248   TglActiveProgramEXT = procedure(_program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10249   TglCreateShaderProgramEXT = function(_type: GLenum; const _string: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10250
10251   // GL_EXT_shader_image_load_store
10252   TglBindImageTextureEXT = procedure(index: GLuint; texture: GLuint; level: GLint; layered: GLboolean; layer: GLint; access: GLenum; format: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10253   TglMemoryBarrierEXT = procedure(barriers: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10254
10255   // GL_EXT_vertex_attrib_64bit
10256   TglVertexAttribL1dEXT = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10257   TglVertexAttribL2dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10258   TglVertexAttribL3dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10259   TglVertexAttribL4dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10260   TglVertexAttribL1dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10261   TglVertexAttribL2dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10262   TglVertexAttribL3dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10263   TglVertexAttribL4dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10264   TglVertexAttribLPointerEXT = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10265   TglGetVertexAttribLdvEXT = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10266   TglVertexArrayVertexAttribLOffsetEXT = procedure(vaobj: GLuint; buffer: GLuint; index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10267
10268   // GL_IBM_multimode_draw_arrays
10269   TglMultiModeDrawArraysIBM = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10270   TglMultiModeDrawElementsIBM = procedure(const mode: PGLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10271
10272   // GL_IBM_vertex_array_lists
10273   TglColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10274   TglSecondaryColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10275   TglEdgeFlagPointerListIBM = procedure(stride: GLint; const _pointer: PGLboolean; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10276   TglFogCoordPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10277   TglIndexPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10278   TglNormalPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10279   TglTexCoordPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10280   TglVertexPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10281
10282   // GL_INGR_blend_func_separate
10283   TglBlendFuncSeparateINGR = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10284
10285   // GL_INTEL_parallel_arrays
10286   TglVertexPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10287   TglNormalPointervINTEL = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10288   TglColorPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10289   TglTexCoordPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10290
10291   // GL_MESA_resize_buffers
10292   TglResizeBuffersMESA = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10293
10294   // GL_MESA_window_pos
10295   TglWindowPos2dMESA = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10296   TglWindowPos2dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10297   TglWindowPos2fMESA = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10298   TglWindowPos2fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10299   TglWindowPos2iMESA = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10300   TglWindowPos2ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10301   TglWindowPos2sMESA = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10302   TglWindowPos2svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10303   TglWindowPos3dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10304   TglWindowPos3dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10305   TglWindowPos3fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10306   TglWindowPos3fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10307   TglWindowPos3iMESA = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10308   TglWindowPos3ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10309   TglWindowPos3sMESA = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10310   TglWindowPos3svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10311   TglWindowPos4dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10312   TglWindowPos4dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10313   TglWindowPos4fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10314   TglWindowPos4fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10315   TglWindowPos4iMESA = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10316   TglWindowPos4ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10317   TglWindowPos4sMESA = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10318   TglWindowPos4svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10319
10320   // GL_NV_evaluators
10321   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}
10322   TglMapParameterivNV = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10323   TglMapParameterfvNV = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10324   TglGetMapControlPointsNV = procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; _packed: GLboolean; points: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10325   TglGetMapParameterivNV = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10326   TglGetMapParameterfvNV = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10327   TglGetMapAttribParameterivNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10328   TglGetMapAttribParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10329   TglEvalMapsNV = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10330
10331   // GL_NV_fence
10332   TglDeleteFencesNV = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10333   TglGenFencesNV = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10334   TglIsFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10335   TglTestFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10336   TglGetFenceivNV = procedure(fence: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10337   TglFinishFenceNV = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10338   TglSetFenceNV = procedure(fence: GLuint; condition: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10339
10340   // GL_NV_fragment_program
10341   TglProgramNamedParameter4fNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10342   TglProgramNamedParameter4dNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10343   TglProgramNamedParameter4fvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10344   TglProgramNamedParameter4dvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10345   TglGetProgramNamedParameterfvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10346   TglGetProgramNamedParameterdvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10347
10348   // GL_NV_half_float
10349   TglVertex2hNV = procedure(x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10350   TglVertex2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10351   TglVertex3hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10352   TglVertex3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10353   TglVertex4hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10354   TglVertex4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10355   TglNormal3hNV = procedure(nx: GLhalfNV; ny: GLhalfNV; nz: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10356   TglNormal3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10357   TglColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10358   TglColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10359   TglColor4hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV; alpha: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10360   TglColor4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10361   TglTexCoord1hNV = procedure(s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10362   TglTexCoord1hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10363   TglTexCoord2hNV = procedure(s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10364   TglTexCoord2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10365   TglTexCoord3hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10366   TglTexCoord3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10367   TglTexCoord4hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10368   TglTexCoord4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10369   TglMultiTexCoord1hNV = procedure(target: GLenum; s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10370   TglMultiTexCoord1hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10371   TglMultiTexCoord2hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10372   TglMultiTexCoord2hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10373   TglMultiTexCoord3hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10374   TglMultiTexCoord3hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10375   TglMultiTexCoord4hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10376   TglMultiTexCoord4hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10377   TglFogCoordhNV = procedure(fog: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10378   TglFogCoordhvNV = procedure(const fog: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10379   TglSecondaryColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10380   TglSecondaryColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10381   TglVertexWeighthNV = procedure(weight: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10382   TglVertexWeighthvNV = procedure(const weight: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10383   TglVertexAttrib1hNV = procedure(index: GLuint; x: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10384   TglVertexAttrib1hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10385   TglVertexAttrib2hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10386   TglVertexAttrib2hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10387   TglVertexAttrib3hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10388   TglVertexAttrib3hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10389   TglVertexAttrib4hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10390   TglVertexAttrib4hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10391   TglVertexAttribs1hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10392   TglVertexAttribs2hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10393   TglVertexAttribs3hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10394   TglVertexAttribs4hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10395
10396   // GL_NV_occlusion_query
10397   TglGenOcclusionQueriesNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10398   TglDeleteOcclusionQueriesNV = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10399   TglIsOcclusionQueryNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10400   TglBeginOcclusionQueryNV = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10401   TglEndOcclusionQueryNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10402   TglGetOcclusionQueryivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10403   TglGetOcclusionQueryuivNV = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10404
10405   // GL_NV_pixel_data_range
10406   TglPixelDataRangeNV = procedure(target: GLenum; length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10407   TglFlushPixelDataRangeNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10408
10409   // GL_NV_point_sprite
10410   TglPointParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10411   TglPointParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10412
10413   // GL_NV_primitive_restart
10414   TglPrimitiveRestartNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10415   TglPrimitiveRestartIndexNV = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10416
10417   // GL_NV_register_combiners
10418   TglCombinerParameterfvNV = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10419   TglCombinerParameterfNV = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10420   TglCombinerParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10421   TglCombinerParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10422   TglCombinerInputNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10423   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}
10424   TglFinalCombinerInputNV = procedure(variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10425   TglGetCombinerInputParameterfvNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10426   TglGetCombinerInputParameterivNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10427   TglGetCombinerOutputParameterfvNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10428   TglGetCombinerOutputParameterivNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10429   TglGetFinalCombinerInputParameterfvNV = procedure(variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10430   TglGetFinalCombinerInputParameterivNV = procedure(variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10431
10432   // GL_NV_register_combiners2
10433   TglCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10434   TglGetCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10435
10436   // GL_NV_vertex_array_range
10437   TglFlushVertexArrayRangeNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10438   TglVertexArrayRangeNV = procedure(length: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10439
10440   // GL_NV_vertex_program
10441   TglAreProgramsResidentNV = function(n: GLsizei; const programs: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10442   TglBindProgramNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10443   TglDeleteProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10444   TglExecuteProgramNV = procedure(target: GLenum; id: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10445   TglGenProgramsNV = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10446   TglGetProgramParameterdvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10447   TglGetProgramParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10448   TglGetProgramivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10449   TglGetProgramStringNV = procedure(id: GLuint; pname: GLenum; _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10450   TglGetTrackMatrixivNV = procedure(target: GLenum; address: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10451   TglGetVertexAttribdvNV = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10452   TglGetVertexAttribfvNV = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10453   TglGetVertexAttribivNV = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10454   TglGetVertexAttribPointervNV = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10455   TglIsProgramNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10456   TglLoadProgramNV = procedure(target: GLenum; id: GLuint; len: GLsizei; const _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10457   TglProgramParameter4dNV = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10458   TglProgramParameter4dvNV = procedure(target: GLenum; index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10459   TglProgramParameter4fNV = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10460   TglProgramParameter4fvNV = procedure(target: GLenum; index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10461   TglProgramParameters4dvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10462   TglProgramParameters4fvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10463   TglRequestResidentProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10464   TglTrackMatrixNV = procedure(target: GLenum; address: GLuint; matrix: GLenum; transform: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10465   TglVertexAttribPointerNV = procedure(index: GLuint; fsize: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10466   TglVertexAttrib1dNV = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10467   TglVertexAttrib1dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10468   TglVertexAttrib1fNV = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10469   TglVertexAttrib1fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10470   TglVertexAttrib1sNV = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10471   TglVertexAttrib1svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10472   TglVertexAttrib2dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10473   TglVertexAttrib2dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10474   TglVertexAttrib2fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10475   TglVertexAttrib2fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10476   TglVertexAttrib2sNV = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10477   TglVertexAttrib2svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10478   TglVertexAttrib3dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10479   TglVertexAttrib3dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10480   TglVertexAttrib3fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10481   TglVertexAttrib3fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10482   TglVertexAttrib3sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10483   TglVertexAttrib3svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10484   TglVertexAttrib4dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10485   TglVertexAttrib4dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10486   TglVertexAttrib4fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10487   TglVertexAttrib4fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10488   TglVertexAttrib4sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10489   TglVertexAttrib4svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10490   TglVertexAttrib4ubNV = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10491   TglVertexAttrib4ubvNV = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10492   TglVertexAttribs1dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10493   TglVertexAttribs1fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10494   TglVertexAttribs1svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10495   TglVertexAttribs2dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10496   TglVertexAttribs2fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10497   TglVertexAttribs2svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10498   TglVertexAttribs3dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10499   TglVertexAttribs3fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10500   TglVertexAttribs3svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10501   TglVertexAttribs4dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10502   TglVertexAttribs4fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10503   TglVertexAttribs4svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10504   TglVertexAttribs4ubvNV = procedure(index: GLuint; count: GLsizei; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10505
10506   // GL_NV_depth_buffer_float
10507   TglDepthRangedNV = procedure(n: GLdouble; f: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10508   TglClearDepthdNV = procedure(d: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10509   TglDepthBoundsdNV = procedure(zmin: GLdouble; zmax: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10510
10511   // GL_NV_framebuffer_multisample_coverage
10512   TglRenderbufferStorageMultsampleCoverageNV = procedure(target: GLenum; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10513
10514   // GL_NV_geometry_program4
10515   TglProgramVertexLimitNV = procedure(target: GLenum; limit: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10516
10517   // GL_NV_gpu_program4
10518   TglProgramLocalParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10519   TglProgramLocalParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10520   TglProgramLocalParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10521   TglProgramLocalParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10522   TglProgramLocalParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10523   TglProgramLocalParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10524   TglProgramEnvParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10525   TglProgramEnvParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10526   TglProgramEnvParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10527   TglProgramEnvParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10528   TglProgramEnvParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10529   TglProgramEnvParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10530   TglGetProgramLocalParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10531   TglGetProgramLocalParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10532   TglGetProgramEnvParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10533   TglGetProgramEnvParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10534
10535   // GL_NV_parameter_buffer_object
10536   TglProgramBufferParametersfvNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10537   TglProgramBufferParametersIivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10538   TglProgramBufferParametersIuivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10539
10540   // GL_NV_transform_feedback
10541   TglBeginTransformFeedbackNV = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10542   TglEndTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10543   TglTransformFeedbackAttribsNV = procedure(count: GLsizei; const attribs: GLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10544   TglBindBufferRangeNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10545   TglBindBufferOffsetNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10546   TglBindBufferBaseNV = procedure(target: GLenum; index: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10547   TglTransformFeedbackVaryingsNV = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10548   TglActiveVaryingNV = procedure(program_: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10549   TglGetVaryingLocationNV = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10550   TglGetActiveVaryingNV = procedure(program_: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; _type: PGLenum; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10551   TglGetTransformFeedbackVaryingNV = procedure(program_: GLuint; index: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10552   TglTransformFeedbackStreamAttribsNV = procedure(count: GLsizei; const attribs: PGLint; nbuffers: GLsizei; const bufstreams: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10553
10554   // GL_NV_conditional_render
10555   TglBeginConditionalRenderNV = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10556   TglEndConditionalRenderNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10557
10558   // GL_NV_present_video
10559   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}
10560   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}
10561   TglGetVideoivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10562   TglGetVideouivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10563   TglGetVideoi64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10564   TglGetVideoui64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10565 //  TglVideoParameterivNV = procedure(video_slot: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10566   
10567   // GL_NV_explicit_multisample
10568   TglGetMultisamplefvNV = procedure (pname: GLenum; index: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10569   TglSampleMaskIndexedNV = procedure (index: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10570   TglTexRenderbufferNV = procedure (target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10571
10572   // GL_NV_transform_feedback2
10573   TglBindTransformFeedbackNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10574   TglDeleteTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10575   TglGenTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10576   TglIsTransformFeedbackNV = function (id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10577   TglPauseTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10578   TglResumeTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10579   TglDrawTransformFeedbackNV = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10580
10581   // GL_NV_video_capture
10582   TglBeginVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10583   TglBindVideoCaptureStreamBufferNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; offset: GLintptrARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10584   TglBindVideoCaptureStreamTextureNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10585   TglEndVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10586   TglGetVideoCaptureivNV = procedure(video_capture_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10587   TglGetVideoCaptureStreamivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10588   TglGetVideoCaptureStreamfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10589   TglGetVideoCaptureStreamdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10590   TglVideoCaptureNV = function(video_capture_slot: GLuint; sequence_num: PGLuint; capture_time: PGLuint64EXT): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10591   TglVideoCaptureStreamParameterivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10592   TglVideoCaptureStreamParameterfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10593   TglVideoCaptureStreamParameterdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10594
10595   // GL_NV_copy_image
10596   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}
10597
10598   // GL_NV_shader_buffer_load
10599   TglMakeBufferResidentNV = procedure(target: GLenum; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10600   TglMakeBufferNonResidentNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10601   TglIsBufferResidentNV = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10602   TglMakeNamedBufferResidentNV = procedure(buffer: GLuint; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10603   TglMakeNamedBufferNonResidentNV = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10604   TglIsNamedBufferResidentNV = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10605   TglGetBufferParameterui64vNV = procedure(target: GLenum; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10606   TglGetNamedBufferParameterui64vNV = procedure(buffer: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10607   TglGetIntegerui64vNV = procedure(value: GLenum; result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10608   TglUniformui64NV = procedure(location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10609   TglUniformui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10610   TglGetUniformui64vNV = procedure(_program: GLuint; location: GLint; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10611   TglProgramUniformui64NV = procedure(_program: GLuint; location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10612   TglProgramUniformui64vNV = procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10613
10614   // GL_NV_vertex_buffer_unified_memory
10615   TglBufferAddressRangeNV = procedure(pname: GLenum; index: GLuint; adress: GLuint64EXT; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10616   TglVertexFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10617   TglNormalFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10618   TglColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10619   TglIndexFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10620   TglTexCoordFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10621   TglEdgeFlagFormatNV = procedure(stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10622   TglSecondaryColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10623   TglFogCoordFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10624   TglVertexAttribFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10625   TglVertexAttribIFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10626   TglGetIntegerui64i_vNV = procedure(value: GLenum; index: GLuint; Result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10627
10628   // GL_NV_gpu_program5
10629   TglProgramSubroutineParametersuivNV = procedure(target: GLenum; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10630   TglGetProgramSubroutineParameteruivNV = procedure(target: GLenum; index: GLuint; param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10631
10632   // GL_NV_gpu_shader5
10633   TglUniform1i64NV = procedure(location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10634   TglUniform2i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10635   TglUniform3i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10636   TglUniform4i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10637   TglUniform1i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10638   TglUniform2i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10639   TglUniform3i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10640   TglUniform4i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10641   TglUniform1ui64NV = procedure(location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10642   TglUniform2ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10643   TglUniform3ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10644   TglUniform4ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10645   TglUniform1ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10646   TglUniform2ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10647   TglUniform3ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10648   TglUniform4ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10649   TglGetUniformi64vNV = procedure(program_: GLuint; location: GLint; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10650   TglProgramUniform1i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10651   TglProgramUniform2i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10652   TglProgramUniform3i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10653   TglProgramUniform4i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10654   TglProgramUniform1i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10655   TglProgramUniform2i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10656   TglProgramUniform3i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10657   TglProgramUniform4i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10658   TglProgramUniform1ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10659   TglProgramUniform2ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10660   TglProgramUniform3ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10661   TglProgramUniform4ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10662   TglProgramUniform1ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10663   TglProgramUniform2ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10664   TglProgramUniform3ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10665   TglProgramUniform4ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10666
10667   // GL_NV_vertex_attrib_integer_64bit
10668   TglVertexAttribL1i64NV = procedure(index: GLuint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10669   TglVertexAttribL2i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10670   TglVertexAttribL3i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10671   TglVertexAttribL4i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10672   TglVertexAttribL1i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10673   TglVertexAttribL2i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10674   TglVertexAttribL3i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10675   TglVertexAttribL4i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10676   TglVertexAttribL1ui64NV = procedure(index: GLuint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10677   TglVertexAttribL2ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10678   TglVertexAttribL3ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10679   TglVertexAttribL4ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10680   TglVertexAttribL1ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10681   TglVertexAttribL2ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10682   TglVertexAttribL3ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10683   TglVertexAttribL4ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10684   TglGetVertexAttribLi64vNV = procedure(index: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10685   TglGetVertexAttribLui64vNV = procedure(index: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10686   TglVertexAttribLFormatNV = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10687
10688   // GL_NV_vdpau_interop
10689   TglVDPAUInitNV = procedure(const vdpDevice: PGLvoid; const getProcAddress: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10690   TglVDPAUFiniNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10691   TglVDPAURegisterVideoSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10692   TglVDPAURegisterOutputSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10693   TglVDPAUIsSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10694   TglVDPAUUnregisterSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10695   TglVDPAUGetSurfaceivNV = procedure(surface: GLvdpauSurfaceNV; pname: GLenum; bufSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10696   TglVDPAUSurfaceAccessNV = procedure(surface: GLvdpauSurfaceNV; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10697   TglVDPAUMapSurfacesNV = procedure(numSurfaces: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10698   TglVDPAUUnmapSurfacesNV = procedure(numSurface: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10699
10700   // GL_NV_texture_barrier
10701   TglTextureBarrierNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10702
10703   // (4.3)
10704         // GL_NV_path_rendering
10705   TglGenPathsNV = function(range : GLsizei) : GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10706   TglDeletePathsNV = procedure(path : GLUInt; range : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10707   TglIsPathNV = function(path : GLUInt) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10708   TglPathCommandsNV = procedure(path : GLUInt; numCommands : GLsizei; const commands : PGLubyte; numCoords : GLsizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10709   TglPathCoordsNV = procedure(path : GLUInt; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10710   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}
10711   TglPathSubCoordsNV = procedure(path : GLUInt; coordStart : GLsizei; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10712   TglPathStringNV = procedure(path : GLUInt; format : GLenum; length : GLsizei; const pathString : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10713   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}
10714   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}
10715   TglWeightPathsNV = procedure(resultPath : GLUInt; numPaths : GLSizei; const paths : PGLuint; const weights : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10716   TglCopyPathNV = procedure(resultPath : GLUInt; srcPath : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10717   TglInterpolatePathsNV = procedure(resultPath : GLUInt; pathA : GLUInt; pathB : GLUInt; weight : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10718   TglTransformPathNV = procedure(resultPath : GLUInt; srcPath : GLuint; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10719   TglPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10720   TglPathParameteriNV = procedure(path : GLUInt; pname : GLEnum; value : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10721   TglPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10722   TglPathParameterfNV = procedure(path : GLUInt; pname : GLEnum; value : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10723   TglPathDashArrayNV = procedure(path : GLUInt; dashCount : GLsizei; const dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10724   TglPathStencilFuncNV = procedure(func : GLenum; ref : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10725   TglPathStencilDepthOffsetNV = procedure(factor : GLfloat; units : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10726   TglStencilFillPathNV = procedure(path : GLUInt; fillMode : GLenum; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10727   TglStencilStrokePathNV = procedure(path : GLUInt; reference : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10728   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}
10729   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}
10730   TglPathCoverDepthFuncNV = procedure(func : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10731   TglPathColorGenNV = procedure(color : GLenum; genMode : GLenum; colorFormat : GLenum; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10732   TglPathTexGenNV = procedure(texCoordSet : GLenum; genMode : GLenum; components : GLint; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10733   TglPathFogGenNV = procedure(genMode : GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10734   TglCoverFillPathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10735   TglCoverStrokePathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10736   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}
10737   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}
10738   TglGetPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10739   TglGetPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10740   TglGetPathCommandsNV = procedure(path : GLUInt; commands : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10741   TglGetPathCoordsNV = procedure(path : GLUInt; coords : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10742   TglGetPathDashArrayNV = procedure(path : GLUInt; dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10743   TglGetPathMetricsNV = procedure(metricQueryMask : GLbitfield; numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10744   TglGetPathMetricRangeNV = procedure(metricQueryMask : GLbitfield; firstPathName : GLuint; numPaths : GLSizei; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10745   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}
10746   TglGetPathColorGenivNV = procedure(color : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10747   TglGetPathColorGenfvNV = procedure(color : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10748   TglGetPathTexGenivNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10749   TglGetPathTexGenfvNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10750   TglIsPointInFillPathNV = function(path : GLUInt; mask : GLuint; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10751   TglIsPointInStrokePathNV = function (path : GLUInt; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10752   TglGetPathLengthNV = function(path : GLUInt; startSegment : GLsizei; numSegments : GLsizei) : GLfloat; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10753   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}
10754
10755   // GL_AMD_pinned_memory
10756
10757   // GL_AMD_stencil_operation_extended
10758   TglStencilOpValueAMD = procedure(face : GLEnum; value : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10759
10760   // GL_AMD_vertex_shader_viewport_index
10761
10762   // GL_AMD_vertex_shader_layer
10763
10764   // GL_NV_bindless_texture
10765   TglGetTextureHandleNV = function(texture : GLuint ) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10766   TglGetTextureSamplerHandleNV = function(texture : GLuint; sampler : GLuint) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10767   TglMakeTextureHandleResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10768   TglMakeTextureHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10769   TglGetImageHandleNV = function(texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10770   TglMakeImageHandleResidentNV = procedure(handle : GLUint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10771   TglMakeImageHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10772   TglUniformHandleui64NV = procedure(location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10773   TglUniformHandleui64vNV = procedure(location : GLint; cowunt : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10774   TglProgramUniformHandleui64NV = procedure(program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10775   TglProgramUniformHandleui64vNV = procedure(program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10776   TglIsTextureHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10777   TglIsImageHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10778
10779   // GL_ARB_bindless_texture
10780
10781   TglGetTextureHandleARB = function (texture : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10782   TglGetTextureSamplerHandleARB = function (texture : GLuint; sampler : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10783   TglMakeTextureHandleResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10784   TglMakeTextureHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10785   TglGetImageHandleARB = function (texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10786   TglMakeImageHandleResidentARB = procedure (handle : GLuint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10787   TglMakeImageHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10788   TglUniformHandleui64ARB = procedure (location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10789   TglUniformHandleui64vARB = procedure (location : GLint; count : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10790   TglProgramUniformHandleui64ARB = procedure (program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10791   TglProgramUniformHandleui64vARB = procedure (program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10792   TglIsTextureHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10793   TglIsImageHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10794   TglVertexAttribL1ui64ARB = procedure (index : GLuint; x : GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10795   TglVertexAttribL1ui64vARB = procedure (index : GLuint; const v : PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10796   TglGetVertexAttribLui64vARB = procedure (index : GLuint; pname : GLenum; params : PGLuint64EXT ); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10797
10798         // GL_NV_shader_atomic_float
10799
10800         // GL_AMD_query_buffer_object
10801
10802   //
10803
10804   // GL_PGI_misc_hints
10805   TglHintPGI = procedure(target: GLenum; mode: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10806
10807   // GL_SGIS_detail_texture
10808   TglDetailTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10809   TglGetDetailTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10810
10811   // GL_SGIS_fog_function
10812   TglFogFuncSGIS = procedure(n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10813   TglGetFogFuncSGIS = procedure(points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10814
10815   // GL_SGIS_multisample
10816   TglSampleMaskSGIS = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10817   TglSamplePatternSGIS = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10818
10819   // GL_SGIS_pixel_texture
10820   TglPixelTexGenParameteriSGIS = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10821   TglPixelTexGenParameterivSGIS = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10822   TglPixelTexGenParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10823   TglPixelTexGenParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10824   TglGetPixelTexGenParameterivSGIS = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10825   TglGetPixelTexGenParameterfvSGIS = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10826
10827   // GL_SGIS_point_parameters
10828   TglPointParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10829   TglPointParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10830
10831   // GL_SGIS_sharpen_texture
10832   TglSharpenTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10833   TglGetSharpenTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10834
10835   // GL_SGIS_texture4D
10836   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}
10837   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}
10838
10839   // GL_SGIS_texture_color_mask
10840   TglTextureColorMaskSGIS = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10841
10842   // GL_SGIS_texture_filter4
10843   TglGetTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10844   TglTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; n: GLsizei; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10845
10846   // GL_SGIX_async
10847   TglAsyncMarkerSGIX = procedure(marker: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10848   TglFinishAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10849   TglPollAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10850   TglGenAsyncMarkersSGIX = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10851   TglDeleteAsyncMarkersSGIX = procedure(marker: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10852   TglIsAsyncMarkerSGIX = function(marker: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10853
10854   // GL_SGIX_flush_raster
10855   TglFlushRasterSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10856
10857   // GL_SGIX_fragment_lighting
10858   TglFragmentColorMaterialSGIX = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10859   TglFragmentLightfSGIX = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10860   TglFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10861   TglFragmentLightiSGIX = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10862   TglFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10863   TglFragmentLightModelfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10864   TglFragmentLightModelfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10865   TglFragmentLightModeliSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10866   TglFragmentLightModelivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10867   TglFragmentMaterialfSGIX = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10868   TglFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10869   TglFragmentMaterialiSGIX = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10870   TglFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10871   TglGetFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10872   TglGetFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10873   TglGetFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10874   TglGetFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10875   TglLightEnviSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10876
10877   // GL_SGIX_framezoom
10878   TglFrameZoomSGIX = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10879
10880   // GL_SGIX_igloo_interface
10881   TglIglooInterfaceSGIX = procedure(pname: GLenum; const params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10882
10883   // GL_SGIX_instruments
10884   TglGetInstrumentsSGIX = function(): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10885   TglInstrumentsBufferSGIX = procedure(size: GLsizei; buffer: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10886   TglPollInstrumentsSGIX = function(marker_p: PGLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10887   TglReadInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10888   TglStartInstrumentsSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10889   TglStopInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10890
10891   // GL_SGIX_list_priority
10892   TglGetListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10893   TglGetListParameterivSGIX = procedure(list: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10894   TglListParameterfSGIX = procedure(list: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10895   TglListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10896   TglListParameteriSGIX = procedure(list: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10897   TglListParameterivSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10898
10899   // GL_SGIX_pixel_texture
10900   TglPixelTexGenSGIX = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10901
10902   // GL_SGIX_polynomial_ffd
10903   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}
10904   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}
10905   TglDeformSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10906   TglLoadIdentityDeformationMapSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10907
10908   // GL_SGIX_reference_plane
10909   TglReferencePlaneSGIX = procedure(const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10910
10911   // GL_SGIX_sprite
10912   TglSpriteParameterfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10913   TglSpriteParameterfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10914   TglSpriteParameteriSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10915   TglSpriteParameterivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10916
10917   // GL_SGIX_tag_sample_buffer
10918   TglTagSampleBufferSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10919
10920   // GL_SGI_color_table
10921   TglColorTableSGI = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10922   TglColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10923   TglColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10924   TglCopyColorTableSGI = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10925   TglGetColorTableSGI = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10926   TglGetColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10927   TglGetColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10928
10929   // GL_SUNX_constant_data
10930   TglFinishTextureSUNX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10931
10932   // GL_SUN_global_alpha
10933   TglGlobalAlphaFactorbSUN = procedure(factor: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10934   TglGlobalAlphaFactorsSUN = procedure(factor: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10935   TglGlobalAlphaFactoriSUN = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10936   TglGlobalAlphaFactorfSUN = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10937   TglGlobalAlphaFactordSUN = procedure(factor: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10938   TglGlobalAlphaFactorubSUN = procedure(factor: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10939   TglGlobalAlphaFactorusSUN = procedure(factor: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10940   TglGlobalAlphaFactoruiSUN = procedure(factor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10941
10942   // GL_SUN_mesh_array
10943   TglDrawMeshArraysSUN = procedure(mode: GLenum; first: GLint; count: GLsizei; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10944
10945   // GL_SUN_triangle_list
10946   TglReplacementCodeuiSUN = procedure(code: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10947   TglReplacementCodeusSUN = procedure(code: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10948   TglReplacementCodeubSUN = procedure(code: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10949   TglReplacementCodeuivSUN = procedure(const code: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10950   TglReplacementCodeusvSUN = procedure(const code: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10951   TglReplacementCodeubvSUN = procedure(const code: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10952   TglReplacementCodePointerSUN = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10953
10954   // GL_SUN_vertex
10955   TglColor4ubVertex2fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10956   TglColor4ubVertex2fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10957   TglColor4ubVertex3fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10958   TglColor4ubVertex3fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10959   TglColor3fVertex3fSUN = procedure(r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10960   TglColor3fVertex3fvSUN = procedure(const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10961   TglNormal3fVertex3fSUN = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10962   TglNormal3fVertex3fvSUN = procedure(const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10963   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}
10964   TglColor4fNormal3fVertex3fvSUN = procedure(const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10965   TglTexCoord2fVertex3fSUN = procedure(s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10966   TglTexCoord2fVertex3fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10967   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}
10968   TglTexCoord4fVertex4fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10969   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}
10970   TglTexCoord2fColor4ubVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10971   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}
10972   TglTexCoord2fColor3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10973   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}
10974   TglTexCoord2fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10975   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}
10976   TglTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10977   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}
10978   TglTexCoord4fColor4fNormal3fVertex4fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10979   TglReplacementCodeuiVertex3fSUN = procedure(rc: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10980   TglReplacementCodeuiVertex3fvSUN = procedure(const rc: PGLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10981   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}
10982   TglReplacementCodeuiColor4ubVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10983   TglReplacementCodeuiColor3fVertex3fSUN = procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10984   TglReplacementCodeuiColor3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10985   TglReplacementCodeuiNormal3fVertex3fSUN = procedure(rc: GLuint; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10986   TglReplacementCodeuiNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10987   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}
10988   TglReplacementCodeuiColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10989   TglReplacementCodeuiTexCoord2fVertex3fSUN = procedure(rc: GLuint; s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10990   TglReplacementCodeuiTexCoord2fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10991   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}
10992   TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10993   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}
10994   TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10995
10996   // window support functions
10997 {$IFDEF DGL_WIN}
10998   TwglGetProcAddress = function(ProcName: PAnsiChar): Pointer; stdcall;
10999   TwglCopyContext = function(p1: HGLRC; p2: HGLRC; p3: Cardinal): BOOL; stdcall;
11000   TwglCreateContext = function(DC: HDC): HGLRC; stdcall;
11001   TwglCreateLayerContext = function(p1: HDC; p2: Integer): HGLRC; stdcall;
11002   TwglDeleteContext = function(p1: HGLRC): BOOL; stdcall;
11003   TwglDescribeLayerPlane = function(p1: HDC; p2, p3: Integer; p4: Cardinal; p5: PLayerPlaneDescriptor): BOOL; stdcall;
11004   TwglGetCurrentContext = function: HGLRC; stdcall;
11005   TwglGetCurrentDC = function: HDC; stdcall;
11006   TwglGetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
11007   TwglMakeCurrent = function(DC: HDC; p2: HGLRC): BOOL; stdcall;
11008   TwglRealizeLayerPalette = function(p1: HDC; p2: Integer; p3: BOOL): BOOL; stdcall;
11009   TwglSetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
11010   TwglShareLists = function(p1, p2: HGLRC): BOOL; stdcall;
11011   TwglSwapLayerBuffers = function(p1: HDC; p2: Cardinal): BOOL; stdcall;
11012   TwglSwapMultipleBuffers = function(p1: UINT; const p2: PWGLSWAP): DWORD; stdcall;
11013   TwglUseFontBitmapsA = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
11014   TwglUseFontBitmapsW = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
11015   TwglUseFontBitmaps = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
11016
11017   TwglUseFontOutlinesA = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
11018   TwglUseFontOutlinesW = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
11019   TwglUseFontOutlines = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
11020
11021
11022   // WGL_ARB_buffer_region
11023   TwglCreateBufferRegionARB = function(hDC: HDC; iLayerPlane: GLint; uType: GLuint): THandle; stdcall;
11024   TwglDeleteBufferRegionARB = procedure(hRegion: THandle); stdcall;
11025   TwglSaveBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint): Boolean; stdcall;
11026   TwglRestoreBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint; xSrc: GLint; ySrc: GLint): Boolean; stdcall;
11027
11028   // WGL_ARB_extensions_string
11029   TwglGetExtensionsStringARB = function(hdc: HDC): PAnsiChar; stdcall;
11030
11031   // WGL_ARB_make_current_read
11032   TwglMakeContextCurrentARB = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
11033   TwglGetCurrentReadDCARB = function(): HDC; stdcall;
11034
11035   // WGL_ARB_pbuffer
11036   TwglCreatePbufferARB = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFERARB; stdcall;
11037   TwglGetPbufferDCARB = function(hPbuffer: HPBUFFERARB): HDC; stdcall;
11038   TwglReleasePbufferDCARB = function(hPbuffer: HPBUFFERARB; hDC: HDC): GLint; stdcall;
11039   TwglDestroyPbufferARB = function(hPbuffer: HPBUFFERARB): Boolean; stdcall;
11040   TwglQueryPbufferARB = function(hPbuffer: HPBUFFERARB; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
11041
11042   // WGL_ARB_pixel_format
11043   TwglGetPixelFormatAttribivARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
11044   TwglGetPixelFormatAttribfvARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
11045   TwglChoosePixelFormatARB = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): BOOL; stdcall;
11046
11047   // WGL_ARB_color_buffer_float
11048   TwglClampColorARB = procedure(target: GLenum; clamp: GLenum); stdcall;
11049
11050   // WGL_ARB_render_texture
11051   TwglBindTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
11052   TwglReleaseTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
11053   TwglSetPbufferAttribARB = function(hPbuffer: HPBUFFERARB; const piAttribList: PGLint): Boolean; stdcall;
11054
11055   // WGL_ARB_create_context
11056   TwglCreateContextAttribsARB = function(hDC: HDC; hShareContext: HGLRC; const attribList: PGLint): HGLRC; stdcall;
11057
11058   // WGL_AMD_gpu_association
11059   TwglGetGPUIDsAMD = function(maxCount: Cardinal; ids: PCardinal): Cardinal; stdcall;
11060   TwglGetGPUInfoAMD = function(id: Cardinal; property_: Integer; dataType: GLenum; size: Cardinal; data: Pointer): Integer; stdcall;
11061   TwglGetContextGPUIDAMD = function(hglrc: HGLRC): Cardinal; stdcall;
11062   TwglCreateAssociatedContextAMD = function(id: Cardinal): HGLRC; stdcall;
11063   TwglCreateAssociatedContextAttribsAMD = function(id: Cardinal; hShareContext: HGLRC; const attribList: PInteger): HGLRC; stdcall;
11064   TwglDeleteAssociatedContextAMD = function(hglrc: HGLRC): Boolean; stdcall;
11065   TwglMakeAssociatedContextCurrentAMD = function(hglrc: HGLRC): Boolean; stdcall;
11066   TwglGetCurrentAssociatedContextAMD = function(): HGLRC; stdcall;
11067   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;
11068
11069   // WGL_EXT_display_color_table
11070   TwglCreateDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
11071   TwglLoadDisplayColorTableEXT = function(const table: PGLushort; length: GLuint): GLboolean; stdcall;
11072   TwglBindDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
11073   TwglDestroyDisplayColorTableEXT = procedure(id: GLushort); stdcall;
11074
11075   // WGL_EXT_extensions_string
11076   TwglGetExtensionsStringEXT = function(): PAnsiChar; stdcall;
11077
11078   // WGL_EXT_make_current_read
11079   TwglMakeContextCurrentEXT = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
11080   TwglGetCurrentReadDCEXT = function(): HDC; stdcall;
11081
11082   // WGL_EXT_pbuffer
11083   TwglCreatePbufferEXT = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFEREXT; stdcall;
11084   TwglGetPbufferDCEXT = function(hPbuffer: HPBUFFEREXT): HDC; stdcall;
11085   TwglReleasePbufferDCEXT = function(hPbuffer: HPBUFFEREXT; hDC: HDC): GLint; stdcall;
11086   TwglDestroyPbufferEXT = function(hPbuffer: HPBUFFEREXT): Boolean; stdcall;
11087   TwglQueryPbufferEXT = function(hPbuffer: HPBUFFEREXT; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
11088
11089   // WGL_EXT_pixel_format
11090   TwglGetPixelFormatAttribivEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
11091   TwglGetPixelFormatAttribfvEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
11092   TwglChoosePixelFormatEXT = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): Boolean; stdcall;
11093
11094   // WGL_EXT_swap_control
11095   TwglSwapIntervalEXT = function(interval: GLint): Boolean; stdcall;
11096   TwglGetSwapIntervalEXT = function(): GLint; stdcall;
11097
11098   // WGL_I3D_digital_video_control
11099   TwglGetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
11100   TwglSetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
11101
11102   // WGL_I3D_gamma
11103   TwglGetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
11104   TwglSetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
11105   TwglGetGammaTableI3D = function(hDC: HDC; iEntries: GLint; puRed: PGLushort; puGreen: PGLushort; puBlue: PGLushort): Boolean; stdcall;
11106   TwglSetGammaTableI3D = function(hDC: HDC; iEntries: GLint; const puRed: PGLushort; const puGreen: PGLushort; const puBlue: PGLushort): Boolean; stdcall;
11107
11108   // WGL_I3D_genlock
11109   TwglEnableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
11110   TwglDisableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
11111   TwglIsEnabledGenlockI3D = function(hDC: HDC; pFlag: Boolean): Boolean; stdcall;
11112   TwglGenlockSourceI3D = function(hDC: HDC; uSource: GLuint): Boolean; stdcall;
11113   TwglGetGenlockSourceI3D = function(hDC: HDC; uSource: PGLuint): Boolean; stdcall;
11114   TwglGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: GLuint): Boolean; stdcall;
11115   TwglGetGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: PGLuint): Boolean; stdcall;
11116   TwglGenlockSampleRateI3D = function(hDC: HDC; uRate: GLuint): Boolean; stdcall;
11117   TwglGetGenlockSampleRateI3D = function(hDC: HDC; uRate: PGLuint): Boolean; stdcall;
11118   TwglGenlockSourceDelayI3D = function(hDC: HDC; uDelay: GLuint): Boolean; stdcall;
11119   TwglGetGenlockSourceDelayI3D = function(hDC: HDC; uDelay: PGLuint): Boolean; stdcall;
11120   TwglQueryGenlockMaxSourceDelayI3D = function(hDC: HDC; uMaxLineDelay: PGLuint; uMaxPixelDelay: PGLuint): Boolean; stdcall;
11121
11122   // WGL_I3D_image_buffer
11123   TwglCreateImageBufferI3D = function(hDC: HDC; dwSize: GLuint; uFlags: GLuint): GLvoid; stdcall;
11124   TwglDestroyImageBufferI3D = function(hDC: HDC; pAddress: GLvoid): Boolean; stdcall;
11125   TwglAssociateImageBufferEventsI3D = function(hDC: HDC; const pEvent: THandle; const pAddress: PGLvoid; const pSize: PGLuint; count: GLuint): Boolean; stdcall;
11126   TwglReleaseImageBufferEventsI3D = function(hDC: HDC; const pAddress: PGLvoid; count: GLuint): Boolean; stdcall;
11127
11128   // WGL_I3D_swap_frame_lock
11129   TwglEnableFrameLockI3D = function(): Boolean; stdcall;
11130   TwglDisableFrameLockI3D = function(): Boolean; stdcall;
11131   TwglIsEnabledFrameLockI3D = function(pFlag: Boolean): Boolean; stdcall;
11132   TwglQueryFrameLockMasterI3D = function(pFlag: Boolean): Boolean; stdcall;
11133
11134   // WGL_I3D_swap_frame_usage
11135   TwglGetFrameUsageI3D = function(pUsage: PGLfloat): Boolean; stdcall;
11136   TwglBeginFrameTrackingI3D = function(): Boolean; stdcall;
11137   TwglEndFrameTrackingI3D = function(): Boolean; stdcall;
11138   TwglQueryFrameTrackingI3D = function(pFrameCount: PGLuint; pMissedFrames: PGLuint; pLastMissedUsage: PGLfloat): Boolean; stdcall;
11139
11140   // WGL_NV_vertex_array_range
11141   TwglAllocateMemoryNV = procedure(size: GLsizei; readfreq: GLfloat; writefreq: GLfloat; priority: GLfloat); stdcall;
11142   TwglFreeMemoryNV = procedure(_pointer: Pointer); stdcall;
11143
11144   // WGL_NV_present_video
11145   TwglEnumerateVideoDevicesNV = function(hdc: HDC; phDeviceList: PHVIDEOOUTPUTDEVICENV): Integer; stdcall;
11146   TwglBindVideoDeviceNV = function(hd: HDC; uVideoSlot: Cardinal; hVideoDevice: HVIDEOOUTPUTDEVICENV; piAttribList: PInteger): Boolean; stdcall;
11147   TwglQueryCurrentContextNV = function(iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11148
11149   // WGL_NV_video_output
11150   TwglGetVideoDeviceNV = function(hDC: HDC; numDevices: Integer; hVideoDevice: PHPVIDEODEV): Boolean; stdcall;
11151   TwglReleaseVideoDeviceNV = function(hVideoDevice: HPVIDEODEV): Boolean; stdcall;
11152   TwglBindVideoImageNV = function(hVideoDevice: HPVIDEODEV; hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11153   TwglReleaseVideoImageNV = function(hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11154   TwglSendPbufferToVideoNV = function(hPbuffer: HPBUFFERARB; iBufferType: Integer; pulCounterPbuffer: PCardinal; bBlock: Boolean): Boolean; stdcall;
11155   TwglGetVideoInfoNV = function(hpVideoDevice: HPVIDEODEV; pulCounterOutputPbuffer: PCardinal; pulCounterOutputVideo: PCardinal): Boolean; stdcall;
11156
11157   // WGL_NV_swap_group
11158   TwglJoinSwapGroupNV = function(hDC: HDC; group: GLuint): Boolean; stdcall;
11159   TwglBindSwapBarrierNV = function(group: GLuint; barrier: GLuint): Boolean; stdcall;
11160   TwglQuerySwapGroupNV = function(hDC: HDC; group: PGLuint; barrier: PGLuint): Boolean; stdcall;
11161   TwglQueryMaxSwapGroupsNV = function(hDC: HDC; mxGroups: PGLuint; maxBarriers: PGLuint): Boolean; stdcall;
11162   TwglQueryFrameCountNV = function(hDC: HDC; count: PGLuint): Boolean; stdcall;
11163   TwglResetFrameCountNV = function(hDC: HDC): Boolean; stdcall;
11164
11165   // WGL_NV_gpu_affinity
11166   TwglEnumGpusNV = function(iGpuIndex: Cardinal; phGpu: PHGPUNV): Boolean; stdcall;
11167   TwglEnumGpuDevicesNV = function(hGpu: HGPUNV; iDeviceIndex: Cardinal; lpGpuDevice: PGPU_DEVICE): Boolean; stdcall;
11168   TwglCreateAffinityDCNV = function(const phGpuList: PHGPUNV): HDC; stdcall;
11169   TwglEnumGpusFromAffinityDCNV = function(hAffinityDC: HDC; iGpuIndex: Cardinal; hGpu: PHGPUNV): Boolean; stdcall;
11170   TwglDeleteDCNV = function(hDC: HDC): Boolean; stdcall;
11171
11172   // WGL_NV_video_capture
11173   TwglBindVideoCaptureDeviceNV = function(uVideoSlot: Cardinal; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11174   TwglEnumerateVideoCaptureDevicesNV = function(hDc: HDC; phDeviceList: PHVIDEOINPUTDEVICENV): Cardinal; stdcall;
11175   TwglLockVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11176   TwglQueryVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV; iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11177   TwglReleaseVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11178
11179   // WGL_NV_copy_image
11180   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;
11181
11182   // WGL_NV_DX_interop
11183   TwglDXSetResourceShareHandleNV = function(dxObject : PGLVoid; hareHandle : Cardinal) : Boolean; stdcall;
11184   TwglDXOpenDeviceNV = function(dxDevice : PGLVoid) : Cardinal; stdcall;
11185   TwglDXCloseDeviceNV = function(hDevice : Cardinal) : Boolean; stdcall;
11186   TwglDXRegisterObjectNV = function(hDevice : Cardinal; dxObject : PGLVoid; name : GLUInt; _type : TGLEnum; access : TGLenum) : Cardinal; stdcall;
11187   TwglDXUnregisterObjectNV = function(hDevice : Cardinal; hObject : Cardinal) : Boolean; stdcall;
11188   TwglDXObjectAccessNV = function(hObject : Cardinal; access : GLenum) : Boolean; stdcall;
11189   TwglDXLockObjectsNV = function(hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11190   TwglDXUnlockObjectsNV = function (hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11191
11192   // WGL_OML_sync_control
11193   TwglGetSyncValuesOML = function(hdc: HDC; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11194   TwglGetMscRateOML = function(hdc: HDC; numerator: PGLint; denominator: PGLint): Boolean; stdcall;
11195   TwglSwapBuffersMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11196   TwglSwapLayerBuffersMscOML = function(hdc: HDC; fuPlanes: GLint; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11197   TwglWaitForMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11198   TwglWaitForSbcOML = function(hdc: HDC; target_sbc: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11199
11200   // WGL_3DL_stereo_control
11201   TwglSetStereoEmitterState3DL = function(hDC: HDC; uState: UINT): Boolean; stdcall;
11202   
11203   // WIN_draw_range_elements
11204   TglDrawRangeElementsWIN = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); stdcall;
11205
11206   // WIN_swap_hint
11207   TglAddSwapHintRectWIN = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
11208 {$ENDIF}
11209
11210 {$IFDEF DGL_LINUX}
11211   TglXChooseVisual = function(dpy: PDisplay; screen: GLint; attribList: PGLint): PXVisualInfo; cdecl;
11212   TglXCopyContext = procedure(dpy: PDisplay; src: GLXContext; dst: GLXContext; mask: GLuint); cdecl;
11213   TglXCreateContext = function(dpy: PDisplay; vis: PXVisualInfo; shareList: GLXContext; direct: GLboolean): GLXContext; cdecl;
11214   TglXCreateGLXPixmap = function(dpy: PDisplay; vis: PXVisualInfo; pixmap: Pixmap): GLXPixmap cdecl;
11215   TglXDestroyContext = procedure(dpy: PDisplay; ctx: GLXContext); cdecl;
11216   TglXDestroyGLXPixmap = procedure(dpy : PDisplay; pix: GLXPixmap); cdecl;
11217   TglXGetConfig = function(dpy : PDisplay; vis: PXVisualInfo; attrib: GLint; value: PGLint): GLint; cdecl;
11218   TglXGetCurrentContext = function: GLXContext cdecl;
11219   TglXGetCurrentDrawable = function: GLXDrawable cdecl;
11220   TglXIsDirect = function(dpy: PDisplay; ctx: GLXContext): glboolean; cdecl;
11221   TglXMakeCurrent = function(dpy: PDisplay; drawable: GLXDrawable; ctx: GLXContext): GLboolean cdecl;
11222   TglXQueryExtension = function(dpy: PDisplay; errorBase: PGLint; eventBase: PGLint): GLboolean; cdecl;
11223   TglXQueryVersion = function(dpy: PDisplay; major: PGLint; minor: PGLint): GLboolean cdecl;
11224   TglXSwapBuffers = procedure(dpy: PDisplay; drawable: GLXDrawable); cdecl;
11225   TglXUseXFont = procedure(font: Font; first: GLint; count: GLint; listBase: GLint); cdecl;
11226   TglXWaitGL = procedure; cdecl; 
11227   TglXWaitX = procedure; cdecl;
11228
11229   TglXGetClientString = function(dpy: PDisplay; name: GLint): PGLchar; cdecl;
11230   TglXQueryServerString = function(dpy: PDisplay; screen: GLint; name: GLint): PGLchar; cdecl;
11231   TglXQueryExtensionsString = function(dpy: PDisplay; screen: GLint): PGLchar; cdecl;
11232
11233   // GLX_VERSION_1_3
11234   TglXGetFBConfigs = function(dpy: PDisplay; screen: GLint; nelements: PGLint): GLXFBConfig; cdecl;
11235   TglXChooseFBConfig = function(dpy: PDisplay; screen: GLint; attrib_list: PGLint; nelements: PGLint): GLXFBConfig; cdecl;
11236   TglXGetFBConfigAttrib = function(dpy: PDisplay; config: GLXFBConfig; attribute: GLint; value: PGLint): glint; cdecl;
11237   TglXGetVisualFromFBConfig = function(dpy: PDisplay; config: GLXFBConfig) : PXVisualInfo; cdecl;
11238   TglXCreateWindow = function(dpy: PDisplay; config: GLXFBConfig; win: Window; attrib_list: PGLint): GLXWindow; cdecl;
11239   TglXDestroyWindow = procedure(dpy: PDisplay; win: GLXWindow); cdecl;
11240   TglXCreatePixmap = function(dpy: PDisplay; config: GLXFBConfig; pixmap: Pixmap; attrib_list: PGLint): GLXPixmap; cdecl;
11241
11242   TglXDestroyPixmap = procedure(dpy: PDisplay; pixmap: GLXPixmap); cdecl;
11243   TglXCreatePbuffer = function(dpy: PDisplay; config: GLXFBConfig; attrib_list: PGLint): GLXPbuffer; cdecl;
11244   TglXDestroyPbuffer = procedure(dpy: PDisplay; pbuf: GLXPbuffer); cdecl;
11245   TglXQueryDrawable = procedure(dpy: PDisplay; draw: GLXDrawable; attribute: GLint; value: PGLuint); cdecl;
11246   TglXCreateNewContext = function(dpy: PDisplay; config: GLXFBConfig; render_type: GLint; share_list: GLXContext; direct: GLboolean): GLXContext cdecl;
11247   TglXMakeContextCurrent = function(display: PDisplay; draw: GLXDrawable; read_: GLXDrawable; ctx: GLXContext): GLboolean; cdecl;
11248   TglXGetCurrentReadDrawable = function: GLXDrawable; cdecl;
11249   TglXGetCurreentDisplay = function: PDisplay;
11250
11251   TglXQueryContext = function(dpy: PDisplay; ctx: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11252   TglXSelectEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: GLuint); cdecl;
11253   TglXGetSelectedEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: PGLuint); cdecl;
11254
11255   // GLX_VERSION_1_4
11256   TglXGetProcAddress = function(const name: PAnsiChar): pointer; cdecl;
11257
11258   // GLX_ARB_get_proc_address
11259   TglXGetProcAddressARB = function(const name: PAnsiChar): pointer; cdecl;
11260
11261   // GLX_ARB_create_context
11262   TglXCreateContextAttribsARB = function(dpy: PDisplay; config: GLXFBConfig; share_context: GLXContext; direct: GLboolean; const attrib_list: PGLint): GLXContext; cdecl;
11263
11264   // GLX_EXT_import_context
11265   TglXGetCurrentDisplayEXT = function: PDisplay; cdecl;
11266   TglXQueryContextInfoEXT = function(dpy: PDisplay; context: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11267   TglXGetContextIDEXT = function(const context: GLXContext): GLXContextID; cdecl;
11268   TglXImportContextEXT = function(dpy: PDisplay; contextID: GLXContextID): GLXContext; cdecl;
11269   TglXFreeContextEXT = procedure(dpy: PDisplay; context: GLXContext); cdecl;
11270   
11271   // GLX_EXT_texture_from_pixmap
11272   TglXBindTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint; const attrib_list: PGLint); cdecl;
11273   TglXReleaseTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint); cdecl;
11274 {$ENDIF}
11275
11276   // GL utility functions and procedures
11277   TgluErrorString = function(errCode: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11278   TgluGetString = function(name: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11279   TgluOrtho2D = procedure(left, right, bottom, top: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11280   TgluPerspective = procedure(fovy, aspect, zNear, zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11281   TgluPickMatrix = procedure(x, y, width, height: GLdouble; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11282   TgluLookAt = procedure(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11283   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}
11284   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}
11285   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}
11286   TgluBuild1DMipmaps = function(target: GLEnum; components, width: GLint; format, atype: GLEnum; const data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11287   TgluBuild2DMipmaps = function(target: GLEnum; components, width, height: GLint; format, atype: GLEnum; const Data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11288   TgluNewQuadric = function: PGLUquadric; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11289   TgluDeleteQuadric = procedure(state: PGLUquadric); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11290   TgluQuadricNormals = procedure(quadObject: PGLUquadric; normals: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11291   TgluQuadricTexture = procedure(quadObject: PGLUquadric; textureCoords: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11292   TgluQuadricOrientation = procedure(quadObject: PGLUquadric; orientation: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11293   TgluQuadricDrawStyle = procedure(quadObject: PGLUquadric; drawStyle: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11294   TgluCylinder = procedure(quadObject: PGLUquadric; baseRadius, topRadius, height: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11295   TgluDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11296   TgluPartialDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint; startAngle, sweepAngle: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11297   TgluSphere = procedure(quadObject: PGLUquadric; radius: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11298   TgluQuadricCallback = procedure(quadObject: PGLUquadric; which: GLEnum; fn: TGLUQuadricErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11299   TgluNewTess = function: PGLUtesselator; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11300   TgluDeleteTess = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11301   TgluTessBeginPolygon = procedure(tess: PGLUtesselator; polygon_data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11302   TgluTessBeginContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11303   TgluTessVertex = procedure(tess: PGLUtesselator; const coords: TGLArrayd3; data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11304   TgluTessEndContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11305   TgluTessEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11306   TgluTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11307   TgluTessNormal = procedure(tess: PGLUtesselator; x, y, z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11308   TgluTessCallback = procedure(tess: PGLUtesselator; which: GLEnum; fn: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11309   TgluGetTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11310   TgluNewNurbsRenderer = function: PGLUnurbs; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11311   TgluDeleteNurbsRenderer = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11312   TgluBeginSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11313   TgluBeginCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11314   TgluEndCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11315   TgluEndSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11316   TgluBeginTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11317   TgluEndTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11318   TgluPwlCurve = procedure(nobj: PGLUnurbs; count: GLint; points: PGLfloat; stride: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11319   TgluNurbsCurve = procedure(nobj: PGLUnurbs; nknots: GLint; knot: PGLfloat; stride: GLint; ctlarray: PGLfloat; order: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11320   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}
11321   TgluLoadSamplingMatrices = procedure(nobj: PGLUnurbs; const modelMatrix, projMatrix: TGLMatrixf4; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11322   TgluNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11323   TgluGetNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11324   TgluNurbsCallback = procedure(nobj: PGLUnurbs; which: GLEnum; fn: TGLUNurbsErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11325   TgluBeginPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11326   TgluNextContour = procedure(tess: PGLUtesselator; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11327   TgluEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11328
11329 var
11330   // GL_VERSION_1_0
11331   glCullFace: TglCullFace;
11332   glFrontFace: TglFrontFace;
11333   glHint: TglHint;
11334   glLineWidth: TglLineWidth;
11335   glPointSize: TglPointSize;
11336   glPolygonMode: TglPolygonMode;
11337   glScissor: TglScissor;
11338   glTexParameterf: TglTexParameterf;
11339   glTexParameterfv: TglTexParameterfv;
11340   glTexParameteri: TglTexParameteri;
11341   glTexParameteriv: TglTexParameteriv;
11342   glTexImage1D: TglTexImage1D;
11343   glTexImage2D: TglTexImage2D;
11344   glDrawBuffer: TglDrawBuffer;
11345   glClear: TglClear;
11346   glClearColor: TglClearColor;
11347   glClearStencil: TglClearStencil;
11348   glClearDepth: TglClearDepth;
11349   glStencilMask: TglStencilMask;
11350   glColorMask: TglColorMask;
11351   glDepthMask: TglDepthMask;
11352   glDisable: TglDisable;
11353   glEnable: TglEnable;
11354   glFinish: TglFinish;
11355   glFlush: TglFlush;
11356   glBlendFunc: TglBlendFunc;
11357   glLogicOp: TglLogicOp;
11358   glStencilFunc: TglStencilFunc;
11359   glStencilOp: TglStencilOp;
11360   glDepthFunc: TglDepthFunc;
11361   glPixelStoref: TglPixelStoref;
11362   glPixelStorei: TglPixelStorei;
11363   glReadBuffer: TglReadBuffer;
11364   glReadPixels: TglReadPixels;
11365   glGetBooleanv: TglGetBooleanv;
11366   glGetDoublev: TglGetDoublev;
11367   glGetError: TglGetError;
11368   glGetFloatv: TglGetFloatv;
11369   glGetIntegerv: TglGetIntegerv;
11370   glGetString: TglGetString;
11371   glGetTexImage: TglGetTexImage;
11372   glGetTexParameteriv: TglGetTexParameteriv;
11373   glGetTexParameterfv: TglGetTexParameterfv;
11374   glGetTexLevelParameterfv: TglGetTexLevelParameterfv;
11375   glGetTexLevelParameteriv: TglGetTexLevelParameteriv;
11376   glIsEnabled: TglIsEnabled;
11377   glDepthRange: TglDepthRange;
11378   glViewport: TglViewport;
11379
11380   // GL_VERSION_1_1
11381   glDrawArrays: TglDrawArrays;
11382   glDrawElements: TglDrawElements;
11383   glGetPointerv: TglGetPointerv;
11384   glPolygonOffset: TglPolygonOffset;
11385   glCopyTexImage1D: TglCopyTexImage1D;
11386   glCopyTexImage2D: TglCopyTexImage2D;
11387   glCopyTexSubImage1D: TglCopyTexSubImage1D;
11388   glCopyTexSubImage2D: TglCopyTexSubImage2D;
11389   glTexSubImage1D: TglTexSubImage1D;
11390   glTexSubImage2D: TglTexSubImage2D;
11391   glBindTexture: TglBindTexture;
11392   glDeleteTextures: TglDeleteTextures;
11393   glGenTextures: TglGenTextures;
11394 {$ifdef DGL_DEPRECATED}
11395   glAccum: TglAccum;
11396   glAlphaFunc: TglAlphaFunc;
11397   glAreTexturesResident: TglAreTexturesResident;
11398   glArrayElement: TglArrayElement;
11399   glBegin: TglBegin;
11400   glBitmap: TglBitmap;
11401   glCallList: TglCallList;
11402   glCallLists: TglCallLists;
11403   glClearAccum: TglClearAccum;
11404   glClearIndex: TglClearIndex;
11405   glClipPlane: TglClipPlane;
11406   glColor3b: TglColor3b;
11407   glColor3bv: TglColor3bv;
11408   glColor3d: TglColor3d;
11409   glColor3dv: TglColor3dv;
11410   glColor3f: TglColor3f;
11411   glColor3fv: TglColor3fv;
11412   glColor3i: TglColor3i;
11413   glColor3iv: TglColor3iv;
11414   glColor3s: TglColor3s;
11415   glColor3sv: TglColor3sv;
11416   glColor3ub: TglColor3ub;
11417   glColor3ubv: TglColor3ubv;
11418   glColor3ui: TglColor3ui;
11419   glColor3uiv: TglColor3uiv;
11420   glColor3us: TglColor3us;
11421   glColor3usv: TglColor3usv;
11422   glColor4b: TglColor4b;
11423   glColor4bv: TglColor4bv;
11424   glColor4d: TglColor4d;
11425   glColor4dv: TglColor4dv;
11426   glColor4f: TglColor4f;
11427   glColor4fv: TglColor4fv;
11428   glColor4i: TglColor4i;
11429   glColor4iv: TglColor4iv;
11430   glColor4s: TglColor4s;
11431   glColor4sv: TglColor4sv;
11432   glColor4ub: TglColor4ub;
11433   glColor4ubv: TglColor4ubv;
11434   glColor4ui: TglColor4ui;
11435   glColor4uiv: TglColor4uiv;
11436   glColor4us: TglColor4us;
11437   glColor4usv: TglColor4usv;
11438   glColorMaterial: TglColorMaterial;
11439   glColorPointer: TglColorPointer;
11440   glCopyPixels: TglCopyPixels;
11441   glDeleteLists: TglDeleteLists;
11442   glDisableClientState: TglDisableClientState;
11443   glDrawPixels: TglDrawPixels;
11444   glEdgeFlag: TglEdgeFlag;
11445   glEdgeFlagPointer: TglEdgeFlagPointer;
11446   glEdgeFlagv: TglEdgeFlagv;
11447   glEnableClientState: TglEnableClientState;
11448   glEnd: TglEnd;
11449   glEndList: TglEndList;
11450   glEvalCoord1d: TglEvalCoord1d;
11451   glEvalCoord1dv: TglEvalCoord1dv;
11452   glEvalCoord1f: TglEvalCoord1f;
11453   glEvalCoord1fv: TglEvalCoord1fv;
11454   glEvalCoord2d: TglEvalCoord2d;
11455   glEvalCoord2dv: TglEvalCoord2dv;
11456   glEvalCoord2f: TglEvalCoord2f;
11457   glEvalCoord2fv: TglEvalCoord2fv;
11458   glEvalMesh1: TglEvalMesh1;
11459   glEvalMesh2: TglEvalMesh2;
11460   glEvalPoint1: TglEvalPoint1;
11461   glEvalPoint2: TglEvalPoint2;
11462   glFeedbackBuffer: TglFeedbackBuffer;
11463   glFogf: TglFogf;
11464   glFogfv: TglFogfv;
11465   glFogi: TglFogi;
11466   glFogiv: TglFogiv;
11467   glFrustum: TglFrustum;
11468   glGenLists: TglGenLists;
11469   glGetClipPlane: TglGetClipPlane;
11470   glGetLightfv: TglGetLightfv;
11471   glGetLightiv: TglGetLightiv;
11472   glGetMapdv: TglGetMapdv;
11473   glGetMapfv: TglGetMapfv;
11474   glGetMapiv: TglGetMapiv;
11475   glGetMaterialfv: TglGetMaterialfv;
11476   glGetMaterialiv: TglGetMaterialiv;
11477   glGetPixelMapfv: TglGetPixelMapfv;
11478   glGetPixelMapuiv: TglGetPixelMapuiv;
11479   glGetPixelMapusv: TglGetPixelMapusv;
11480   glGetPolygonStipple: TglGetPolygonStipple;
11481   glGetTexEnvfv: TglGetTexEnvfv;
11482   glGetTexEnviv: TglGetTexEnviv;
11483   glGetTexGendv: TglGetTexGendv;
11484   glGetTexGenfv: TglGetTexGenfv;
11485   glGetTexGeniv: TglGetTexGeniv;
11486   glIndexMask: TglIndexMask;
11487   glIndexPointer: TglIndexPointer;
11488   glIndexd: TglIndexd;
11489   glIndexdv: TglIndexdv;
11490   glIndexf: TglIndexf;
11491   glIndexfv: TglIndexfv;
11492   glIndexi: TglIndexi;
11493   glIndexiv: TglIndexiv;
11494   glIndexs: TglIndexs;
11495   glIndexsv: TglIndexsv;
11496   glIndexub: TglIndexub;
11497   glIndexubv: TglIndexubv;
11498   glInitNames: TglInitNames;
11499   glInterleavedArrays: TglInterleavedArrays;
11500   glIsList: TglIsList;
11501   glIsTexture: TglIsTexture;
11502   glLightModelf: TglLightModelf;
11503   glLightModelfv: TglLightModelfv;
11504   glLightModeli: TglLightModeli;
11505   glLightModeliv: TglLightModeliv;
11506   glLightf: TglLightf;
11507   glLightfv: TglLightfv;
11508   glLighti: TglLighti;
11509   glLightiv: TglLightiv;
11510   glLineStipple: TglLineStipple;
11511   glListBase: TglListBase;
11512   glLoadIdentity: TglLoadIdentity;
11513   glLoadMatrixd: TglLoadMatrixd;
11514   glLoadMatrixf: TglLoadMatrixf;
11515   glLoadName: TglLoadName;
11516   glMap1d: TglMap1d;
11517   glMap1f: TglMap1f;
11518   glMap2d: TglMap2d;
11519   glMap2f: TglMap2f;
11520   glMapGrid1d: TglMapGrid1d;
11521   glMapGrid1f: TglMapGrid1f;
11522   glMapGrid2d: TglMapGrid2d;
11523   glMapGrid2f: TglMapGrid2f;
11524   glMaterialf: TglMaterialf;
11525   glMaterialfv: TglMaterialfv;
11526   glMateriali: TglMateriali;
11527   glMaterialiv: TglMaterialiv;
11528   glMatrixMode: TglMatrixMode;
11529   glMultMatrixd: TglMultMatrixd;
11530   glMultMatrixf: TglMultMatrixf;
11531   glNewList: TglNewList;
11532   glNormal3b: TglNormal3b;
11533   glNormal3bv: TglNormal3bv;
11534   glNormal3d: TglNormal3d;
11535   glNormal3dv: TglNormal3dv;
11536   glNormal3f: TglNormal3f;
11537   glNormal3fv: TglNormal3fv;
11538   glNormal3i: TglNormal3i;
11539   glNormal3iv: TglNormal3iv;
11540   glNormal3s: TglNormal3s;
11541   glNormal3sv: TglNormal3sv;
11542   glNormalPointer: TglNormalPointer;
11543   glOrtho: TglOrtho;
11544   glPassThrough: TglPassThrough;
11545   glPixelMapfv: TglPixelMapfv;
11546   glPixelMapuiv: TglPixelMapuiv;
11547   glPixelMapusv: TglPixelMapusv;
11548   glPixelTransferf: TglPixelTransferf;
11549   glPixelTransferi: TglPixelTransferi;
11550   glPixelZoom: TglPixelZoom;
11551   glPolygonStipple: TglPolygonStipple;
11552   glPopAttrib: TglPopAttrib;
11553   glPopClientAttrib: TglPopClientAttrib;
11554   glPopMatrix: TglPopMatrix;
11555   glPopName: TglPopName;
11556   glPrioritizeTextures: TglPrioritizeTextures;
11557   glPushAttrib: TglPushAttrib;
11558   glPushClientAttrib: TglPushClientAttrib;
11559   glPushMatrix: TglPushMatrix;
11560   glPushName: TglPushName;
11561   glRasterPos2d: TglRasterPos2d;
11562   glRasterPos2dv: TglRasterPos2dv;
11563   glRasterPos2f: TglRasterPos2f;
11564   glRasterPos2fv: TglRasterPos2fv;
11565   glRasterPos2i: TglRasterPos2i;
11566   glRasterPos2iv: TglRasterPos2iv;
11567   glRasterPos2s: TglRasterPos2s;
11568   glRasterPos2sv: TglRasterPos2sv;
11569   glRasterPos3d: TglRasterPos3d;
11570   glRasterPos3dv: TglRasterPos3dv;
11571   glRasterPos3f: TglRasterPos3f;
11572   glRasterPos3fv: TglRasterPos3fv;
11573   glRasterPos3i: TglRasterPos3i;
11574   glRasterPos3iv: TglRasterPos3iv;
11575   glRasterPos3s: TglRasterPos3s;
11576   glRasterPos3sv: TglRasterPos3sv;
11577   glRasterPos4d: TglRasterPos4d;
11578   glRasterPos4dv: TglRasterPos4dv;
11579   glRasterPos4f: TglRasterPos4f;
11580   glRasterPos4fv: TglRasterPos4fv;
11581   glRasterPos4i: TglRasterPos4i;
11582   glRasterPos4iv: TglRasterPos4iv;
11583   glRasterPos4s: TglRasterPos4s;
11584   glRasterPos4sv: TglRasterPos4sv;
11585   glRectd: TglRectd;
11586   glRectdv: TglRectdv;
11587   glRectf: TglRectf;
11588   glRectfv: TglRectfv;
11589   glRecti: TglRecti;
11590   glRectiv: TglRectiv;
11591   glRects: TglRects;
11592   glRectsv: TglRectsv;
11593   glRenderMode: TglRenderMode;
11594   glRotated: TglRotated;
11595   glRotatef: TglRotatef;
11596   glScaled: TglScaled;
11597   glScalef: TglScalef;
11598   glSelectBuffer: TglSelectBuffer;
11599   glShadeModel: TglShadeModel;
11600   glTexCoord1d: TglTexCoord1d;
11601   glTexCoord1dv: TglTexCoord1dv;
11602   glTexCoord1f: TglTexCoord1f;
11603   glTexCoord1fv: TglTexCoord1fv;
11604   glTexCoord1i: TglTexCoord1i;
11605   glTexCoord1iv: TglTexCoord1iv;
11606   glTexCoord1s: TglTexCoord1s;
11607   glTexCoord1sv: TglTexCoord1sv;
11608   glTexCoord2d: TglTexCoord2d;
11609   glTexCoord2dv: TglTexCoord2dv;
11610   glTexCoord2f: TglTexCoord2f;
11611   glTexCoord2fv: TglTexCoord2fv;
11612   glTexCoord2i: TglTexCoord2i;
11613   glTexCoord2iv: TglTexCoord2iv;
11614   glTexCoord2s: TglTexCoord2s;
11615   glTexCoord2sv: TglTexCoord2sv;
11616   glTexCoord3d: TglTexCoord3d;
11617   glTexCoord3dv: TglTexCoord3dv;
11618   glTexCoord3f: TglTexCoord3f;
11619   glTexCoord3fv: TglTexCoord3fv;
11620   glTexCoord3i: TglTexCoord3i;
11621   glTexCoord3iv: TglTexCoord3iv;
11622   glTexCoord3s: TglTexCoord3s;
11623   glTexCoord3sv: TglTexCoord3sv;
11624   glTexCoord4d: TglTexCoord4d;
11625   glTexCoord4dv: TglTexCoord4dv;
11626   glTexCoord4f: TglTexCoord4f;
11627   glTexCoord4fv: TglTexCoord4fv;
11628   glTexCoord4i: TglTexCoord4i;
11629   glTexCoord4iv: TglTexCoord4iv;
11630   glTexCoord4s: TglTexCoord4s;
11631   glTexCoord4sv: TglTexCoord4sv;
11632   glTexCoordPointer: TglTexCoordPointer;
11633   glTexEnvf: TglTexEnvf;
11634   glTexEnvfv: TglTexEnvfv;
11635   glTexEnvi: TglTexEnvi;
11636   glTexEnviv: TglTexEnviv;
11637   glTexGend: TglTexGend;
11638   glTexGendv: TglTexGendv;
11639   glTexGenf: TglTexGenf;
11640   glTexGenfv: TglTexGenfv;
11641   glTexGeni: TglTexGeni;
11642   glTexGeniv: TglTexGeniv;
11643   glTranslated: TglTranslated;
11644   glTranslatef: TglTranslatef;
11645   glVertex2d: TglVertex2d;
11646   glVertex2dv: TglVertex2dv;
11647   glVertex2f: TglVertex2f;
11648   glVertex2fv: TglVertex2fv;
11649   glVertex2i: TglVertex2i;
11650   glVertex2iv: TglVertex2iv;
11651   glVertex2s: TglVertex2s;
11652   glVertex2sv: TglVertex2sv;
11653   glVertex3d: TglVertex3d;
11654   glVertex3dv: TglVertex3dv;
11655   glVertex3f: TglVertex3f;
11656   glVertex3fv: TglVertex3fv;
11657   glVertex3i: TglVertex3i;
11658   glVertex3iv: TglVertex3iv;
11659   glVertex3s: TglVertex3s;
11660   glVertex3sv: TglVertex3sv;
11661   glVertex4d: TglVertex4d;
11662   glVertex4dv: TglVertex4dv;
11663   glVertex4f: TglVertex4f;
11664   glVertex4fv: TglVertex4fv;
11665   glVertex4i: TglVertex4i;
11666   glVertex4iv: TglVertex4iv;
11667   glVertex4s: TglVertex4s;
11668   glVertex4sv: TglVertex4sv;
11669   glVertexPointer: TglVertexPointer;
11670 {$endif}
11671
11672   // GL_VERSION_1_2
11673   glBlendColor: TglBlendColor;
11674   glBlendEquation: TglBlendEquation;
11675   glDrawRangeElements: TglDrawRangeElements;
11676   glTexImage3D: TglTexImage3D;
11677   glTexSubImage3D: TglTexSubImage3D;
11678   glCopyTexSubImage3D: TglCopyTexSubImage3D;
11679 {$ifdef DGL_DEPRECATED}
11680   glColorTable: TglColorTable;
11681   glColorTableParameterfv: TglColorTableParameterfv;
11682   glColorTableParameteriv: TglColorTableParameteriv;
11683   glCopyColorTable: TglCopyColorTable;
11684   glGetColorTable: TglGetColorTable;
11685   glGetColorTableParameterfv: TglGetColorTableParameterfv;
11686   glGetColorTableParameteriv: TglGetColorTableParameteriv;
11687   glColorSubTable: TglColorSubTable;
11688   glCopyColorSubTable: TglCopyColorSubTable;
11689   glConvolutionFilter1D: TglConvolutionFilter1D;
11690   glConvolutionFilter2D: TglConvolutionFilter2D;
11691   glConvolutionParameterf: TglConvolutionParameterf;
11692   glConvolutionParameterfv: TglConvolutionParameterfv;
11693   glConvolutionParameteri: TglConvolutionParameteri;
11694   glConvolutionParameteriv: TglConvolutionParameteriv;
11695   glCopyConvolutionFilter1D: TglCopyConvolutionFilter1D;
11696   glCopyConvolutionFilter2D: TglCopyConvolutionFilter2D;
11697   glGetConvolutionFilter: TglGetConvolutionFilter;
11698   glGetConvolutionParameterfv: TglGetConvolutionParameterfv;
11699   glGetConvolutionParameteriv: TglGetConvolutionParameteriv;
11700   glGetSeparableFilter: TglGetSeparableFilter;
11701   glSeparableFilter2D: TglSeparableFilter2D;
11702   glGetHistogram: TglGetHistogram;
11703   glGetHistogramParameterfv: TglGetHistogramParameterfv;
11704   glGetHistogramParameteriv: TglGetHistogramParameteriv;
11705   glGetMinmax: TglGetMinmax;
11706   glGetMinmaxParameterfv: TglGetMinmaxParameterfv;
11707   glGetMinmaxParameteriv: TglGetMinmaxParameteriv;
11708   glHistogram: TglHistogram;
11709   glMinmax: TglMinmax;
11710   glResetHistogram: TglResetHistogram;
11711   glResetMinmax: TglResetMinmax;
11712 {$endif}
11713
11714   // GL_VERSION_1_3
11715   glActiveTexture: TglActiveTexture;
11716   glSampleCoverage: TglSampleCoverage;
11717   glCompressedTexImage3D: TglCompressedTexImage3D;
11718   glCompressedTexImage2D: TglCompressedTexImage2D;
11719   glCompressedTexImage1D: TglCompressedTexImage1D;
11720   glCompressedTexSubImage3D: TglCompressedTexSubImage3D;
11721   glCompressedTexSubImage2D: TglCompressedTexSubImage2D;
11722   glCompressedTexSubImage1D: TglCompressedTexSubImage1D;
11723   glGetCompressedTexImage: TglGetCompressedTexImage;
11724 {$ifdef DGL_DEPRECATED}
11725   glClientActiveTexture: TglClientActiveTexture;
11726   glMultiTexCoord1d: TglMultiTexCoord1d;
11727   glMultiTexCoord1dv: TglMultiTexCoord1dv;
11728   glMultiTexCoord1f: TglMultiTexCoord1f;
11729   glMultiTexCoord1fv: TglMultiTexCoord1fv;
11730   glMultiTexCoord1i: TglMultiTexCoord1i;
11731   glMultiTexCoord1iv: TglMultiTexCoord1iv;
11732   glMultiTexCoord1s: TglMultiTexCoord1s;
11733   glMultiTexCoord1sv: TglMultiTexCoord1sv;
11734   glMultiTexCoord2d: TglMultiTexCoord2d;
11735   glMultiTexCoord2dv: TglMultiTexCoord2dv;
11736   glMultiTexCoord2f: TglMultiTexCoord2f;
11737   glMultiTexCoord2fv: TglMultiTexCoord2fv;
11738   glMultiTexCoord2i: TglMultiTexCoord2i;
11739   glMultiTexCoord2iv: TglMultiTexCoord2iv;
11740   glMultiTexCoord2s: TglMultiTexCoord2s;
11741   glMultiTexCoord2sv: TglMultiTexCoord2sv;
11742   glMultiTexCoord3d: TglMultiTexCoord3d;
11743   glMultiTexCoord3dv: TglMultiTexCoord3dv;
11744   glMultiTexCoord3f: TglMultiTexCoord3f;
11745   glMultiTexCoord3fv: TglMultiTexCoord3fv;
11746   glMultiTexCoord3i: TglMultiTexCoord3i;
11747   glMultiTexCoord3iv: TglMultiTexCoord3iv;
11748   glMultiTexCoord3s: TglMultiTexCoord3s;
11749   glMultiTexCoord3sv: TglMultiTexCoord3sv;
11750   glMultiTexCoord4d: TglMultiTexCoord4d;
11751   glMultiTexCoord4dv: TglMultiTexCoord4dv;
11752   glMultiTexCoord4f: TglMultiTexCoord4f;
11753   glMultiTexCoord4fv: TglMultiTexCoord4fv;
11754   glMultiTexCoord4i: TglMultiTexCoord4i;
11755   glMultiTexCoord4iv: TglMultiTexCoord4iv;
11756   glMultiTexCoord4s: TglMultiTexCoord4s;
11757   glMultiTexCoord4sv: TglMultiTexCoord4sv;
11758   glLoadTransposeMatrixf: TglLoadTransposeMatrixf;
11759   glLoadTransposeMatrixd: TglLoadTransposeMatrixd;
11760   glMultTransposeMatrixf: TglMultTransposeMatrixf;
11761   glMultTransposeMatrixd: TglMultTransposeMatrixd;
11762 {$endif}
11763
11764   // GL_VERSION_1_4
11765   glBlendFuncSeparate: TglBlendFuncSeparate;
11766   glMultiDrawArrays: TglMultiDrawArrays;
11767   glMultiDrawElements: TglMultiDrawElements;
11768   glPointParameterf: TglPointParameterf;
11769   glPointParameterfv: TglPointParameterfv;
11770   glPointParameteri: TglPointParameteri;
11771   glPointParameteriv: TglPointParameteriv;
11772 {$ifdef DGL_DEPRECATED}
11773   glFogCoordf: TglFogCoordf;
11774   glFogCoordfv: TglFogCoordfv;
11775   glFogCoordd: TglFogCoordd;
11776   glFogCoorddv: TglFogCoorddv;
11777   glFogCoordPointer: TglFogCoordPointer;
11778   glSecondaryColor3b: TglSecondaryColor3b;
11779   glSecondaryColor3bv: TglSecondaryColor3bv;
11780   glSecondaryColor3d: TglSecondaryColor3d;
11781   glSecondaryColor3dv: TglSecondaryColor3dv;
11782   glSecondaryColor3f: TglSecondaryColor3f;
11783   glSecondaryColor3fv: TglSecondaryColor3fv;
11784   glSecondaryColor3i: TglSecondaryColor3i;
11785   glSecondaryColor3iv: TglSecondaryColor3iv;
11786   glSecondaryColor3s: TglSecondaryColor3s;
11787   glSecondaryColor3sv: TglSecondaryColor3sv;
11788   glSecondaryColor3ub: TglSecondaryColor3ub;
11789   glSecondaryColor3ubv: TglSecondaryColor3ubv;
11790   glSecondaryColor3ui: TglSecondaryColor3ui;
11791   glSecondaryColor3uiv: TglSecondaryColor3uiv;
11792   glSecondaryColor3us: TglSecondaryColor3us;
11793   glSecondaryColor3usv: TglSecondaryColor3usv;
11794   glSecondaryColorPointer: TglSecondaryColorPointer;
11795   glWindowPos2d: TglWindowPos2d;
11796   glWindowPos2dv: TglWindowPos2dv;
11797   glWindowPos2f: TglWindowPos2f;
11798   glWindowPos2fv: TglWindowPos2fv;
11799   glWindowPos2i: TglWindowPos2i;
11800   glWindowPos2iv: TglWindowPos2iv;
11801   glWindowPos2s: TglWindowPos2s;
11802   glWindowPos2sv: TglWindowPos2sv;
11803   glWindowPos3d: TglWindowPos3d;
11804   glWindowPos3dv: TglWindowPos3dv;
11805   glWindowPos3f: TglWindowPos3f;
11806   glWindowPos3fv: TglWindowPos3fv;
11807   glWindowPos3i: TglWindowPos3i;
11808   glWindowPos3iv: TglWindowPos3iv;
11809   glWindowPos3s: TglWindowPos3s;
11810   glWindowPos3sv: TglWindowPos3sv;
11811 {$endif}
11812
11813   // GL_VERSION_1_5
11814   glGenQueries: TglGenQueries;
11815   glDeleteQueries: TglDeleteQueries;
11816   glIsQuery: TglIsQuery;
11817   glBeginQuery: TglBeginQuery;
11818   glEndQuery: TglEndQuery;
11819   glGetQueryiv: TglGetQueryiv;
11820   glGetQueryObjectiv: TglGetQueryObjectiv;
11821   glGetQueryObjectuiv: TglGetQueryObjectuiv;
11822   glBindBuffer: TglBindBuffer;
11823   glDeleteBuffers: TglDeleteBuffers;
11824   glGenBuffers: TglGenBuffers;
11825   glIsBuffer: TglIsBuffer;
11826   glBufferData: TglBufferData;
11827   glBufferSubData: TglBufferSubData;
11828   glGetBufferSubData: TglGetBufferSubData;
11829   glMapBuffer: TglMapBuffer;
11830   glUnmapBuffer: TglUnmapBuffer;
11831   glGetBufferParameteriv: TglGetBufferParameteriv;
11832   glGetBufferPointerv: TglGetBufferPointerv;
11833
11834   // GL_VERSION_2_0
11835   glBlendEquationSeparate: TglBlendEquationSeparate;
11836   glDrawBuffers: TglDrawBuffers;
11837   glStencilOpSeparate: TglStencilOpSeparate;
11838   glStencilFuncSeparate: TglStencilFuncSeparate;
11839   glStencilMaskSeparate: TglStencilMaskSeparate;
11840   glAttachShader: TglAttachShader;
11841   glBindAttribLocation: TglBindAttribLocation;
11842   glCompileShader: TglCompileShader;
11843   glCreateProgram: TglCreateProgram;
11844   glCreateShader: TglCreateShader;
11845   glDeleteProgram: TglDeleteProgram;
11846   glDeleteShader: TglDeleteShader;
11847   glDetachShader: TglDetachShader;
11848   glDisableVertexAttribArray: TglDisableVertexAttribArray;
11849   glEnableVertexAttribArray: TglEnableVertexAttribArray;
11850   glGetActiveAttrib: TglGetActiveAttrib;
11851   glGetActiveUniform: TglGetActiveUniform;
11852   glGetAttachedShaders: TglGetAttachedShaders;
11853   glGetAttribLocation: TglGetAttribLocation;
11854   glGetProgramiv: TglGetProgramiv;
11855   glGetProgramInfoLog: TglGetProgramInfoLog;
11856   glGetShaderiv: TglGetShaderiv;
11857   glGetShaderInfoLog: TglGetShaderInfoLog;
11858   glGetShaderSource: TglGetShaderSource;
11859   glGetUniformLocation: TglGetUniformLocation;
11860   glGetUniformfv: TglGetUniformfv;
11861   glGetUniformiv: TglGetUniformiv;
11862   glGetVertexAttribfv: TglGetVertexAttribfv;
11863   glGetVertexAttribiv: TglGetVertexAttribiv;
11864   glGetVertexAttribPointerv: TglGetVertexAttribPointerv;
11865   glIsProgram: TglIsProgram;
11866   glIsShader: TglIsShader;
11867   glLinkProgram: TglLinkProgram;
11868   glShaderSource: TglShaderSource;
11869   glUseProgram: TglUseProgram;
11870   glUniform1f: TglUniform1f;
11871   glUniform2f: TglUniform2f;
11872   glUniform3f: TglUniform3f;
11873   glUniform4f: TglUniform4f;
11874   glUniform1i: TglUniform1i;
11875   glUniform2i: TglUniform2i;
11876   glUniform3i: TglUniform3i;
11877   glUniform4i: TglUniform4i;
11878   glUniform1fv: TglUniform1fv;
11879   glUniform2fv: TglUniform2fv;
11880   glUniform3fv: TglUniform3fv;
11881   glUniform4fv: TglUniform4fv;
11882   glUniform1iv: TglUniform1iv;
11883   glUniform2iv: TglUniform2iv;
11884   glUniform3iv: TglUniform3iv;
11885   glUniform4iv: TglUniform4iv;
11886   glUniformMatrix2fv: TglUniformMatrix2fv;
11887   glUniformMatrix3fv: TglUniformMatrix3fv;
11888   glUniformMatrix4fv: TglUniformMatrix4fv;
11889   glValidateProgram: TglValidateProgram;
11890   glVertexAttrib1d: TglVertexAttrib1d;
11891   glVertexAttrib1dv: TglVertexAttrib1dv;
11892   glVertexAttrib1f: TglVertexAttrib1f;
11893   glVertexAttrib1fv: TglVertexAttrib1fv;
11894   glVertexAttrib1s: TglVertexAttrib1s;
11895   glVertexAttrib1sv: TglVertexAttrib1sv;
11896   glVertexAttrib2d: TglVertexAttrib2d;
11897   glVertexAttrib2dv: TglVertexAttrib2dv;
11898   glVertexAttrib2f: TglVertexAttrib2f;
11899   glVertexAttrib2fv: TglVertexAttrib2fv;
11900   glVertexAttrib2s: TglVertexAttrib2s;
11901   glVertexAttrib2sv: TglVertexAttrib2sv;
11902   glVertexAttrib3d: TglVertexAttrib3d;
11903   glVertexAttrib3dv: TglVertexAttrib3dv;
11904   glVertexAttrib3f: TglVertexAttrib3f;
11905   glVertexAttrib3fv: TglVertexAttrib3fv;
11906   glVertexAttrib3s: TglVertexAttrib3s;
11907   glVertexAttrib3sv: TglVertexAttrib3sv;
11908   glVertexAttrib4Nbv: TglVertexAttrib4Nbv;
11909   glVertexAttrib4Niv: TglVertexAttrib4Niv;
11910   glVertexAttrib4Nsv: TglVertexAttrib4Nsv;
11911   glVertexAttrib4Nub: TglVertexAttrib4Nub;
11912   glVertexAttrib4Nubv: TglVertexAttrib4Nubv;
11913   glVertexAttrib4Nuiv: TglVertexAttrib4Nuiv;
11914   glVertexAttrib4Nusv: TglVertexAttrib4Nusv;
11915   glVertexAttrib4bv: TglVertexAttrib4bv;
11916   glVertexAttrib4d: TglVertexAttrib4d;
11917   glVertexAttrib4dv: TglVertexAttrib4dv;
11918   glVertexAttrib4f: TglVertexAttrib4f;
11919   glVertexAttrib4fv: TglVertexAttrib4fv;
11920   glVertexAttrib4iv: TglVertexAttrib4iv;
11921   glVertexAttrib4s: TglVertexAttrib4s;
11922   glVertexAttrib4sv: TglVertexAttrib4sv;
11923   glVertexAttrib4ubv: TglVertexAttrib4ubv;
11924   glVertexAttrib4uiv: TglVertexAttrib4uiv;
11925   glVertexAttrib4usv: TglVertexAttrib4usv;
11926   glVertexAttribPointer: TglVertexAttribPointer;
11927
11928   // GL_VERSION_2_1
11929   glUniformMatrix2x3fv: TglUniformMatrix2x3fv;
11930   glUniformMatrix3x2fv: TglUniformMatrix3x2fv;
11931   glUniformMatrix2x4fv: TglUniformMatrix2x4fv;
11932   glUniformMatrix4x2fv: TglUniformMatrix4x2fv;
11933   glUniformMatrix3x4fv: TglUniformMatrix3x4fv;
11934   glUniformMatrix4x3fv: TglUniformMatrix4x3fv;
11935
11936   // GL_VERSION_3_0
11937   glColorMaski: TglColorMaski;
11938   glGetBooleani_v: TglGetBooleani_v;
11939   glGetIntegeri_v: TglGetIntegeri_v;
11940   glEnablei: TglEnablei;
11941   glDisablei: TglDisablei;
11942   glIsEnabledi: TglIsEnabledi;
11943   glBeginTransformFeedback: TglBeginTransformFeedback;
11944   glEndTransformFeedback: TglEndTransformFeedback;
11945   glBindBufferRange: TglBindBufferRange;
11946   glBindBufferBase: TglBindBufferBase;
11947   glTransformFeedbackVaryings: TglTransformFeedbackVaryings;
11948   glGetTransformFeedbackVarying: TglGetTransformFeedbackVarying;
11949   glClampColor: TglClampColor;
11950   glBeginConditionalRender: TglBeginConditionalRender;
11951   glEndConditionalRender: TglEndConditionalRender;
11952   glVertexAttribI1i: TglVertexAttribI1i;
11953   glVertexAttribI2i: TglVertexAttribI2i;
11954   glVertexAttribI3i: TglVertexAttribI3i;
11955   glVertexAttribI4i: TglVertexAttribI4i;
11956   glVertexAttribI1ui: TglVertexAttribI1ui;
11957   glVertexAttribI2ui: TglVertexAttribI2ui;
11958   glVertexAttribI3ui: TglVertexAttribI3ui;
11959   glVertexAttribI4ui: TglVertexAttribI4ui;
11960   glVertexAttribI1iv: TglVertexAttribI1iv;
11961   glVertexAttribI2iv: TglVertexAttribI2iv;
11962   glVertexAttribI3iv: TglVertexAttribI3iv;
11963   glVertexAttribI4iv: TglVertexAttribI4iv;
11964   glVertexAttribI1uiv: TglVertexAttribI1uiv;
11965   glVertexAttribI2uiv: TglVertexAttribI2uiv;
11966   glVertexAttribI3uiv: TglVertexAttribI3uiv;
11967   glVertexAttribI4uiv: TglVertexAttribI4uiv;
11968   glVertexAttribI4bv: TglVertexAttribI4bv;
11969   glVertexAttribI4sv: TglVertexAttribI4sv;
11970   glVertexAttribI4ubv: TglVertexAttribI4ubv;
11971   glVertexAttribI4usv: TglVertexAttribI4usv;
11972   glVertexAttribIPointer: TglVertexAttribIPointer;
11973   glGetVertexAttribIiv: TglGetVertexAttribIiv;
11974   glGetVertexAttribIuiv: TglGetVertexAttribIuiv;
11975   glGetUniformuiv: TglGetUniformuiv;
11976   glBindFragDataLocation: TglBindFragDataLocation;
11977   glGetFragDataLocation: TglGetFragDataLocation;
11978   glUniform1ui: TglUniform1ui;
11979   glUniform2ui: TglUniform2ui;
11980   glUniform3ui: TglUniform3ui;
11981   glUniform4ui: TglUniform4ui;
11982   glUniform1uiv: TglUniform1uiv;
11983   glUniform2uiv: TglUniform2uiv;
11984   glUniform3uiv: TglUniform3uiv;
11985   glUniform4uiv: TglUniform4uiv;
11986   glTexParameterIiv: TglTexParameterIiv;
11987   glTexParameterIuiv: TglTexParameterIuiv;
11988   glGetTexParameterIiv: TglGetTexParameterIiv;
11989   glGetTexParameterIuiv: TglGetTexParameterIuiv;
11990   glClearBufferiv: TglClearBufferiv;
11991   glClearBufferuiv: TglClearBufferuiv;
11992   glClearBufferfv: TglClearBufferfv;
11993   glClearBufferfi: TglClearBufferfi;
11994   glGetStringi: TglGetStringi;
11995
11996   // GL_VERSION_2_1
11997   glEnableVertexArrayEXT : TglEnableVertexArrayEXT;
11998   glEnableVertexArrayAttribEXT : TglEnableVertexArrayAttribEXT;
11999   glVertexArrayVertexAttribOffsetEXT : TglVertexArrayVertexAttribOffsetEXT;
12000
12001   // GL_VERSION_3_1
12002   glDrawArraysInstanced: TglDrawArraysInstanced;
12003   glDrawElementsInstanced: TglDrawElementsInstanced;
12004   glTexBuffer: TglTexBuffer;
12005   glPrimitiveRestartIndex: TglPrimitiveRestartIndex;
12006
12007   // GL_VERSION_3_2
12008   glGetInteger64i_v: TglGetInteger64i_v;
12009   glGetBufferParameteri64v: TglGetBufferParameteri64v;
12010   glFramebufferTexture: TglFramebufferTexture;
12011
12012   // GL_VERSION_3_3
12013   glVertexAttribDivisor: TglVertexAttribDivisor;
12014   
12015   // GL_VERSION_4_0
12016   { OpenGL 4.0 also reuses entry points from these extensions: }
12017   { ARB_texture_query_lod (no entry points) }
12018   { ARB_draw_indirect }
12019   { ARB_gpu_shader5 (no entry points) }
12020   { ARB_gpu_shader_fp64 }
12021   { ARB_shader_subroutine }
12022   { ARB_tessellation_shader }
12023   { ARB_texture_buffer_object_rgb32 (no entry points) }
12024   { ARB_texture_cube_map_array (no entry points) }
12025   { ARB_texture_gather (no entry points) }
12026   { ARB_transform_feedback2 }
12027   { ARB_transform_feedback3 }
12028   glMinSampleShading: TglMinSampleShading;
12029   glBlendEquationi: TglBlendEquationi;
12030   glBlendEquationSeparatei: TglBlendEquationSeparatei;
12031   glBlendFunci: TglBlendFunci;
12032   glBlendFuncSeparatei: TglBlendFuncSeparatei;
12033
12034   // GL_3DFX_tbuffer
12035   glTbufferMask3DFX: TglTbufferMask3DFX;
12036
12037   // GL_APPLE_element_array
12038   glElementPointerAPPLE: TglElementPointerAPPLE;
12039   glDrawElementArrayAPPLE: TglDrawElementArrayAPPLE;
12040   glDrawRangeElementArrayAPPLE: TglDrawRangeElementArrayAPPLE;
12041   glMultiDrawElementArrayAPPLE: TglMultiDrawElementArrayAPPLE;
12042   glMultiDrawRangeElementArrayAPPLE: TglMultiDrawRangeElementArrayAPPLE;
12043
12044   // GL_APPLE_fence
12045   glGenFencesAPPLE: TglGenFencesAPPLE;
12046   glDeleteFencesAPPLE: TglDeleteFencesAPPLE;
12047   glSetFenceAPPLE: TglSetFenceAPPLE;
12048   glIsFenceAPPLE: TglIsFenceAPPLE;
12049   glTestFenceAPPLE: TglTestFenceAPPLE;
12050   glFinishFenceAPPLE: TglFinishFenceAPPLE;
12051   glTestObjectAPPLE: TglTestObjectAPPLE;
12052   glFinishObjectAPPLE: TglFinishObjectAPPLE;
12053
12054   // GL_APPLE_vertex_array_object
12055   glBindVertexArrayAPPLE: TglBindVertexArrayAPPLE;
12056   glDeleteVertexArraysAPPLE: TglDeleteVertexArraysAPPLE;
12057   glGenVertexArraysAPPLE: TglGenVertexArraysAPPLE;
12058   glIsVertexArrayAPPLE: TglIsVertexArrayAPPLE;
12059
12060   // GL_APPLE_vertex_array_range
12061   glVertexArrayRangeAPPLE: TglVertexArrayRangeAPPLE;
12062   glFlushVertexArrayRangeAPPLE: TglFlushVertexArrayRangeAPPLE;
12063   glVertexArrayParameteriAPPLE: TglVertexArrayParameteriAPPLE;
12064
12065   // GL_APPLE_texture_range
12066   glTextureRangeAPPLE: TglTextureRangeAPPLE;
12067   glGetTexParameterPointervAPPLE: TglGetTexParameterPointervAPPLE;
12068
12069   // GL_APPLE_vertex_program_evaluators
12070   glEnableVertexAttribAPPLE: TglEnableVertexAttribAPPLE;
12071   glDisableVertexAttribAPPLE: TglDisableVertexAttribAPPLE;
12072   glIsVertexAttribEnabledAPPLE: TglIsVertexAttribEnabledAPPLE;
12073   glMapVertexAttrib1dAPPLE: TglMapVertexAttrib1dAPPLE;
12074   glMapVertexAttrib1fAPPLE: TglMapVertexAttrib1fAPPLE;
12075   glMapVertexAttrib2dAPPLE: TglMapVertexAttrib2dAPPLE;
12076   glMapVertexAttrib2fAPPLE: TglMapVertexAttrib2fAPPLE;
12077
12078   // GL_APPLE_object_purgeable
12079   glObjectPurgeableAPPLE: TglObjectPurgeableAPPLE;
12080   glObjectUnpurgeableAPPLE: TglObjectUnpurgeableAPPLE;
12081   glGetObjectParameterivAPPLE: TglGetObjectParameterivAPPLE;
12082
12083   // GL_ARB_matrix_palette
12084   glCurrentPaletteMatrixARB: TglCurrentPaletteMatrixARB;
12085   glMatrixIndexubvARB: TglMatrixIndexubvARB;
12086   glMatrixIndexusvARB: TglMatrixIndexusvARB;
12087   glMatrixIndexuivARB: TglMatrixIndexuivARB;
12088   glMatrixIndexPointerARB: TglMatrixIndexPointerARB;
12089
12090   // GL_ARB_multisample
12091   glSampleCoverageARB: TglSampleCoverageARB;
12092
12093   // GL_ARB_multitexture
12094   glActiveTextureARB: TglActiveTextureARB;
12095   glClientActiveTextureARB: TglClientActiveTextureARB;
12096   glMultiTexCoord1dARB: TglMultiTexCoord1dARB;
12097   glMultiTexCoord1dvARB: TglMultiTexCoord1dvARB;
12098   glMultiTexCoord1fARB: TglMultiTexCoord1fARB;
12099   glMultiTexCoord1fvARB: TglMultiTexCoord1fvARB;
12100   glMultiTexCoord1iARB: TglMultiTexCoord1iARB;
12101   glMultiTexCoord1ivARB: TglMultiTexCoord1ivARB;
12102   glMultiTexCoord1sARB: TglMultiTexCoord1sARB;
12103   glMultiTexCoord1svARB: TglMultiTexCoord1svARB;
12104   glMultiTexCoord2dARB: TglMultiTexCoord2dARB;
12105   glMultiTexCoord2dvARB: TglMultiTexCoord2dvARB;
12106   glMultiTexCoord2fARB: TglMultiTexCoord2fARB;
12107   glMultiTexCoord2fvARB: TglMultiTexCoord2fvARB;
12108   glMultiTexCoord2iARB: TglMultiTexCoord2iARB;
12109   glMultiTexCoord2ivARB: TglMultiTexCoord2ivARB;
12110   glMultiTexCoord2sARB: TglMultiTexCoord2sARB;
12111   glMultiTexCoord2svARB: TglMultiTexCoord2svARB;
12112   glMultiTexCoord3dARB: TglMultiTexCoord3dARB;
12113   glMultiTexCoord3dvARB: TglMultiTexCoord3dvARB;
12114   glMultiTexCoord3fARB: TglMultiTexCoord3fARB;
12115   glMultiTexCoord3fvARB: TglMultiTexCoord3fvARB;
12116   glMultiTexCoord3iARB: TglMultiTexCoord3iARB;
12117   glMultiTexCoord3ivARB: TglMultiTexCoord3ivARB;
12118   glMultiTexCoord3sARB: TglMultiTexCoord3sARB;
12119   glMultiTexCoord3svARB: TglMultiTexCoord3svARB;
12120   glMultiTexCoord4dARB: TglMultiTexCoord4dARB;
12121   glMultiTexCoord4dvARB: TglMultiTexCoord4dvARB;
12122   glMultiTexCoord4fARB: TglMultiTexCoord4fARB;
12123   glMultiTexCoord4fvARB: TglMultiTexCoord4fvARB;
12124   glMultiTexCoord4iARB: TglMultiTexCoord4iARB;
12125   glMultiTexCoord4ivARB: TglMultiTexCoord4ivARB;
12126   glMultiTexCoord4sARB: TglMultiTexCoord4sARB;
12127   glMultiTexCoord4svARB: TglMultiTexCoord4svARB;
12128
12129   // GL_ARB_point_parameters
12130   glPointParameterfARB: TglPointParameterfARB;
12131   glPointParameterfvARB: TglPointParameterfvARB;
12132
12133   // GL_ARB_texture_compression
12134   glCompressedTexImage3DARB: TglCompressedTexImage3DARB;
12135   glCompressedTexImage2DARB: TglCompressedTexImage2DARB;
12136   glCompressedTexImage1DARB: TglCompressedTexImage1DARB;
12137   glCompressedTexSubImage3DARB: TglCompressedTexSubImage3DARB;
12138   glCompressedTexSubImage2DARB: TglCompressedTexSubImage2DARB;
12139   glCompressedTexSubImage1DARB: TglCompressedTexSubImage1DARB;
12140   glGetCompressedTexImageARB: TglGetCompressedTexImageARB;
12141
12142   // GL_ARB_transpose_matrix
12143   glLoadTransposeMatrixfARB: TglLoadTransposeMatrixfARB;
12144   glLoadTransposeMatrixdARB: TglLoadTransposeMatrixdARB;
12145   glMultTransposeMatrixfARB: TglMultTransposeMatrixfARB;
12146   glMultTransposeMatrixdARB: TglMultTransposeMatrixdARB;
12147
12148   // GL_ARB_vertex_blend
12149   glWeightbvARB: TglWeightbvARB;
12150   glWeightsvARB: TglWeightsvARB;
12151   glWeightivARB: TglWeightivARB;
12152   glWeightfvARB: TglWeightfvARB;
12153   glWeightdvARB: TglWeightdvARB;
12154   glWeightubvARB: TglWeightubvARB;
12155   glWeightusvARB: TglWeightusvARB;
12156   glWeightuivARB: TglWeightuivARB;
12157   glWeightPointerARB: TglWeightPointerARB;
12158   glVertexBlendARB: TglVertexBlendARB;
12159
12160   // GL_ARB_vertex_buffer_object
12161   glBindBufferARB: TglBindBufferARB;
12162   glDeleteBuffersARB: TglDeleteBuffersARB;
12163   glGenBuffersARB: TglGenBuffersARB;
12164   glIsBufferARB: TglIsBufferARB;
12165   glBufferDataARB: TglBufferDataARB;
12166   glBufferSubDataARB: TglBufferSubData;
12167   glGetBufferSubDataARB: TglGetBufferSubDataARB;
12168   glMapBufferARB: TglMapBufferARB;
12169   glUnmapBufferARB: TglUnmapBufferARB;
12170   glGetBufferParameterivARB: TglGetBufferParameterivARB;
12171   glGetBufferPointervARB: TglGetBufferPointervARB;
12172
12173   // GL_ARB_vertex_program
12174   glVertexAttrib1dARB: TglVertexAttrib1dARB;
12175   glVertexAttrib1dvARB: TglVertexAttrib1dvARB;
12176   glVertexAttrib1fARB: TglVertexAttrib1fARB;
12177   glVertexAttrib1fvARB: TglVertexAttrib1fvARB;
12178   glVertexAttrib1sARB: TglVertexAttrib1sARB;
12179   glVertexAttrib1svARB: TglVertexAttrib1svARB;
12180   glVertexAttrib2dARB: TglVertexAttrib2dARB;
12181   glVertexAttrib2dvARB: TglVertexAttrib2dvARB;
12182   glVertexAttrib2fARB: TglVertexAttrib2fARB;
12183   glVertexAttrib2fvARB: TglVertexAttrib2fvARB;
12184   glVertexAttrib2sARB: TglVertexAttrib2sARB;
12185   glVertexAttrib2svARB: TglVertexAttrib2svARB;
12186   glVertexAttrib3dARB: TglVertexAttrib3dARB;
12187   glVertexAttrib3dvARB: TglVertexAttrib3dvARB;
12188   glVertexAttrib3fARB: TglVertexAttrib3fARB;
12189   glVertexAttrib3fvARB: TglVertexAttrib3fvARB;
12190   glVertexAttrib3sARB: TglVertexAttrib3sARB;
12191   glVertexAttrib3svARB: TglVertexAttrib3svARB;
12192   glVertexAttrib4NbvARB: TglVertexAttrib4NbvARB;
12193   glVertexAttrib4NivARB: TglVertexAttrib4NivARB;
12194   glVertexAttrib4NsvARB: TglVertexAttrib4NsvARB;
12195   glVertexAttrib4NubARB: TglVertexAttrib4NubARB;
12196   glVertexAttrib4NubvARB: TglVertexAttrib4NubvARB;
12197   glVertexAttrib4NuivARB: TglVertexAttrib4NuivARB;
12198   glVertexAttrib4NusvARB: TglVertexAttrib4NusvARB;
12199   glVertexAttrib4bvARB: TglVertexAttrib4bvARB;
12200   glVertexAttrib4dARB: TglVertexAttrib4dARB;
12201   glVertexAttrib4dvARB: TglVertexAttrib4dvARB;
12202   glVertexAttrib4fARB: TglVertexAttrib4fARB;
12203   glVertexAttrib4fvARB: TglVertexAttrib4fvARB;
12204   glVertexAttrib4ivARB: TglVertexAttrib4ivARB;
12205   glVertexAttrib4sARB: TglVertexAttrib4sARB;
12206   glVertexAttrib4svARB: TglVertexAttrib4svARB;
12207   glVertexAttrib4ubvARB: TglVertexAttrib4ubvARB;
12208   glVertexAttrib4uivARB: TglVertexAttrib4uivARB;
12209   glVertexAttrib4usvARB: TglVertexAttrib4usvARB;
12210   glVertexAttribPointerARB: TglVertexAttribPointerARB;
12211   glEnableVertexAttribArrayARB: TglEnableVertexAttribArrayARB;
12212   glDisableVertexAttribArrayARB: TglDisableVertexAttribArrayARB;
12213   glProgramStringARB: TglProgramStringARB;
12214   glBindProgramARB: TglBindProgramARB;
12215   glDeleteProgramsARB: TglDeleteProgramsARB;
12216   glGenProgramsARB: TglGenProgramsARB;
12217
12218   glProgramEnvParameter4dARB: TglProgramEnvParameter4dARB;
12219   glProgramEnvParameter4dvARB: TglProgramEnvParameter4dvARB;
12220   glProgramEnvParameter4fARB: TglProgramEnvParameter4fARB;
12221   glProgramEnvParameter4fvARB: TglProgramEnvParameter4fvARB;
12222   glProgramLocalParameter4dARB: TglProgramLocalParameter4dARB;
12223   glProgramLocalParameter4dvARB: TglProgramLocalParameter4dvARB;
12224   glProgramLocalParameter4fARB: TglProgramLocalParameter4fARB;
12225   glProgramLocalParameter4fvARB: TglProgramLocalParameter4fvARB;
12226   glGetProgramEnvParameterdvARB: TglGetProgramEnvParameterdvARB;
12227   glGetProgramEnvParameterfvARB: TglGetProgramEnvParameterfvARB;
12228   glGetProgramLocalParameterdvARB: TglGetProgramLocalParameterdvARB;
12229   glGetProgramLocalParameterfvARB: TglGetProgramLocalParameterfvARB;
12230   glGetProgramivARB: TglGetProgramivARB;
12231   glGetProgramStringARB: TglGetProgramStringARB;
12232   glGetVertexAttribdvARB: TglGetVertexAttribdvARB;
12233   glGetVertexAttribfvARB: TglGetVertexAttribfvARB;
12234   glGetVertexAttribivARB: TglGetVertexAttribivARB;
12235   glGetVertexAttribPointervARB: TglGetVertexAttribPointervARB;
12236   glIsProgramARB: TglIsProgramARB;
12237
12238   // GL_ARB_window_pos
12239   glWindowPos2dARB: TglWindowPos2dARB;
12240   glWindowPos2dvARB: TglWindowPos2dvARB;
12241   glWindowPos2fARB: TglWindowPos2fARB;
12242   glWindowPos2fvARB: TglWindowPos2fvARB;
12243   glWindowPos2iARB: TglWindowPos2iARB;
12244   glWindowPos2ivARB: TglWindowPos2ivARB;
12245   glWindowPos2sARB: TglWindowPos2sARB;
12246   glWindowPos2svARB: TglWindowPos2svARB;
12247   glWindowPos3dARB: TglWindowPos3dARB;
12248   glWindowPos3dvARB: TglWindowPos3dvARB;
12249   glWindowPos3fARB: TglWindowPos3fARB;
12250   glWindowPos3fvARB: TglWindowPos3fvARB;
12251   glWindowPos3iARB: TglWindowPos3iARB;
12252   glWindowPos3ivARB: TglWindowPos3ivARB;
12253   glWindowPos3sARB: TglWindowPos3sARB;
12254   glWindowPos3svARB: TglWindowPos3svARB;
12255
12256   // GL_ARB_draw_buffers
12257   glDrawBuffersARB: TglDrawBuffersARB;
12258
12259   // GL_ARB_color_buffer_float
12260   glClampColorARB: TglClampColorARB;
12261
12262   // GL_ARB_vertex_shader
12263   glGetActiveAttribARB: TglGetActiveAttribARB;
12264   glGetAttribLocationARB: TglGetAttribLocationARB;
12265   glBindAttribLocationARB: TglBindAttribLocationARB;
12266
12267   // GL_ARB_shader_objects
12268   glDeleteObjectARB: TglDeleteObjectARB;
12269   glGetHandleARB: TglGetHandleARB;
12270   glDetachObjectARB: TglDetachObjectARB;
12271   glCreateShaderObjectARB: TglCreateShaderObjectARB;
12272   glShaderSourceARB: TglShaderSourceARB;
12273   glCompileShaderARB: TglCompileShaderARB;
12274   glCreateProgramObjectARB: TglCreateProgramObjectARB;
12275   glAttachObjectARB: TglAttachObjectARB;
12276   glLinkProgramARB: TglLinkProgramARB;
12277   glUseProgramObjectARB: TglUseProgramObjectARB;
12278   glValidateProgramARB: TglValidateProgramARB;
12279   glUniform1fARB: TglUniform1fARB;
12280   glUniform2fARB: TglUniform2fARB;
12281   glUniform3fARB: TglUniform3fARB;
12282   glUniform4fARB: TglUniform4fARB;
12283   glUniform1iARB: TglUniform1iARB;
12284   glUniform2iARB: TglUniform2iARB;
12285   glUniform3iARB: TglUniform3iARB;
12286   glUniform4iARB: TglUniform4iARB;
12287   glUniform1fvARB: TglUniform1fvARB;
12288   glUniform2fvARB: TglUniform2fvARB;
12289   glUniform3fvARB: TglUniform3fvARB;
12290   glUniform4fvARB: TglUniform4fvARB;
12291   glUniform1ivARB: TglUniform1ivARB;
12292   glUniform2ivARB: TglUniform2ivARB;
12293   glUniform3ivARB: TglUniform3ivARB;
12294   glUniform4ivARB: TglUniform4ivARB;
12295   glUniformMatrix2fvARB: TglUniformMatrix2fvARB;
12296   glUniformMatrix3fvARB: TglUniformMatrix3fvARB;
12297   glUniformMatrix4fvARB: TglUniformMatrix4fvARB;
12298   glGetObjectParameterfvARB: TglGetObjectParameterfvARB;
12299   glGetObjectParameterivARB: TglGetObjectParameterivARB;
12300   glGetInfoLogARB: TglGetInfoLogARB;
12301   glGetAttachedObjectsARB: TglGetAttachedObjectsARB;
12302   glGetUniformLocationARB: TglGetUniformLocationARB;
12303   glGetActiveUniformARB: TglGetActiveUniformARB;
12304   glGetUniformfvARB: TglGetUniformfvARB;
12305   glGetUniformivARB: TglGetUniformivARB;
12306   glGetShaderSourceARB: TglGetShaderSourceARB;
12307
12308   // GL_ARB_Occlusion_Query
12309   glGenQueriesARB: TglGenQueriesARB;
12310   glDeleteQueriesARB: TglDeleteQueriesARB;
12311   glIsQueryARB: TglIsQueryARB;
12312   glBeginQueryARB: TglBeginQueryARB;
12313   glEndQueryARB: TglEndQueryARB;
12314   glGetQueryivARB: TglGetQueryivARB;
12315   glGetQueryObjectivARB: TglGetQueryObjectivARB;
12316   glGetQueryObjectuivARB: TglGetQueryObjectuivARB;
12317
12318   // GL_ARB_draw_instanced
12319   glDrawArraysInstancedARB: TglDrawArraysInstancedARB;
12320   glDrawElementsInstancedARB: TglDrawElementsInstancedARB;
12321
12322   // GL_ARB_framebuffer_object
12323   glIsRenderbuffer: TglIsRenderbuffer;
12324   glBindRenderbuffer: TglBindRenderbuffer;
12325   glDeleteRenderbuffers: TglDeleteRenderbuffers;
12326   glGenRenderbuffers: TglGenRenderbuffers;
12327   glRenderbufferStorage: TglRenderbufferStorage;
12328   glGetRenderbufferParameteriv: TglGetRenderbufferParameteriv;
12329   glIsFramebuffer: TglIsFramebuffer;
12330   glBindFramebuffer: TglBindFramebuffer;
12331   glDeleteFramebuffers: TglDeleteFramebuffers;
12332   glGenFramebuffers: TglGenFramebuffers;
12333   glCheckFramebufferStatus: TglCheckFramebufferStatus;
12334   glFramebufferTexture1D: TglFramebufferTexture1D;
12335   glFramebufferTexture2D: TglFramebufferTexture2D;
12336   glFramebufferTexture3D: TglFramebufferTexture3D;
12337   glFramebufferRenderbuffer: TglFramebufferRenderbuffer;
12338   glGetFramebufferAttachmentParameteriv: TglGetFramebufferAttachmentParameteriv;
12339   glGenerateMipmap: TglGenerateMipmap;
12340   glBlitFramebuffer: TglBlitFramebuffer;
12341   glRenderbufferStorageMultisample: TglRenderbufferStorageMultisample;
12342   glFramebufferTextureLayer: TglFramebufferTextureLayer;
12343
12344   // GL_ARB_geometry_shader4
12345   glProgramParameteriARB: TglProgramParameteriARB;
12346   glFramebufferTextureARB: TglFramebufferTextureARB;
12347   glFramebufferTextureLayerARB: TglFramebufferTextureLayerARB;
12348   glFramebufferTextureFaceARB: TglFramebufferTextureFaceARB;
12349
12350   // GL_ARB_instanced_arrays
12351   glVertexAttribDivisorARB: TglVertexAttribDivisorARB;
12352
12353   // GL_ARB_map_buffer_range
12354   glMapBufferRange: TglMapBufferRange;
12355   glFlushMappedBufferRange: TglFlushMappedBufferRange;
12356
12357   // GL_ARB_texture_buffer_object
12358   glTexBufferARB: TglTexBufferARB;
12359
12360   // GL_ARB_vertex_array_object
12361   glBindVertexArray: TglBindVertexArray;
12362   glDeleteVertexArrays: TglDeleteVertexArrays;
12363   glGenVertexArrays: TglGenVertexArrays;
12364   glIsVertexArray: TglIsVertexArray;
12365
12366   // GL_ARB_uniform_buffer_object
12367   glGetUniformIndices: TglGetUniformIndices;
12368   glGetActiveUniformsiv: TglGetActiveUniformsiv;
12369   glGetActiveUniformName: TglGetActiveUniformName;
12370   glGetUniformBlockIndex: TglGetUniformBlockIndex;
12371   glGetActiveUniformBlockiv: TglGetActiveUniformBlockiv;
12372   glGetActiveUniformBlockName: TglGetActiveUniformBlockName;
12373   glUniformBlockBinding: TglUniformBlockBinding;
12374
12375   // GL_ARB_copy_buffer
12376   glCopyBufferSubData: TglCopyBufferSubData;
12377
12378   // GL_ARB_draw_elements_base_vertex
12379   glDrawElementsBaseVertex: TglDrawElementsBaseVertex;
12380   glDrawRangeElementsBaseVertex: TglDrawRangeElementsBaseVertex;
12381   glDrawElementsInstancedBaseVertex: TglDrawElementsInstancedBaseVertex;
12382   glMultiDrawElementsBaseVertex: TglMultiDrawElementsBaseVertex;
12383
12384   // GL_ARB_provoking_vertex
12385   glProvokingVertex: TglProvokingVertex;
12386
12387   // GL_ARB_sync
12388   glFenceSync: TglFenceSync;
12389   glIsSync: TglIsSync;
12390   glDeleteSync: TglDeleteSync;
12391   glClientWaitSync: TglClientWaitSync;
12392   glWaitSync: TglWaitSync;
12393   glGetInteger64v: TglGetInteger64v;
12394   glGetSynciv: TglGetSynciv;
12395
12396   // GL_ARB_texture_multisample
12397   glTexImage2DMultisample: TglTexImage2DMultisample;
12398   glTexImage3DMultisample: TglTexImage3DMultisample;
12399   glGetMultisamplefv: TglGetMultisamplefv;
12400   glSampleMaski: TglSampleMaski;
12401
12402   // GL_ARB_draw_buffers_blend
12403   glBlendEquationiARB: TglBlendEquationiARB;
12404   glBlendEquationSeparateiARB: TglBlendEquationSeparateiARB;
12405   glBlendFunciARB: TglBlendFunciARB;
12406   glBlendFuncSeparateiARB: TglBlendFuncSeparateiARB;
12407
12408   // GL_ARB_sample_shading
12409   glMinSampleShadingARB: TglMinSampleShadingARB;
12410
12411   // GL_ARB_shading_language_include
12412   glNamedStringARB: TglNamedStringARB;
12413   glDeleteNamedStringARB: TglDeleteNamedStringARB;
12414   glCompileShaderIncludeARB: TglCompileShaderIncludeARB;
12415   glIsNamedStringARB: TglIsNamedStringARB;
12416   glGetNamedStringARB: TglGetNamedStringARB;
12417   glGetNamedStringivARB: TglGetNamedStringivARB;
12418
12419   // GL_ARB_blend_func_extended
12420   glBindFragDataLocationIndexed: TglBindFragDataLocationIndexed;
12421   glGetFragDataIndex: TglGetFragDataIndex;
12422
12423   // GL_ARB_sampler_objects
12424   glGenSamplers: TglGenSamplers;
12425   glDeleteSamplers: TglDeleteSamplers;
12426   glIsSampler: TglIsSampler;
12427   glBindSampler: TglBindSampler;
12428   glSamplerParameteri: TglSamplerParameteri;
12429   glSamplerParameteriv: TglSamplerParameteriv;
12430   glSamplerParameterf: TglSamplerParameterf;
12431   glSamplerParameterfv: TglSamplerParameterfv;
12432   glSamplerParameterIiv: TglSamplerParameterIiv;
12433   glSamplerParameterIuiv: TglSamplerParameterIuiv;
12434   glGetSamplerParameteriv: TglGetSamplerParameteriv;
12435   glGetSamplerParameterIiv: TglGetSamplerParameterIiv;
12436   glGetSamplerParameterfv: TglGetSamplerParameterfv;
12437   glGetSamplerParameterIuiv: TglGetSamplerParameterIuiv;
12438
12439   // GL_ARB_timer_query
12440   glQueryCounter: TglQueryCounter;
12441   glGetQueryObjecti64v: TglGetQueryObjecti64v;
12442   glGetQueryObjectui64v: TglGetQueryObjectui64v;
12443
12444   // GL_ARB_vertex_type_2_10_10_10_rev
12445   glVertexP2ui: TglVertexP2ui;
12446   glVertexP2uiv: TglVertexP2uiv;
12447   glVertexP3ui: TglVertexP3ui;
12448   glVertexP3uiv: TglVertexP3uiv;
12449   glVertexP4ui: TglVertexP4ui;
12450   glVertexP4uiv: TglVertexP4uiv;
12451   glTexCoordP1ui: TglTexCoordP1ui;
12452   glTexCoordP1uiv: TglTexCoordP1uiv;
12453   glTexCoordP2ui: TglTexCoordP2ui;
12454   glTexCoordP2uiv: TglTexCoordP2uiv;
12455   glTexCoordP3ui: TglTexCoordP3ui;
12456   glTexCoordP3uiv: TglTexCoordP3uiv;
12457   glTexCoordP4ui: TglTexCoordP4ui;
12458   glTexCoordP4uiv: TglTexCoordP4uiv;
12459   glMultiTexCoordP1ui: TglMultiTexCoordP1ui;
12460   glMultiTexCoordP1uiv: TglMultiTexCoordP1uiv;
12461   glMultiTexCoordP2ui: TglMultiTexCoordP2ui;
12462   glMultiTexCoordP2uiv: TglMultiTexCoordP2uiv;
12463   glMultiTexCoordP3ui: TglMultiTexCoordP3ui;
12464   glMultiTexCoordP3uiv: TglMultiTexCoordP3uiv;
12465   glMultiTexCoordP4ui: TglMultiTexCoordP4ui;
12466   glMultiTexCoordP4uiv: TglMultiTexCoordP4uiv;
12467   glNormalP3ui: TglNormalP3ui;
12468   glNormalP3uiv: TglNormalP3uiv;
12469   glColorP3ui: TglColorP3ui;
12470   glColorP3uiv: TglColorP3uiv;
12471   glColorP4ui: TglColorP4ui;
12472   glColorP4uiv: TglColorP4uiv;
12473   glSecondaryColorP3ui: TglSecondaryColorP3ui;
12474   glSecondaryColorP3uiv: TglSecondaryColorP3uiv;
12475   glVertexAttribP1ui: TglVertexAttribP1ui;
12476   glVertexAttribP1uiv: TglVertexAttribP1uiv;
12477   glVertexAttribP2ui: TglVertexAttribP2ui;
12478   glVertexAttribP2uiv: TglVertexAttribP2uiv;
12479   glVertexAttribP3ui: TglVertexAttribP3ui;
12480   glVertexAttribP3uiv: TglVertexAttribP3uiv;
12481   glVertexAttribP4ui: TglVertexAttribP4ui;
12482   glVertexAttribP4uiv: TglVertexAttribP4uiv;
12483
12484   // GL_ARB_draw_indirect
12485   glDrawArraysIndirect: TglDrawArraysIndirect;
12486   glDrawElementsIndirect: TglDrawElementsIndirect;
12487
12488   // GL_ARB_gpu_shader_fp64
12489   glUniform1d: TglUniform1d;
12490   glUniform2d: TglUniform2d;
12491   glUniform3d: TglUniform3d;
12492   glUniform4d: TglUniform4d;
12493   glUniform1dv: TglUniform1dv;
12494   glUniform2dv: TglUniform2dv;
12495   glUniform3dv: TglUniform3dv;
12496   glUniform4dv: TglUniform4dv;
12497   glUniformMatrix2dv: TglUniformMatrix2dv;
12498   glUniformMatrix3dv: TglUniformMatrix3dv;
12499   glUniformMatrix4dv: TglUniformMatrix4dv;
12500   glUniformMatrix2x3dv: TglUniformMatrix2x3dv;
12501   glUniformMatrix2x4dv: TglUniformMatrix2x4dv;
12502   glUniformMatrix3x2dv: TglUniformMatrix3x2dv;
12503   glUniformMatrix3x4dv: TglUniformMatrix3x4dv;
12504   glUniformMatrix4x2dv: TglUniformMatrix4x2dv;
12505   glUniformMatrix4x3dv: TglUniformMatrix4x3dv;
12506   glGetUniformdv: TglGetUniformdv;
12507
12508   // GL_ARB_shader_subroutine
12509   glGetSubroutineUniformLocation: TglGetSubroutineUniformLocation;
12510   glGetSubroutineIndex: TglGetSubroutineIndex;
12511   glGetActiveSubroutineUniformiv: TglGetActiveSubroutineUniformiv;
12512   glGetActiveSubroutineUniformName: TglGetActiveSubroutineUniformName;
12513   glGetActiveSubroutineName: TglGetActiveSubroutineName;
12514   glUniformSubroutinesuiv: TglUniformSubroutinesuiv;
12515   glGetUniformSubroutineuiv: TglGetUniformSubroutineuiv;
12516   glGetProgramStageiv: TglGetProgramStageiv;
12517
12518   // GL_ARB_tessellation_shader
12519   glPatchParameteri: TglPatchParameteri;
12520   glPatchParameterfv: TglPatchParameterfv;
12521
12522   // GL_ARB_transform_feedback2
12523   glBindTransformFeedback: TglBindTransformFeedback;
12524   glDeleteTransformFeedbacks: TglDeleteTransformFeedbacks;
12525   glGenTransformFeedbacks: TglGenTransformFeedbacks;
12526   glIsTransformFeedback: TglIsTransformFeedback;
12527   glPauseTransformFeedback: TglPauseTransformFeedback;
12528   glResumeTransformFeedback: TglResumeTransformFeedback;
12529   glDrawTransformFeedback: TglDrawTransformFeedback;
12530
12531   // GL_ARB_transform_feedback3
12532   glDrawTransformFeedbackStream: TglDrawTransformFeedbackStream;
12533   glBeginQueryIndexed: TglBeginQueryIndexed;
12534   glEndQueryIndexed: TglEndQueryIndexed;
12535   glGetQueryIndexediv: TglGetQueryIndexediv;
12536
12537   // GL_ARB_ES2_compatibility
12538   glReleaseShaderCompiler: TglReleaseShaderCompiler;
12539   glShaderBinary: TglShaderBinary;
12540   glGetShaderPrecisionFormat: TglGetShaderPrecisionFormat;
12541   glDepthRangef: TglDepthRangef;
12542   glClearDepthf: TglClearDepthf;
12543
12544   // GL_ARB_get_program_binary
12545   glGetProgramBinary: TglGetProgramBinary;
12546   glProgramBinary: TglProgramBinary;
12547   glProgramParameteri: TglProgramParameteri;
12548   
12549   // GL_ARB_separate_shader_objects
12550   glUseProgramStages: TglUseProgramStages;
12551   glActiveShaderProgram: TglActiveShaderProgram;
12552   glCreateShaderProgramv: TglCreateShaderProgramv;
12553   glBindProgramPipeline: TglBindProgramPipeline;
12554   glDeleteProgramPipelines: TglDeleteProgramPipelines;
12555   glGenProgramPipelines: TglGenProgramPipelines;
12556   glIsProgramPipeline: TglIsProgramPipeline;
12557   glGetProgramPipelineiv: TglGetProgramPipelineiv;
12558   glProgramUniform1i: TglProgramUniform1i;
12559   glProgramUniform1iv: TglProgramUniform1iv;
12560   glProgramUniform1f: TglProgramUniform1f;
12561   glProgramUniform1fv: TglProgramUniform1fv;
12562   glProgramUniform1d: TglProgramUniform1d;
12563   glProgramUniform1dv: TglProgramUniform1dv;
12564   glProgramUniform1ui: TglProgramUniform1ui;
12565   glProgramUniform1uiv: TglProgramUniform1uiv;
12566   glProgramUniform2i: TglProgramUniform2i;
12567   glProgramUniform2iv: TglProgramUniform2iv;
12568   glProgramUniform2f: TglProgramUniform2f;
12569   glProgramUniform2fv: TglProgramUniform2fv;
12570   glProgramUniform2d: TglProgramUniform2d;
12571   glProgramUniform2dv: TglProgramUniform2dv;
12572   glProgramUniform2ui: TglProgramUniform2ui;
12573   glProgramUniform2uiv: TglProgramUniform2uiv;
12574   glProgramUniform3i: TglProgramUniform3i;
12575   glProgramUniform3iv: TglProgramUniform3iv;
12576   glProgramUniform3f: TglProgramUniform3f;
12577   glProgramUniform3fv: TglProgramUniform3fv;
12578   glProgramUniform3d: TglProgramUniform3d;
12579   glProgramUniform3dv: TglProgramUniform3dv;
12580   glProgramUniform3ui: TglProgramUniform3ui;
12581   glProgramUniform3uiv: TglProgramUniform3uiv;
12582   glProgramUniform4i: TglProgramUniform4i;
12583   glProgramUniform4iv: TglProgramUniform4iv;
12584   glProgramUniform4f: TglProgramUniform4f;
12585   glProgramUniform4fv: TglProgramUniform4fv;
12586   glProgramUniform4d: TglProgramUniform4d;
12587   glProgramUniform4dv: TglProgramUniform4dv;
12588   glProgramUniform4ui: TglProgramUniform4ui;
12589   glProgramUniform4uiv: TglProgramUniform4uiv;
12590   glProgramUniformMatrix2fv: TglProgramUniformMatrix2fv;
12591   glProgramUniformMatrix3fv: TglProgramUniformMatrix3fv;
12592   glProgramUniformMatrix4fv: TglProgramUniformMatrix4fv;
12593   glProgramUniformMatrix2dv: TglProgramUniformMatrix2dv;
12594   glProgramUniformMatrix3dv: TglProgramUniformMatrix3dv;
12595   glProgramUniformMatrix4dv: TglProgramUniformMatrix4dv;
12596   glProgramUniformMatrix2x3fv: TglProgramUniformMatrix2x3fv;
12597   glProgramUniformMatrix3x2fv: TglProgramUniformMatrix3x2fv;
12598   glProgramUniformMatrix2x4fv: TglProgramUniformMatrix2x4fv;
12599   glProgramUniformMatrix4x2fv: TglProgramUniformMatrix4x2fv;
12600   glProgramUniformMatrix3x4fv: TglProgramUniformMatrix3x4fv;
12601   glProgramUniformMatrix4x3fv: TglProgramUniformMatrix4x3fv;
12602   glProgramUniformMatrix2x3dv: TglProgramUniformMatrix2x3dv;
12603   glProgramUniformMatrix3x2dv: TglProgramUniformMatrix3x2dv;
12604   glProgramUniformMatrix2x4dv: TglProgramUniformMatrix2x4dv;
12605   glProgramUniformMatrix4x2dv: TglProgramUniformMatrix4x2dv;
12606   glProgramUniformMatrix3x4dv: TglProgramUniformMatrix3x4dv;
12607   glProgramUniformMatrix4x3dv: TglProgramUniformMatrix4x3dv;
12608   glValidateProgramPipeline: TglValidateProgramPipeline;
12609   glGetProgramPipelineInfoLog: TglGetProgramPipelineInfoLog;
12610
12611   // GL_ARB_vertex_attrib_64bit
12612   glVertexAttribL1d: TglVertexAttribL1d;
12613   glVertexAttribL2d: TglVertexAttribL2d;
12614   glVertexAttribL3d: TglVertexAttribL3d;
12615   glVertexAttribL4d: TglVertexAttribL4d;
12616   glVertexAttribL1dv: TglVertexAttribL1dv;
12617   glVertexAttribL2dv: TglVertexAttribL2dv;
12618   glVertexAttribL3dv: TglVertexAttribL3dv;
12619   glVertexAttribL4dv: TglVertexAttribL4dv;
12620   glVertexAttribLPointer: TglVertexAttribLPointer;
12621   glGetVertexAttribLdv: TglGetVertexAttribLdv;
12622
12623   // GL_ARB_viewport_array
12624   glViewportArrayv: TglViewportArrayv;
12625   glViewportIndexedf: TglViewportIndexedf;
12626   glViewportIndexedfv: TglViewportIndexedfv;
12627   glScissorArrayv: TglScissorArrayv;
12628   glScissorIndexed: TglScissorIndexed;
12629   glScissorIndexedv: TglScissorIndexedv;
12630   glDepthRangeArrayv: TglDepthRangeArrayv;
12631   glDepthRangeIndexed: TglDepthRangeIndexed;
12632   glGetFloati_v: TglGetFloati_v;
12633   glGetDoublei_v: TglGetDoublei_v;
12634
12635   // GL 4.2
12636
12637   // GL_ARB_base_instance
12638   glDrawArraysInstancedBaseInstance : TglDrawArraysInstancedBaseInstance;
12639   glDrawElementsInstancedBaseInstance : TglDrawElementsInstancedBaseInstance;
12640   glDrawElementsInstancedBaseVertexBaseInstance : TglDrawElementsInstancedBaseVertexBaseInstance;
12641
12642   // GL_ARB_transform_feedback_instanced
12643   glDrawTransformFeedbackInstanced : TglDrawTransformFeedbackInstanced;
12644   glDrawTransformFeedbackStreamInstanced : TglDrawTransformFeedbackStreamInstanced;
12645
12646   // GL_ARB_internalformat_query
12647   glGetInternalformativ : TglGetInternalformativ;
12648
12649   // GL_ARB_shader_atomic_counters
12650   glGetActiveAtomicCounterBufferiv : TglGetActiveAtomicCounterBufferiv;
12651
12652   /// GL_ARB_shader_image_load_store
12653   glBindImageTexture : TglBindImageTexture;
12654   glMemoryBarrier : TglMemoryBarrier;
12655
12656   // GL_ARB_texture_storage
12657   glTexStorage1D : TglTexStorage1D;
12658   glTexStorage2D : TglTexStorage2D;
12659   glTexStorage3D : TglTexStorage3D;
12660   glTextureStorage1DEXT : TglTextureStorage1DEXT;
12661   glTextureStorage2DEXT : TglTextureStorage2DEXT;
12662   glTextureStorage3DEXT : TglTextureStorage3DEXT;
12663
12664
12665   // GL 4.3
12666     // GL_KHR_debug
12667     glDebugMessageControl : TglDebugMessageControl;
12668     glDebugMessageInsert : TglDebugMessageInsert;
12669     glDebugMessageCallback : TglDebugMessageCallback;
12670     glGetDebugMessageLog : TglGetDebugMessageLog;
12671     glPushDebugGroup : TglPushDebugGroup;
12672     glPopDebugGroup : TglPopDebugGroup;
12673     glObjectLabel : TglObjectLabel;
12674     glGetObjectLabel : TglGetObjectLabel;
12675     glObjectPtrLabel : TglObjectPtrLabel;
12676     glGetObjectPtrLabel : TglGetObjectPtrLabel;
12677     // GL_ARB_clear_buffer_object
12678     glClearBufferData : TglClearBufferData;
12679     glClearBufferSubData : TglClearBufferSubData;
12680     glClearNamedBufferDataEXT : TglClearNamedBufferDataEXT;
12681     glClearNamedBufferSubDataEXT : TglClearNamedBufferSubDataEXT;
12682     // GL_ARB_compute_shader
12683     glDispatchCompute : TglDispatchCompute;
12684     glDispatchComputeIndirect : TglDispatchComputeIndirect;
12685     // GL_ARB_copy_image
12686     glCopyImageSubData : TglCopyImageSubData;
12687     // GL_ARB_framebuffer_no_attachments
12688     glFramebufferParameteri : TglFramebufferParameteri;
12689     glGetFramebufferParameteriv : TglGetFramebufferParameteriv;
12690     glNamedFramebufferParameteriEXT : TglNamedFramebufferParameteriEXT;
12691     glGetNamedFramebufferParameterivEXT : TglGetNamedFramebufferParameterivEXT;
12692     // GL_ARB_internalformat_query2
12693     glGetInternalformati64v : TglGetInternalformati64v;
12694     // GL_ARB_invalidate_subdata
12695     glInvalidateTexSubImage : TglInvalidateTexSubImage;
12696     glInvalidateTexImage : TglInvalidateTexImage;
12697     glInvalidateBufferSubData : TglInvalidateBufferSubData;
12698     glInvalidateBufferData : TglInvalidateBufferData;
12699     glInvalidateFramebuffer : TglInvalidateFramebuffer;
12700     glInvalidateSubFramebuffer : TglInvalidateSubFramebuffer;
12701     // GL_ARB_multi_draw_indirect
12702     glMultiDrawArraysIndirect : TglMultiDrawArraysIndirect;
12703     glMultiDrawElementsIndirect : TglMultiDrawElementsIndirect;
12704     // GL_ARB_program_interface_query
12705     glGetProgramInterfaceiv : TglGetProgramInterfaceiv;
12706     glGetProgramResourceIndex : TglGetProgramResourceIndex;
12707     glGetProgramResourceName : TglGetProgramResourceName;
12708     glGetProgramResourceiv : TglGetProgramResourceiv;
12709     glGetProgramResourceLocation : TglGetProgramResourceLocation;
12710     glGetProgramResourceLocationIndex : TglGetProgramResourceLocationIndex;
12711     // GL_ARB_shader_storage_buffer_object
12712     glShaderStorageBlockBinding : TglShaderStorageBlockBinding;
12713     // GL_ARB_texture_buffer_range
12714     glTexBufferRange : TglTexBufferRange;
12715     glTextureBufferRangeEXT : TglTextureBufferRangeEXT;
12716     // GL_ARB_texture_storage_multisample
12717     glTexStorage2DMultisample : TglTexStorage2DMultisample;
12718     glTexStorage3DMultisample : TglTexStorage3DMultisample;
12719     glTextureStorage2DMultisampleEXT : TglTextureStorage2DMultisampleEXT;
12720     glTextureStorage3DMultisampleEXT : TglTextureStorage3DMultisampleEXT;
12721     // GL_ARB_texture_view
12722     glTextureView : TglTextureView;
12723     // GL_ARB_vertex_attrib_binding
12724     glBindVertexBuffer : TglBindVertexBuffer;
12725     glVertexAttribFormat : TglVertexAttribFormat;
12726     glVertexAttribIFormat : TglVertexAttribIFormat;
12727     glVertexAttribLFormat : TglVertexAttribLFormat;
12728     glVertexAttribBinding : TglVertexAttribBinding;
12729     glVertexBindingDivisor : TglVertexBindingDivisor;
12730     glVertexArrayBindVertexBufferEXT : TglVertexArrayBindVertexBufferEXT;
12731     glVertexArrayVertexAttribFormatEXT : TglVertexArrayVertexAttribFormatEXT;
12732     glVertexArrayVertexAttribIFormatEXT : TglVertexArrayVertexAttribIFormatEXT;
12733     glVertexArrayVertexAttribLFormatEXT : TglVertexArrayVertexAttribLFormatEXT;
12734     glVertexArrayVertexAttribBindingEXT : TglVertexArrayVertexAttribBindingEXT;
12735     glVertexArrayVertexBindingDivisorEXT : TglVertexArrayVertexBindingDivisorEXT;
12736   // END GL 4.3
12737
12738
12739   // GL 4.4
12740     glBufferStorage : TglBufferStorage;
12741     glClearTexImage : TglClearTexImage;
12742     glClearTexSubImage : TglClearTexSubImage;
12743     glBindBuffersBase : TglBindBuffersBase;
12744     glBindBuffersRange : TglBindBuffersRange;
12745     glBindTextures : TglBindTextures;
12746     glBindSamplers : TglBindSamplers;
12747     glBindImageTextures : TglBindImageTextures;
12748     glBindVertexBuffers : TglBindVertexBuffers;
12749     glTexPageCommitmentARB : TglTexPageCommitmentARB;
12750   // END GL 4.4
12751
12752
12753   // GL_ARB_cl_event
12754   glCreateSyncFromCLeventARB: TglCreateSyncFromCLeventARB;
12755
12756   // GL_ARB_debug_output
12757   glDebugMessageControlARB: TglDebugMessageControlARB;
12758   glDebugMessageInsertARB: TglDebugMessageInsertARB;
12759   glDebugMessageCallbackARB: TglDebugMessageCallbackARB;
12760   glGetDebugMessageLogARB: TglGetDebugMessageLogARB;
12761
12762   // GL_ARB_robustness
12763   glGetGraphicsResetStatusARB: TglGetGraphicsResetStatusARB;
12764   glGetnMapdvARB: TglGetnMapdvARB;
12765   glGetnMapfvARB: TglGetnMapfvARB;
12766   glGetnMapivARB: TglGetnMapivARB;
12767   glGetnPixelMapfvARB: TglGetnPixelMapfvARB;
12768   glGetnPixelMapuivARB: TglGetnPixelMapuivARB;
12769   glGetnPixelMapusvARB: TglGetnPixelMapusvARB;
12770   glGetnPolygonStippleARB: TglGetnPolygonStippleARB;
12771   glGetnColorTableARB: TglGetnColorTableARB;
12772   glGetnConvolutionFilterARB: TglGetnConvolutionFilterARB;
12773   glGetnSeparableFilterARB: TglGetnSeparableFilterARB;
12774   glGetnHistogramARB: TglGetnHistogramARB;
12775   glGetnMinmaxARB: TglGetnMinmaxARB;
12776   glGetnTexImageARB: TglGetnTexImageARB;
12777   glReadnPixelsARB: TglReadnPixelsARB;
12778   glGetnCompressedTexImageARB: TglGetnCompressedTexImageARB;
12779   glGetnUniformfvARB: TglGetnUniformfvARB;
12780   glGetnUniformivARB: TglGetnUniformivARB;
12781   glGetnUniformuivARB: TglGetnUniformuivARB;
12782   glGetnUniformdvARB: TglGetnUniformdvARB;
12783
12784   // GL_ATI_draw_buffers
12785   glDrawBuffersATI: TglDrawBuffersATI;
12786
12787   // GL_ATI_element_array
12788   glElementPointerATI: TglElementPointerATI;
12789   glDrawElementArrayATI: TglDrawElementArrayATI;
12790   glDrawRangeElementArrayATI: TglDrawRangeElementArrayATI;
12791
12792   // GL_ATI_envmap_bumpmap
12793   glTexBumpParameterivATI: TglTexBumpParameterivATI;
12794   glTexBumpParameterfvATI: TglTexBumpParameterfvATI;
12795   glGetTexBumpParameterivATI: TglGetTexBumpParameterivATI;
12796   glGetTexBumpParameterfvATI: TglGetTexBumpParameterfvATI;
12797
12798   // GL_ATI_fragment_shader
12799   glGenFragmentShadersATI: TglGenFragmentShadersATI;
12800   glBindFragmentShaderATI: TglBindFragmentShaderATI;
12801   glDeleteFragmentShaderATI: TglDeleteFragmentShaderATI;
12802   glBeginFragmentShaderATI: TglBeginFragmentShaderATI;
12803   glEndFragmentShaderATI: TglEndFragmentShaderATI;
12804   glPassTexCoordATI: TglPassTexCoordATI;
12805   glSampleMapATI: TglSampleMapATI;
12806   glColorFragmentOp1ATI: TglColorFragmentOp1ATI;
12807   glColorFragmentOp2ATI: TglColorFragmentOp2ATI;
12808   glColorFragmentOp3ATI: TglColorFragmentOp3ATI;
12809   glAlphaFragmentOp1ATI: TglAlphaFragmentOp1ATI;
12810   glAlphaFragmentOp2ATI: TglAlphaFragmentOp2ATI;
12811   glAlphaFragmentOp3ATI: TglAlphaFragmentOp3ATI;
12812   glSetFragmentShaderConstantATI: TglSetFragmentShaderConstantATI;
12813
12814   // GL_ATI_map_object_buffer
12815   glMapObjectBufferATI: TglMapObjectBufferATI;
12816   glUnmapObjectBufferATI: TglUnmapObjectBufferATI;
12817
12818   // GL_ATI_pn_triangles
12819   glPNTrianglesiATI: TglPNTrianglesiATI;
12820   glPNTrianglesfATI: TglPNTrianglesfATI;
12821
12822   // GL_ATI_separate_stencil
12823   glStencilOpSeparateATI: TglStencilOpSeparateATI;
12824   glStencilFuncSeparateATI: TglStencilFuncSeparateATI;
12825
12826   // GL_ATI_vertex_array_object
12827   glNewObjectBufferATI: TglNewObjectBufferATI;
12828   glIsObjectBufferATI: TglIsObjectBufferATI;
12829   glUpdateObjectBufferATI: TglUpdateObjectBufferATI;
12830   glGetObjectBufferfvATI: TglGetObjectBufferfvATI;
12831   glGetObjectBufferivATI: TglGetObjectBufferivATI;
12832   glFreeObjectBufferATI: TglFreeObjectBufferATI;
12833   glArrayObjectATI: TglArrayObjectATI;
12834   glGetArrayObjectfvATI: TglGetArrayObjectfvATI;
12835   glGetArrayObjectivATI: TglGetArrayObjectivATI;
12836   glVariantArrayObjectATI: TglVariantArrayObjectATI;
12837   glGetVariantArrayObjectfvATI: TglGetVariantArrayObjectfvATI;
12838   glGetVariantArrayObjectivATI: TglGetVariantArrayObjectivATI;
12839   glVertexAttribArrayObjectATI: TglVertexAttribArrayObjectATI;
12840   glGetVertexAttribArrayObjectfvATI: TglGetVertexAttribArrayObjectfvATI;
12841   glGetVertexAttribArrayObjectivATI: TglGetVertexAttribArrayObjectivATI;
12842
12843   // GL_ATI_vertex_streams
12844   glVertexStream1sATI: TglVertexStream1sATI;
12845   glVertexStream1svATI: TglVertexStream1svATI;
12846   glVertexStream1iATI: TglVertexStream1iATI;
12847   glVertexStream1ivATI: TglVertexStream1ivATI;
12848   glVertexStream1fATI: TglVertexStream1fATI;
12849   glVertexStream1fvATI: TglVertexStream1fvATI;
12850   glVertexStream1dATI: TglVertexStream1dATI;
12851   glVertexStream1dvATI: TglVertexStream1dvATI;
12852   glVertexStream2sATI: TglVertexStream2sATI;
12853   glVertexStream2svATI: TglVertexStream2svATI;
12854   glVertexStream2iATI: TglVertexStream2iATI;
12855   glVertexStream2ivATI: TglVertexStream2ivATI;
12856   glVertexStream2fATI: TglVertexStream2fATI;
12857   glVertexStream2fvATI: TglVertexStream2fvATI;
12858   glVertexStream2dATI: TglVertexStream2dATI;
12859   glVertexStream2dvATI: TglVertexStream2dvATI;
12860   glVertexStream3sATI: TglVertexStream3sATI;
12861   glVertexStream3svATI: TglVertexStream3svATI;
12862   glVertexStream3iATI: TglVertexStream3iATI;
12863   glVertexStream3ivATI: TglVertexStream3ivATI;
12864   glVertexStream3fATI: TglVertexStream3fATI;
12865   glVertexStream3fvATI: TglVertexStream3fvATI;
12866   glVertexStream3dATI: TglVertexStream3dATI;
12867   glVertexStream3dvATI: TglVertexStream3dvATI;
12868   glVertexStream4sATI: TglVertexStream4sATI;
12869   glVertexStream4svATI: TglVertexStream4svATI;
12870   glVertexStream4iATI: TglVertexStream4iATI;
12871   glVertexStream4ivATI: TglVertexStream4ivATI;
12872   glVertexStream4fATI: TglVertexStream4fATI;
12873   glVertexStream4fvATI: TglVertexStream4fvATI;
12874   glVertexStream4dATI: TglVertexStream4dATI;
12875   glVertexStream4dvATI: TglVertexStream4dvATI;
12876   glNormalStream3bATI: TglNormalStream3bATI;
12877   glNormalStream3bvATI: TglNormalStream3bvATI;
12878   glNormalStream3sATI: TglNormalStream3sATI;
12879   glNormalStream3svATI: TglNormalStream3svATI;
12880   glNormalStream3iATI: TglNormalStream3iATI;
12881   glNormalStream3ivATI: TglNormalStream3ivATI;
12882   glNormalStream3fATI: TglNormalStream3fATI;
12883   glNormalStream3fvATI: TglNormalStream3fvATI;
12884   glNormalStream3dATI: TglNormalStream3dATI;
12885   glNormalStream3dvATI: TglNormalStream3dvATI;
12886   glClientActiveVertexStreamATI: TglClientActiveVertexStreamATI;
12887   glVertexBlendEnviATI: TglVertexBlendEnviATI;
12888   glVertexBlendEnvfATI: TglVertexBlendEnvfATI;
12889
12890   // GL_AMD_performance_monitor
12891   glGetPerfMonitorGroupsAMD: TglGetPerfMonitorGroupsAMD;
12892   glGetPerfMonitorCountersAMD: TglGetPerfMonitorCountersAMD;
12893   glGetPerfMonitorGroupStringAMD: TglGetPerfMonitorGroupStringAMD;
12894   glGetPerfMonitorCounterStringAMD: TglGetPerfMonitorCounterStringAMD;
12895   glGetPerfMonitorCounterInfoAMD: TglGetPerfMonitorCounterInfoAMD;
12896   glGenPerfMonitorsAMD: TglGenPerfMonitorsAMD;
12897   glDeletePerfMonitorsAMD: TglDeletePerfMonitorsAMD;
12898   glSelectPerfMonitorCountersAMD: TglSelectPerfMonitorCountersAMD;
12899   glBeginPerfMonitorAMD: TglBeginPerfMonitorAMD;
12900   glEndPerfMonitorAMD: TglEndPerfMonitorAMD;
12901   glGetPerfMonitorCounterDataAMD: TglGetPerfMonitorCounterDataAMD;
12902
12903   // GL_AMD_vertex_shader_tesselator
12904   glTessellationFactorAMD: TglTessellationFactorAMD;
12905   glTessellationModeAMD: TglTessellationModeAMD;
12906   
12907   // GL_AMD_draw_buffers_blend
12908   glBlendFuncIndexedAMD: TglBlendFuncIndexedAMD;
12909   glBlendFuncSeparateIndexedAMD: TglBlendFuncSeparateIndexedAMD;
12910   glBlendEquationIndexedAMD: TglBlendEquationIndexedAMD;
12911   glBlendEquationSeparateIndexedAMD: TglBlendEquationSeparateIndexedAMD;
12912
12913   // GL_AMD_name_gen_delete
12914   glGenNamesAMD: TglGenNamesAMD;
12915   glDeleteNamesAMD: TglDeleteNamesAMD;
12916   glIsNameAMD: TglIsNameAMD;
12917
12918   // GL_AMD_debug_output
12919   glDebugMessageEnableAMD: TglDebugMessageEnableAMD;
12920   glDebugMessageInsertAMD: TglDebugMessageInsertAMD;
12921   glDebugMessageCallbackAMD: TglDebugMessageCallbackAMD;
12922   glGetDebugMessageLogAMD: TglGetDebugMessageLogAMD;
12923
12924   // GL_EXT_blend_color
12925   glBlendColorEXT: TglBlendColorEXT;
12926
12927   // GL_EXT_blend_func_separate
12928   glBlendFuncSeparateEXT: TglBlendFuncSeparateEXT;
12929
12930   // GL_EXT_blend_minmax
12931   glBlendEquationEXT: TglBlendEquationEXT;
12932
12933   // GL_EXT_color_subtable
12934   glColorSubTableEXT: TglColorSubTableEXT;
12935   glCopyColorSubTableEXT: TglCopyColorSubTableEXT;
12936
12937   // GL_EXT_compiled_vertex_array
12938   glLockArraysEXT: TglLockArraysEXT;
12939   glUnlockArraysEXT: TglUnlockArraysEXT;
12940
12941   // GL_EXT_convolution
12942   glConvolutionFilter1DEXT: TglConvolutionFilter1DEXT;
12943   glConvolutionFilter2DEXT: TglConvolutionFilter2DEXT;
12944   glConvolutionParameterfEXT: TglConvolutionParameterfEXT;
12945   glConvolutionParameterfvEXT: TglConvolutionParameterfvEXT;
12946   glConvolutionParameteriEXT: TglConvolutionParameteriEXT;
12947   glConvolutionParameterivEXT: TglConvolutionParameterivEXT;
12948   glCopyConvolutionFilter1DEXT: TglCopyConvolutionFilter1DEXT;
12949   glCopyConvolutionFilter2DEXT: TglCopyConvolutionFilter2DEXT;
12950   glGetConvolutionFilterEXT: TglGetConvolutionFilterEXT;
12951   glGetConvolutionParameterfvEXT: TglGetConvolutionParameterfvEXT;
12952   glGetConvolutionParameterivEXT: TglGetConvolutionParameterivEXT;
12953   glGetSeparableFilterEXT: TglGetSeparableFilterEXT;
12954   glSeparableFilter2DEXT: TglSeparableFilter2DEXT;
12955
12956   // GL_EXT_coordinate_frame
12957   glTangent3bEXT: TglTangent3bEXT;
12958   glTangent3bvEXT: TglTangent3bvEXT;
12959   glTangent3dEXT: TglTangent3dEXT;
12960   glTangent3dvEXT: TglTangent3dvEXT;
12961   glTangent3fEXT: TglTangent3fEXT;
12962   glTangent3fvEXT: TglTangent3fvEXT;
12963   glTangent3iEXT: TglTangent3iEXT;
12964   glTangent3ivEXT: TglTangent3ivEXT;
12965   glTangent3sEXT: TglTangent3sEXT;
12966   glTangent3svEXT: TglTangent3svEXT;
12967   glBinormal3bEXT: TglBinormal3bEXT;
12968   glBinormal3bvEXT: TglBinormal3bvEXT;
12969   glBinormal3dEXT: TglBinormal3dEXT;
12970   glBinormal3dvEXT: TglBinormal3dvEXT;
12971   glBinormal3fEXT: TglBinormal3fEXT;
12972   glBinormal3fvEXT: TglBinormal3fvEXT;
12973   glBinormal3iEXT: TglBinormal3iEXT;
12974   glBinormal3ivEXT: TglBinormal3ivEXT;
12975   glBinormal3sEXT: TglBinormal3sEXT;
12976   glBinormal3svEXT: TglBinormal3svEXT;
12977   glTangentPointerEXT: TglTangentPointerEXT;
12978   glBinormalPointerEXT: TglBinormalPointerEXT;
12979
12980   // GL_EXT_copy_texture
12981   glCopyTexImage1DEXT: TglCopyTexImage1DEXT;
12982   glCopyTexImage2DEXT: TglCopyTexImage2DEXT;
12983   glCopyTexSubImage1DEXT: TglCopyTexSubImage1DEXT;
12984   glCopyTexSubImage2DEXT: TglCopyTexSubImage2DEXT;
12985   glCopyTexSubImage3DEXT: TglCopyTexSubImage3DEXT;
12986
12987   // GL_EXT_cull_vertex
12988   glCullParameterdvEXT: TglCullParameterdvEXT;
12989   glCullParameterfvEXT: TglCullParameterfvEXT;
12990
12991   // GL_EXT_draw_range_elements
12992   glDrawRangeElementsEXT: TglDrawRangeElementsEXT;
12993
12994   // GL_EXT_fog_coord
12995   glFogCoordfEXT: TglFogCoordfEXT;
12996   glFogCoordfvEXT: TglFogCoordfvEXT;
12997   glFogCoorddEXT: TglFogCoorddEXT;
12998   glFogCoorddvEXT: TglFogCoorddvEXT;
12999   glFogCoordPointerEXT: TglFogCoordPointerEXT;
13000
13001   // GL_EXT_framebuffer_object
13002   glIsRenderbufferEXT: TglIsRenderbufferEXT;
13003   glBindRenderbufferEXT: TglBindRenderbufferEXT;
13004   glDeleteRenderbuffersEXT: TglDeleteRenderbuffersEXT;
13005   glGenRenderbuffersEXT: TglGenRenderbuffersEXT;
13006   glRenderbufferStorageEXT: TglRenderbufferStorageEXT;
13007   glGetRenderbufferParameterivEXT: TglGetRenderbufferParameterivEXT;
13008   glIsFramebufferEXT: TglIsFramebufferEXT;
13009   glBindFramebufferEXT: TglBindFramebufferEXT;
13010   glDeleteFramebuffersEXT: TglDeleteFramebuffersEXT;
13011   glGenFramebuffersEXT: TglGenFramebuffersEXT;
13012   glCheckFramebufferStatusEXT: TglCheckFramebufferStatusEXT;
13013   glFramebufferTexture1DEXT: TglFramebufferTexture1DEXT;
13014   glFramebufferTexture2DEXT: TglFramebufferTexture2DEXT;
13015   glFramebufferTexture3DEXT: TglFramebufferTexture3DEXT;
13016   glFramebufferRenderbufferEXT: TglFramebufferRenderbufferEXT;
13017   glGetFramebufferAttachmentParameterivEXT: TglGetFramebufferAttachmentParameterivEXT;
13018   glGenerateMipmapEXT: TglGenerateMipmapEXT;
13019
13020   // GL_EXT_histogram
13021   glGetHistogramEXT: TglGetHistogramEXT;
13022   glGetHistogramParameterfvEXT: TglGetHistogramParameterfvEXT;
13023   glGetHistogramParameterivEXT: TglGetHistogramParameterivEXT;
13024   glGetMinmaxEXT: TglGetMinmaxEXT;
13025   glGetMinmaxParameterfvEXT: TglGetMinmaxParameterfvEXT;
13026   glGetMinmaxParameterivEXT: TglGetMinmaxParameterivEXT;
13027   glHistogramEXT: TglHistogramEXT;
13028   glMinmaxEXT: TglMinmaxEXT;
13029   glResetHistogramEXT: TglResetHistogramEXT;
13030   glResetMinmaxEXT: TglResetMinmaxEXT;
13031
13032   // GL_EXT_index_func
13033   glIndexFuncEXT: TglIndexFuncEXT;
13034
13035   // GL_EXT_index_material
13036   glIndexMaterialEXT: TglIndexMaterialEXT;
13037
13038   // GL_EXT_light_texture
13039   glApplyTextureEXT: TglApplyTextureEXT;
13040   glTextureLightEXT: TglTextureLightEXT;
13041   glTextureMaterialEXT: TglTextureMaterialEXT;
13042
13043   // GL_EXT_multi_draw_arrays
13044   glMultiDrawArraysEXT: TglMultiDrawArraysEXT;
13045   glMultiDrawElementsEXT: TglMultiDrawElementsEXT;
13046
13047   // GL_EXT_multisample
13048   glSampleMaskEXT: TglSampleMaskEXT;
13049   glSamplePatternEXT: TglSamplePatternEXT;
13050
13051   // GL_EXT_paletted_texture
13052   glColorTableEXT: TglColorTableEXT;
13053   glGetColorTableEXT: TglGetColorTableEXT;
13054   glGetColorTableParameterivEXT: TglGetColorTableParameterivEXT;
13055   glGetColorTableParameterfvEXT: TglGetColorTableParameterfvEXT;
13056
13057   // GL_EXT_pixel_transform
13058   glPixelTransformParameteriEXT: TglPixelTransformParameteriEXT;
13059   glPixelTransformParameterfEXT: TglPixelTransformParameterfEXT;
13060   glPixelTransformParameterivEXT: TglPixelTransformParameterivEXT;
13061   glPixelTransformParameterfvEXT: TglPixelTransformParameterfvEXT;
13062
13063   // GL_EXT_point_parameters
13064   glPointParameterfEXT: TglPointParameterfEXT;
13065   glPointParameterfvEXT: TglPointParameterfvEXT;
13066
13067   // GL_EXT_polygon_offset
13068   glPolygonOffsetEXT: TglPolygonOffsetEXT;
13069
13070   // GL_EXT_secondary_color
13071   glSecondaryColor3bEXT: TglSecondaryColor3bEXT;
13072   glSecondaryColor3bvEXT: TglSecondaryColor3bvEXT;
13073   glSecondaryColor3dEXT: TglSecondaryColor3dEXT;
13074   glSecondaryColor3dvEXT: TglSecondaryColor3dvEXT;
13075   glSecondaryColor3fEXT: TglSecondaryColor3fEXT;
13076   glSecondaryColor3fvEXT: TglSecondaryColor3fvEXT;
13077   glSecondaryColor3iEXT: TglSecondaryColor3iEXT;
13078   glSecondaryColor3ivEXT: TglSecondaryColor3ivEXT;
13079   glSecondaryColor3sEXT: TglSecondaryColor3sEXT;
13080   glSecondaryColor3svEXT: TglSecondaryColor3svEXT;
13081   glSecondaryColor3ubEXT: TglSecondaryColor3ubEXT;
13082   glSecondaryColor3ubvEXT: TglSecondaryColor3ubvEXT;
13083   glSecondaryColor3uiEXT: TglSecondaryColor3uiEXT;
13084   glSecondaryColor3uivEXT: TglSecondaryColor3uivEXT;
13085   glSecondaryColor3usEXT: TglSecondaryColor3usEXT;
13086   glSecondaryColor3usvEXT: TglSecondaryColor3usvEXT;
13087   glSecondaryColorPointerEXT: TglSecondaryColorPointerEXT;
13088
13089   // GL_EXT_stencil_two_side
13090   glActiveStencilFaceEXT: TglActiveStencilFaceEXT;
13091
13092   // GL_EXT_subtexture
13093   glTexSubImage1DEXT: TglTexSubImage1DEXT;
13094   glTexSubImage2DEXT: TglTexSubImage2DEXT;
13095
13096   // GL_EXT_texture3D
13097   glTexImage3DEXT: TglTexImage3DEXT;
13098   glTexSubImage3DEXT: TglTexSubImage3DEXT;
13099
13100   // GL_EXT_texture_object
13101   glAreTexturesResidentEXT: TglAreTexturesResidentEXT;
13102   glBindTextureEXT: TglBindTextureEXT;
13103   glDeleteTexturesEXT: TglDeleteTexturesEXT;
13104   glGenTexturesEXT: TglGenTexturesEXT;
13105   glIsTextureEXT: TglIsTextureEXT;
13106   glPrioritizeTexturesEXT: TglPrioritizeTexturesEXT;
13107
13108   // GL_EXT_texture_perturb_normal
13109   glTextureNormalEXT: TglTextureNormalEXT;
13110
13111   // GL_EXT_vertex_array
13112   glArrayElementEXT: TglArrayElementEXT;
13113   glColorPointerEXT: TglColorPointerEXT;
13114   glDrawArraysEXT: TglDrawArraysEXT;
13115   glEdgeFlagPointerEXT: TglEdgeFlagPointerEXT;
13116   glGetPointervEXT: TglGetPointervEXT;
13117   glIndexPointerEXT: TglIndexPointerEXT;
13118   glNormalPointerEXT: TglNormalPointerEXT;
13119   glTexCoordPointerEXT: TglTexCoordPointerEXT;
13120   glVertexPointerEXT: TglVertexPointerEXT;
13121
13122   // GL_EXT_vertex_shader
13123   glBeginVertexShaderEXT: TglBeginVertexShaderEXT;
13124   glEndVertexShaderEXT: TglEndVertexShaderEXT;
13125   glBindVertexShaderEXT: TglBindVertexShaderEXT;
13126   glGenVertexShadersEXT: TglGenVertexShadersEXT;
13127   glDeleteVertexShaderEXT: TglDeleteVertexShaderEXT;
13128   glShaderOp1EXT: TglShaderOp1EXT;
13129   glShaderOp2EXT: TglShaderOp2EXT;
13130   glShaderOp3EXT: TglShaderOp3EXT;
13131   glSwizzleEXT: TglSwizzleEXT;
13132   glWriteMaskEXT: TglWriteMaskEXT;
13133   glInsertComponentEXT: TglInsertComponentEXT;
13134   glExtractComponentEXT: TglExtractComponentEXT;
13135   glGenSymbolsEXT: TglGenSymbolsEXT;
13136   glSetInvariantEXT: TglSetInvariantEXT;
13137   glSetLocalConstantEXT: TglSetLocalConstantEXT;
13138   glVariantbvEXT: TglVariantbvEXT;
13139   glVariantsvEXT: TglVariantsvEXT;
13140   glVariantivEXT: TglVariantivEXT;
13141   glVariantfvEXT: TglVariantfvEXT;
13142   glVariantdvEXT: TglVariantdvEXT;
13143   glVariantubvEXT: TglVariantubvEXT;
13144   glVariantusvEXT: TglVariantusvEXT;
13145   glVariantuivEXT: TglVariantuivEXT;
13146   glVariantPointerEXT: TglVariantPointerEXT;
13147   glEnableVariantClientStateEXT: TglEnableVariantClientStateEXT;
13148   glDisableVariantClientStateEXT: TglDisableVariantClientStateEXT;
13149   glBindLightParameterEXT: TglBindLightParameterEXT;
13150   glBindMaterialParameterEXT: TglBindMaterialParameterEXT;
13151   glBindTexGenParameterEXT: TglBindTexGenParameterEXT;
13152   glBindTextureUnitParameterEXT: TglBindTextureUnitParameterEXT;
13153   glBindParameterEXT: TglBindParameterEXT;
13154   glIsVariantEnabledEXT: TglIsVariantEnabledEXT;
13155   glGetVariantBooleanvEXT: TglGetVariantBooleanvEXT;
13156   glGetVariantIntegervEXT: TglGetVariantIntegervEXT;
13157   glGetVariantFloatvEXT: TglGetVariantFloatvEXT;
13158   glGetVariantPointervEXT: TglGetVariantPointervEXT;
13159   glGetInvariantBooleanvEXT: TglGetInvariantBooleanvEXT;
13160   glGetInvariantIntegervEXT: TglGetInvariantIntegervEXT;
13161   glGetInvariantFloatvEXT: TglGetInvariantFloatvEXT;
13162   glGetLocalConstantBooleanvEXT: TglGetLocalConstantBooleanvEXT;
13163   glGetLocalConstantIntegervEXT: TglGetLocalConstantIntegervEXT;
13164   glGetLocalConstantFloatvEXT: TglGetLocalConstantFloatvEXT;
13165
13166   // GL_EXT_vertex_weighting
13167   glVertexWeightfEXT: TglVertexWeightfEXT;
13168   glVertexWeightfvEXT: TglVertexWeightfvEXT;
13169   glVertexWeightPointerEXT: TglVertexWeightPointerEXT;
13170
13171   // GL_EXT_stencil_clear_tag
13172   glStencilClearTagEXT: TglStencilClearTagEXT;
13173
13174   // GL_EXT_framebuffer_blit
13175   glBlitFramebufferEXT: TglBlitFramebufferEXT;
13176
13177   // GL_EXT_framebuffer_multisample
13178   glRenderbufferStorageMultisampleEXT: TglRenderbufferStorageMultisampleEXT;
13179
13180   // GL_EXT_timer_query
13181   glGetQueryObjecti64vEXT: TglGetQueryObjecti64vEXT;
13182   glGetQueryObjectui64vEXT: TglGetQueryObjectui64vEXT;
13183
13184   // GL_EXT_gpu_program_parameters
13185   glProgramEnvParameters4fvEXT: TglProgramEnvParameters4fvEXT;
13186   glProgramLocalParameters4fvEXT: TglProgramLocalParameters4fvEXT;
13187
13188   // GL_EXT_bindable_uniform
13189   glUniformBufferEXT: TglUniformBufferEXT;
13190   glGetUniformBufferSizeEXT: TglGetUniformBufferSizeEXT;
13191   glGetUniformOffsetEXT: TglGetUniformOffsetEXT;
13192
13193   // GL_EXT_draw_buffers2
13194   glColorMaskIndexedEXT: TglColorMaskIndexedEXT;
13195   glGetBooleanIndexedvEXT: TglGetBooleanIndexedvEXT;
13196   glGetIntegerIndexedvEXT: TglGetIntegerIndexedvEXT;
13197   glEnableIndexedEXT: TglEnableIndexedEXT;
13198   glDisableIndexedEXT: TglDisableIndexedEXT;
13199   glIsEnabledIndexedEXT: TglIsEnabledIndexedEXT;
13200
13201   // GL_EXT_draw_instanced
13202   glDrawArraysInstancedEXT: TglDrawArraysInstancedEXT;
13203   glDrawElementsInstancedEXT: TglDrawElementsInstancedEXT;
13204
13205   // GL_EXT_geometry_shader4
13206   glProgramParameteriEXT: TglProgramParameteriEXT;
13207   glFramebufferTextureEXT: TglFramebufferTextureEXT;
13208 //  glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13209   glFramebufferTextureFaceEXT: TglFramebufferTextureFaceEXT;
13210
13211   // GL_EXT_gpu_shader4
13212   glVertexAttribI1iEXT: TglVertexAttribI1iEXT;
13213   glVertexAttribI2iEXT: TglVertexAttribI2iEXT;
13214   glVertexAttribI3iEXT: TglVertexAttribI3iEXT;
13215   glVertexAttribI4iEXT: TglVertexAttribI4iEXT;
13216   glVertexAttribI1uiEXT: TglVertexAttribI1uiEXT;
13217   glVertexAttribI2uiEXT: TglVertexAttribI2uiEXT;
13218   glVertexAttribI3uiEXT: TglVertexAttribI3uiEXT;
13219   glVertexAttribI4uiEXT: TglVertexAttribI4uiEXT;
13220   glVertexAttribI1ivEXT: TglVertexAttribI1ivEXT;
13221   glVertexAttribI2ivEXT: TglVertexAttribI2ivEXT;
13222   glVertexAttribI3ivEXT: TglVertexAttribI3ivEXT;
13223   glVertexAttribI4ivEXT: TglVertexAttribI4ivEXT;
13224   glVertexAttribI1uivEXT: TglVertexAttribI1uivEXT;
13225   glVertexAttribI2uivEXT: TglVertexAttribI2uivEXT;
13226   glVertexAttribI3uivEXT: TglVertexAttribI3uivEXT;
13227   glVertexAttribI4uivEXT: TglVertexAttribI4uivEXT;
13228   glVertexAttribI4bvEXT: TglVertexAttribI4bvEXT;
13229   glVertexAttribI4svEXT: TglVertexAttribI4svEXT;
13230   glVertexAttribI4ubvEXT: TglVertexAttribI4ubvEXT;
13231   glVertexAttribI4usvEXT: TglVertexAttribI4usvEXT;
13232   glVertexAttribIPointerEXT: TglVertexAttribIPointerEXT;
13233   glGetVertexAttribIivEXT: TglGetVertexAttribIivEXT;
13234   glGetVertexAttribIuivEXT: TglGetVertexAttribIuivEXT;
13235   glUniform1uiEXT: TglUniform1uiEXT;
13236   glUniform2uiEXT: TglUniform2uiEXT;
13237   glUniform3uiEXT: TglUniform3uiEXT;
13238   glUniform4uiEXT: TglUniform4uiEXT;
13239   glUniform1uivEXT: TglUniform1uivEXT;
13240   glUniform2uivEXT: TglUniform2uivEXT;
13241   glUniform3uivEXT: TglUniform3uivEXT;
13242   glUniform4uivEXT: TglUniform4uivEXT;
13243   glGetUniformuivEXT: TglGetUniformuivEXT;
13244   glBindFragDataLocationEXT: TglBindFragDataLocationEXT;
13245   glGetFragDataLocationEXT: TglGetFragDataLocationEXT;
13246
13247   // GL_EXT_texture_array
13248   glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13249
13250   // GL_EXT_texture_buffer_object
13251   glTexBufferEXT: TglTexBufferEXT;
13252
13253   // GL_EXT_texture_integer
13254   glClearColorIiEXT: TglClearColorIiEXT;
13255   glClearColorIuiEXT: TglClearColorIuiEXT;
13256   glTexParameterIivEXT: TglTexParameterIivEXT;
13257   glTexParameterIuivEXT: TglTexParameterIuivEXT;
13258   glGetTexParameterIivEXT: TglGetTexParameterIivEXT;
13259   glGetTexParameterIiuvEXT: TglGetTexParameterIiuvEXT;
13260
13261   // GL_EXT_transform_feedback
13262   glBeginTransformFeedbackEXT: TglBeginTransformFeedbackEXT;
13263   glEndTransformFeedbackEXT: TglEndTransformFeedbackEXT;
13264   glBindBufferRangeEXT: TglBindBufferRangeEXT;
13265   glBindBufferOffsetEXT: TglBindBufferOffsetEXT;
13266   glBindBufferBaseEXT: TglBindBufferBaseEXT;
13267   glTransformFeedbackVaryingsEXT: TglTransformFeedbackVaryingsEXT;
13268   glGetTransformFeedbackVaryingEXT: TglGetTransformFeedbackVaryingEXT;
13269
13270   // GL_EXT_direct_state_access
13271   glClientAttribDefaultEXT: TglClientAttribDefaultEXT;
13272   glPushClientAttribDefaultEXT: TglPushClientAttribDefaultEXT;
13273   glMatrixLoadfEXT: TglMatrixLoadfEXT;
13274   glMatrixLoaddEXT: TglMatrixLoaddEXT;
13275   glMatrixMultfEXT: TglMatrixMultfEXT;
13276   glMatrixMultdEXT: TglMatrixMultdEXT;
13277   glMatrixLoadIdentityEXT: TglMatrixLoadIdentityEXT;
13278   glMatrixRotatefEXT: TglMatrixRotatefEXT;
13279   glMatrixRotatedEXT: TglMatrixRotatedEXT;
13280   glMatrixScalefEXT: TglMatrixScalefEXT;
13281   glMatrixScaledEXT: TglMatrixScaledEXT;
13282   glMatrixTranslatefEXT: TglMatrixTranslatefEXT;
13283   glMatrixTranslatedEXT: TglMatrixTranslatedEXT;
13284   glMatrixFrustumEXT: TglMatrixFrustumEXT;
13285   glMatrixOrthoEXT: TglMatrixOrthoEXT;
13286   glMatrixPopEXT: TglMatrixPopEXT;
13287   glMatrixPushEXT: TglMatrixPushEXT;
13288   glMatrixLoadTransposefEXT: TglMatrixLoadTransposefEXT;
13289   glMatrixLoadTransposedEXT: TglMatrixLoadTransposedEXT;
13290   glMatrixMultTransposefEXT: TglMatrixMultTransposefEXT;
13291   glMatrixMultTransposedEXT: TglMatrixMultTransposedEXT;
13292   glTextureParameterfEXT: TglTextureParameterfEXT;
13293   glTextureParameterfvEXT: TglTextureParameterfvEXT;
13294   glTextureParameteriEXT: TglTextureParameteriEXT;
13295   glTextureParameterivEXT: TglTextureParameterivEXT;
13296   glTextureImage1DEXT: TglTextureImage1DEXT;
13297   glTextureImage2DEXT: TglTextureImage2DEXT;
13298   glTextureSubImage1DEXT: TglTextureSubImage1DEXT;
13299   glTextureSubImage2DEXT: TglTextureSubImage2DEXT;
13300   glCopyTextureImage1DEXT: TglCopyTextureImage1DEXT;
13301   glCopyTextureImage2DEXT: TglCopyTextureImage2DEXT;
13302   glCopyTextureSubImage1DEXT: TglCopyTextureSubImage1DEXT;
13303   glCopyTextureSubImage2DEXT: TglCopyTextureSubImage2DEXT;
13304   glGetTextureImageEXT: TglGetTextureImageEXT;
13305   glGetTextureParameterfvEXT: TglGetTextureParameterfvEXT;
13306   glGetTextureParameterivEXT: TglGetTextureParameterivEXT;
13307   glGetTextureLevelParameterfvEXT: TglGetTextureLevelParameterfvEXT;
13308   glGetTextureLevelParameterivEXT: TglGetTextureLevelParameterivEXT;
13309   glTextureImage3DEXT: TglTextureImage3DEXT;
13310   glTextureSubImage3DEXT: TglTextureSubImage3DEXT;
13311   glCopyTextureSubImage3DEXT: TglCopyTextureSubImage3DEXT;
13312   glMultiTexParameterfEXT: TglMultiTexParameterfEXT;
13313   glMultiTexParameterfvEXT: TglMultiTexParameterfvEXT;
13314   glMultiTexParameteriEXT: TglMultiTexParameteriEXT;
13315   glMultiTexParameterivEXT: TglMultiTexParameterivEXT;
13316   glMultiTexImage1DEXT: TglMultiTexImage1DEXT;
13317   glMultiTexImage2DEXT: TglMultiTexImage2DEXT;
13318   glMultiTexSubImage1DEXT: TglMultiTexSubImage1DEXT;
13319   glMultiTexSubImage2DEXT: TglMultiTexSubImage2DEXT;
13320   glCopyMultiTexImage1DEXT: TglCopyMultiTexImage1DEXT;
13321   glCopyMultiTexImage2DEXT: TglCopyMultiTexImage2DEXT;
13322   glCopyMultiTexSubImage1DEXT: TglCopyMultiTexSubImage1DEXT;
13323   glCopyMultiTexSubImage2DEXT: TglCopyMultiTexSubImage2DEXT;
13324   glGetMultiTexImageEXT: TglGetMultiTexImageEXT;
13325   glGetMultiTexParameterfvEXT: TglGetMultiTexParameterfvEXT;
13326   glGetMultiTexParameterivEXT: TglGetMultiTexParameterivEXT;
13327   glGetMultiTexLevelParameterfvEXT: TglGetMultiTexLevelParameterfvEXT;
13328   glGetMultiTexLevelParameterivEXT: TglGetMultiTexLevelParameterivEXT;
13329   glMultiTexImage3DEXT: TglMultiTexImage3DEXT;
13330   glMultiTexSubImage3DEXT: TglMultiTexSubImage3DEXT;
13331   glCopyMultiTexSubImage3DEXT: TglCopyMultiTexSubImage3DEXT;
13332   glBindMultiTextureEXT: TglBindMultiTextureEXT;
13333   glEnableClientStateIndexedEXT: TglEnableClientStateIndexedEXT;
13334   glDisableClientStateIndexedEXT: TglDisableClientStateIndexedEXT;
13335   glMultiTexCoordPointerEXT: TglMultiTexCoordPointerEXT;
13336   glMultiTexEnvfEXT: TglMultiTexEnvfEXT;
13337   glMultiTexEnvfvEXT: TglMultiTexEnvfvEXT;
13338   glMultiTexEnviEXT: TglMultiTexEnviEXT;
13339   glMultiTexEnvivEXT: TglMultiTexEnvivEXT;
13340   glMultiTexGendEXT: TglMultiTexGendEXT;
13341   glMultiTexGendvEXT: TglMultiTexGendvEXT;
13342   glMultiTexGenfEXT: TglMultiTexGenfEXT;
13343   glMultiTexGenfvEXT: TglMultiTexGenfvEXT;
13344   glMultiTexGeniEXT: TglMultiTexGeniEXT;
13345   glMultiTexGenivEXT: TglMultiTexGenivEXT;
13346   glGetMultiTexEnvfvEXT: TglGetMultiTexEnvfvEXT;
13347   glGetMultiTexEnvivEXT: TglGetMultiTexEnvivEXT;
13348   glGetMultiTexGendvEXT: TglGetMultiTexGendvEXT;
13349   glGetMultiTexGenfvEXT: TglGetMultiTexGenfvEXT;
13350   glGetMultiTexGenivEXT: TglGetMultiTexGenivEXT;
13351   glGetFloatIndexedvEXT: TglGetFloatIndexedvEXT;
13352   glGetDoubleIndexedvEXT: TglGetDoubleIndexedvEXT;
13353   glGetPointerIndexedvEXT: TglGetPointerIndexedvEXT;
13354   glCompressedTextureImage3DEXT: TglCompressedTextureImage3DEXT;
13355   glCompressedTextureImage2DEXT: TglCompressedTextureImage2DEXT;
13356   glCompressedTextureImage1DEXT: TglCompressedTextureImage1DEXT;
13357   glCompressedTextureSubImage3DEXT: TglCompressedTextureSubImage3DEXT;
13358   glCompressedTextureSubImage2DEXT: TglCompressedTextureSubImage2DEXT;
13359   glCompressedTextureSubImage1DEXT: TglCompressedTextureSubImage1DEXT;
13360   glGetCompressedTextureImageEXT: TglGetCompressedTextureImageEXT;
13361   glCompressedMultiTexImage3DEXT: TglCompressedMultiTexImage3DEXT;
13362   glCompressedMultiTexImage2DEXT: TglCompressedMultiTexImage2DEXT;
13363   glCompressedMultiTexImage1DEXT: TglCompressedMultiTexImage1DEXT;
13364   glCompressedMultiTexSubImage3DEXT: TglCompressedMultiTexSubImage3DEXT;
13365   glCompressedMultiTexSubImage2DEXT: TglCompressedMultiTexSubImage2DEXT;
13366   glCompressedMultiTexSubImage1DEXT: TglCompressedMultiTexSubImage1DEXT;
13367   glGetCompressedMultiTexImageEXT: TglGetCompressedMultiTexImageEXT;
13368   glNamedProgramStringEXT: TglNamedProgramStringEXT;
13369   glNamedProgramLocalParameter4dEXT: TglNamedProgramLocalParameter4dEXT;
13370   glNamedProgramLocalParameter4dvEXT: TglNamedProgramLocalParameter4dvEXT;
13371   glNamedProgramLocalParameter4fEXT: TglNamedProgramLocalParameter4fEXT;
13372   glNamedProgramLocalParameter4fvEXT: TglNamedProgramLocalParameter4fvEXT;
13373   glGetNamedProgramLocalParameterdvEXT: TglGetNamedProgramLocalParameterdvEXT;
13374   glGetNamedProgramLocalParameterfvEXT: TglGetNamedProgramLocalParameterfvEXT;
13375   glGetNamedProgramivEXT: TglGetNamedProgramivEXT;
13376   glGetNamedProgramStringEXT: TglGetNamedProgramStringEXT;
13377   glNamedProgramLocalParameters4fvEXT: TglNamedProgramLocalParameters4fvEXT;
13378   glNamedProgramLocalParameterI4iEXT: TglNamedProgramLocalParameterI4iEXT;
13379   glNamedProgramLocalParameterI4ivEXT: TglNamedProgramLocalParameterI4ivEXT;
13380   glNamedProgramLocalParametersI4ivEXT: TglNamedProgramLocalParametersI4ivEXT;
13381   glNamedProgramLocalParameterI4uiEXT: TglNamedProgramLocalParameterI4uiEXT;
13382   glNamedProgramLocalParameterI4uivEXT: TglNamedProgramLocalParameterI4uivEXT;
13383   glNamedProgramLocalParametersI4uivEXT: TglNamedProgramLocalParametersI4uivEXT;
13384   glGetNamedProgramLocalParameterIivEXT: TglGetNamedProgramLocalParameterIivEXT;
13385   glGetNamedProgramLocalParameterIuivEXT: TglGetNamedProgramLocalParameterIuivEXT;
13386   glTextureParameterIivEXT: TglTextureParameterIivEXT;
13387   glTextureParameterIuivEXT: TglTextureParameterIuivEXT;
13388   glGetTextureParameterIivEXT: TglGetTextureParameterIivEXT;
13389   glGetTextureParameterIuivEXT: TglGetTextureParameterIuivEXT;
13390   glMultiTexParameterIivEXT: TglMultiTexParameterIivEXT;
13391   glMultiTexParameterIuivEXT: TglMultiTexParameterIuivEXT;
13392   glGetMultiTexParameterIivEXT: TglGetMultiTexParameterIivEXT;
13393   glGetMultiTexParameterIuivEXT: TglGetMultiTexParameterIuivEXT;
13394   glProgramUniform1fEXT: TglProgramUniform1fEXT;
13395   glProgramUniform2fEXT: TglProgramUniform2fEXT;
13396   glProgramUniform3fEXT: TglProgramUniform3fEXT;
13397   glProgramUniform4fEXT: TglProgramUniform4fEXT;
13398   glProgramUniform1iEXT: TglProgramUniform1iEXT;
13399   glProgramUniform2iEXT: TglProgramUniform2iEXT;
13400   glProgramUniform3iEXT: TglProgramUniform3iEXT;
13401   glProgramUniform4iEXT: TglProgramUniform4iEXT;
13402   glProgramUniform1fvEXT: TglProgramUniform1fvEXT;
13403   glProgramUniform2fvEXT: TglProgramUniform2fvEXT;
13404   glProgramUniform3fvEXT: TglProgramUniform3fvEXT;
13405   glProgramUniform4fvEXT: TglProgramUniform4fvEXT;
13406   glProgramUniform1ivEXT: TglProgramUniform1ivEXT;
13407   glProgramUniform2ivEXT: TglProgramUniform2ivEXT;
13408   glProgramUniform3ivEXT: TglProgramUniform3ivEXT;
13409   glProgramUniform4ivEXT: TglProgramUniform4ivEXT;
13410   glProgramUniformMatrix2fvEXT: TglProgramUniformMatrix2fvEXT;
13411   glProgramUniformMatrix3fvEXT: TglProgramUniformMatrix3fvEXT;
13412   glProgramUniformMatrix4fvEXT: TglProgramUniformMatrix4fvEXT;
13413   glProgramUniformMatrix2x3fvEXT: TglProgramUniformMatrix2x3fvEXT;
13414   glProgramUniformMatrix3x2fvEXT: TglProgramUniformMatrix3x2fvEXT;
13415   glProgramUniformMatrix2x4fvEXT: TglProgramUniformMatrix2x4fvEXT;
13416   glProgramUniformMatrix4x2fvEXT: TglProgramUniformMatrix4x2fvEXT;
13417   glProgramUniformMatrix3x4fvEXT: TglProgramUniformMatrix3x4fvEXT;
13418   glProgramUniformMatrix4x3fvEXT: TglProgramUniformMatrix4x3fvEXT;
13419   glProgramUniform1uiEXT: TglProgramUniform1uiEXT;
13420   glProgramUniform2uiEXT: TglProgramUniform2uiEXT;
13421   glProgramUniform3uiEXT: TglProgramUniform3uiEXT;
13422   glProgramUniform4uiEXT: TglProgramUniform4uiEXT;
13423   glProgramUniform1uivEXT: TglProgramUniform1uivEXT;
13424   glProgramUniform2uivEXT: TglProgramUniform2uivEXT;
13425   glProgramUniform3uivEXT: TglProgramUniform3uivEXT;
13426   glProgramUniform4uivEXT: TglProgramUniform4uivEXT;
13427   glNamedBufferDataEXT: TglNamedBufferDataEXT;
13428   glNamedBufferSubDataEXT: TglNamedBufferSubDataEXT;
13429   glMapNamedBufferEXT: TglMapNamedBufferEXT;
13430   glUnmapNamedBufferEXT: TglUnmapNamedBufferEXT;
13431   glMapNamedBufferRangeEXT: TglMapNamedBufferRangeEXT;
13432   glFlushMappedNamedBufferRangeEXT: TglFlushMappedNamedBufferRangeEXT;
13433   glNamedCopyBufferSubDataEXT: TglNamedCopyBufferSubDataEXT;
13434   glGetNamedBufferParameterivEXT: TglGetNamedBufferParameterivEXT;
13435   glGetNamedBufferPointervEXT: TglGetNamedBufferPointervEXT;
13436   glGetNamedBufferSubDataEXT: TglGetNamedBufferSubDataEXT;
13437   glTextureBufferEXT: TglTextureBufferEXT;
13438   glMultiTexBufferEXT: TglMultiTexBufferEXT;
13439   glNamedRenderbufferStorageEXT: TglNamedRenderbufferStorageEXT;
13440   glGetNamedRenderbufferParameterivEXT: TglGetNamedRenderbufferParameterivEXT;
13441   glCheckNamedFramebufferStatusEXT: TglCheckNamedFramebufferStatusEXT;
13442   glNamedFramebufferTexture1DEXT: TglNamedFramebufferTexture1DEXT;
13443   glNamedFramebufferTexture2DEXT: TglNamedFramebufferTexture2DEXT;
13444   glNamedFramebufferTexture3DEXT: TglNamedFramebufferTexture3DEXT;
13445   glNamedFramebufferRenderbufferEXT: TglNamedFramebufferRenderbufferEXT;
13446   glGetNamedFramebufferAttachmentParameterivEXT: TglGetNamedFramebufferAttachmentParameterivEXT;
13447   glGenerateTextureMipmapEXT: TglGenerateTextureMipmapEXT;
13448   glGenerateMultiTexMipmapEXT: TglGenerateMultiTexMipmapEXT;
13449   glFramebufferDrawBufferEXT: TglFramebufferDrawBufferEXT;
13450   glFramebufferDrawBuffersEXT: TglFramebufferDrawBuffersEXT;
13451   glFramebufferReadBufferEXT: TglFramebufferReadBufferEXT;
13452   glGetFramebufferParameterivEXT: TglGetFramebufferParameterivEXT;
13453   glNamedRenderbufferStorageMultisampleEXT: TglNamedRenderbufferStorageMultisampleEXT;
13454   glNamedRenderbufferStorageMultisampleCoverageEXT: TglNamedRenderbufferStorageMultisampleCoverageEXT;
13455   glNamedFramebufferTextureEXT: TglNamedFramebufferTextureEXT;
13456   glNamedFramebufferTextureLayerEXT: TglNamedFramebufferTextureLayerEXT;
13457   glNamedFramebufferTextureFaceEXT: TglNamedFramebufferTextureFaceEXT;
13458   glTextureRenderbufferEXT: TglTextureRenderbufferEXT;
13459   glMultiTexRenderbufferEXT: TglMultiTexRenderbufferEXT;
13460   glProgramUniform1dEXT: TglProgramUniform1dEXT;
13461   glProgramUniform2dEXT: TglProgramUniform2dEXT;
13462   glProgramUniform3dEXT: TglProgramUniform3dEXT;
13463   glProgramUniform4dEXT: TglProgramUniform4dEXT;
13464   glProgramUniform1dvEXT: TglProgramUniform1dvEXT;
13465   glProgramUniform2dvEXT: TglProgramUniform2dvEXT;
13466   glProgramUniform3dvEXT: TglProgramUniform3dvEXT;
13467   glProgramUniform4dvEXT: TglProgramUniform4dvEXT;
13468   glProgramUniformMatrix2dvEXT: TglProgramUniformMatrix2dvEXT;
13469   glProgramUniformMatrix3dvEXT: TglProgramUniformMatrix3dvEXT;
13470   glProgramUniformMatrix4dvEXT: TglProgramUniformMatrix4dvEXT;
13471   glProgramUniformMatrix2x3dvEXT: TglProgramUniformMatrix2x3dvEXT;
13472   glProgramUniformMatrix2x4dvEXT: TglProgramUniformMatrix2x4dvEXT;
13473   glProgramUniformMatrix3x2dvEXT: TglProgramUniformMatrix3x2dvEXT;
13474   glProgramUniformMatrix3x4dvEXT: TglProgramUniformMatrix3x4dvEXT;
13475   glProgramUniformMatrix4x2dvEXT: TglProgramUniformMatrix4x2dvEXT;
13476   glProgramUniformMatrix4x3dvEXT: TglProgramUniformMatrix4x3dvEXT;
13477
13478   // GL_EXT_separate_shader_objects
13479   glUseShaderProgramEXT: TglUseShaderProgramEXT;
13480   glActiveProgramEXT: TglActiveProgramEXT;
13481   glCreateShaderProgramEXT: TglCreateShaderProgramEXT;
13482
13483   // GL_EXT_shader_image_load_store
13484   glBindImageTextureEXT: TglBindImageTextureEXT;
13485   glMemoryBarrierEXT: TglMemoryBarrierEXT;
13486
13487   // GL_EXT_vertex_attrib_64bit
13488   glVertexAttribL1dEXT: TglVertexAttribL1dEXT;
13489   glVertexAttribL2dEXT: TglVertexAttribL2dEXT;
13490   glVertexAttribL3dEXT: TglVertexAttribL3dEXT;
13491   glVertexAttribL4dEXT: TglVertexAttribL4dEXT;
13492   glVertexAttribL1dvEXT: TglVertexAttribL1dvEXT;
13493   glVertexAttribL2dvEXT: TglVertexAttribL2dvEXT;
13494   glVertexAttribL3dvEXT: TglVertexAttribL3dvEXT;
13495   glVertexAttribL4dvEXT: TglVertexAttribL4dvEXT;
13496   glVertexAttribLPointerEXT: TglVertexAttribLPointerEXT;
13497   glGetVertexAttribLdvEXT: TglGetVertexAttribLdvEXT;
13498   glVertexArrayVertexAttribLOffsetEXT: TglVertexArrayVertexAttribLOffsetEXT;
13499   
13500   // GL_HP_image_transform
13501   glImageTransformParameteriHP: TglImageTransformParameteriHP;
13502   glImageTransformParameterfHP: TglImageTransformParameterfHP;
13503   glImageTransformParameterivHP: TglImageTransformParameterivHP;
13504   glImageTransformParameterfvHP: TglImageTransformParameterfvHP;
13505   glGetImageTransformParameterivHP: TglGetImageTransformParameterivHP;
13506   glGetImageTransformParameterfvHP: TglGetImageTransformParameterfvHP;
13507
13508   // GL_EXT_depth_bounds_test
13509   glDepthBoundsEXT: TglDepthBoundsEXT;
13510
13511   // GL_EXT_blend_equation_separate
13512   glBlendEquationSeparateEXT: TglBlendEquationSeparateEXT;
13513
13514   // GL_IBM_multimode_draw_arrays
13515   glMultiModeDrawArraysIBM: TglMultiModeDrawArraysIBM;
13516   glMultiModeDrawElementsIBM: TglMultiModeDrawElementsIBM;
13517
13518   // GL_IBM_vertex_array_lists
13519   glColorPointerListIBM: TglColorPointerListIBM;
13520   glSecondaryColorPointerListIBM: TglSecondaryColorPointerListIBM;
13521   glEdgeFlagPointerListIBM: TglEdgeFlagPointerListIBM;
13522   glFogCoordPointerListIBM: TglFogCoordPointerListIBM;
13523   glIndexPointerListIBM: TglIndexPointerListIBM;
13524   glNormalPointerListIBM: TglNormalPointerListIBM;
13525   glTexCoordPointerListIBM: TglTexCoordPointerListIBM;
13526   glVertexPointerListIBM: TglVertexPointerListIBM;
13527
13528   // GL_INGR_blend_func_separate
13529   glBlendFuncSeparateINGR: TglBlendFuncSeparateINGR;
13530
13531   // GL_INTEL_parallel_arrays
13532   glVertexPointervINTEL: TglVertexPointervINTEL;
13533   glNormalPointervINTEL: TglNormalPointervINTEL;
13534   glColorPointervINTEL: TglColorPointervINTEL;
13535   glTexCoordPointervINTEL: TglTexCoordPointervINTEL;
13536
13537   // GL_MESA_resize_buffers
13538   glResizeBuffersMESA: TglResizeBuffersMESA;
13539
13540   // GL_MESA_window_pos
13541   glWindowPos2dMESA: TglWindowPos2dMESA;
13542   glWindowPos2dvMESA: TglWindowPos2dvMESA;
13543   glWindowPos2fMESA: TglWindowPos2fMESA;
13544   glWindowPos2fvMESA: TglWindowPos2fvMESA;
13545   glWindowPos2iMESA: TglWindowPos2iMESA;
13546   glWindowPos2ivMESA: TglWindowPos2ivMESA;
13547   glWindowPos2sMESA: TglWindowPos2sMESA;
13548   glWindowPos2svMESA: TglWindowPos2svMESA;
13549   glWindowPos3dMESA: TglWindowPos3dMESA;
13550   glWindowPos3dvMESA: TglWindowPos3dvMESA;
13551   glWindowPos3fMESA: TglWindowPos3fMESA;
13552   glWindowPos3fvMESA: TglWindowPos3fvMESA;
13553   glWindowPos3iMESA: TglWindowPos3iMESA;
13554   glWindowPos3ivMESA: TglWindowPos3ivMESA;
13555   glWindowPos3sMESA: TglWindowPos3sMESA;
13556   glWindowPos3svMESA: TglWindowPos3svMESA;
13557   glWindowPos4dMESA: TglWindowPos4dMESA;
13558   glWindowPos4dvMESA: TglWindowPos4dvMESA;
13559   glWindowPos4fMESA: TglWindowPos4fMESA;
13560   glWindowPos4fvMESA: TglWindowPos4fvMESA;
13561   glWindowPos4iMESA: TglWindowPos4iMESA;
13562   glWindowPos4ivMESA: TglWindowPos4ivMESA;
13563   glWindowPos4sMESA: TglWindowPos4sMESA;
13564   glWindowPos4svMESA: TglWindowPos4svMESA;
13565
13566   // GL_NV_evaluators
13567   glMapControlPointsNV: TglMapControlPointsNV;
13568   glMapParameterivNV: TglMapParameterivNV;
13569   glMapParameterfvNV: TglMapParameterfvNV;
13570   glGetMapControlPointsNV: TglGetMapControlPointsNV;
13571   glGetMapParameterivNV: TglGetMapParameterivNV;
13572   glGetMapParameterfvNV: TglGetMapParameterfvNV;
13573   glGetMapAttribParameterivNV: TglGetMapAttribParameterivNV;
13574   glGetMapAttribParameterfvNV: TglGetMapAttribParameterfvNV;
13575   glEvalMapsNV: TglEvalMapsNV;
13576
13577   // GL_NV_fence
13578   glDeleteFencesNV: TglDeleteFencesNV;
13579   glGenFencesNV: TglGenFencesNV;
13580   glIsFenceNV: TglIsFenceNV;
13581   glTestFenceNV: TglTestFenceNV;
13582   glGetFenceivNV: TglGetFenceivNV;
13583   glFinishFenceNV: TglFinishFenceNV;
13584   glSetFenceNV: TglSetFenceNV;
13585
13586   // GL_NV_fragment_program
13587   glProgramNamedParameter4fNV: TglProgramNamedParameter4fNV;
13588   glProgramNamedParameter4dNV: TglProgramNamedParameter4dNV;
13589   glProgramNamedParameter4fvNV: TglProgramNamedParameter4fvNV;
13590   glProgramNamedParameter4dvNV: TglProgramNamedParameter4dvNV;
13591   glGetProgramNamedParameterfvNV: TglGetProgramNamedParameterfvNV;
13592   glGetProgramNamedParameterdvNV: TglGetProgramNamedParameterdvNV;
13593
13594   // GL_NV_half_float
13595   glVertex2hNV: TglVertex2hNV;
13596   glVertex2hvNV: TglVertex2hvNV;
13597   glVertex3hNV: TglVertex3hNV;
13598   glVertex3hvNV: TglVertex3hvNV;
13599   glVertex4hNV: TglVertex4hNV;
13600   glVertex4hvNV: TglVertex4hvNV;
13601   glNormal3hNV: TglNormal3hNV;
13602   glNormal3hvNV: TglNormal3hvNV;
13603   glColor3hNV: TglColor3hNV;
13604   glColor3hvNV: TglColor3hvNV;
13605   glColor4hNV: TglColor4hNV;
13606   glColor4hvNV: TglColor4hvNV;
13607   glTexCoord1hNV: TglTexCoord1hNV;
13608   glTexCoord1hvNV: TglTexCoord1hvNV;
13609   glTexCoord2hNV: TglTexCoord2hNV;
13610   glTexCoord2hvNV: TglTexCoord2hvNV;
13611   glTexCoord3hNV: TglTexCoord3hNV;
13612   glTexCoord3hvNV: TglTexCoord3hvNV;
13613   glTexCoord4hNV: TglTexCoord4hNV;
13614   glTexCoord4hvNV: TglTexCoord4hvNV;
13615   glMultiTexCoord1hNV: TglMultiTexCoord1hNV;
13616   glMultiTexCoord1hvNV: TglMultiTexCoord1hvNV;
13617   glMultiTexCoord2hNV: TglMultiTexCoord2hNV;
13618   glMultiTexCoord2hvNV: TglMultiTexCoord2hvNV;
13619   glMultiTexCoord3hNV: TglMultiTexCoord3hNV;
13620   glMultiTexCoord3hvNV: TglMultiTexCoord3hvNV;
13621   glMultiTexCoord4hNV: TglMultiTexCoord4hNV;
13622   glMultiTexCoord4hvNV: TglMultiTexCoord4hvNV;
13623   glFogCoordhNV: TglFogCoordhNV;
13624   glFogCoordhvNV: TglFogCoordhvNV;
13625   glSecondaryColor3hNV: TglSecondaryColor3hNV;
13626   glSecondaryColor3hvNV: TglSecondaryColor3hvNV;
13627   glVertexWeighthNV: TglVertexWeighthNV;
13628   glVertexWeighthvNV: TglVertexWeighthvNV;
13629   glVertexAttrib1hNV: TglVertexAttrib1hNV;
13630   glVertexAttrib1hvNV: TglVertexAttrib1hvNV;
13631   glVertexAttrib2hNV: TglVertexAttrib2hNV;
13632   glVertexAttrib2hvNV: TglVertexAttrib2hvNV;
13633   glVertexAttrib3hNV: TglVertexAttrib3hNV;
13634   glVertexAttrib3hvNV: TglVertexAttrib3hvNV;
13635   glVertexAttrib4hNV: TglVertexAttrib4hNV;
13636   glVertexAttrib4hvNV: TglVertexAttrib4hvNV;
13637   glVertexAttribs1hvNV: TglVertexAttribs1hvNV;
13638   glVertexAttribs2hvNV: TglVertexAttribs2hvNV;
13639   glVertexAttribs3hvNV: TglVertexAttribs3hvNV;
13640   glVertexAttribs4hvNV: TglVertexAttribs4hvNV;
13641
13642   // GL_NV_occlusion_query
13643   glGenOcclusionQueriesNV: TglGenOcclusionQueriesNV;
13644   glDeleteOcclusionQueriesNV: TglDeleteOcclusionQueriesNV;
13645   glIsOcclusionQueryNV: TglIsOcclusionQueryNV;
13646   glBeginOcclusionQueryNV: TglBeginOcclusionQueryNV;
13647   glEndOcclusionQueryNV: TglEndOcclusionQueryNV;
13648   glGetOcclusionQueryivNV: TglGetOcclusionQueryivNV;
13649   glGetOcclusionQueryuivNV: TglGetOcclusionQueryuivNV;
13650
13651   // GL_NV_pixel_data_range
13652   glPixelDataRangeNV: TglPixelDataRangeNV;
13653   glFlushPixelDataRangeNV: TglFlushPixelDataRangeNV;
13654
13655   // GL_NV_point_sprite
13656   glPointParameteriNV: TglPointParameteriNV;
13657   glPointParameterivNV: TglPointParameterivNV;
13658
13659   // GL_NV_primitive_restart
13660   glPrimitiveRestartNV: TglPrimitiveRestartNV;
13661   glPrimitiveRestartIndexNV: TglPrimitiveRestartIndexNV;
13662
13663   // GL_NV_register_combiners
13664   glCombinerParameterfvNV: TglCombinerParameterfvNV;
13665   glCombinerParameterfNV: TglCombinerParameterfNV;
13666   glCombinerParameterivNV: TglCombinerParameterivNV;
13667   glCombinerParameteriNV: TglCombinerParameteriNV;
13668   glCombinerInputNV: TglCombinerInputNV;
13669   glCombinerOutputNV: TglCombinerOutputNV;
13670   glFinalCombinerInputNV: TglFinalCombinerInputNV;
13671   glGetCombinerInputParameterfvNV: TglGetCombinerInputParameterfvNV;
13672   glGetCombinerInputParameterivNV: TglGetCombinerInputParameterivNV;
13673   glGetCombinerOutputParameterfvNV: TglGetCombinerOutputParameterfvNV;
13674   glGetCombinerOutputParameterivNV: TglGetCombinerOutputParameterivNV;
13675   glGetFinalCombinerInputParameterfvNV: TglGetFinalCombinerInputParameterfvNV;
13676   glGetFinalCombinerInputParameterivNV: TglGetFinalCombinerInputParameterivNV;
13677
13678   // GL_NV_register_combiners2
13679   glCombinerStageParameterfvNV: TglCombinerStageParameterfvNV;
13680   glGetCombinerStageParameterfvNV: TglGetCombinerStageParameterfvNV;
13681
13682   // GL_NV_vertex_array_range
13683   glFlushVertexArrayRangeNV: TglFlushVertexArrayRangeNV;
13684   glVertexArrayRangeNV: TglVertexArrayRangeNV;
13685
13686   // GL_NV_vertex_program
13687   glAreProgramsResidentNV: TglAreProgramsResidentNV;
13688   glBindProgramNV: TglBindProgramNV;
13689   glDeleteProgramsNV: TglDeleteProgramsNV;
13690   glExecuteProgramNV: TglExecuteProgramNV;
13691   glGenProgramsNV: TglGenProgramsNV;
13692   glGetProgramParameterdvNV: TglGetProgramParameterdvNV;
13693   glGetProgramParameterfvNV: TglGetProgramParameterfvNV;
13694   glGetProgramivNV: TglGetProgramivNV;
13695   glGetProgramStringNV: TglGetProgramStringNV;
13696   glGetTrackMatrixivNV: TglGetTrackMatrixivNV;
13697   glGetVertexAttribdvNV: TglGetVertexAttribdvNV;
13698   glGetVertexAttribfvNV: TglGetVertexAttribfvNV;
13699   glGetVertexAttribivNV: TglGetVertexAttribivNV;
13700   glGetVertexAttribPointervNV: TglGetVertexAttribPointervNV;
13701   glIsProgramNV: TglIsProgramNV;
13702   glLoadProgramNV: TglLoadProgramNV;
13703   glProgramParameter4dNV: TglProgramParameter4dNV;
13704   glProgramParameter4dvNV: TglProgramParameter4dvNV;
13705   glProgramParameter4fNV: TglProgramParameter4fNV;
13706   glProgramParameter4fvNV: TglProgramParameter4fvNV;
13707   glProgramParameters4dvNV: TglProgramParameters4dvNV;
13708   glProgramParameters4fvNV: TglProgramParameters4fvNV;
13709   glRequestResidentProgramsNV: TglRequestResidentProgramsNV;
13710   glTrackMatrixNV: TglTrackMatrixNV;
13711   glVertexAttribPointerNV: TglVertexAttribPointerNV;
13712   glVertexAttrib1dNV: TglVertexAttrib1dNV;
13713   glVertexAttrib1dvNV: TglVertexAttrib1dvNV;
13714   glVertexAttrib1fNV: TglVertexAttrib1fNV;
13715   glVertexAttrib1fvNV: TglVertexAttrib1fvNV;
13716   glVertexAttrib1sNV: TglVertexAttrib1sNV;
13717   glVertexAttrib1svNV: TglVertexAttrib1svNV;
13718   glVertexAttrib2dNV: TglVertexAttrib2dNV;
13719   glVertexAttrib2dvNV: TglVertexAttrib2dvNV;
13720   glVertexAttrib2fNV: TglVertexAttrib2fNV;
13721   glVertexAttrib2fvNV: TglVertexAttrib2fvNV;
13722   glVertexAttrib2sNV: TglVertexAttrib2sNV;
13723   glVertexAttrib2svNV: TglVertexAttrib2svNV;
13724   glVertexAttrib3dNV: TglVertexAttrib3dNV;
13725   glVertexAttrib3dvNV: TglVertexAttrib3dvNV;
13726   glVertexAttrib3fNV: TglVertexAttrib3fNV;
13727   glVertexAttrib3fvNV: TglVertexAttrib3fvNV;
13728   glVertexAttrib3sNV: TglVertexAttrib3sNV;
13729   glVertexAttrib3svNV: TglVertexAttrib3svNV;
13730   glVertexAttrib4dNV: TglVertexAttrib4dNV;
13731   glVertexAttrib4dvNV: TglVertexAttrib4dvNV;
13732   glVertexAttrib4fNV: TglVertexAttrib4fNV;
13733   glVertexAttrib4fvNV: TglVertexAttrib4fvNV;
13734   glVertexAttrib4sNV: TglVertexAttrib4sNV;
13735   glVertexAttrib4svNV: TglVertexAttrib4svNV;
13736   glVertexAttrib4ubNV: TglVertexAttrib4ubNV;
13737   glVertexAttrib4ubvNV: TglVertexAttrib4ubvNV;
13738   glVertexAttribs1dvNV: TglVertexAttribs1dvNV;
13739   glVertexAttribs1fvNV: TglVertexAttribs1fvNV;
13740   glVertexAttribs1svNV: TglVertexAttribs1svNV;
13741   glVertexAttribs2dvNV: TglVertexAttribs2dvNV;
13742   glVertexAttribs2fvNV: TglVertexAttribs2fvNV;
13743   glVertexAttribs2svNV: TglVertexAttribs2svNV;
13744   glVertexAttribs3dvNV: TglVertexAttribs3dvNV;
13745   glVertexAttribs3fvNV: TglVertexAttribs3fvNV;
13746   glVertexAttribs3svNV: TglVertexAttribs3svNV;
13747   glVertexAttribs4dvNV: TglVertexAttribs4dvNV;
13748   glVertexAttribs4fvNV: TglVertexAttribs4fvNV;
13749   glVertexAttribs4svNV: TglVertexAttribs4svNV;
13750   glVertexAttribs4ubvNV: TglVertexAttribs4ubvNV;
13751
13752   // GL_NV_depth_buffer_float
13753   glDepthRangedNV: TglDepthRangedNV;
13754   glClearDepthdNV: TglClearDepthdNV;
13755   glDepthBoundsdNV: TglDepthBoundsdNV;
13756
13757   // GL_NV_framebuffer_multisample_coverage
13758   glRenderbufferStorageMultsampleCoverageNV: TglRenderbufferStorageMultsampleCoverageNV;
13759
13760   // GL_NV_geometry_program4
13761   glProgramVertexLimitNV: TglProgramVertexLimitNV;
13762
13763   // GL_NV_gpu_program4
13764   glProgramLocalParameterI4iNV: TglProgramLocalParameterI4iNV;
13765   glProgramLocalParameterI4ivNV: TglProgramLocalParameterI4ivNV;
13766   glProgramLocalParametersI4ivNV: TglProgramLocalParametersI4ivNV;
13767   glProgramLocalParameterI4uiNV: TglProgramLocalParameterI4uiNV;
13768   glProgramLocalParameterI4uivNV: TglProgramLocalParameterI4uivNV;
13769   glProgramLocalParametersI4uivNV: TglProgramLocalParametersI4uivNV;
13770   glProgramEnvParameterI4iNV: TglProgramEnvParameterI4iNV;
13771   glProgramEnvParameterI4ivNV: TglProgramEnvParameterI4ivNV;
13772   glProgramEnvParametersI4ivNV: TglProgramEnvParametersI4ivNV;
13773   glProgramEnvParameterI4uiNV: TglProgramEnvParameterI4uiNV;
13774   glProgramEnvParameterI4uivNV: TglProgramEnvParameterI4uivNV;
13775   glProgramEnvParametersI4uivNV: TglProgramEnvParametersI4uivNV;
13776   glGetProgramLocalParameterIivNV: TglGetProgramLocalParameterIivNV;
13777   glGetProgramLocalParameterIuivNV: TglGetProgramLocalParameterIuivNV;
13778   glGetProgramEnvParameterIivNV: TglGetProgramEnvParameterIivNV;
13779   glGetProgramEnvParameterIuivNV: TglGetProgramEnvParameterIuivNV;
13780
13781   // GL_NV_parameter_buffer_object
13782   glProgramBufferParametersfvNV: TglProgramBufferParametersfvNV;
13783   glProgramBufferParametersIivNV: TglProgramBufferParametersIivNV;
13784   glProgramBufferParametersIuivNV: TglProgramBufferParametersIuivNV;
13785
13786   // GL_NV_transform_feedback
13787   glBeginTransformFeedbackNV: TglBeginTransformFeedbackNV;
13788   glEndTransformFeedbackNV: TglEndTransformFeedbackNV;
13789   glTransformFeedbackAttribsNV: TglTransformFeedbackAttribsNV;
13790   glBindBufferRangeNV: TglBindBufferRangeNV;
13791   glBindBufferOffsetNV: TglBindBufferOffsetNV;
13792   glBindBufferBaseNV: TglBindBufferBaseNV;
13793   glTransformFeedbackVaryingsNV: TglTransformFeedbackVaryingsNV;
13794   glActiveVaryingNV: TglActiveVaryingNV;
13795   glGetVaryingLocationNV: TglGetVaryingLocationNV;
13796   glGetActiveVaryingNV: TglGetActiveVaryingNV;
13797   glGetTransformFeedbackVaryingNV: TglGetTransformFeedbackVaryingNV;
13798   glTransformFeedbackStreamAttribsNV: TglTransformFeedbackStreamAttribsNV;
13799
13800   // GL_NV_conditional_render
13801   glBeginConditionalRenderNV: TglBeginConditionalRenderNV;
13802   glEndConditionalRenderNV: TglEndConditionalRenderNV;
13803
13804   // GL_NV_present_video
13805   glPresentFrameKeyedNV: TglPresentFrameKeyedNV;
13806   glPresentFrameDualFillNV: TglPresentFrameDualFillNV;
13807   glGetVideoivNV: TglGetVideoivNV;
13808   glGetVideouivNV: TglGetVideouivNV;
13809   glGetVideoi64vNV: TglGetVideoi64vNV;
13810   glGetVideoui64vNV: TglGetVideoui64vNV;
13811 //  glVideoParameterivNV: TglVideoParameterivNV;
13812
13813   // GL_NV_explicit_multisample
13814   glGetMultisamplefvNV: TglGetMultisamplefvNV;
13815   glSampleMaskIndexedNV: TglSampleMaskIndexedNV;
13816   glTexRenderbufferNV: TglTexRenderbufferNV;
13817
13818   // GL_NV_transform_feedback2
13819   glBindTransformFeedbackNV: TglBindTransformFeedbackNV;
13820   glDeleteTransformFeedbacksNV: TglDeleteTransformFeedbacksNV;
13821   glGenTransformFeedbacksNV: TglGenTransformFeedbacksNV;
13822   glIsTransformFeedbackNV: TglIsTransformFeedbackNV;
13823   glPauseTransformFeedbackNV: TglPauseTransformFeedbackNV;
13824   glResumeTransformFeedbackNV: TglResumeTransformFeedbackNV;
13825   glDrawTransformFeedbackNV: TglDrawTransformFeedbackNV;
13826
13827   // GL_NV_video_capture
13828   glBeginVideoCaptureNV: TglBeginVideoCaptureNV;
13829   glBindVideoCaptureStreamBufferNV: TglBindVideoCaptureStreamBufferNV;
13830   glBindVideoCaptureStreamTextureNV: TglBindVideoCaptureStreamTextureNV;
13831   glEndVideoCaptureNV: TglEndVideoCaptureNV;
13832   glGetVideoCaptureivNV: TglGetVideoCaptureivNV;
13833   glGetVideoCaptureStreamivNV: TglGetVideoCaptureStreamivNV;
13834   glGetVideoCaptureStreamfvNV: TglGetVideoCaptureStreamfvNV;
13835   glGetVideoCaptureStreamdvNV: TglGetVideoCaptureStreamdvNV;
13836   glVideoCaptureNV: TglVideoCaptureNV;
13837   glVideoCaptureStreamParameterivNV: TglVideoCaptureStreamParameterivNV;
13838   glVideoCaptureStreamParameterfvNV: TglVideoCaptureStreamParameterfvNV;
13839   glVideoCaptureStreamParameterdvNV: TglVideoCaptureStreamParameterdvNV;
13840
13841   // GL_NV_copy_image
13842   glCopyImageSubDataNV: TglCopyImageSubDataNV;
13843
13844   // GL_NV_shader_buffer_load
13845   glMakeBufferResidentNV: TglMakeBufferResidentNV;
13846   glMakeBufferNonResidentNV: TglMakeBufferNonResidentNV;
13847   glIsBufferResidentNV: TglIsBufferResidentNV;
13848   glMakeNamedBufferResidentNV: TglMakeNamedBufferResidentNV;
13849   glMakeNamedBufferNonResidentNV: TglMakeNamedBufferNonResidentNV;
13850   glIsNamedBufferResidentNV: TglIsNamedBufferResidentNV;
13851   glGetBufferParameterui64vNV: TglGetBufferParameterui64vNV;
13852   glGetNamedBufferParameterui64vNV: TglGetNamedBufferParameterui64vNV;
13853   glGetIntegerui64vNV: TglGetIntegerui64vNV;
13854   glUniformui64NV: TglUniformui64NV;
13855   glUniformui64vNV: TglUniformui64vNV;
13856   glGetUniformui64vNV: TglGetUniformui64vNV;
13857   glProgramUniformui64NV: TglProgramUniformui64NV;
13858   glProgramUniformui64vNV: TglProgramUniformui64vNV;
13859
13860   // GL_NV_vertex_buffer_unified_memory
13861   glBufferAddressRangeNV: TglBufferAddressRangeNV;
13862   glVertexFormatNV: TglVertexFormatNV;
13863   glNormalFormatNV: TglNormalFormatNV;
13864   glColorFormatNV: TglColorFormatNV;
13865   glIndexFormatNV: TglIndexFormatNV;
13866   glTexCoordFormatNV: TglTexCoordFormatNV;
13867   glEdgeFlagFormatNV: TglEdgeFlagFormatNV;
13868   glSecondaryColorFormatNV: TglSecondaryColorFormatNV;
13869   glFogCoordFormatNV: TglFogCoordFormatNV;
13870   glVertexAttribFormatNV: TglVertexAttribFormatNV;
13871   glVertexAttribIFormatNV: TglVertexAttribIFormatNV;
13872   glGetIntegerui64i_vNV: TglGetIntegerui64i_vNV;
13873
13874   // GL_NV_gpu_program5
13875   glProgramSubroutineParametersuivNV: TglProgramSubroutineParametersuivNV;
13876   glGetProgramSubroutineParameteruivNV: TglGetProgramSubroutineParameteruivNV;
13877
13878   // GL_NV_gpu_shader5
13879   glUniform1i64NV: TglUniform1i64NV;
13880   glUniform2i64NV: TglUniform2i64NV;
13881   glUniform3i64NV: TglUniform3i64NV;
13882   glUniform4i64NV: TglUniform4i64NV;
13883   glUniform1i64vNV: TglUniform1i64vNV;
13884   glUniform2i64vNV: TglUniform2i64vNV;
13885   glUniform3i64vNV: TglUniform3i64vNV;
13886   glUniform4i64vNV: TglUniform4i64vNV;
13887   glUniform1ui64NV: TglUniform1ui64NV;
13888   glUniform2ui64NV: TglUniform2ui64NV;
13889   glUniform3ui64NV: TglUniform3ui64NV;
13890   glUniform4ui64NV: TglUniform4ui64NV;
13891   glUniform1ui64vNV: TglUniform1ui64vNV;
13892   glUniform2ui64vNV: TglUniform2ui64vNV;
13893   glUniform3ui64vNV: TglUniform3ui64vNV;
13894   glUniform4ui64vNV: TglUniform4ui64vNV;
13895   glGetUniformi64vNV: TglGetUniformi64vNV;
13896   glProgramUniform1i64NV: TglProgramUniform1i64NV;
13897   glProgramUniform2i64NV: TglProgramUniform2i64NV;
13898   glProgramUniform3i64NV: TglProgramUniform3i64NV;
13899   glProgramUniform4i64NV: TglProgramUniform4i64NV;
13900   glProgramUniform1i64vNV: TglProgramUniform1i64vNV;
13901   glProgramUniform2i64vNV: TglProgramUniform2i64vNV;
13902   glProgramUniform3i64vNV: TglProgramUniform3i64vNV;
13903   glProgramUniform4i64vNV: TglProgramUniform4i64vNV;
13904   glProgramUniform1ui64NV: TglProgramUniform1ui64NV;
13905   glProgramUniform2ui64NV: TglProgramUniform2ui64NV;
13906   glProgramUniform3ui64NV: TglProgramUniform3ui64NV;
13907   glProgramUniform4ui64NV: TglProgramUniform4ui64NV;
13908   glProgramUniform1ui64vNV: TglProgramUniform1ui64vNV;
13909   glProgramUniform2ui64vNV: TglProgramUniform2ui64vNV;
13910   glProgramUniform3ui64vNV: TglProgramUniform3ui64vNV;
13911   glProgramUniform4ui64vNV: TglProgramUniform4ui64vNV;
13912
13913   // GL_NV_vertex_attrib_integer_64bit
13914   glVertexAttribL1i64NV: TglVertexAttribL1i64NV;
13915   glVertexAttribL2i64NV: TglVertexAttribL2i64NV;
13916   glVertexAttribL3i64NV: TglVertexAttribL3i64NV;
13917   glVertexAttribL4i64NV: TglVertexAttribL4i64NV;
13918   glVertexAttribL1i64vNV: TglVertexAttribL1i64vNV;
13919   glVertexAttribL2i64vNV: TglVertexAttribL2i64vNV;
13920   glVertexAttribL3i64vNV: TglVertexAttribL3i64vNV;
13921   glVertexAttribL4i64vNV: TglVertexAttribL4i64vNV;
13922   glVertexAttribL1ui64NV: TglVertexAttribL1ui64NV;
13923   glVertexAttribL2ui64NV: TglVertexAttribL2ui64NV;
13924   glVertexAttribL3ui64NV: TglVertexAttribL3ui64NV;
13925   glVertexAttribL4ui64NV: TglVertexAttribL4ui64NV;
13926   glVertexAttribL1ui64vNV: TglVertexAttribL1ui64vNV;
13927   glVertexAttribL2ui64vNV: TglVertexAttribL2ui64vNV;
13928   glVertexAttribL3ui64vNV: TglVertexAttribL3ui64vNV;
13929   glVertexAttribL4ui64vNV: TglVertexAttribL4ui64vNV;
13930   glGetVertexAttribLi64vNV: TglGetVertexAttribLi64vNV;
13931   glGetVertexAttribLui64vNV: TglGetVertexAttribLui64vNV;
13932   glVertexAttribLFormatNV: TglVertexAttribLFormatNV;
13933
13934   // GL_NV_vdpau_interop
13935   glVDPAUInitNV: TglVDPAUInitNV;
13936   glVDPAUFiniNV: TglVDPAUFiniNV;
13937   glVDPAURegisterVideoSurfaceNV: TglVDPAURegisterVideoSurfaceNV;
13938   glVDPAURegisterOutputSurfaceNV: TglVDPAURegisterOutputSurfaceNV;
13939   glVDPAUIsSurfaceNV: TglVDPAUIsSurfaceNV;
13940   glVDPAUUnregisterSurfaceNV: TglVDPAUUnregisterSurfaceNV;
13941   glVDPAUGetSurfaceivNV: TglVDPAUGetSurfaceivNV;
13942   glVDPAUSurfaceAccessNV: TglVDPAUSurfaceAccessNV;
13943   glVDPAUMapSurfacesNV: TglVDPAUMapSurfacesNV;
13944   glVDPAUUnmapSurfacesNV: TglVDPAUUnmapSurfacesNV;
13945
13946   // GL_NV_texture_barrier
13947   glTextureBarrierNV: TglTextureBarrierNV;
13948
13949   // (4.3) GL_NV_path_rendering
13950   glGenPathsNV : TglGenPathsNV;
13951   glDeletePathsNV : TglDeletePathsNV;
13952   glIsPathNV : TglIsPathNV;
13953   glPathCommandsNV : TglPathCommandsNV;
13954   glPathCoordsNV : TglPathCoordsNV;
13955   glPathSubCommandsNV : TglPathSubCommandsNV;
13956   glPathSubCoordsNV : TglPathSubCoordsNV;
13957   glPathStringNV : TglPathStringNV;
13958   glPathGlyphsNV : TglPathGlyphsNV;
13959   glPathGlyphRangeNV : TglPathGlyphRangeNV;
13960   glWeightPathsNV : TglWeightPathsNV;
13961   glCopyPathNV : TglCopyPathNV;
13962   glInterpolatePathsNV : TglInterpolatePathsNV;
13963   glTransformPathNV : TglTransformPathNV;
13964   glPathParameterivNV : TglPathParameterivNV;
13965   glPathParameteriNV : TglPathParameteriNV;
13966   glPathParameterfvNV : TglPathParameterfvNV;
13967   glPathParameterfNV : TglPathParameterfNV;
13968   glPathDashArrayNV : TglPathDashArrayNV;
13969   glPathStencilFuncNV : TglPathStencilFuncNV;
13970   glPathStencilDepthOffsetNV : TglPathStencilDepthOffsetNV;
13971   glStencilFillPathNV : TglStencilFillPathNV;
13972   glStencilStrokePathNV : TglStencilStrokePathNV;
13973   glStencilFillPathInstancedNV : TglStencilFillPathInstancedNV;
13974   glStencilStrokePathInstancedNV : TglStencilStrokePathInstancedNV;
13975   glPathCoverDepthFuncNV : TglPathCoverDepthFuncNV;
13976   glPathColorGenNV : TglPathColorGenNV;
13977   glPathTexGenNV : TglPathTexGenNV;
13978   glPathFogGenNV : TglPathFogGenNV;
13979   glCoverFillPathNV : TglCoverFillPathNV;
13980   glCoverStrokePathNV : TglCoverStrokePathNV;
13981   glCoverFillPathInstancedNV : TglCoverFillPathInstancedNV;
13982   glCoverStrokePathInstancedNV : TglCoverStrokePathInstancedNV;
13983   glGetPathParameterivNV : TglGetPathParameterivNV;
13984   glGetPathParameterfvNV : TglGetPathParameterfvNV;
13985   glGetPathCommandsNV : TglGetPathCommandsNV;
13986   glGetPathCoordsNV : TglGetPathCoordsNV;
13987   glGetPathDashArrayNV : TglGetPathDashArrayNV;
13988   glGetPathMetricsNV : TglGetPathMetricsNV;
13989   glGetPathMetricRangeNV : TglGetPathMetricRangeNV;
13990   glGetPathSpacingNV : TglGetPathSpacingNV;
13991   glGetPathColorGenivNV : TglGetPathColorGenivNV;
13992   glGetPathColorGenfvNV : TglGetPathColorGenfvNV;
13993   glGetPathTexGenivNV : TglGetPathTexGenivNV;
13994   glGetPathTexGenfvNV : TglGetPathTexGenfvNV;
13995   glIsPointInFillPathNV : TglIsPointInFillPathNV;
13996   glIsPointInStrokePathNV : TglIsPointInStrokePathNV;
13997   glGetPathLengthNV : TglGetPathLengthNV;
13998   glPointAlongPathNV : TglPointAlongPathNV;
13999
14000   // GL_AMD_pinned_memory
14001
14002   // GL_AMD_stencil_operation_extended
14003   glStencilOpValueAMD : TglStencilOpValueAMD;
14004
14005   // GL_AMD_vertex_shader_viewport_index
14006
14007   // GL_AMD_vertex_shader_layer
14008
14009   // GL_NV_bindless_texture
14010   glGetTextureHandleNV : TglGetTextureHandleNV;
14011   glGetTextureSamplerHandleNV : TglGetTextureSamplerHandleNV;
14012   glMakeTextureHandleResidentNV : TglMakeTextureHandleResidentNV;
14013   glMakeTextureHandleNonResidentNV : TglMakeTextureHandleNonResidentNV;
14014   glGetImageHandleNV : TglGetImageHandleNV;
14015   glMakeImageHandleResidentNV : TglMakeImageHandleResidentNV;
14016   glMakeImageHandleNonResidentNV : TglMakeImageHandleNonResidentNV;
14017   glUniformHandleui64NV : TglUniformHandleui64NV;
14018   glUniformHandleui64vNV : TglUniformHandleui64vNV;
14019   glProgramUniformHandleui64NV : TglProgramUniformHandleui64NV;
14020   glProgramUniformHandleui64vNV : TglProgramUniformHandleui64vNV;
14021   glIsTextureHandleResidentNV : TglIsTextureHandleResidentNV;
14022   glIsImageHandleResidentNV : TglIsImageHandleResidentNV;
14023
14024   // GL_ARB_bindless_texture
14025   glGetTextureHandleARB : TglGetTextureHandleARB;
14026   glGetTextureSamplerHandleARB : TglGetTextureSamplerHandleARB;
14027   glMakeTextureHandleResidentARB : TglMakeTextureHandleResidentARB;
14028   glMakeTextureHandleNonResidentARB : TglMakeTextureHandleNonResidentARB;
14029   glGetImageHandleARB : TglGetImageHandleARB;
14030   glMakeImageHandleResidentARB : TglMakeImageHandleResidentARB;
14031   glMakeImageHandleNonResidentARB : TglMakeImageHandleNonResidentARB;
14032   glUniformHandleui64ARB : TglUniformHandleui64ARB;
14033   glUniformHandleui64vARB : TglUniformHandleui64vARB;
14034   glProgramUniformHandleui64ARB : TglProgramUniformHandleui64ARB;
14035   glProgramUniformHandleui64vARB : TglProgramUniformHandleui64vARB;
14036   glIsTextureHandleResidentARB : TglIsTextureHandleResidentARB;
14037   glIsImageHandleResidentARB : TglIsImageHandleResidentARB;
14038   glVertexAttribL1ui64ARB : TglVertexAttribL1ui64ARB;
14039   glVertexAttribL1ui64vARB : TglVertexAttribL1ui64vARB;
14040   glGetVertexAttribLui64vARB : TglGetVertexAttribLui64vARB;
14041
14042   // GL_PGI_misc_hints
14043   glHintPGI: TglHintPGI;
14044
14045   // GL_SGIS_detail_texture
14046   glDetailTexFuncSGIS: TglDetailTexFuncSGIS;
14047   glGetDetailTexFuncSGIS: TglGetDetailTexFuncSGIS;
14048
14049   // GL_SGIS_fog_function
14050   glFogFuncSGIS: TglFogFuncSGIS;
14051   glGetFogFuncSGIS: TglGetFogFuncSGIS;
14052
14053   // GL_SGIS_multisample
14054   glSampleMaskSGIS: TglSampleMaskSGIS;
14055   glSamplePatternSGIS: TglSamplePatternSGIS;
14056
14057   // GL_SGIS_pixel_texture
14058   glPixelTexGenParameteriSGIS: TglPixelTexGenParameteriSGIS;
14059   glPixelTexGenParameterivSGIS: TglPixelTexGenParameterivSGIS;
14060   glPixelTexGenParameterfSGIS: TglPixelTexGenParameterfSGIS;
14061   glPixelTexGenParameterfvSGIS: TglPixelTexGenParameterfvSGIS;
14062   glGetPixelTexGenParameterivSGIS: TglGetPixelTexGenParameterivSGIS;
14063   glGetPixelTexGenParameterfvSGIS: TglGetPixelTexGenParameterfvSGIS;
14064
14065   // GL_SGIS_point_parameters
14066   glPointParameterfSGIS: TglPointParameterfSGIS;
14067   glPointParameterfvSGIS: TglPointParameterfvSGIS;
14068
14069   // GL_SGIS_sharpen_texture
14070   glSharpenTexFuncSGIS: TglSharpenTexFuncSGIS;
14071   glGetSharpenTexFuncSGIS: TglGetSharpenTexFuncSGIS;
14072
14073   // GL_SGIS_texture4D
14074   glTexImage4DSGIS: TglTexImage4DSGIS;
14075   glTexSubImage4DSGIS: TglTexSubImage4DSGIS;
14076
14077   // GL_SGIS_texture_color_mask
14078   glTextureColorMaskSGIS: TglTextureColorMaskSGIS;
14079
14080   // GL_SGIS_texture_filter4
14081   glGetTexFilterFuncSGIS: TglGetTexFilterFuncSGIS;
14082   glTexFilterFuncSGIS: TglTexFilterFuncSGIS;
14083
14084   // GL_SGIX_async
14085   glAsyncMarkerSGIX: TglAsyncMarkerSGIX;
14086   glFinishAsyncSGIX: TglFinishAsyncSGIX;
14087   glPollAsyncSGIX: TglPollAsyncSGIX;
14088   glGenAsyncMarkersSGIX: TglGenAsyncMarkersSGIX;
14089   glDeleteAsyncMarkersSGIX: TglDeleteAsyncMarkersSGIX;
14090   glIsAsyncMarkerSGIX: TglIsAsyncMarkerSGIX;
14091
14092   // GL_SGIX_flush_raster
14093   glFlushRasterSGIX: TglFlushRasterSGIX;
14094
14095   // GL_SGIX_fragment_lighting
14096   glFragmentColorMaterialSGIX: TglFragmentColorMaterialSGIX;
14097   glFragmentLightfSGIX: TglFragmentLightfSGIX;
14098   glFragmentLightfvSGIX: TglFragmentLightfvSGIX;
14099   glFragmentLightiSGIX: TglFragmentLightiSGIX;
14100   glFragmentLightivSGIX: TglFragmentLightivSGIX;
14101   glFragmentLightModelfSGIX: TglFragmentLightModelfSGIX;
14102   glFragmentLightModelfvSGIX: TglFragmentLightModelfvSGIX;
14103   glFragmentLightModeliSGIX: TglFragmentLightModeliSGIX;
14104   glFragmentLightModelivSGIX: TglFragmentLightModelivSGIX;
14105   glFragmentMaterialfSGIX: TglFragmentMaterialfSGIX;
14106   glFragmentMaterialfvSGIX: TglFragmentMaterialfvSGIX;
14107   glFragmentMaterialiSGIX: TglFragmentMaterialiSGIX;
14108   glFragmentMaterialivSGIX: TglFragmentMaterialivSGIX;
14109   glGetFragmentLightfvSGIX: TglGetFragmentLightfvSGIX;
14110   glGetFragmentLightivSGIX: TglGetFragmentLightivSGIX;
14111   glGetFragmentMaterialfvSGIX: TglGetFragmentMaterialfvSGIX;
14112   glGetFragmentMaterialivSGIX: TglGetFragmentMaterialivSGIX;
14113   glLightEnviSGIX: TglLightEnviSGIX;
14114
14115   // GL_SGIX_framezoom
14116   glFrameZoomSGIX: TglFrameZoomSGIX;
14117
14118   // GL_SGIX_igloo_interface
14119   glIglooInterfaceSGIX: TglIglooInterfaceSGIX;
14120
14121   // GL_SGIX_instruments
14122   glGetInstrumentsSGIX: TglGetInstrumentsSGIX;
14123   glInstrumentsBufferSGIX: TglInstrumentsBufferSGIX;
14124   glPollInstrumentsSGIX: TglPollInstrumentsSGIX;
14125   glReadInstrumentsSGIX: TglReadInstrumentsSGIX;
14126   glStartInstrumentsSGIX: TglStartInstrumentsSGIX;
14127   glStopInstrumentsSGIX: TglStopInstrumentsSGIX;
14128
14129   // GL_SGIX_list_priority
14130   glGetListParameterfvSGIX: TglGetListParameterfvSGIX;
14131   glGetListParameterivSGIX: TglGetListParameterivSGIX;
14132   glListParameterfSGIX: TglListParameterfSGIX;
14133   glListParameterfvSGIX: TglListParameterfvSGIX;
14134   glListParameteriSGIX: TglListParameteriSGIX;
14135   glListParameterivSGIX: TglListParameterivSGIX;
14136
14137   // GL_SGIX_pixel_texture
14138   glPixelTexGenSGIX: TglPixelTexGenSGIX;
14139
14140   // GL_SGIX_polynomial_ffd
14141   glDeformationMap3dSGIX: TglDeformationMap3dSGIX;
14142   glDeformationMap3fSGIX: TglDeformationMap3fSGIX;
14143   glDeformSGIX: TglDeformSGIX;
14144   glLoadIdentityDeformationMapSGIX: TglLoadIdentityDeformationMapSGIX;
14145
14146   // GL_SGIX_reference_plane
14147   glReferencePlaneSGIX: TglReferencePlaneSGIX;
14148
14149   // GL_SGIX_sprite
14150   glSpriteParameterfSGIX: TglSpriteParameterfSGIX;
14151   glSpriteParameterfvSGIX: TglSpriteParameterfvSGIX;
14152   glSpriteParameteriSGIX: TglSpriteParameteriSGIX;
14153   glSpriteParameterivSGIX: TglSpriteParameterivSGIX;
14154
14155   // GL_SGIX_tag_sample_buffer
14156   glTagSampleBufferSGIX: TglTagSampleBufferSGIX;
14157
14158   // GL_SGI_color_table
14159   glColorTableSGI: TglColorTableSGI;
14160   glColorTableParameterfvSGI: TglColorTableParameterfvSGI;
14161   glColorTableParameterivSGI: TglColorTableParameterivSGI;
14162   glCopyColorTableSGI: TglCopyColorTableSGI;
14163   glGetColorTableSGI: TglGetColorTableSGI;
14164   glGetColorTableParameterfvSGI: TglGetColorTableParameterfvSGI;
14165   glGetColorTableParameterivSGI: TglGetColorTableParameterivSGI;
14166
14167   // GL_SUNX_constant_data
14168   glFinishTextureSUNX: TglFinishTextureSUNX;
14169
14170   // GL_SUN_global_alpha
14171   glGlobalAlphaFactorbSUN: TglGlobalAlphaFactorbSUN;
14172   glGlobalAlphaFactorsSUN: TglGlobalAlphaFactorsSUN;
14173   glGlobalAlphaFactoriSUN: TglGlobalAlphaFactoriSUN;
14174   glGlobalAlphaFactorfSUN: TglGlobalAlphaFactorfSUN;
14175   glGlobalAlphaFactordSUN: TglGlobalAlphaFactordSUN;
14176   glGlobalAlphaFactorubSUN: TglGlobalAlphaFactorubSUN;
14177   glGlobalAlphaFactorusSUN: TglGlobalAlphaFactorusSUN;
14178   glGlobalAlphaFactoruiSUN: TglGlobalAlphaFactoruiSUN;
14179
14180   // GL_SUN_mesh_array
14181   glDrawMeshArraysSUN: TglDrawMeshArraysSUN;
14182
14183   // GL_SUN_triangle_list
14184   glReplacementCodeuiSUN: TglReplacementCodeuiSUN;
14185   glReplacementCodeusSUN: TglReplacementCodeusSUN;
14186   glReplacementCodeubSUN: TglReplacementCodeubSUN;
14187   glReplacementCodeuivSUN: TglReplacementCodeuivSUN;
14188   glReplacementCodeusvSUN: TglReplacementCodeusvSUN;
14189   glReplacementCodeubvSUN: TglReplacementCodeubvSUN;
14190   glReplacementCodePointerSUN: TglReplacementCodePointerSUN;
14191
14192   // GL_SUN_vertex
14193   glColor4ubVertex2fSUN: TglColor4ubVertex2fSUN;
14194   glColor4ubVertex2fvSUN: TglColor4ubVertex2fvSUN;
14195   glColor4ubVertex3fSUN: TglColor4ubVertex3fSUN;
14196   glColor4ubVertex3fvSUN: TglColor4ubVertex3fvSUN;
14197   glColor3fVertex3fSUN: TglColor3fVertex3fSUN;
14198   glColor3fVertex3fvSUN: TglColor3fVertex3fvSUN;
14199   glNormal3fVertex3fSUN: TglNormal3fVertex3fSUN;
14200   glNormal3fVertex3fvSUN: TglNormal3fVertex3fvSUN;
14201   glColor4fNormal3fVertex3fSUN: TglColor4fNormal3fVertex3fSUN;
14202   glColor4fNormal3fVertex3fvSUN: TglColor4fNormal3fVertex3fvSUN;
14203   glTexCoord2fVertex3fSUN: TglTexCoord2fVertex3fSUN;
14204   glTexCoord2fVertex3fvSUN: TglTexCoord2fVertex3fvSUN;
14205   glTexCoord4fVertex4fSUN: TglTexCoord4fVertex4fSUN;
14206   glTexCoord4fVertex4fvSUN: TglTexCoord4fVertex4fvSUN;
14207   glTexCoord2fColor4ubVertex3fSUN: TglTexCoord2fColor4ubVertex3fSUN;
14208   glTexCoord2fColor4ubVertex3fvSUN: TglTexCoord2fColor4ubVertex3fvSUN;
14209   glTexCoord2fColor3fVertex3fSUN: TglTexCoord2fColor3fVertex3fSUN;
14210   glTexCoord2fColor3fVertex3fvSUN: TglTexCoord2fColor3fVertex3fvSUN;
14211   glTexCoord2fNormal3fVertex3fSUN: TglTexCoord2fNormal3fVertex3fSUN;
14212   glTexCoord2fNormal3fVertex3fvSUN: TglTexCoord2fNormal3fVertex3fvSUN;
14213   glTexCoord2fColor4fNormal3fVertex3fSUN: TglTexCoord2fColor4fNormal3fVertex3fSUN;
14214   glTexCoord2fColor4fNormal3fVertex3fvSUN: TglTexCoord2fColor4fNormal3fVertex3fvSUN;
14215   glTexCoord4fColor4fNormal3fVertex4fSUN: TglTexCoord4fColor4fNormal3fVertex4fSUN;
14216   glTexCoord4fColor4fNormal3fVertex4fvSUN: TglTexCoord4fColor4fNormal3fVertex4fvSUN;
14217   glReplacementCodeuiVertex3fSUN: TglReplacementCodeuiVertex3fSUN;
14218   glReplacementCodeuiVertex3fvSUN: TglReplacementCodeuiVertex3fvSUN;
14219   glReplacementCodeuiColor4ubVertex3fSUN: TglReplacementCodeuiColor4ubVertex3fSUN;
14220   glReplacementCodeuiColor4ubVertex3fvSUN: TglReplacementCodeuiColor4ubVertex3fvSUN;
14221   glReplacementCodeuiColor3fVertex3fSUN: TglReplacementCodeuiColor3fVertex3fSUN;
14222   glReplacementCodeuiColor3fVertex3fvSUN: TglReplacementCodeuiColor3fVertex3fvSUN;
14223   glReplacementCodeuiNormal3fVertex3fSUN: TglReplacementCodeuiNormal3fVertex3fSUN;
14224   glReplacementCodeuiNormal3fVertex3fvSUN: TglReplacementCodeuiNormal3fVertex3fvSUN;
14225   glReplacementCodeuiColor4fNormal3fVertex3fSUN: TglReplacementCodeuiColor4fNormal3fVertex3fSUN;
14226   glReplacementCodeuiColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiColor4fNormal3fVertex3fvSUN;
14227   glReplacementCodeuiTexCoord2fVertex3fSUN: TglReplacementCodeuiTexCoord2fVertex3fSUN;
14228   glReplacementCodeuiTexCoord2fVertex3fvSUN: TglReplacementCodeuiTexCoord2fVertex3fvSUN;
14229   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
14230   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
14231   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
14232   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
14233
14234 {$IFDEF DGL_WIN}
14235   wglGetProcAddress: TwglGetProcAddress;
14236   wglCopyContext: TwglCopyContext;
14237   wglCreateContext: TwglCreateContext;
14238   wglCreateLayerContext: TwglCreateLayerContext;
14239   wglDeleteContext: TwglDeleteContext;
14240   wglDescribeLayerPlane: TwglDescribeLayerPlane;
14241   wglGetCurrentContext: TwglGetCurrentContext;
14242   wglGetCurrentDC: TwglGetCurrentDC;
14243   wglGetLayerPaletteEntries: TwglGetLayerPaletteEntries;
14244   wglMakeCurrent: TwglMakeCurrent;
14245   wglRealizeLayerPalette: TwglRealizeLayerPalette;
14246   wglSetLayerPaletteEntries: TwglSetLayerPaletteEntries;
14247   wglShareLists: TwglShareLists;
14248   wglSwapLayerBuffers: TwglSwapLayerBuffers;
14249   wglSwapMultipleBuffers: TwglSwapMultipleBuffers;
14250   wglUseFontBitmapsA: TwglUseFontBitmapsA;
14251   wglUseFontOutlinesA: TwglUseFontOutlinesA;
14252   wglUseFontBitmapsW: TwglUseFontBitmapsW;
14253   wglUseFontOutlinesW: TwglUseFontOutlinesW;
14254   wglUseFontBitmaps: TwglUseFontBitmaps;
14255   wglUseFontOutlines: TwglUseFontOutlines;
14256
14257    // WGL_ARB_buffer_region
14258   wglCreateBufferRegionARB: TwglCreateBufferRegionARB;
14259   wglDeleteBufferRegionARB: TwglDeleteBufferRegionARB;
14260   wglSaveBufferRegionARB: TwglSaveBufferRegionARB;
14261   wglRestoreBufferRegionARB: TwglRestoreBufferRegionARB;
14262
14263   // WGL_ARB_extensions_string
14264   wglGetExtensionsStringARB: TwglGetExtensionsStringARB;
14265
14266   // WGL_ARB_make_current_read
14267   wglMakeContextCurrentARB: TwglMakeContextCurrentARB;
14268   wglGetCurrentReadDCARB: TwglGetCurrentReadDCARB;
14269
14270   // WGL_ARB_pbuffer
14271   wglCreatePbufferARB: TwglCreatePbufferARB;
14272   wglGetPbufferDCARB: TwglGetPbufferDCARB;
14273   wglReleasePbufferDCARB: TwglReleasePbufferDCARB;
14274   wglDestroyPbufferARB: TwglDestroyPbufferARB;
14275   wglQueryPbufferARB: TwglQueryPbufferARB;
14276
14277   // WGL_ARB_pixel_format
14278   wglGetPixelFormatAttribivARB: TwglGetPixelFormatAttribivARB;
14279   wglGetPixelFormatAttribfvARB: TwglGetPixelFormatAttribfvARB;
14280   wglChoosePixelFormatARB: TwglChoosePixelFormatARB;
14281   // WGL_ARB_color_buffer_float
14282   wglClampColorARB: TwglClampColorARB;
14283
14284   // WGL_ARB_render_texture
14285   wglBindTexImageARB: TwglBindTexImageARB;
14286   wglReleaseTexImageARB: TwglReleaseTexImageARB;
14287   wglSetPbufferAttribARB: TwglSetPbufferAttribARB;
14288
14289   // WGL_ARB_create_context
14290   wglCreateContextAttribsARB: TwglCreateContextAttribsARB;
14291
14292   // WGL_AMD_gpu_association
14293   wglGetGPUIDsAMD: TwglGetGPUIDsAMD;
14294   wglGetGPUInfoAMD: TwglGetGPUInfoAMD;
14295   wglGetContextGPUIDAMD: TwglGetContextGPUIDAMD;
14296   wglCreateAssociatedContextAMD: TwglCreateAssociatedContextAMD;
14297   wglCreateAssociatedContextAttribsAMD: TwglCreateAssociatedContextAttribsAMD;
14298   wglDeleteAssociatedContextAMD: TwglDeleteAssociatedContextAMD;
14299   wglMakeAssociatedContextCurrentAMD: TwglMakeAssociatedContextCurrentAMD;
14300   wglGetCurrentAssociatedContextAMD: TwglGetCurrentAssociatedContextAMD;
14301   wglBlitContextFramebufferAMD: TwglBlitContextFramebufferAMD;
14302
14303   // WGL_EXT_display_color_table
14304   wglCreateDisplayColorTableEXT: TwglCreateDisplayColorTableEXT;
14305   wglLoadDisplayColorTableEXT: TwglLoadDisplayColorTableEXT;
14306   wglBindDisplayColorTableEXT: TwglBindDisplayColorTableEXT;
14307   wglDestroyDisplayColorTableEXT: TwglDestroyDisplayColorTableEXT;
14308
14309   // WGL_EXT_extensions_string
14310   wglGetExtensionsStringEXT: TwglGetExtensionsStringEXT;
14311
14312   // WGL_EXT_make_current_read
14313   wglMakeContextCurrentEXT: TwglMakeContextCurrentEXT;
14314   wglGetCurrentReadDCEXT: TwglGetCurrentReadDCEXT;
14315
14316   // WGL_EXT_pbuffer
14317   wglCreatePbufferEXT: TwglCreatePbufferEXT;
14318   wglGetPbufferDCEXT: TwglGetPbufferDCEXT;
14319   wglReleasePbufferDCEXT: TwglReleasePbufferDCEXT;
14320   wglDestroyPbufferEXT: TwglDestroyPbufferEXT;
14321   wglQueryPbufferEXT: TwglQueryPbufferEXT;
14322
14323   // WGL_EXT_pixel_format
14324   wglGetPixelFormatAttribivEXT: TwglGetPixelFormatAttribivEXT;
14325   wglGetPixelFormatAttribfvEXT: TwglGetPixelFormatAttribfvEXT;
14326   wglChoosePixelFormatEXT: TwglChoosePixelFormatEXT;
14327
14328   // WGL_EXT_swap_control
14329   wglSwapIntervalEXT: TwglSwapIntervalEXT;
14330   wglGetSwapIntervalEXT: TwglGetSwapIntervalEXT;
14331
14332   // WGL_I3D_digital_video_control
14333   wglGetDigitalVideoParametersI3D: TwglGetDigitalVideoParametersI3D;
14334   wglSetDigitalVideoParametersI3D: TwglSetDigitalVideoParametersI3D;
14335
14336   // WGL_I3D_gamma
14337   wglGetGammaTableParametersI3D: TwglGetGammaTableParametersI3D;
14338   wglSetGammaTableParametersI3D: TwglSetGammaTableParametersI3D;
14339   wglGetGammaTableI3D: TwglGetGammaTableI3D;
14340   wglSetGammaTableI3D: TwglSetGammaTableI3D;
14341
14342   // WGL_I3D_genlock
14343   wglEnableGenlockI3D: TwglEnableGenlockI3D;
14344   wglDisableGenlockI3D: TwglDisableGenlockI3D;
14345   wglIsEnabledGenlockI3D: TwglIsEnabledGenlockI3D;
14346   wglGenlockSourceI3D: TwglGenlockSourceI3D;
14347   wglGetGenlockSourceI3D: TwglGetGenlockSourceI3D;
14348   wglGenlockSourceEdgeI3D: TwglGenlockSourceEdgeI3D;
14349   wglGetGenlockSourceEdgeI3D: TwglGetGenlockSourceEdgeI3D;
14350   wglGenlockSampleRateI3D: TwglGenlockSampleRateI3D;
14351   wglGetGenlockSampleRateI3D: TwglGetGenlockSampleRateI3D;
14352   wglGenlockSourceDelayI3D: TwglGenlockSourceDelayI3D;
14353   wglGetGenlockSourceDelayI3D: TwglGetGenlockSourceDelayI3D;
14354   wglQueryGenlockMaxSourceDelayI3D: TwglQueryGenlockMaxSourceDelayI3D;
14355
14356   // WGL_I3D_image_buffer
14357   wglCreateImageBufferI3D: TwglCreateImageBufferI3D;
14358   wglDestroyImageBufferI3D: TwglDestroyImageBufferI3D;
14359   wglAssociateImageBufferEventsI3D: TwglAssociateImageBufferEventsI3D;
14360   wglReleaseImageBufferEventsI3D: TwglReleaseImageBufferEventsI3D;
14361
14362   // WGL_I3D_swap_frame_lock
14363   wglEnableFrameLockI3D: TwglEnableFrameLockI3D;
14364   wglDisableFrameLockI3D: TwglDisableFrameLockI3D;
14365   wglIsEnabledFrameLockI3D: TwglIsEnabledFrameLockI3D;
14366   wglQueryFrameLockMasterI3D: TwglQueryFrameLockMasterI3D;
14367
14368   // WGL_I3D_swap_frame_usage
14369   wglGetFrameUsageI3D: TwglGetFrameUsageI3D;
14370   wglBeginFrameTrackingI3D: TwglBeginFrameTrackingI3D;
14371   wglEndFrameTrackingI3D: TwglEndFrameTrackingI3D;
14372   wglQueryFrameTrackingI3D: TwglQueryFrameTrackingI3D;
14373
14374   // WGL_NV_vertex_array_range
14375   wglAllocateMemoryNV: TwglAllocateMemoryNV;
14376   wglFreeMemoryNV: TwglFreeMemoryNV;
14377
14378   // WGL_NV_present_video
14379   wglEnumerateVideoDevicesNV: TwglEnumerateVideoDevicesNV;
14380   wglBindVideoDeviceNV: TwglBindVideoDeviceNV;
14381   wglQueryCurrentContextNV: TwglQueryCurrentContextNV;
14382
14383   // WGL_NV_video_output
14384   wglGetVideoDeviceNV: TwglGetVideoDeviceNV;
14385   wglReleaseVideoDeviceNV: TwglReleaseVideoDeviceNV;
14386   wglBindVideoImageNV: TwglBindVideoImageNV;
14387   wglReleaseVideoImageNV: TwglReleaseVideoImageNV;
14388   wglSendPbufferToVideoNV: TwglSendPbufferToVideoNV;
14389   wglGetVideoInfoNV: TwglGetVideoInfoNV;
14390
14391   // WGL_NV_swap_group
14392   wglJoinSwapGroupNV: TwglJoinSwapGroupNV;
14393   wglBindSwapBarrierNV: TwglBindSwapBarrierNV;
14394   wglQuerySwapGroupNV: TwglQuerySwapGroupNV;
14395   wglQueryMaxSwapGroupsNV: TwglQueryMaxSwapGroupsNV;
14396   wglQueryFrameCountNV: TwglQueryFrameCountNV;
14397   wglResetFrameCountNV: TwglResetFrameCountNV;
14398
14399   // WGL_NV_gpu_affinity
14400   wglEnumGpusNV: TwglEnumGpusNV;
14401   wglEnumGpuDevicesNV: TwglEnumGpuDevicesNV;
14402   wglCreateAffinityDCNV: TwglCreateAffinityDCNV;
14403   wglEnumGpusFromAffinityDCNV: TwglEnumGpusFromAffinityDCNV;
14404   wglDeleteDCNV: TwglDeleteDCNV;
14405
14406   // WGL_NV_video_capture
14407   wglBindVideoCaptureDeviceNV: TwglBindVideoCaptureDeviceNV;
14408   wglEnumerateVideoCaptureDevicesNV: TwglEnumerateVideoCaptureDevicesNV;
14409   wglLockVideoCaptureDeviceNV: TwglLockVideoCaptureDeviceNV;
14410   wglQueryVideoCaptureDeviceNV: TwglQueryVideoCaptureDeviceNV;
14411   wglReleaseVideoCaptureDeviceNV: TwglReleaseVideoCaptureDeviceNV;
14412
14413   // WGL_NV_copy_image
14414   wglCopyImageSubDataNV: TwglCopyImageSubDataNV;
14415
14416   // WGL_NV_DX_interop
14417   wglDXSetResourceShareHandleNV : TwglDXSetResourceShareHandleNV;
14418   wglDXOpenDeviceNV : TwglDXOpenDeviceNV;
14419   wglDXCloseDeviceNV : TwglDXCloseDeviceNV;
14420   wglDXRegisterObjectNV : TwglDXRegisterObjectNV;
14421   wglDXUnregisterObjectNV : TwglDXUnregisterObjectNV;
14422   wglDXObjectAccessNV : TwglDXObjectAccessNV;
14423   wglDXLockObjectsNV : TwglDXLockObjectsNV;
14424   wglDXUnlockObjectsNV : TwglDXUnlockObjectsNV;
14425
14426   // WGL_OML_sync_control
14427   wglGetSyncValuesOML: TwglGetSyncValuesOML;
14428   wglGetMscRateOML: TwglGetMscRateOML;
14429   wglSwapBuffersMscOML: TwglSwapBuffersMscOML;
14430   wglSwapLayerBuffersMscOML: TwglSwapLayerBuffersMscOML;
14431   wglWaitForMscOML: TwglWaitForMscOML;
14432   wglWaitForSbcOML: TwglWaitForSbcOML;
14433
14434   // WGL_3DL_stereo_control
14435   wglSetStereoEmitterState3DL: TwglSetStereoEmitterState3DL;
14436
14437   // WIN_draw_range_elements
14438   glDrawRangeElementsWIN: TglDrawRangeElementsWIN;
14439
14440   // WIN_swap_hint
14441   glAddSwapHintRectWIN: TglAddSwapHintRectWIN;
14442 {$ENDIF}
14443
14444 {$IFDEF DGL_LINUX}
14445   glXChooseVisual: TglXChooseVisual;
14446   glXCopyContext: TglXCopyContext;
14447   glXCreateContext: TglXCreateContext;
14448   glXCreateGLXPixmap: TglXCreateGLXPixmap;
14449   glXDestroyContext: TglXDestroyContext;
14450   glXDestroyGLXPixmap: TglXDestroyGLXPixmap;
14451   glXGetConfig: TglXGetConfig;
14452   glXGetCurrentContext: TglXGetCurrentContext;
14453   glXGetCurrentDrawable: TglXGetCurrentDrawable;
14454   glXIsDirect: TglXIsDirect;
14455   glXMakeCurrent: TglXMakeCurrent;
14456   glXQueryExtension: TglXQueryExtension;
14457   glXQueryVersion: TglXQueryVersion;
14458   glXSwapBuffers: TglXSwapBuffers;
14459   glXUseXFont: TglXUseXFont;
14460   glXWaitGL: TglXWaitGL;
14461   glXWaitX: TglXWaitX;
14462
14463   glXGetClientString: TglXGetClientString;
14464   glXQueryServerString: TglXQueryServerString;
14465   glXQueryExtensionsString: TglXQueryExtensionsString;
14466
14467   // GLX_VERSION_1_3
14468   glXGetFBConfigs: TglXGetFBConfigs;
14469   glXChooseFBConfig: TglXChooseFBConfig;
14470   glXGetFBConfigAttrib: TglXGetFBConfigAttrib;
14471   glXGetVisualFromFBConfig: TglXGetVisualFromFBConfig;
14472   glXCreateWindow: TglXCreateWindow;
14473   glXDestroyWindow: TglXDestroyWindow;
14474   glXCreatePixmap: TglXCreatePixmap;
14475
14476   glXDestroyPixmap: TglXDestroyPixmap;
14477   glXCreatePbuffer: TglXCreatePbuffer;
14478   glXDestroyPbuffer: TglXDestroyPbuffer;
14479   glXQueryDrawable: TglXQueryDrawable;
14480   glXCreateNewContext: TglXCreateNewContext;
14481   glXMakeContextCurrent: TglXMakeContextCurrent;
14482   glXGetCurrentReadDrawable: TglXGetCurrentReadDrawable;
14483   glXGetCurreentDisplay: TglXGetCurreentDisplay;
14484
14485   glXQueryContext: TglXQueryContext;
14486   glXSelectEvent: TglXSelectEvent;
14487   glXGetSelectedEvent: TglXGetSelectedEvent;
14488
14489   // GLX_VERSION_1_4
14490   glXGetProcAddress: TglXGetProcAddress;
14491
14492   // GLX_ARB_get_proc_address
14493   glXGetProcAddressARB: TglXGetProcAddressARB;
14494
14495   // GLX_ARB_create_context
14496   glXCreateContextAttribsARB: TglXCreateContextAttribsARB;
14497   
14498   // GLX_EXT_import_context
14499   glXGetCurrentDisplayEXT: TglXGetCurrentDisplayEXT;
14500   glXQueryContextInfoEXT: TglXQueryContextInfoEXT;
14501   glXGetContextIDEXT: TglXGetContextIDEXT;
14502   glXImportContextEXT: TglXImportContextEXT;
14503   glXFreeContextEXT: TglXFreeContextEXT;
14504   
14505   // GLX_EXT_texture_from_pixmap
14506   glXBindTexImageEXT: TglXBindTexImageEXT;
14507   glXReleaseTexImageEXT: TglXReleaseTexImageEXT;
14508 {$ENDIF}
14509
14510   // GL utility functions and procedures
14511   gluErrorString: TgluErrorString;
14512   gluGetString: TgluGetString;
14513   gluOrtho2D: TgluOrtho2D;
14514   gluPerspective: TgluPerspective;
14515   gluPickMatrix: TgluPickMatrix;
14516   gluLookAt: TgluLookAt;
14517   gluProject: TgluProject;
14518   gluUnProject: TgluUnProject;
14519   gluScaleImage: TgluScaleImage;
14520   gluBuild1DMipmaps: TgluBuild1DMipmaps;
14521   gluBuild2DMipmaps: TgluBuild2DMipmaps;
14522   gluNewQuadric: TgluNewQuadric;
14523   gluDeleteQuadric: TgluDeleteQuadric;
14524   gluQuadricNormals: TgluQuadricNormals;
14525   gluQuadricTexture: TgluQuadricTexture;
14526   gluQuadricOrientation: TgluQuadricOrientation;
14527   gluQuadricDrawStyle: TgluQuadricDrawStyle;
14528   gluCylinder: TgluCylinder;
14529   gluDisk: TgluDisk;
14530   gluPartialDisk: TgluPartialDisk;
14531   gluSphere: TgluSphere;
14532   gluQuadricCallback: TgluQuadricCallback;
14533   gluNewTess: TgluNewTess;
14534   gluDeleteTess: TgluDeleteTess;
14535   gluTessBeginPolygon: TgluTessBeginPolygon;
14536   gluTessBeginContour: TgluTessBeginContour;
14537   gluTessVertex: TgluTessVertex;
14538   gluTessEndContour: TgluTessEndContour;
14539   gluTessEndPolygon: TgluTessEndPolygon;
14540   gluTessProperty: TgluTessProperty;
14541   gluTessNormal: TgluTessNormal;
14542   gluTessCallback: TgluTessCallback;
14543   gluGetTessProperty: TgluGetTessProperty;
14544   gluNewNurbsRenderer: TgluNewNurbsRenderer;
14545   gluDeleteNurbsRenderer: TgluDeleteNurbsRenderer;
14546   gluBeginSurface: TgluBeginSurface;
14547   gluBeginCurve: TgluBeginCurve;
14548   gluEndCurve: TgluEndCurve;
14549   gluEndSurface: TgluEndSurface;
14550   gluBeginTrim: TgluBeginTrim;
14551   gluEndTrim: TgluEndTrim;
14552   gluPwlCurve: TgluPwlCurve;
14553   gluNurbsCurve: TgluNurbsCurve;
14554   gluNurbsSurface: TgluNurbsSurface;
14555   gluLoadSamplingMatrices: TgluLoadSamplingMatrices;
14556   gluNurbsProperty: TgluNurbsProperty;
14557   gluGetNurbsProperty: TgluGetNurbsProperty;
14558   gluNurbsCallback: TgluNurbsCallback;
14559   gluBeginPolygon: TgluBeginPolygon;
14560   gluNextContour: TgluNextContour;
14561   gluEndPolygon: TgluEndPolygon;
14562
14563
14564 type
14565   TRCOptions = set of (opDoubleBuffered, opGDI, opStereo);
14566
14567 var
14568   GL_LibHandle: Pointer = nil;
14569   GLU_LibHandle: Pointer = nil;
14570
14571   LastPixelFormat: Integer;
14572   ExtensionsRead: Boolean;
14573   ImplementationRead: Boolean;
14574
14575
14576 const
14577 {$IFDEF DGL_WIN}
14578   OPENGL_LIBNAME = 'OpenGL32.dll';
14579   GLU_LIBNAME = 'GLU32.dll';
14580 {$ELSE}
14581   {$IFDEF darwin}
14582     OPENGL_LIBNAME = 'libGL.dylib';
14583     GLU_LIBNAME = 'libGLU.dylib';
14584   {$ELSE}
14585     OPENGL_LIBNAME = 'libGL.so.1';
14586     GLU_LIBNAME = 'libGLU.so.1';
14587   {$ENDIF}
14588 {$ENDIF}
14589
14590 function InitOpenGL(LibName: String = OPENGL_LIBNAME; GLULibName: String = GLU_LIBNAME): Boolean;
14591
14592 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14593 function dglCheckExtension(Extension: AnsiString): Boolean;
14594
14595 procedure ReadExtensions;
14596 procedure ReadImplementationProperties;
14597
14598 // =============================================================================
14599 // Helper-Functions
14600 // =============================================================================
14601 {$IFDEF DGL_WIN}
14602   function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14603   function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14604   procedure DestroyRenderingContext(RC: HGLRC);
14605
14606   procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
14607   procedure DeactivateRenderingContext;
14608 {$ENDIF}
14609
14610
14611 procedure ReadOpenGLCore;
14612 procedure Read_GL_3DFX_tbuffer;
14613 procedure Read_GL_APPLE_element_array;
14614 procedure Read_GL_APPLE_fence;
14615 procedure Read_GL_APPLE_vertex_array_object;
14616 procedure Read_GL_APPLE_vertex_array_range;
14617 procedure Read_GL_APPLE_texture_range;
14618 procedure Read_GL_APPLE_vertex_program_evaluators;
14619 procedure Read_GL_APPLE_object_purgeable;
14620 procedure Read_GL_ARB_matrix_palette;
14621 procedure Read_GL_ARB_multitexture;
14622 procedure Read_GL_ARB_point_parameters;
14623 procedure Read_GL_ARB_texture_compression;
14624 procedure Read_GL_ARB_transpose_matrix;
14625 procedure Read_GL_ARB_vertex_blend;
14626 procedure Read_GL_ARB_vertex_buffer_object;
14627 procedure Read_GL_ARB_vertex_program;
14628 procedure Read_GL_ARB_window_pos;
14629 procedure Read_GL_ARB_color_buffer_float;
14630 procedure Read_GL_ARB_Shader_Objects;
14631 procedure Read_GL_ARB_occlusion_query;
14632 procedure Read_GL_ARB_draw_instanced;
14633 procedure Read_GL_ARB_framebuffer_object;
14634 procedure Read_GL_ARB_geometry_shader4;
14635 procedure Read_GL_ARB_instanced_arrays;
14636 procedure Read_GL_ARB_map_buffer_range;
14637 procedure Read_GL_ARB_texture_buffer_object;
14638 procedure Read_GL_ARB_vertex_array_object;
14639 procedure Read_GL_ARB_uniform_buffer_object;
14640 procedure Read_GL_ARB_copy_buffer;
14641 procedure Read_GL_ARB_draw_elements_base_vertex;
14642 procedure Read_GL_ARB_provoking_vertex;
14643 procedure Read_GL_ARB_sync;
14644 procedure Read_GL_ARB_texture_multisample;
14645 procedure Read_GL_ARB_draw_buffers_blend;
14646 procedure Read_GL_ARB_sample_shading;
14647 procedure Read_GL_ARB_shading_language_include;
14648 procedure Read_GL_ARB_blend_func_extended;
14649 procedure Read_GL_ARB_sampler_objects;
14650 procedure Read_GL_ARB_timer_query;
14651 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
14652 procedure Read_GL_ARB_draw_indirect;
14653 procedure Read_GL_ARB_gpu_shader_fp64;
14654 procedure Read_GL_ARB_shader_subroutine;
14655 procedure Read_GL_ARB_tessellation_shader;
14656 procedure Read_GL_ARB_transform_feedback2;
14657 procedure Read_GL_ARB_transform_feedback3;
14658 procedure Read_GL_ARB_ES2_compatibility;
14659 procedure Read_GL_ARB_get_program_binary;
14660 procedure Read_GL_ARB_separate_shader_objects;
14661 procedure Read_GL_ARB_vertex_attrib_64bit;
14662 procedure Read_GL_ARB_viewport_array;
14663 // GL 4.2
14664 procedure Read_GL_ARB_base_instance;
14665 procedure Read_GL_ARB_transform_feedback_instanced;
14666 procedure Read_GL_ARB_internalformat_query;
14667 procedure Read_GL_ARB_shader_atomic_counters;
14668 procedure Read_GL_ARB_shader_image_load_store;
14669 procedure Read_GL_ARB_texture_storage;
14670 // GL 4.3
14671 procedure Read_GL_KHR_debug;
14672 procedure Read_GL_ARB_clear_buffer_object;
14673 procedure Read_GL_ARB_compute_shader;
14674 procedure Read_GL_ARB_copy_image;
14675 procedure Read_GL_ARB_framebuffer_no_attachments;
14676 procedure Read_GL_ARB_internalformat_query2;
14677 procedure Read_GL_ARB_invalidate_subdata;
14678 procedure Read_GL_ARB_multi_draw_indirect;
14679 procedure Read_GL_ARB_program_interface_query;
14680 procedure Read_GL_ARB_shader_storage_buffer_object;
14681 procedure Read_GL_ARB_texture_buffer_range;
14682 procedure Read_GL_ARB_texture_storage_multisample;
14683 procedure Read_GL_ARB_texture_view;
14684 procedure Read_GL_ARB_vertex_attrib_binding;
14685
14686 // GL 4.4
14687 procedure Read_GL_4_4;
14688
14689 //
14690 procedure Read_GL_ARB_cl_event;
14691 procedure Read_GL_ARB_debug_output;
14692 procedure Read_GL_ARB_robustness;
14693 procedure Read_GL_ATI_draw_buffers;
14694 procedure Read_GL_ATI_element_array;
14695 procedure Read_GL_ATI_envmap_bumpmap;
14696 procedure Read_GL_ATI_fragment_shader;
14697 procedure Read_GL_ATI_map_object_buffer;
14698 procedure Read_GL_ATI_pn_triangles;
14699 procedure Read_GL_ATI_separate_stencil;
14700 procedure Read_GL_ATI_vertex_array_object;
14701 procedure Read_GL_ATI_vertex_attrib_array_object;
14702 procedure Read_GL_ATI_vertex_streams;
14703 procedure Read_GL_AMD_performance_monitor;
14704 procedure Read_GL_AMD_vertex_shader_tesselator;
14705 procedure Read_GL_AMD_draw_buffers_blend;
14706 procedure Read_GL_AMD_name_gen_delete;
14707 procedure Read_GL_AMD_debug_output;
14708 procedure Read_GL_EXT_blend_color;
14709 procedure Read_GL_EXT_blend_func_separate;
14710 procedure Read_GL_EXT_blend_minmax;
14711 procedure Read_GL_EXT_color_subtable;
14712 procedure Read_GL_EXT_compiled_vertex_array;
14713 procedure Read_GL_EXT_convolution;
14714 procedure Read_GL_EXT_coordinate_frame;
14715 procedure Read_GL_EXT_copy_texture;
14716 procedure Read_GL_EXT_cull_vertex;
14717 procedure Read_GL_EXT_draw_range_elements;
14718 procedure Read_GL_EXT_fog_coord;
14719 procedure Read_GL_EXT_framebuffer_object;
14720 procedure Read_GL_EXT_histogram;
14721 procedure Read_GL_EXT_index_func;
14722 procedure Read_GL_EXT_index_material;
14723 procedure Read_GL_EXT_multi_draw_arrays;
14724 procedure Read_GL_EXT_multisample;
14725 procedure Read_GL_EXT_paletted_texture;
14726 procedure Read_GL_EXT_pixel_transform;
14727 procedure Read_GL_EXT_point_parameters;
14728 procedure Read_GL_EXT_polygon_offset;
14729 procedure Read_GL_EXT_secondary_color;
14730 procedure Read_GL_EXT_stencil_two_side;
14731 procedure Read_GL_EXT_subtexture;
14732 procedure Read_GL_EXT_texture3D;
14733 procedure Read_GL_EXT_texture_object;
14734 procedure Read_GL_EXT_texture_perturb_normal;
14735 procedure Read_GL_EXT_vertex_array;
14736 procedure Read_GL_EXT_vertex_shader;
14737 procedure Read_GL_EXT_vertex_weighting;
14738 procedure Read_GL_EXT_depth_bounds_test;
14739 procedure Read_GL_EXT_blend_equation_separate;
14740 procedure Read_GL_EXT_stencil_clear_tag;
14741 procedure Read_GL_EXT_framebuffer_blit;
14742 procedure Read_GL_EXT_framebuffer_multisample;
14743 procedure Read_GL_EXT_timer_query;
14744 procedure Read_GL_EXT_gpu_program_parameters;
14745 procedure Read_GL_EXT_bindable_uniform;
14746 procedure Read_GL_EXT_draw_buffers2;
14747 procedure Read_GL_EXT_draw_instanced;
14748 procedure Read_GL_EXT_geometry_shader4;
14749 procedure Read_GL_EXT_gpu_shader4;
14750 procedure Read_GL_EXT_texture_array;
14751 procedure Read_GL_EXT_texture_buffer_object;
14752 procedure Read_GL_EXT_texture_integer;
14753 procedure Read_GL_EXT_transform_feedback;
14754 procedure Read_GL_EXT_direct_state_access;
14755 procedure Read_GL_EXT_separate_shader_objects;
14756 procedure Read_GL_EXT_shader_image_load_store;
14757 procedure Read_GL_EXT_vertex_attrib_64bit;
14758 procedure Read_GL_HP_image_transform;
14759 procedure Read_GL_IBM_multimode_draw_arrays;
14760 procedure Read_GL_IBM_vertex_array_lists;
14761 procedure Read_GL_INGR_blend_func_separate;
14762 procedure Read_GL_INTEL_parallel_arrays;
14763 procedure Read_GL_MESA_resize_buffers;
14764 procedure Read_GL_MESA_window_pos;
14765 procedure Read_GL_NV_evaluators;
14766 procedure Read_GL_NV_fence;
14767 procedure Read_GL_NV_fragment_program;
14768 procedure Read_GL_NV_half_float;
14769 procedure Read_GL_NV_occlusion_query;
14770 procedure Read_GL_NV_pixel_data_range;
14771 procedure Read_GL_NV_point_sprite;
14772 procedure Read_GL_NV_primitive_restart;
14773 procedure Read_GL_NV_register_combiners;
14774 procedure Read_GL_NV_register_combiners2;
14775 procedure Read_GL_NV_vertex_array_range;
14776 procedure Read_GL_NV_vertex_program;
14777 procedure Read_GL_NV_depth_buffer_float;
14778 procedure Read_GL_NV_framebuffer_multisample_coverage;
14779 procedure Read_GL_NV_geometry_program4;
14780 procedure Read_GL_NV_gpu_program4;
14781 procedure Read_GL_NV_parameter_buffer_object;
14782 procedure Read_GL_NV_transform_feedback;
14783 procedure Read_GL_NV_conditional_render;
14784 procedure Read_GL_NV_present_video;
14785 procedure Read_GL_NV_explicit_multisample;
14786 procedure Read_GL_NV_transform_feedback2;
14787 procedure Read_GL_NV_video_capture;
14788 procedure Read_GL_NV_copy_image;
14789 procedure Read_GL_NV_shader_buffer_load;
14790 procedure Read_GL_NV_vertex_buffer_unified_memory;
14791 procedure Read_GL_NV_gpu_program5;
14792 procedure Read_GL_NV_gpu_shader5;
14793 procedure Read_GL_NV_vertex_attrib_integer_64bit;
14794 procedure Read_GL_NV_vdpau_interop;
14795 procedure Read_GL_NV_texture_barrier;
14796 procedure Read_GL_PGI_misc_hints;
14797 procedure Read_GL_SGIS_detail_texture;
14798 procedure Read_GL_SGIS_fog_function;
14799 procedure Read_GL_SGIS_multisample;
14800 procedure Read_GL_SGIS_pixel_texture;
14801 procedure Read_GL_SGIS_point_parameters;
14802 procedure Read_GL_SGIS_sharpen_texture;
14803 procedure Read_GL_SGIS_texture4D;
14804 procedure Read_GL_SGIS_texture_color_mask;
14805 procedure Read_GL_SGIS_texture_filter4;
14806 procedure Read_GL_SGIX_async;
14807 procedure Read_GL_SGIX_flush_raster;
14808 procedure Read_GL_SGIX_fragment_lighting;
14809 procedure Read_GL_SGIX_framezoom;
14810 procedure Read_GL_SGIX_igloo_interface;
14811 procedure Read_GL_SGIX_instruments;
14812 procedure Read_GL_SGIX_list_priority;
14813 procedure Read_GL_SGIX_pixel_texture;
14814 procedure Read_GL_SGIX_polynomial_ffd;
14815 procedure Read_GL_SGIX_reference_plane;
14816 procedure Read_GL_SGIX_sprite;
14817 procedure Read_GL_SGIX_tag_sample_buffer;
14818 procedure Read_GL_SGI_color_table;
14819 procedure Read_GL_SUNX_constant_data;
14820 procedure Read_GL_SUN_global_alpha;
14821 procedure Read_GL_SUN_mesh_array;
14822 procedure Read_GL_SUN_triangle_list;
14823 procedure Read_GL_SUN_vertex;
14824
14825 {$IFDEF DGL_WIN}
14826 procedure Read_WGL_ARB_buffer_region;
14827 procedure Read_WGL_ARB_extensions_string;
14828 procedure Read_WGL_ARB_make_current_read;
14829 procedure Read_WGL_ARB_pbuffer;
14830 procedure Read_WGL_ARB_pixel_format;
14831 procedure Read_WGL_ARB_pixel_format_float;
14832 procedure Read_WGL_ARB_render_texture;
14833 procedure Read_WGL_ARB_create_context;
14834 procedure Read_WGL_AMD_gpu_association;
14835 procedure Read_WGL_EXT_display_color_table;
14836 procedure Read_WGL_EXT_extensions_string;
14837 procedure Read_WGL_EXT_make_current_read;
14838 procedure Read_WGL_EXT_pbuffer;
14839 procedure Read_WGL_EXT_pixel_format;
14840 procedure Read_WGL_EXT_swap_control;
14841 procedure Read_WGL_I3D_digital_video_control;
14842 procedure Read_WGL_I3D_gamma;
14843 procedure Read_WGL_I3D_genlock;
14844 procedure Read_WGL_I3D_image_buffer;
14845 procedure Read_WGL_I3D_swap_frame_lock;
14846 procedure Read_WGL_I3D_swap_frame_usage;
14847 procedure Read_WGL_NV_vertex_array_range;
14848 procedure Read_WGL_NV_present_video;
14849 procedure Read_WGL_NV_video_output;
14850 procedure Read_WGL_NV_swap_group;
14851 procedure Read_WGL_NV_gpu_affinity;
14852 procedure Read_WGL_NV_video_capture;
14853 procedure Read_WGL_NV_copy_image;
14854 procedure Read_WGL_OML_sync_control;
14855 procedure Read_WGL_3DL_stereo_control;
14856
14857 procedure Read_WIN_draw_range_elements;
14858 procedure Read_WIN_swap_hint;
14859 {$ENDIF}
14860
14861
14862 implementation
14863
14864
14865 {$IFDEF DGL_LINUX}
14866 const
14867   RTLD_LAZY = $001;
14868   RTLD_NOW = $002;
14869   RTLD_BINDING_MASK = $003;
14870
14871   // Seems to work on Debian / Fedora
14872   LibraryLib = {$IFDEF Linux} 'libdl.so.2'{$ELSE} 'c'{$ENDIF};
14873
14874 function dlopen(Name: PAnsiChar; Flags: LongInt): Pointer; cdecl; external LibraryLib name 'dlopen';
14875 function dlclose(Lib: Pointer): LongInt; cdecl; external LibraryLib name 'dlclose';
14876
14877 function dlsym(Lib: Pointer; Name: PAnsiChar): Pointer; cdecl; external LibraryLib name 'dlsym';
14878 {$ENDIF}
14879
14880 {$IFDEF DGL_MAC}{$IFDEF OPENGL_FRAMEWORK}  // OpenGL framework used
14881 const
14882   RTLD_DEFAULT = Pointer(-2);
14883 {$ENDIF}{$ENDIF}
14884
14885 function dglLoadLibrary(Name: PChar): Pointer;
14886 begin
14887   {$IFDEF DGL_WIN}
14888   Result := Pointer(LoadLibrary(Name));
14889   {$ENDIF}
14890
14891   {$IFDEF DGL_LINUX}
14892   Result := dlopen(Name, RTLD_LAZY);
14893   {$ENDIF}
14894   
14895   {$IFDEF DGL_MAC}
14896   {$IFDEF OPENGL_FRAMEWORK}
14897   Result := RTLD_DEFAULT;
14898   {$ELSE}
14899   Result := Pointer(LoadLibrary(Name));
14900   {$ENDIF}  
14901   {$ENDIF}  
14902 end;
14903
14904
14905 function dglFreeLibrary(LibHandle: Pointer): Boolean;
14906 begin
14907   if LibHandle = nil then
14908     Result := False
14909   else
14910     {$IFDEF DGL_WIN}
14911     Result := FreeLibrary(HMODULE(LibHandle));
14912     {$ENDIF}
14913
14914     {$IFDEF DGL_LINUX}
14915     Result := dlclose(LibHandle) = 0;
14916     {$ENDIF}
14917         
14918     {$IFDEF DGL_MAC}
14919     {$IFDEF OPENGL_FRAMEWORK}
14920         Result := true;
14921         {$ELSE}
14922     Result := FreeLibrary(HMODULE(LibHandle));
14923     {$ENDIF}    
14924         {$ENDIF}
14925 end;
14926
14927
14928 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14929 begin
14930   if LibHandle = nil then
14931     LibHandle := GL_LibHandle;
14932
14933   {$IFDEF DGL_WIN}
14934     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14935
14936     if result <> nil then
14937       exit;
14938
14939     if Addr(wglGetProcAddress) <> nil then
14940       Result := wglGetProcAddress(ProcName);
14941   {$ENDIF}
14942
14943   {$IFDEF DGL_LINUX}
14944     if not ForceDLSym then begin
14945       if Addr(glXGetProcAddress) <> nil then
14946         Result := glXGetProcAddress(ProcName);
14947
14948       if result <> nil then
14949         exit;
14950
14951       if Addr(glXGetProcAddressARB) <> nil then
14952         Result := glXGetProcAddressARB(ProcName);
14953
14954       if result <> nil then
14955         exit;
14956     end;
14957
14958     Result := dlsym(LibHandle, ProcName);
14959   {$ENDIF}
14960   
14961   {$IFDEF DGL_MAC}
14962     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14963   {$ENDIF}  
14964 end;
14965
14966
14967 function Int_GetExtensionString: AnsiString;
14968 var
14969         ExtensionCount : GLuint;
14970   i : Integer;
14971 begin
14972   if GL_VERSION_3_0
14973     then
14974       begin
14975         if not Assigned(@glGetIntegerv) then glGetIntegerv := dglGetProcAddress('glGetIntegerv');
14976         if not Assigned(@glGetStringi)  then glGetStringi  := dglGetProcAddress('glGetStringi');
14977
14978         result := '';
14979
14980         if Assigned(@glGetIntegerv) and Assigned(@glGetStringi)
14981           then
14982             begin
14983               glGetIntegerv(GL_NUM_EXTENSIONS, @extensionCount);
14984
14985               For I := 0 to extensionCount - 1 do
14986                 result := result + #32 + PAnsiChar(glGetStringi(GL_EXTENSIONS, I));
14987             end;
14988       end
14989     else
14990       begin
14991         if not Assigned(@glGetString) then glGetString := dglGetProcAddress('glGetString');
14992
14993         if Assigned(@glGetString)
14994           then result := glGetString(GL_EXTENSIONS)
14995           else result := '';
14996       end;
14997
14998   if (GL_LibHandle <> nil) then begin
14999     {$IFDEF DGL_WIN}
15000       // wglGetExtensionsStringEXT
15001       if not Assigned(@wglGetExtensionsStringEXT) then
15002         wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
15003
15004       if Assigned(@wglGetExtensionsStringEXT) then
15005         Result := Result + #32 + wglGetExtensionsStringEXT;
15006
15007       // wglGetExtensionsStringARB
15008       if not Assigned(@wglGetExtensionsStringARB) then
15009         wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
15010
15011       if Assigned(@wglGetExtensionsStringARB) then
15012         Result := Result + #32 + wglGetExtensionsStringARB(wglGetCurrentDC);
15013     {$ENDIF}
15014   end;
15015
15016   Result := #32 + Result + #32;
15017 end;
15018
15019
15020 function Int_CheckExtension(AllExtensions, CheckExtension: AnsiString): Boolean;
15021 begin
15022   Result := Pos(#32 + CheckExtension + #32, AllExtensions) > 0;
15023 end;
15024
15025
15026 function dglCheckExtension(Extension: AnsiString): Boolean;
15027 var
15028   Extensions: AnsiString;
15029 begin
15030   Extensions := Int_GetExtensionString;
15031   Result := Int_CheckExtension(Extensions, Extension);
15032 end;
15033
15034
15035
15036 function InitOpenGL(LibName: String; GLULibName: String): Boolean;
15037 begin
15038   Result := False;
15039
15040   // free opened libraries
15041   if GL_LibHandle <> nil then
15042     dglFreeLibrary(GL_LibHandle);
15043
15044   if GLU_LibHandle <> nil then
15045     dglFreeLibrary(GLU_LibHandle);
15046
15047   // load library
15048   GL_LibHandle := dglLoadLibrary(PChar(LibName));
15049   GLU_LibHandle := dglLoadLibrary(PChar(GLULibName));
15050
15051   // load GL functions
15052   if (GL_LibHandle <> nil) then begin
15053     {$IFDEF DGL_WIN}
15054       wglCopyContext := dglGetProcAddress('wglCopyContext');
15055       wglCreateLayerContext := dglGetProcAddress('wglCreateLayerContext');
15056       wglCreateContext := dglGetProcAddress('wglCreateContext');
15057       wglDeleteContext := dglGetProcAddress('wglDeleteContext');
15058       wglDescribeLayerPlane := dglGetProcAddress('wglDescribeLayerPlane');
15059       wglGetCurrentContext := dglGetProcAddress('wglGetCurrentContext');
15060       wglGetCurrentDC := dglGetProcAddress('wglGetCurrentDC');
15061       wglGetLayerPaletteEntries := dglGetProcAddress('wglGetLayerPaletteEntries');
15062       wglGetProcAddress := dglGetProcAddress('wglGetProcAddress');
15063       wglMakeCurrent := dglGetProcAddress('wglMakeCurrent');
15064       wglRealizeLayerPalette := dglGetProcAddress('wglRealizeLayerPalette');
15065       wglSetLayerPaletteEntries := dglGetProcAddress('wglSetLayerPaletteEntries');
15066       wglShareLists := dglGetProcAddress('wglShareLists');
15067       wglSwapLayerBuffers := dglGetProcAddress('wglSwapLayerBuffers');
15068       wglSwapMultipleBuffers := dglGetProcAddress('wglSwapMultipleBuffers');
15069       wglUseFontBitmapsA := dglGetProcAddress('wglUseFontBitmapsA');
15070       wglUseFontOutlinesA := dglGetProcAddress('wglUseFontOutlinesA');
15071       wglUseFontBitmapsW := dglGetProcAddress('wglUseFontBitmapsW');
15072       wglUseFontOutlinesW := dglGetProcAddress('wglUseFontOutlinesW');
15073       wglUseFontBitmaps := dglGetProcAddress('wglUseFontBitmapsA');
15074       wglUseFontOutlines := dglGetProcAddress('wglUseFontOutlinesA');
15075     {$ENDIF}
15076
15077     {$IFDEF DGL_LINUX}
15078       // GLX_VERSION_1_4 (needs to be first)
15079       glXGetProcAddress := dglGetProcAddress('glXGetProcAddress', nil, True);
15080
15081       // GLX_ARB_get_proc_address  (also needs to be first)
15082       glXGetProcAddressARB := dglGetProcAddress('glXGetProcAddressARB', nil, True);
15083
15084       glXChooseVisual := dglGetProcAddress('glXChooseVisual');
15085       glXCopyContext := dglGetProcAddress('glXCopyContext');
15086       glXCreateContext := dglGetProcAddress('glXCreateContext');
15087       glXCreateGLXPixmap := dglGetProcAddress('glXCreateGLXPixmap');
15088       glXDestroyContext := dglGetProcAddress('glXDestroyContext');
15089       glXDestroyGLXPixmap := dglGetProcAddress('glXDestroyGLXPixmap');
15090       glXGetConfig := dglGetProcAddress('glXGetConfig');
15091       glXGetCurrentContext := dglGetProcAddress('glXGetCurrentContext');
15092       glXGetCurrentDrawable := dglGetProcAddress('glXGetCurrentDrawable');
15093       glXIsDirect := dglGetProcAddress('glXIsDirect');
15094       glXMakeCurrent := dglGetProcAddress('glXMakeCurrent');
15095       glXQueryExtension := dglGetProcAddress('glXQueryExtension');
15096       glXQueryVersion := dglGetProcAddress('glXQueryVersion');
15097       glXSwapBuffers := dglGetProcAddress('glXSwapBuffers');
15098       glXUseXFont := dglGetProcAddress('glXUseXFont');
15099       glXWaitGL := dglGetProcAddress('glXWaitGL');
15100       glXWaitX := dglGetProcAddress('glXWaitX');
15101
15102       glXGetClientString := dglGetProcAddress('glXGetClientString');
15103       glXQueryServerString := dglGetProcAddress('glXQueryServerString');
15104       glXQueryExtensionsString := dglGetProcAddress('glXQueryExtensionsString');
15105
15106       // GLX_VERSION_1_3
15107       glXGetFBConfigs := dglGetProcAddress('glXGetFBConfigs');
15108       glXChooseFBConfig := dglGetProcAddress('glXChooseFBConfig');
15109       glXGetFBConfigAttrib := dglGetProcAddress('glXGetFBConfigAttrib');
15110       glXGetVisualFromFBConfig := dglGetProcAddress('glXGetVisualFromFBConfig');
15111       glXCreateWindow := dglGetProcAddress('glXCreateWindow');
15112       glXDestroyWindow := dglGetProcAddress('glXDestroyWindow');
15113       glXCreatePixmap := dglGetProcAddress('glXCreatePixmap');
15114
15115       glXDestroyPixmap := dglGetProcAddress('glXDestroyPixmap');
15116       glXCreatePbuffer := dglGetProcAddress('glXCreatePbuffer');
15117       glXDestroyPbuffer := dglGetProcAddress('glXDestroyPbuffer');
15118       glXQueryDrawable := dglGetProcAddress('glXQueryDrawable');
15119       glXCreateNewContext := dglGetProcAddress('glXCreateNewContext');
15120       glXMakeContextCurrent := dglGetProcAddress('glXMakeContextCurrent');
15121       glXGetCurrentReadDrawable := dglGetProcAddress('glXGetCurrentReadDrawable');
15122       glXGetCurreentDisplay := dglGetProcAddress('glXGetCurreentDisplay');
15123
15124       glXQueryContext := dglGetProcAddress('glXQueryContext');
15125       glXSelectEvent := dglGetProcAddress('glXSelectEvent');
15126       glXGetSelectedEvent := dglGetProcAddress('glXGetSelectedEvent');
15127
15128       // GLX_ARB_create_context
15129       glXCreateContextAttribsARB := dglGetProcAddress('glXCreateContextAttribsARB');
15130
15131       // GLX_EXT_import_context
15132       glXGetCurrentDisplayEXT := dglGetProcAddress('glXGetCurrentDisplayEXT');
15133       glXQueryContextInfoEXT := dglGetProcAddress('glXQueryContextInfoEXT');
15134       glXGetContextIDEXT := dglGetProcAddress('glXGetContextIDEXT');
15135       glXImportContextEXT := dglGetProcAddress('glXImportContextEXT');
15136       glXFreeContextEXT := dglGetProcAddress('glXFreeContextEXT');
15137       
15138       // GLX_EXT_texture_from_pixmap
15139       glXBindTexImageEXT := dglGetProcAddress('glXBindTexImageEXT');
15140       glXReleaseTexImageEXT := dglGetProcAddress('glXReleaseTexImageEXT');
15141     {$ENDIF}
15142
15143     Result := True;
15144   end;
15145
15146   // load GLU functions
15147   if GLU_LibHandle <> nil then begin
15148     // GLU ========================================================================
15149     gluBeginCurve := dglGetProcAddress('gluBeginCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15150     gluBeginPolygon := dglGetProcAddress('gluBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15151     gluBeginSurface := dglGetProcAddress('gluBeginSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15152     gluBeginTrim := dglGetProcAddress('gluBeginTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15153     gluBuild1DMipmaps := dglGetProcAddress('gluBuild1DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15154     gluBuild2DMipmaps := dglGetProcAddress('gluBuild2DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15155     gluCylinder := dglGetProcAddress('gluCylinder', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15156     gluDeleteNurbsRenderer := dglGetProcAddress('gluDeleteNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15157     gluDeleteQuadric := dglGetProcAddress('gluDeleteQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15158     gluDeleteTess := dglGetProcAddress('gluDeleteTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15159     gluDisk := dglGetProcAddress('gluDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15160     gluEndCurve := dglGetProcAddress('gluEndCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15161     gluEndPolygon := dglGetProcAddress('gluEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15162     gluEndSurface := dglGetProcAddress('gluEndSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15163     gluEndTrim := dglGetProcAddress('gluEndTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15164     gluErrorString := dglGetProcAddress('gluErrorString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15165     gluGetNurbsProperty := dglGetProcAddress('gluGetNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15166     gluGetString := dglGetProcAddress('gluGetString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15167     gluGetTessProperty := dglGetProcAddress('gluGetTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15168     gluLoadSamplingMatrices := dglGetProcAddress('gluLoadSamplingMatrices', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15169     gluLookAt := dglGetProcAddress('gluLookAt', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15170     gluNewNurbsRenderer := dglGetProcAddress('gluNewNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15171     gluNewQuadric := dglGetProcAddress('gluNewQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15172     gluNewTess := dglGetProcAddress('gluNewTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15173     gluNextContour := dglGetProcAddress('gluNextContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15174     gluNurbsCallback := dglGetProcAddress('gluNurbsCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15175     gluNurbsCurve := dglGetProcAddress('gluNurbsCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15176     gluNurbsProperty := dglGetProcAddress('gluNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15177     gluNurbsSurface := dglGetProcAddress('gluNurbsSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15178     gluOrtho2D := dglGetProcAddress('gluOrtho2D', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15179     gluPartialDisk := dglGetProcAddress('gluPartialDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15180     gluPerspective := dglGetProcAddress('gluPerspective', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15181     gluPickMatrix := dglGetProcAddress('gluPickMatrix', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15182     gluProject := dglGetProcAddress('gluProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15183     gluPwlCurve := dglGetProcAddress('gluPwlCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15184     gluQuadricCallback := dglGetProcAddress('gluQuadricCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15185     gluQuadricDrawStyle := dglGetProcAddress('gluQuadricDrawStyle', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15186     gluQuadricNormals := dglGetProcAddress('gluQuadricNormals', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15187     gluQuadricOrientation := dglGetProcAddress('gluQuadricOrientation', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15188     gluQuadricTexture := dglGetProcAddress('gluQuadricTexture', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15189     gluScaleImage := dglGetProcAddress('gluScaleImage', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15190     gluSphere := dglGetProcAddress('gluSphere', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15191     gluTessBeginContour := dglGetProcAddress('gluTessBeginContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15192     gluTessBeginPolygon := dglGetProcAddress('gluTessBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15193     gluTessCallback := dglGetProcAddress('gluTessCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15194     gluTessEndContour := dglGetProcAddress('gluTessEndContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15195     gluTessEndPolygon := dglGetProcAddress('gluTessEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15196     gluTessNormal := dglGetProcAddress('gluTessNormal', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15197     gluTessProperty := dglGetProcAddress('gluTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15198     gluTessVertex := dglGetProcAddress('gluTessVertex', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15199     gluUnProject := dglGetProcAddress('gluUnProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15200   end;
15201 end;
15202
15203 procedure ReadOpenGLCore;
15204 begin
15205   // GL_VERSION_1_0
15206   glCullFace := dglGetProcAddress('glCullFace');
15207   glFrontFace := dglGetProcAddress('glFrontFace');
15208   glHint := dglGetProcAddress('glHint');
15209   glLineWidth := dglGetProcAddress('glLineWidth');
15210   glPointSize := dglGetProcAddress('glPointSize');
15211   glPolygonMode := dglGetProcAddress('glPolygonMode');
15212   glScissor := dglGetProcAddress('glScissor');
15213   glTexParameterf := dglGetProcAddress('glTexParameterf');
15214   glTexParameterfv := dglGetProcAddress('glTexParameterfv');
15215   glTexParameteri := dglGetProcAddress('glTexParameteri');
15216   glTexParameteriv := dglGetProcAddress('glTexParameteriv');
15217   glTexImage1D := dglGetProcAddress('glTexImage1D');
15218   glTexImage2D := dglGetProcAddress('glTexImage2D');
15219   glDrawBuffer := dglGetProcAddress('glDrawBuffer');
15220   glClear := dglGetProcAddress('glClear');
15221   glClearColor := dglGetProcAddress('glClearColor');
15222   glClearStencil := dglGetProcAddress('glClearStencil');
15223   glClearDepth := dglGetProcAddress('glClearDepth');
15224   glStencilMask := dglGetProcAddress('glStencilMask');
15225   glColorMask := dglGetProcAddress('glColorMask');
15226   glDepthMask := dglGetProcAddress('glDepthMask');
15227   glDisable := dglGetProcAddress('glDisable');
15228   glEnable := dglGetProcAddress('glEnable');
15229   glFinish := dglGetProcAddress('glFinish');
15230   glFlush := dglGetProcAddress('glFlush');
15231   glBlendFunc := dglGetProcAddress('glBlendFunc');
15232   glLogicOp := dglGetProcAddress('glLogicOp');
15233   glStencilFunc := dglGetProcAddress('glStencilFunc');
15234   glStencilOp := dglGetProcAddress('glStencilOp');
15235   glDepthFunc := dglGetProcAddress('glDepthFunc');
15236   glPixelStoref := dglGetProcAddress('glPixelStoref');
15237   glPixelStorei := dglGetProcAddress('glPixelStorei');
15238   glReadBuffer := dglGetProcAddress('glReadBuffer');
15239   glReadPixels := dglGetProcAddress('glReadPixels');
15240   glGetBooleanv := dglGetProcAddress('glGetBooleanv');
15241   glGetDoublev := dglGetProcAddress('glGetDoublev');
15242   glGetError := dglGetProcAddress('glGetError');
15243   glGetFloatv := dglGetProcAddress('glGetFloatv');
15244   glGetIntegerv := dglGetProcAddress('glGetIntegerv');
15245   glGetString := dglGetProcAddress('glGetString');
15246   glGetTexImage := dglGetProcAddress('glGetTexImage');
15247   glGetTexParameteriv := dglGetProcAddress('glGetTexParameteriv');
15248   glGetTexParameterfv := dglGetProcAddress('glGetTexParameterfv');
15249   glGetTexLevelParameterfv := dglGetProcAddress('glGetTexLevelParameterfv');
15250   glGetTexLevelParameteriv := dglGetProcAddress('glGetTexLevelParameteriv');
15251   glIsEnabled := dglGetProcAddress('glIsEnabled');
15252   glDepthRange := dglGetProcAddress('glDepthRange');
15253   glViewport := dglGetProcAddress('glViewport');
15254
15255   // GL_VERSION_1_1
15256   glDrawArrays := dglGetProcAddress('glDrawArrays');
15257   glDrawElements := dglGetProcAddress('glDrawElements');
15258   glGetPointerv := dglGetProcAddress('glGetPointerv');
15259   glPolygonOffset := dglGetProcAddress('glPolygonOffset');
15260   glCopyTexImage1D := dglGetProcAddress('glCopyTexImage1D');
15261   glCopyTexImage2D := dglGetProcAddress('glCopyTexImage2D');
15262   glCopyTexSubImage1D := dglGetProcAddress('glCopyTexSubImage1D');
15263   glCopyTexSubImage2D := dglGetProcAddress('glCopyTexSubImage2D');
15264   glTexSubImage1D := dglGetProcAddress('glTexSubImage1D');
15265   glTexSubImage2D := dglGetProcAddress('glTexSubImage2D');
15266   glBindTexture := dglGetProcAddress('glBindTexture');
15267   glDeleteTextures := dglGetProcAddress('glDeleteTextures');
15268   glGenTextures := dglGetProcAddress('glGenTextures');
15269
15270 {$ifdef DGL_DEPRECATED}
15271   glAccum := dglGetProcAddress('glAccum');
15272   glAlphaFunc := dglGetProcAddress('glAlphaFunc');
15273   glAreTexturesResident := dglGetProcAddress('glAreTexturesResident');
15274   glArrayElement := dglGetProcAddress('glArrayElement');
15275   glBegin := dglGetProcAddress('glBegin');
15276   glBitmap := dglGetProcAddress('glBitmap');
15277   glCallList := dglGetProcAddress('glCallList');
15278   glCallLists := dglGetProcAddress('glCallLists');
15279   glClearAccum := dglGetProcAddress('glClearAccum');
15280   glClearIndex := dglGetProcAddress('glClearIndex');
15281   glClipPlane := dglGetProcAddress('glClipPlane');
15282   glColor3b := dglGetProcAddress('glColor3b');
15283   glColor3bv := dglGetProcAddress('glColor3bv');
15284   glColor3d := dglGetProcAddress('glColor3d');
15285   glColor3dv := dglGetProcAddress('glColor3dv');
15286   glColor3f := dglGetProcAddress('glColor3f');
15287   glColor3fv := dglGetProcAddress('glColor3fv');
15288   glColor3i := dglGetProcAddress('glColor3i');
15289   glColor3iv := dglGetProcAddress('glColor3iv');
15290   glColor3s := dglGetProcAddress('glColor3s');
15291   glColor3sv := dglGetProcAddress('glColor3sv');
15292   glColor3ub := dglGetProcAddress('glColor3ub');
15293   glColor3ubv := dglGetProcAddress('glColor3ubv');
15294   glColor3ui := dglGetProcAddress('glColor3ui');
15295   glColor3uiv := dglGetProcAddress('glColor3uiv');
15296   glColor3us := dglGetProcAddress('glColor3us');
15297   glColor3usv := dglGetProcAddress('glColor3usv');
15298   glColor4b := dglGetProcAddress('glColor4b');
15299   glColor4bv := dglGetProcAddress('glColor4bv');
15300   glColor4d := dglGetProcAddress('glColor4d');
15301   glColor4dv := dglGetProcAddress('glColor4dv');
15302   glColor4f := dglGetProcAddress('glColor4f');
15303   glColor4fv := dglGetProcAddress('glColor4fv');
15304   glColor4i := dglGetProcAddress('glColor4i');
15305   glColor4iv := dglGetProcAddress('glColor4iv');
15306   glColor4s := dglGetProcAddress('glColor4s');
15307   glColor4sv := dglGetProcAddress('glColor4sv');
15308   glColor4ub := dglGetProcAddress('glColor4ub');
15309   glColor4ubv := dglGetProcAddress('glColor4ubv');
15310   glColor4ui := dglGetProcAddress('glColor4ui');
15311   glColor4uiv := dglGetProcAddress('glColor4uiv');
15312   glColor4us := dglGetProcAddress('glColor4us');
15313   glColor4usv := dglGetProcAddress('glColor4usv');
15314   glColorMaterial := dglGetProcAddress('glColorMaterial');
15315   glColorPointer := dglGetProcAddress('glColorPointer');
15316   glCopyPixels := dglGetProcAddress('glCopyPixels');
15317   glDeleteLists := dglGetProcAddress('glDeleteLists');
15318   glDisableClientState := dglGetProcAddress('glDisableClientState');
15319   glDrawPixels := dglGetProcAddress('glDrawPixels');
15320   glEdgeFlag := dglGetProcAddress('glEdgeFlag');
15321   glEdgeFlagPointer := dglGetProcAddress('glEdgeFlagPointer');
15322   glEdgeFlagv := dglGetProcAddress('glEdgeFlagv');
15323   glEnableClientState := dglGetProcAddress('glEnableClientState');
15324   glEnd := dglGetProcAddress('glEnd');
15325   glEndList := dglGetProcAddress('glEndList');
15326   glEvalCoord1d := dglGetProcAddress('glEvalCoord1d');
15327   glEvalCoord1dv := dglGetProcAddress('glEvalCoord1dv');
15328   glEvalCoord1f := dglGetProcAddress('glEvalCoord1f');
15329   glEvalCoord1fv := dglGetProcAddress('glEvalCoord1fv');
15330   glEvalCoord2d := dglGetProcAddress('glEvalCoord2d');
15331   glEvalCoord2dv := dglGetProcAddress('glEvalCoord2dv');
15332   glEvalCoord2f := dglGetProcAddress('glEvalCoord2f');
15333   glEvalCoord2fv := dglGetProcAddress('glEvalCoord2fv');
15334   glEvalMesh1 := dglGetProcAddress('glEvalMesh1');
15335   glEvalMesh2 := dglGetProcAddress('glEvalMesh2');
15336   glEvalPoint1 := dglGetProcAddress('glEvalPoint1');
15337   glEvalPoint2 := dglGetProcAddress('glEvalPoint2');
15338   glFeedbackBuffer := dglGetProcAddress('glFeedbackBuffer');
15339   glFogf := dglGetProcAddress('glFogf');
15340   glFogfv := dglGetProcAddress('glFogfv');
15341   glFogi := dglGetProcAddress('glFogi');
15342   glFogiv := dglGetProcAddress('glFogiv');
15343   glFrustum := dglGetProcAddress('glFrustum');
15344   glGenLists := dglGetProcAddress('glGenLists');
15345   glGetClipPlane := dglGetProcAddress('glGetClipPlane');
15346   glGetLightfv := dglGetProcAddress('glGetLightfv');
15347   glGetLightiv := dglGetProcAddress('glGetLightiv');
15348   glGetMapdv := dglGetProcAddress('glGetMapdv');
15349   glGetMapfv := dglGetProcAddress('glGetMapfv');
15350   glGetMapiv := dglGetProcAddress('glGetMapiv');
15351   glGetMaterialfv := dglGetProcAddress('glGetMaterialfv');
15352   glGetMaterialiv := dglGetProcAddress('glGetMaterialiv');
15353   glGetPixelMapfv := dglGetProcAddress('glGetPixelMapfv');
15354   glGetPixelMapuiv := dglGetProcAddress('glGetPixelMapuiv');
15355   glGetPixelMapusv := dglGetProcAddress('glGetPixelMapusv');
15356   glGetPolygonStipple := dglGetProcAddress('glGetPolygonStipple');
15357   glGetTexEnvfv := dglGetProcAddress('glGetTexEnvfv');
15358   glGetTexEnviv := dglGetProcAddress('glGetTexEnviv');
15359   glGetTexGendv := dglGetProcAddress('glGetTexGendv');
15360   glGetTexGenfv := dglGetProcAddress('glGetTexGenfv');
15361   glGetTexGeniv := dglGetProcAddress('glGetTexGeniv');
15362   glIndexMask := dglGetProcAddress('glIndexMask');
15363   glIndexPointer := dglGetProcAddress('glIndexPointer');
15364   glIndexd := dglGetProcAddress('glIndexd');
15365   glIndexdv := dglGetProcAddress('glIndexdv');
15366   glIndexf := dglGetProcAddress('glIndexf');
15367   glIndexfv := dglGetProcAddress('glIndexfv');
15368   glIndexi := dglGetProcAddress('glIndexi');
15369   glIndexiv := dglGetProcAddress('glIndexiv');
15370   glIndexs := dglGetProcAddress('glIndexs');
15371   glIndexsv := dglGetProcAddress('glIndexsv');
15372   glIndexub := dglGetProcAddress('glIndexub');
15373   glIndexubv := dglGetProcAddress('glIndexubv');
15374   glInitNames := dglGetProcAddress('glInitNames');
15375   glInterleavedArrays := dglGetProcAddress('glInterleavedArrays');
15376   glIsList := dglGetProcAddress('glIsList');
15377   glIsTexture := dglGetProcAddress('glIsTexture');
15378   glLightModelf := dglGetProcAddress('glLightModelf');
15379   glLightModelfv := dglGetProcAddress('glLightModelfv');
15380   glLightModeli := dglGetProcAddress('glLightModeli');
15381   glLightModeliv := dglGetProcAddress('glLightModeliv');
15382   glLightf := dglGetProcAddress('glLightf');
15383   glLightfv := dglGetProcAddress('glLightfv');
15384   glLighti := dglGetProcAddress('glLighti');
15385   glLightiv := dglGetProcAddress('glLightiv');
15386   glLineStipple := dglGetProcAddress('glLineStipple');
15387   glListBase := dglGetProcAddress('glListBase');
15388   glLoadIdentity := dglGetProcAddress('glLoadIdentity');
15389   glLoadMatrixd := dglGetProcAddress('glLoadMatrixd');
15390   glLoadMatrixf := dglGetProcAddress('glLoadMatrixf');
15391   glLoadName := dglGetProcAddress('glLoadName');
15392   glMap1d := dglGetProcAddress('glMap1d');
15393   glMap1f := dglGetProcAddress('glMap1f');
15394   glMap2d := dglGetProcAddress('glMap2d');
15395   glMap2f := dglGetProcAddress('glMap2f');
15396   glMapGrid1d := dglGetProcAddress('glMapGrid1d');
15397   glMapGrid1f := dglGetProcAddress('glMapGrid1f');
15398   glMapGrid2d := dglGetProcAddress('glMapGrid2d');
15399   glMapGrid2f := dglGetProcAddress('glMapGrid2f');
15400   glMaterialf := dglGetProcAddress('glMaterialf');
15401   glMaterialfv := dglGetProcAddress('glMaterialfv');
15402   glMateriali := dglGetProcAddress('glMateriali');
15403   glMaterialiv := dglGetProcAddress('glMaterialiv');
15404   glMatrixMode := dglGetProcAddress('glMatrixMode');
15405   glMultMatrixd := dglGetProcAddress('glMultMatrixd');
15406   glMultMatrixf := dglGetProcAddress('glMultMatrixf');
15407   glNewList := dglGetProcAddress('glNewList');
15408   glNormal3b := dglGetProcAddress('glNormal3b');
15409   glNormal3bv := dglGetProcAddress('glNormal3bv');
15410   glNormal3d := dglGetProcAddress('glNormal3d');
15411   glNormal3dv := dglGetProcAddress('glNormal3dv');
15412   glNormal3f := dglGetProcAddress('glNormal3f');
15413   glNormal3fv := dglGetProcAddress('glNormal3fv');
15414   glNormal3i := dglGetProcAddress('glNormal3i');
15415   glNormal3iv := dglGetProcAddress('glNormal3iv');
15416   glNormal3s := dglGetProcAddress('glNormal3s');
15417   glNormal3sv := dglGetProcAddress('glNormal3sv');
15418   glNormalPointer := dglGetProcAddress('glNormalPointer');
15419   glOrtho := dglGetProcAddress('glOrtho');
15420   glPassThrough := dglGetProcAddress('glPassThrough');
15421   glPixelMapfv := dglGetProcAddress('glPixelMapfv');
15422   glPixelMapuiv := dglGetProcAddress('glPixelMapuiv');
15423   glPixelMapusv := dglGetProcAddress('glPixelMapusv');
15424   glPixelTransferf := dglGetProcAddress('glPixelTransferf');
15425   glPixelTransferi := dglGetProcAddress('glPixelTransferi');
15426   glPixelZoom := dglGetProcAddress('glPixelZoom');
15427   glPolygonStipple := dglGetProcAddress('glPolygonStipple');
15428   glPopAttrib := dglGetProcAddress('glPopAttrib');
15429   glPopClientAttrib := dglGetProcAddress('glPopClientAttrib');
15430   glPopMatrix := dglGetProcAddress('glPopMatrix');
15431   glPopName := dglGetProcAddress('glPopName');
15432   glPrioritizeTextures := dglGetProcAddress('glPrioritizeTextures');
15433   glPushAttrib := dglGetProcAddress('glPushAttrib');
15434   glPushClientAttrib := dglGetProcAddress('glPushClientAttrib');
15435   glPushMatrix := dglGetProcAddress('glPushMatrix');
15436   glPushName := dglGetProcAddress('glPushName');
15437   glRasterPos2d := dglGetProcAddress('glRasterPos2d');
15438   glRasterPos2dv := dglGetProcAddress('glRasterPos2dv');
15439   glRasterPos2f := dglGetProcAddress('glRasterPos2f');
15440   glRasterPos2fv := dglGetProcAddress('glRasterPos2fv');
15441   glRasterPos2i := dglGetProcAddress('glRasterPos2i');
15442   glRasterPos2iv := dglGetProcAddress('glRasterPos2iv');
15443   glRasterPos2s := dglGetProcAddress('glRasterPos2s');
15444   glRasterPos2sv := dglGetProcAddress('glRasterPos2sv');
15445   glRasterPos3d := dglGetProcAddress('glRasterPos3d');
15446   glRasterPos3dv := dglGetProcAddress('glRasterPos3dv');
15447   glRasterPos3f := dglGetProcAddress('glRasterPos3f');
15448   glRasterPos3fv := dglGetProcAddress('glRasterPos3fv');
15449   glRasterPos3i := dglGetProcAddress('glRasterPos3i');
15450   glRasterPos3iv := dglGetProcAddress('glRasterPos3iv');
15451   glRasterPos3s := dglGetProcAddress('glRasterPos3s');
15452   glRasterPos3sv := dglGetProcAddress('glRasterPos3sv');
15453   glRasterPos4d := dglGetProcAddress('glRasterPos4d');
15454   glRasterPos4dv := dglGetProcAddress('glRasterPos4dv');
15455   glRasterPos4f := dglGetProcAddress('glRasterPos4f');
15456   glRasterPos4fv := dglGetProcAddress('glRasterPos4fv');
15457   glRasterPos4i := dglGetProcAddress('glRasterPos4i');
15458   glRasterPos4iv := dglGetProcAddress('glRasterPos4iv');
15459   glRasterPos4s := dglGetProcAddress('glRasterPos4s');
15460   glRasterPos4sv := dglGetProcAddress('glRasterPos4sv');
15461   glRectd := dglGetProcAddress('glRectd');
15462   glRectdv := dglGetProcAddress('glRectdv');
15463   glRectf := dglGetProcAddress('glRectf');
15464   glRectfv := dglGetProcAddress('glRectfv');
15465   glRecti := dglGetProcAddress('glRecti');
15466   glRectiv := dglGetProcAddress('glRectiv');
15467   glRects := dglGetProcAddress('glRects');
15468   glRectsv := dglGetProcAddress('glRectsv');
15469   glRenderMode := dglGetProcAddress('glRenderMode');
15470   glRotated := dglGetProcAddress('glRotated');
15471   glRotatef := dglGetProcAddress('glRotatef');
15472   glScaled := dglGetProcAddress('glScaled');
15473   glScalef := dglGetProcAddress('glScalef');
15474   glSelectBuffer := dglGetProcAddress('glSelectBuffer');
15475   glShadeModel := dglGetProcAddress('glShadeModel');
15476   glTexCoord1d := dglGetProcAddress('glTexCoord1d');
15477   glTexCoord1dv := dglGetProcAddress('glTexCoord1dv');
15478   glTexCoord1f := dglGetProcAddress('glTexCoord1f');
15479   glTexCoord1fv := dglGetProcAddress('glTexCoord1fv');
15480   glTexCoord1i := dglGetProcAddress('glTexCoord1i');
15481   glTexCoord1iv := dglGetProcAddress('glTexCoord1iv');
15482   glTexCoord1s := dglGetProcAddress('glTexCoord1s');
15483   glTexCoord1sv := dglGetProcAddress('glTexCoord1sv');
15484   glTexCoord2d := dglGetProcAddress('glTexCoord2d');
15485   glTexCoord2dv := dglGetProcAddress('glTexCoord2dv');
15486   glTexCoord2f := dglGetProcAddress('glTexCoord2f');
15487   glTexCoord2fv := dglGetProcAddress('glTexCoord2fv');
15488   glTexCoord2i := dglGetProcAddress('glTexCoord2i');
15489   glTexCoord2iv := dglGetProcAddress('glTexCoord2iv');
15490   glTexCoord2s := dglGetProcAddress('glTexCoord2s');
15491   glTexCoord2sv := dglGetProcAddress('glTexCoord2sv');
15492   glTexCoord3d := dglGetProcAddress('glTexCoord3d');
15493   glTexCoord3dv := dglGetProcAddress('glTexCoord3dv');
15494   glTexCoord3f := dglGetProcAddress('glTexCoord3f');
15495   glTexCoord3fv := dglGetProcAddress('glTexCoord3fv');
15496   glTexCoord3i := dglGetProcAddress('glTexCoord3i');
15497   glTexCoord3iv := dglGetProcAddress('glTexCoord3iv');
15498   glTexCoord3s := dglGetProcAddress('glTexCoord3s');
15499   glTexCoord3sv := dglGetProcAddress('glTexCoord3sv');
15500   glTexCoord4d := dglGetProcAddress('glTexCoord4d');
15501   glTexCoord4dv := dglGetProcAddress('glTexCoord4dv');
15502   glTexCoord4f := dglGetProcAddress('glTexCoord4f');
15503   glTexCoord4fv := dglGetProcAddress('glTexCoord4fv');
15504   glTexCoord4i := dglGetProcAddress('glTexCoord4i');
15505   glTexCoord4iv := dglGetProcAddress('glTexCoord4iv');
15506   glTexCoord4s := dglGetProcAddress('glTexCoord4s');
15507   glTexCoord4sv := dglGetProcAddress('glTexCoord4sv');
15508   glTexCoordPointer := dglGetProcAddress('glTexCoordPointer');
15509   glTexEnvf := dglGetProcAddress('glTexEnvf');
15510   glTexEnvfv := dglGetProcAddress('glTexEnvfv');
15511   glTexEnvi := dglGetProcAddress('glTexEnvi');
15512   glTexEnviv := dglGetProcAddress('glTexEnviv');
15513   glTexGend := dglGetProcAddress('glTexGend');
15514   glTexGendv := dglGetProcAddress('glTexGendv');
15515   glTexGenf := dglGetProcAddress('glTexGenf');
15516   glTexGenfv := dglGetProcAddress('glTexGenfv');
15517   glTexGeni := dglGetProcAddress('glTexGeni');
15518   glTexGeniv := dglGetProcAddress('glTexGeniv');
15519   glTranslated := dglGetProcAddress('glTranslated');
15520   glTranslatef := dglGetProcAddress('glTranslatef');
15521   glVertex2d := dglGetProcAddress('glVertex2d');
15522   glVertex2dv := dglGetProcAddress('glVertex2dv');
15523   glVertex2f := dglGetProcAddress('glVertex2f');
15524   glVertex2fv := dglGetProcAddress('glVertex2fv');
15525   glVertex2i := dglGetProcAddress('glVertex2i');
15526   glVertex2iv := dglGetProcAddress('glVertex2iv');
15527   glVertex2s := dglGetProcAddress('glVertex2s');
15528   glVertex2sv := dglGetProcAddress('glVertex2sv');
15529   glVertex3d := dglGetProcAddress('glVertex3d');
15530   glVertex3dv := dglGetProcAddress('glVertex3dv');
15531   glVertex3f := dglGetProcAddress('glVertex3f');
15532   glVertex3fv := dglGetProcAddress('glVertex3fv');
15533   glVertex3i := dglGetProcAddress('glVertex3i');
15534   glVertex3iv := dglGetProcAddress('glVertex3iv');
15535   glVertex3s := dglGetProcAddress('glVertex3s');
15536   glVertex3sv := dglGetProcAddress('glVertex3sv');
15537   glVertex4d := dglGetProcAddress('glVertex4d');
15538   glVertex4dv := dglGetProcAddress('glVertex4dv');
15539   glVertex4f := dglGetProcAddress('glVertex4f');
15540   glVertex4fv := dglGetProcAddress('glVertex4fv');
15541   glVertex4i := dglGetProcAddress('glVertex4i');
15542   glVertex4iv := dglGetProcAddress('glVertex4iv');
15543   glVertex4s := dglGetProcAddress('glVertex4s');
15544   glVertex4sv := dglGetProcAddress('glVertex4sv');
15545   glVertexPointer := dglGetProcAddress('glVertexPointer');
15546 {$endif}
15547
15548   // GL_VERSION_1_2
15549   glBlendColor := dglGetProcAddress('glBlendColor');
15550   glBlendEquation := dglGetProcAddress('glBlendEquation');
15551   glDrawRangeElements := dglGetProcAddress('glDrawRangeElements');
15552   glTexImage3D := dglGetProcAddress('glTexImage3D');
15553   glTexSubImage3D := dglGetProcAddress('glTexSubImage3D');
15554   glCopyTexSubImage3D := dglGetProcAddress('glCopyTexSubImage3D');
15555 {$ifdef DGL_DEPRECATED}
15556   glColorTable := dglGetProcAddress('glColorTable');
15557   glColorTableParameterfv := dglGetProcAddress('glColorTableParameterfv');
15558   glColorTableParameteriv := dglGetProcAddress('glColorTableParameteriv');
15559   glCopyColorTable := dglGetProcAddress('glCopyColorTable');
15560   glGetColorTable := dglGetProcAddress('glGetColorTable');
15561   glGetColorTableParameterfv := dglGetProcAddress('glGetColorTableParameterfv');
15562   glGetColorTableParameteriv := dglGetProcAddress('glGetColorTableParameteriv');
15563   glColorSubTable := dglGetProcAddress('glColorSubTable');
15564   glCopyColorSubTable := dglGetProcAddress('glCopyColorSubTable');
15565   glConvolutionFilter1D := dglGetProcAddress('glConvolutionFilter1D');
15566   glConvolutionFilter2D := dglGetProcAddress('glConvolutionFilter2D');
15567   glConvolutionParameterf := dglGetProcAddress('glConvolutionParameterf');
15568   glConvolutionParameterfv := dglGetProcAddress('glConvolutionParameterfv');
15569   glConvolutionParameteri := dglGetProcAddress('glConvolutionParameteri');
15570   glConvolutionParameteriv := dglGetProcAddress('glConvolutionParameteriv');
15571   glCopyConvolutionFilter1D := dglGetProcAddress('glCopyConvolutionFilter1D');
15572   glCopyConvolutionFilter2D := dglGetProcAddress('glCopyConvolutionFilter2D');
15573   glGetConvolutionFilter := dglGetProcAddress('glGetConvolutionFilter');
15574   glGetConvolutionParameterfv := dglGetProcAddress('glGetConvolutionParameterfv');
15575   glGetConvolutionParameteriv := dglGetProcAddress('glGetConvolutionParameteriv');
15576   glGetSeparableFilter := dglGetProcAddress('glGetSeparableFilter');
15577   glSeparableFilter2D := dglGetProcAddress('glSeparableFilter2D');
15578   glGetHistogram := dglGetProcAddress('glGetHistogram');
15579   glGetHistogramParameterfv := dglGetProcAddress('glGetHistogramParameterfv');
15580   glGetHistogramParameteriv := dglGetProcAddress('glGetHistogramParameteriv');
15581   glGetMinmax := dglGetProcAddress('glGetMinmax');
15582   glGetMinmaxParameterfv := dglGetProcAddress('glGetMinmaxParameterfv');
15583   glGetMinmaxParameteriv := dglGetProcAddress('glGetMinmaxParameteriv');
15584   glHistogram := dglGetProcAddress('glHistogram');
15585   glMinmax := dglGetProcAddress('glMinmax');
15586   glResetHistogram := dglGetProcAddress('glResetHistogram');
15587   glResetMinmax := dglGetProcAddress('glResetMinmax');
15588 {$endif}
15589
15590   // GL_VERSION_1_3
15591   glActiveTexture := dglGetProcAddress('glActiveTexture');
15592   glSampleCoverage := dglGetProcAddress('glSampleCoverage');
15593   glCompressedTexImage3D := dglGetProcAddress('glCompressedTexImage3D');
15594   glCompressedTexImage2D := dglGetProcAddress('glCompressedTexImage2D');
15595   glCompressedTexImage1D := dglGetProcAddress('glCompressedTexImage1D');
15596   glCompressedTexSubImage3D := dglGetProcAddress('glCompressedTexSubImage3D');
15597   glCompressedTexSubImage2D := dglGetProcAddress('glCompressedTexSubImage2D');
15598   glCompressedTexSubImage1D := dglGetProcAddress('glCompressedTexSubImage1D');
15599   glGetCompressedTexImage := dglGetProcAddress('glGetCompressedTexImage');
15600 {$ifdef DGL_DEPRECATED}
15601   glClientActiveTexture := dglGetProcAddress('glClientActiveTexture');
15602   glMultiTexCoord1d := dglGetProcAddress('glMultiTexCoord1d');
15603   glMultiTexCoord1dv := dglGetProcAddress('glMultiTexCoord1dv');
15604   glMultiTexCoord1f := dglGetProcAddress('glMultiTexCoord1f');
15605   glMultiTexCoord1fv := dglGetProcAddress('glMultiTexCoord1fv');
15606   glMultiTexCoord1i := dglGetProcAddress('glMultiTexCoord1i');
15607   glMultiTexCoord1iv := dglGetProcAddress('glMultiTexCoord1iv');
15608   glMultiTexCoord1s := dglGetProcAddress('glMultiTexCoord1s');
15609   glMultiTexCoord1sv := dglGetProcAddress('glMultiTexCoord1sv');
15610   glMultiTexCoord2d := dglGetProcAddress('glMultiTexCoord2d');
15611   glMultiTexCoord2dv := dglGetProcAddress('glMultiTexCoord2dv');
15612   glMultiTexCoord2f := dglGetProcAddress('glMultiTexCoord2f');
15613   glMultiTexCoord2fv := dglGetProcAddress('glMultiTexCoord2fv');
15614   glMultiTexCoord2i := dglGetProcAddress('glMultiTexCoord2i');
15615   glMultiTexCoord2iv := dglGetProcAddress('glMultiTexCoord2iv');
15616   glMultiTexCoord2s := dglGetProcAddress('glMultiTexCoord2s');
15617   glMultiTexCoord2sv := dglGetProcAddress('glMultiTexCoord2sv');
15618   glMultiTexCoord3d := dglGetProcAddress('glMultiTexCoord3d');
15619   glMultiTexCoord3dv := dglGetProcAddress('glMultiTexCoord3dv');
15620   glMultiTexCoord3f := dglGetProcAddress('glMultiTexCoord3f');
15621   glMultiTexCoord3fv := dglGetProcAddress('glMultiTexCoord3fv');
15622   glMultiTexCoord3i := dglGetProcAddress('glMultiTexCoord3i');
15623   glMultiTexCoord3iv := dglGetProcAddress('glMultiTexCoord3iv');
15624   glMultiTexCoord3s := dglGetProcAddress('glMultiTexCoord3s');
15625   glMultiTexCoord3sv := dglGetProcAddress('glMultiTexCoord3sv');
15626   glMultiTexCoord4d := dglGetProcAddress('glMultiTexCoord4d');
15627   glMultiTexCoord4dv := dglGetProcAddress('glMultiTexCoord4dv');
15628   glMultiTexCoord4f := dglGetProcAddress('glMultiTexCoord4f');
15629   glMultiTexCoord4fv := dglGetProcAddress('glMultiTexCoord4fv');
15630   glMultiTexCoord4i := dglGetProcAddress('glMultiTexCoord4i');
15631   glMultiTexCoord4iv := dglGetProcAddress('glMultiTexCoord4iv');
15632   glMultiTexCoord4s := dglGetProcAddress('glMultiTexCoord4s');
15633   glMultiTexCoord4sv := dglGetProcAddress('glMultiTexCoord4sv');
15634   glLoadTransposeMatrixf := dglGetProcAddress('glLoadTransposeMatrixf');
15635   glLoadTransposeMatrixd := dglGetProcAddress('glLoadTransposeMatrixd');
15636   glMultTransposeMatrixf := dglGetProcAddress('glMultTransposeMatrixf');
15637   glMultTransposeMatrixd := dglGetProcAddress('glMultTransposeMatrixd');
15638 {$endif}
15639
15640   // GL_VERSION_1_4
15641   glBlendFuncSeparate := dglGetProcAddress('glBlendFuncSeparate');
15642   glMultiDrawArrays := dglGetProcAddress('glMultiDrawArrays');
15643   glMultiDrawElements := dglGetProcAddress('glMultiDrawElements');
15644   glPointParameterf := dglGetProcAddress('glPointParameterf');
15645   glPointParameterfv := dglGetProcAddress('glPointParameterfv');
15646   glPointParameteri := dglGetProcAddress('glPointParameteri');
15647   glPointParameteriv := dglGetProcAddress('glPointParameteriv');
15648 {$ifdef DGL_DEPRECATED}
15649   glFogCoordf := dglGetProcAddress('glFogCoordf');
15650   glFogCoordfv := dglGetProcAddress('glFogCoordfv');
15651   glFogCoordd := dglGetProcAddress('glFogCoordd');
15652   glFogCoorddv := dglGetProcAddress('glFogCoorddv');
15653   glFogCoordPointer := dglGetProcAddress('glFogCoordPointer');
15654   glSecondaryColor3b := dglGetProcAddress('glSecondaryColor3b');
15655   glSecondaryColor3bv := dglGetProcAddress('glSecondaryColor3bv');
15656   glSecondaryColor3d := dglGetProcAddress('glSecondaryColor3d');
15657   glSecondaryColor3dv := dglGetProcAddress('glSecondaryColor3dv');
15658   glSecondaryColor3f := dglGetProcAddress('glSecondaryColor3f');
15659   glSecondaryColor3fv := dglGetProcAddress('glSecondaryColor3fv');
15660   glSecondaryColor3i := dglGetProcAddress('glSecondaryColor3i');
15661   glSecondaryColor3iv := dglGetProcAddress('glSecondaryColor3iv');
15662   glSecondaryColor3s := dglGetProcAddress('glSecondaryColor3s');
15663   glSecondaryColor3sv := dglGetProcAddress('glSecondaryColor3sv');
15664   glSecondaryColor3ub := dglGetProcAddress('glSecondaryColor3ub');
15665   glSecondaryColor3ubv := dglGetProcAddress('glSecondaryColor3ubv');
15666   glSecondaryColor3ui := dglGetProcAddress('glSecondaryColor3ui');
15667   glSecondaryColor3uiv := dglGetProcAddress('glSecondaryColor3uiv');
15668   glSecondaryColor3us := dglGetProcAddress('glSecondaryColor3us');
15669   glSecondaryColor3usv := dglGetProcAddress('glSecondaryColor3usv');
15670   glSecondaryColorPointer := dglGetProcAddress('glSecondaryColorPointer');
15671   glWindowPos2d := dglGetProcAddress('glWindowPos2d');
15672   glWindowPos2dv := dglGetProcAddress('glWindowPos2dv');
15673   glWindowPos2f := dglGetProcAddress('glWindowPos2f');
15674   glWindowPos2fv := dglGetProcAddress('glWindowPos2fv');
15675   glWindowPos2i := dglGetProcAddress('glWindowPos2i');
15676   glWindowPos2iv := dglGetProcAddress('glWindowPos2iv');
15677   glWindowPos2s := dglGetProcAddress('glWindowPos2s');
15678   glWindowPos2sv := dglGetProcAddress('glWindowPos2sv');
15679   glWindowPos3d := dglGetProcAddress('glWindowPos3d');
15680   glWindowPos3dv := dglGetProcAddress('glWindowPos3dv');
15681   glWindowPos3f := dglGetProcAddress('glWindowPos3f');
15682   glWindowPos3fv := dglGetProcAddress('glWindowPos3fv');
15683   glWindowPos3i := dglGetProcAddress('glWindowPos3i');
15684   glWindowPos3iv := dglGetProcAddress('glWindowPos3iv');
15685   glWindowPos3s := dglGetProcAddress('glWindowPos3s');
15686   glWindowPos3sv := dglGetProcAddress('glWindowPos3sv');
15687 {$endif}
15688
15689   // GL_VERSION_1_5
15690   glGenQueries := dglGetProcAddress('glGenQueries');
15691   glDeleteQueries := dglGetProcAddress('glDeleteQueries');
15692   glIsQuery := dglGetProcAddress('glIsQuery');
15693   glBeginQuery := dglGetProcAddress('glBeginQuery');
15694   glEndQuery := dglGetProcAddress('glEndQuery');
15695   glGetQueryiv := dglGetProcAddress('glGetQueryiv');
15696   glGetQueryObjectiv := dglGetProcAddress('glGetQueryObjectiv');
15697   glGetQueryObjectuiv := dglGetProcAddress('glGetQueryObjectuiv');
15698   glBindBuffer := dglGetProcAddress('glBindBuffer');
15699   glDeleteBuffers := dglGetProcAddress('glDeleteBuffers');
15700   glGenBuffers := dglGetProcAddress('glGenBuffers');
15701   glIsBuffer := dglGetProcAddress('glIsBuffer');
15702   glBufferData := dglGetProcAddress('glBufferData');
15703   glBufferSubData := dglGetProcAddress('glBufferSubData');
15704   glGetBufferSubData := dglGetProcAddress('glGetBufferSubData');
15705   glMapBuffer := dglGetProcAddress('glMapBuffer');
15706   glUnmapBuffer := dglGetProcAddress('glUnmapBuffer');
15707   glGetBufferParameteriv := dglGetProcAddress('glGetBufferParameteriv');
15708   glGetBufferPointerv := dglGetProcAddress('glGetBufferPointerv');
15709
15710   // GL_VERSION_2_0
15711   glBlendEquationSeparate := dglGetProcAddress('glBlendEquationSeparate');
15712   glDrawBuffers := dglGetProcAddress('glDrawBuffers');
15713   glStencilOpSeparate := dglGetProcAddress('glStencilOpSeparate');
15714   glStencilFuncSeparate := dglGetProcAddress('glStencilFuncSeparate');
15715   glStencilMaskSeparate := dglGetProcAddress('glStencilMaskSeparate');
15716   glAttachShader := dglGetProcAddress('glAttachShader');
15717   glBindAttribLocation := dglGetProcAddress('glBindAttribLocation');
15718   glCompileShader := dglGetProcAddress('glCompileShader');
15719   glCreateProgram := dglGetProcAddress('glCreateProgram');
15720   glCreateShader := dglGetProcAddress('glCreateShader');
15721   glDeleteProgram := dglGetProcAddress('glDeleteProgram');
15722   glDeleteShader := dglGetProcAddress('glDeleteShader');
15723   glDetachShader := dglGetProcAddress('glDetachShader');
15724   glDisableVertexAttribArray := dglGetProcAddress('glDisableVertexAttribArray');
15725   glEnableVertexAttribArray := dglGetProcAddress('glEnableVertexAttribArray');
15726   glGetActiveAttrib := dglGetProcAddress('glGetActiveAttrib');
15727   glGetActiveUniform := dglGetProcAddress('glGetActiveUniform');
15728   glGetAttachedShaders := dglGetProcAddress('glGetAttachedShaders');
15729   glGetAttribLocation := dglGetProcAddress('glGetAttribLocation');
15730   glGetProgramiv := dglGetProcAddress('glGetProgramiv');
15731   glGetProgramInfoLog := dglGetProcAddress('glGetProgramInfoLog');
15732   glGetShaderiv := dglGetProcAddress('glGetShaderiv');
15733   glGetShaderInfoLog := dglGetProcAddress('glGetShaderInfoLog');
15734   glGetShaderSource := dglGetProcAddress('glGetShaderSource');
15735   glGetUniformLocation := dglGetProcAddress('glGetUniformLocation');
15736   glGetUniformfv := dglGetProcAddress('glGetUniformfv');
15737   glGetUniformiv := dglGetProcAddress('glGetUniformiv');
15738   glGetVertexAttribfv := dglGetProcAddress('glGetVertexAttribfv');
15739   glGetVertexAttribiv := dglGetProcAddress('glGetVertexAttribiv');
15740   glGetVertexAttribPointerv := dglGetProcAddress('glGetVertexAttribPointerv');
15741   glIsProgram := dglGetProcAddress('glIsProgram');
15742   glIsShader := dglGetProcAddress('glIsShader');
15743   glLinkProgram := dglGetProcAddress('glLinkProgram');
15744   glShaderSource := dglGetProcAddress('glShaderSource');
15745   glUseProgram := dglGetProcAddress('glUseProgram');
15746   glUniform1f := dglGetProcAddress('glUniform1f');
15747   glUniform2f := dglGetProcAddress('glUniform2f');
15748   glUniform3f := dglGetProcAddress('glUniform3f');
15749   glUniform4f := dglGetProcAddress('glUniform4f');
15750   glUniform1i := dglGetProcAddress('glUniform1i');
15751   glUniform2i := dglGetProcAddress('glUniform2i');
15752   glUniform3i := dglGetProcAddress('glUniform3i');
15753   glUniform4i := dglGetProcAddress('glUniform4i');
15754   glUniform1fv := dglGetProcAddress('glUniform1fv');
15755   glUniform2fv := dglGetProcAddress('glUniform2fv');
15756   glUniform3fv := dglGetProcAddress('glUniform3fv');
15757   glUniform4fv := dglGetProcAddress('glUniform4fv');
15758   glUniform1iv := dglGetProcAddress('glUniform1iv');
15759   glUniform2iv := dglGetProcAddress('glUniform2iv');
15760   glUniform3iv := dglGetProcAddress('glUniform3iv');
15761   glUniform4iv := dglGetProcAddress('glUniform4iv');
15762   glUniformMatrix2fv := dglGetProcAddress('glUniformMatrix2fv');
15763   glUniformMatrix3fv := dglGetProcAddress('glUniformMatrix3fv');
15764   glUniformMatrix4fv := dglGetProcAddress('glUniformMatrix4fv');
15765   glValidateProgram := dglGetProcAddress('glValidateProgram');
15766   glVertexAttrib1d := dglGetProcAddress('glVertexAttrib1d');
15767   glVertexAttrib1dv := dglGetProcAddress('glVertexAttrib1dv');
15768   glVertexAttrib1f := dglGetProcAddress('glVertexAttrib1f');
15769   glVertexAttrib1fv := dglGetProcAddress('glVertexAttrib1fv');
15770   glVertexAttrib1s := dglGetProcAddress('glVertexAttrib1s');
15771   glVertexAttrib1sv := dglGetProcAddress('glVertexAttrib1sv');
15772   glVertexAttrib2d := dglGetProcAddress('glVertexAttrib2d');
15773   glVertexAttrib2dv := dglGetProcAddress('glVertexAttrib2dv');
15774   glVertexAttrib2f := dglGetProcAddress('glVertexAttrib2f');
15775   glVertexAttrib2fv := dglGetProcAddress('glVertexAttrib2fv');
15776   glVertexAttrib2s := dglGetProcAddress('glVertexAttrib2s');
15777   glVertexAttrib2sv := dglGetProcAddress('glVertexAttrib2sv');
15778   glVertexAttrib3d := dglGetProcAddress('glVertexAttrib3d');
15779   glVertexAttrib3dv := dglGetProcAddress('glVertexAttrib3dv');
15780   glVertexAttrib3f := dglGetProcAddress('glVertexAttrib3f');
15781   glVertexAttrib3fv := dglGetProcAddress('glVertexAttrib3fv');
15782   glVertexAttrib3s := dglGetProcAddress('glVertexAttrib3s');
15783   glVertexAttrib3sv := dglGetProcAddress('glVertexAttrib3sv');
15784   glVertexAttrib4Nbv := dglGetProcAddress('glVertexAttrib4Nbv');
15785   glVertexAttrib4Niv := dglGetProcAddress('glVertexAttrib4Niv');
15786   glVertexAttrib4Nsv := dglGetProcAddress('glVertexAttrib4Nsv');
15787   glVertexAttrib4Nub := dglGetProcAddress('glVertexAttrib4Nub');
15788   glVertexAttrib4Nubv := dglGetProcAddress('glVertexAttrib4Nubv');
15789   glVertexAttrib4Nuiv := dglGetProcAddress('glVertexAttrib4Nuiv');
15790   glVertexAttrib4Nusv := dglGetProcAddress('glVertexAttrib4Nusv');
15791   glVertexAttrib4bv := dglGetProcAddress('glVertexAttrib4bv');
15792   glVertexAttrib4d := dglGetProcAddress('glVertexAttrib4d');
15793   glVertexAttrib4dv := dglGetProcAddress('glVertexAttrib4dv');
15794   glVertexAttrib4f := dglGetProcAddress('glVertexAttrib4f');
15795   glVertexAttrib4fv := dglGetProcAddress('glVertexAttrib4fv');
15796   glVertexAttrib4iv := dglGetProcAddress('glVertexAttrib4iv');
15797   glVertexAttrib4s := dglGetProcAddress('glVertexAttrib4s');
15798   glVertexAttrib4sv := dglGetProcAddress('glVertexAttrib4sv');
15799   glVertexAttrib4ubv := dglGetProcAddress('glVertexAttrib4ubv');
15800   glVertexAttrib4uiv := dglGetProcAddress('glVertexAttrib4uiv');
15801   glVertexAttrib4usv := dglGetProcAddress('glVertexAttrib4usv');
15802   glVertexAttribPointer := dglGetProcAddress('glVertexAttribPointer');
15803
15804   // GL_VERSION_2_1
15805   glUniformMatrix2x3fv := dglGetProcAddress('glUniformMatrix2x3fv');
15806   glUniformMatrix3x2fv := dglGetProcAddress('glUniformMatrix3x2fv');
15807   glUniformMatrix2x4fv := dglGetProcAddress('glUniformMatrix2x4fv');
15808   glUniformMatrix4x2fv := dglGetProcAddress('glUniformMatrix4x2fv');
15809   glUniformMatrix3x4fv := dglGetProcAddress('glUniformMatrix3x4fv');
15810   glUniformMatrix4x3fv := dglGetProcAddress('glUniformMatrix4x3fv');
15811   
15812   // GL_VERSION_3_0
15813   { OpenGL 3.0 also reuses entry points from these extensions: }
15814   Read_GL_ARB_framebuffer_object;
15815   Read_GL_ARB_map_buffer_range;
15816   Read_GL_ARB_vertex_array_object;
15817
15818   glColorMaski := dglGetProcAddress('glColorMaski');
15819   glGetBooleani_v := dglGetProcAddress('glGetBooleani_v');
15820   glGetIntegeri_v := dglGetProcAddress('glGetIntegeri_v');
15821   glEnablei := dglGetProcAddress('glEnablei');
15822   glDisablei := dglGetProcAddress('glDisablei');
15823   glIsEnabledi := dglGetProcAddress('glIsEnabledi');
15824   glBeginTransformFeedback := dglGetProcAddress('glBeginTransformFeedback');
15825   glEndTransformFeedback := dglGetProcAddress('glEndTransformFeedback');
15826   glBindBufferRange := dglGetProcAddress('glBindBufferRange');
15827   glBindBufferBase := dglGetProcAddress('glBindBufferBase');
15828   glTransformFeedbackVaryings := dglGetProcAddress('glTransformFeedbackVaryings');
15829   glGetTransformFeedbackVarying := dglGetProcAddress('glGetTransformFeedbackVarying');
15830   glClampColor := dglGetProcAddress('glClampColor');
15831   glBeginConditionalRender := dglGetProcAddress('glBeginConditionalRender');
15832   glEndConditionalRender := dglGetProcAddress('glEndConditionalRender');
15833   glVertexAttribI1i := dglGetProcAddress('glVertexAttribI1i');
15834   glVertexAttribI2i := dglGetProcAddress('glVertexAttribI2i');
15835   glVertexAttribI3i := dglGetProcAddress('glVertexAttribI3i');
15836   glVertexAttribI4i := dglGetProcAddress('glVertexAttribI4i');
15837   glVertexAttribI1ui := dglGetProcAddress('glVertexAttribI1ui');
15838   glVertexAttribI2ui := dglGetProcAddress('glVertexAttribI2ui');
15839   glVertexAttribI3ui := dglGetProcAddress('glVertexAttribI3ui');
15840   glVertexAttribI4ui := dglGetProcAddress('glVertexAttribI4ui');
15841   glVertexAttribI1iv := dglGetProcAddress('glVertexAttribI1iv');
15842   glVertexAttribI2iv := dglGetProcAddress('glVertexAttribI2iv');
15843   glVertexAttribI3iv := dglGetProcAddress('glVertexAttribI3iv');
15844   glVertexAttribI4iv := dglGetProcAddress('glVertexAttribI4iv');
15845   glVertexAttribI1uiv := dglGetProcAddress('glVertexAttribI1uiv');
15846   glVertexAttribI2uiv := dglGetProcAddress('glVertexAttribI2uiv');
15847   glVertexAttribI3uiv := dglGetProcAddress('glVertexAttribI3uiv');
15848   glVertexAttribI4uiv := dglGetProcAddress('glVertexAttribI4uiv');
15849   glVertexAttribI4bv := dglGetProcAddress('glVertexAttribI4bv');
15850   glVertexAttribI4sv := dglGetProcAddress('glVertexAttribI4sv');
15851   glVertexAttribI4ubv := dglGetProcAddress('glVertexAttribI4ubv');
15852   glVertexAttribI4usv := dglGetProcAddress('glVertexAttribI4usv');
15853   glVertexAttribIPointer := dglGetProcAddress('glVertexAttribIPointer');
15854   glGetVertexAttribIiv := dglGetProcAddress('glGetVertexAttribIiv');
15855   glGetVertexAttribIuiv := dglGetProcAddress('glGetVertexAttribIuiv');
15856   glGetUniformuiv := dglGetProcAddress('glGetUniformuiv');
15857   glBindFragDataLocation := dglGetProcAddress('glBindFragDataLocation');
15858   glGetFragDataLocation := dglGetProcAddress('glGetFragDataLocation');
15859   glUniform1ui := dglGetProcAddress('glUniform1ui');
15860   glUniform2ui := dglGetProcAddress('glUniform2ui');
15861   glUniform3ui := dglGetProcAddress('glUniform3ui');
15862   glUniform4ui := dglGetProcAddress('glUniform4ui');
15863   glUniform1uiv := dglGetProcAddress('glUniform1uiv');
15864   glUniform2uiv := dglGetProcAddress('glUniform2uiv');
15865   glUniform3uiv := dglGetProcAddress('glUniform3uiv');
15866   glUniform4uiv := dglGetProcAddress('glUniform4uiv');
15867   glTexParameterIiv := dglGetProcAddress('glTexParameterIiv');
15868   glTexParameterIuiv := dglGetProcAddress('glTexParameterIuiv');
15869   glGetTexParameterIiv := dglGetProcAddress('glGetTexParameterIiv');
15870   glGetTexParameterIuiv := dglGetProcAddress('glGetTexParameterIuiv');
15871   glClearBufferiv := dglGetProcAddress('glClearBufferiv');
15872   glClearBufferuiv := dglGetProcAddress('glClearBufferuiv');
15873   glClearBufferfv := dglGetProcAddress('glClearBufferfv');
15874   glClearBufferfi := dglGetProcAddress('glClearBufferfi');
15875   glGetStringi := dglGetProcAddress('glGetStringi');
15876
15877   // GL_VERSION_2_1
15878   glEnableVertexArrayEXT := dglGetProcAddress('glEnableVertexArrayEXT');
15879   glEnableVertexArrayAttribEXT := dglGetProcAddress('glEnableVertexArrayAttribEXT');
15880   glVertexArrayVertexAttribOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribOffsetEXT');
15881
15882   // GL_VERSION_3_1
15883   { OpenGL 3.1 also reuses entry points from these extensions: }
15884   Read_GL_ARB_copy_buffer;
15885   Read_GL_ARB_uniform_buffer_object;
15886
15887   glDrawArraysInstanced := dglGetProcAddress('glDrawArraysInstanced');
15888   glDrawElementsInstanced := dglGetProcAddress('glDrawElementsInstanced');
15889   glTexBuffer := dglGetProcAddress('glTexBuffer');
15890   glPrimitiveRestartIndex := dglGetProcAddress('glPrimitiveRestartIndex');
15891
15892   // GL_VERSION_3_2
15893   { OpenGL 3.2 also reuses entry points from these extensions: }
15894   Read_GL_ARB_draw_elements_base_vertex;
15895   Read_GL_ARB_provoking_vertex;
15896   Read_GL_ARB_sync;
15897   Read_GL_ARB_texture_multisample;
15898
15899   glGetInteger64i_v := dglGetProcAddress('glGetInteger64i_v');
15900   glGetBufferParameteri64v := dglGetProcAddress('glGetBufferParameteri64v');
15901   glFramebufferTexture := dglGetProcAddress('glFramebufferTexture');
15902 //  glFramebufferTextureFace := dglGetProcAddress('glFramebufferTextureFace');
15903
15904   // GL_VERSION_3_3
15905   { OpenGL 3.3 also reuses entry points from these extensions: }
15906   Read_GL_ARB_blend_func_extended;
15907   Read_GL_ARB_sampler_objects;
15908   { ARB_explicit_attrib_location, but it has none }
15909   { ARB_occlusion_query2 (no entry points) }
15910   { ARB_shader_bit_encoding (no entry points) }
15911   { ARB_texture_rgb10_a2ui (no entry points) }
15912   { ARB_texture_swizzle (no entry points) }
15913   Read_GL_ARB_timer_query;
15914   Read_GL_ARB_vertex_type_2_10_10_10_rev;
15915
15916   glVertexAttribDivisor := dglGetProcAddress('glVertexAttribDivisor');
15917
15918   // GL_VERSION_4_0
15919   { OpenGL 4.0 also reuses entry points from these extensions: }
15920   { ARB_texture_query_lod (no entry points) }
15921   Read_GL_ARB_draw_indirect;
15922   { ARB_gpu_shader5 (no entry points) }
15923   Read_GL_ARB_gpu_shader_fp64;
15924   Read_GL_ARB_shader_subroutine;
15925   Read_GL_ARB_tessellation_shader;
15926   { ARB_texture_buffer_object_rgb32 (no entry points) }
15927   { ARB_texture_cube_map_array (no entry points) }
15928   { ARB_texture_gather (no entry points) }
15929   Read_GL_ARB_transform_feedback2;
15930   Read_GL_ARB_transform_feedback3;
15931
15932   glMinSampleShading := dglGetProcAddress('glMinSampleShading');
15933   glBlendEquationi := dglGetProcAddress('glBlendEquationi');
15934   glBlendEquationSeparatei := dglGetProcAddress('glBlendEquationSeparatei');
15935   glBlendFunci := dglGetProcAddress('glBlendFunci');
15936   glBlendFuncSeparatei := dglGetProcAddress('glBlendFuncSeparatei');
15937
15938   // GL_VERSION_4_1
15939   { OpenGL 4.1 also reuses entry points from these extensions: }
15940   Read_GL_ARB_ES2_compatibility;
15941   Read_GL_ARB_get_program_binary;
15942   Read_GL_ARB_separate_shader_objects;
15943   { ARB_shader_precision (no entry points) }
15944   Read_GL_ARB_vertex_attrib_64bit;
15945   Read_GL_ARB_viewport_array;
15946
15947   // GL_VERSION_4_2
15948   { OpenGL 4.2 reuses entry points from these extensions: }
15949   Read_GL_ARB_base_instance;
15950   //Read_GL_ARB_shading_language_420pack (no entry points)
15951   Read_GL_ARB_transform_feedback_instanced;
15952   //Read_GL_ARB_compressed_texture_pixel_storage (no entry points)
15953   //Read_GL_ARB_conservative_depth;
15954   Read_GL_ARB_internalformat_query;
15955   //Read_GL_ARB_map_buffer_alignment;
15956   Read_GL_ARB_shader_atomic_counters;
15957   Read_GL_ARB_shader_image_load_store;
15958   //Read_GL_ARB_shading_language_packing;
15959   Read_GL_ARB_texture_storage;
15960
15961   // GL_VERSION_4_3
15962   // OpenGL 4.3 reuses entry points from these extensions:
15963   // Read_GL_ARB_arrays_of_arrays (none, GLSL only) (no entry points)
15964   // Read_GL_ARB_fragment_layer_viewport (none, GLSL only) (no entry points)
15965   // Read_GL_ARB_shader_image_size (none, GLSL only) (no entry points)
15966   // Read_GL_ARB_ES3_compatibility (no entry points)
15967   Read_GL_ARB_clear_buffer_object;
15968   Read_GL_ARB_compute_shader;
15969   Read_GL_ARB_copy_image;
15970   Read_GL_KHR_debug;
15971   // Read_GL_ARB_explicit_uniform_location  (no entry points)
15972   Read_GL_ARB_framebuffer_no_attachments;
15973   Read_GL_ARB_internalformat_query2;
15974   Read_GL_ARB_invalidate_subdata;
15975   Read_GL_ARB_multi_draw_indirect;
15976   Read_GL_ARB_program_interface_query;
15977   // Read_GL_ARB_robust_buffer_access_behavior (none)  (no entry points)
15978   Read_GL_ARB_shader_storage_buffer_object;
15979   // Read_GL_ARB_stencil_texturing  (no entry points)
15980   Read_GL_ARB_texture_buffer_range;
15981   // Read_GL_ARB_texture_query_levels (none)  (no entry points)
15982   Read_GL_ARB_texture_storage_multisample;
15983   Read_GL_ARB_texture_view;
15984   Read_GL_ARB_vertex_attrib_binding;
15985
15986   // GL_VERSION_4_4
15987   //  Note (Due to Khronos' change in header conventions, no more single read_ functions)
15988   Read_GL_4_4;
15989 end;
15990
15991 procedure Read_GL_3DFX_tbuffer;
15992 begin
15993   glTbufferMask3DFX := dglGetProcAddress('glTbufferMask3DFX');
15994 end;
15995
15996 procedure Read_GL_APPLE_element_array;
15997 begin
15998   glElementPointerAPPLE := dglGetProcAddress('glElementPointerAPPLE');
15999   glDrawElementArrayAPPLE := dglGetProcAddress('glDrawElementArrayAPPLE');
16000   glDrawRangeElementArrayAPPLE := dglGetProcAddress('glDrawRangeElementArrayAPPLE');
16001   glMultiDrawElementArrayAPPLE := dglGetProcAddress('glMultiDrawElementArrayAPPLE');
16002   glMultiDrawRangeElementArrayAPPLE := dglGetProcAddress('glMultiDrawRangeElementArrayAPPLE');
16003 end;
16004
16005 procedure Read_GL_APPLE_fence;
16006 begin
16007   glGenFencesAPPLE := dglGetProcAddress('glGenFencesAPPLE');
16008   glDeleteFencesAPPLE := dglGetProcAddress('glDeleteFencesAPPLE');
16009   glSetFenceAPPLE := dglGetProcAddress('glSetFenceAPPLE');
16010   glIsFenceAPPLE := dglGetProcAddress('glIsFenceAPPLE');
16011   glTestFenceAPPLE := dglGetProcAddress('glTestFenceAPPLE');
16012   glFinishFenceAPPLE := dglGetProcAddress('glFinishFenceAPPLE');
16013   glTestObjectAPPLE := dglGetProcAddress('glTestObjectAPPLE');
16014   glFinishObjectAPPLE := dglGetProcAddress('glFinishObjectAPPLE');
16015 end;
16016
16017 procedure Read_GL_APPLE_vertex_array_object;
16018 begin
16019   glBindVertexArrayAPPLE := dglGetProcAddress('glBindVertexArrayAPPLE');
16020   glDeleteVertexArraysAPPLE := dglGetProcAddress('glDeleteVertexArraysAPPLE');
16021   glGenVertexArraysAPPLE := dglGetProcAddress('glGenVertexArraysAPPLE');
16022   glIsVertexArrayAPPLE := dglGetProcAddress('glIsVertexArrayAPPLE');
16023 end;
16024
16025 procedure Read_GL_APPLE_vertex_array_range;
16026 begin
16027   glVertexArrayRangeAPPLE := dglGetProcAddress('glVertexArrayRangeAPPLE');
16028   glFlushVertexArrayRangeAPPLE := dglGetProcAddress('glFlushVertexArrayRangeAPPLE');
16029   glVertexArrayParameteriAPPLE := dglGetProcAddress('glVertexArrayParameteriAPPLE');
16030 end;
16031
16032 procedure Read_GL_APPLE_texture_range;
16033 begin
16034   glTextureRangeAPPLE := dglGetProcAddress('glTextureRangeAPPLE');
16035   glGetTexParameterPointervAPPLE := dglGetProcAddress('glGetTexParameterPointervAPPLE');
16036 end;
16037
16038 procedure Read_GL_APPLE_vertex_program_evaluators;
16039 begin
16040   glEnableVertexAttribAPPLE := dglGetProcAddress('glEnableVertexAttribAPPLE');
16041   glDisableVertexAttribAPPLE := dglGetProcAddress('glDisableVertexAttribAPPLE');
16042   glIsVertexAttribEnabledAPPLE := dglGetProcAddress('glIsVertexAttribEnabledAPPLE');
16043   glMapVertexAttrib1dAPPLE := dglGetProcAddress('glMapVertexAttrib1dAPPLE');
16044   glMapVertexAttrib1fAPPLE := dglGetProcAddress('glMapVertexAttrib1fAPPLE');
16045   glMapVertexAttrib2dAPPLE := dglGetProcAddress('glMapVertexAttrib2dAPPLE');
16046   glMapVertexAttrib2fAPPLE := dglGetProcAddress('glMapVertexAttrib2fAPPLE');
16047 end;
16048
16049 procedure Read_GL_APPLE_object_purgeable;
16050 begin
16051   glObjectPurgeableAPPLE := dglGetProcAddress('glObjectPurgeableAPPLE');
16052   glObjectUnpurgeableAPPLE := dglGetProcAddress('glObjectUnpurgeableAPPLE');
16053   glGetObjectParameterivAPPLE := dglGetProcAddress('glGetObjectParameterivAPPLE');
16054 end;
16055
16056 procedure Read_GL_ARB_matrix_palette;
16057 begin
16058   glCurrentPaletteMatrixARB := dglGetProcAddress('glCurrentPaletteMatrixARB');
16059   glMatrixIndexubvARB := dglGetProcAddress('glMatrixIndexubvARB');
16060   glMatrixIndexusvARB := dglGetProcAddress('glMatrixIndexusvARB');
16061   glMatrixIndexuivARB := dglGetProcAddress('glMatrixIndexuivARB');
16062   glMatrixIndexPointerARB := dglGetProcAddress('glMatrixIndexPointerARB');
16063 end;
16064
16065 procedure Read_GL_ARB_multisample;
16066 begin
16067   glSampleCoverageARB := dglGetProcAddress('glSampleCoverageARB');
16068 end;
16069
16070 procedure Read_GL_ARB_multitexture;
16071 begin
16072   glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
16073   glClientActiveTextureARB := dglGetProcAddress('glClientActiveTextureARB');
16074   glMultiTexCoord1dARB := dglGetProcAddress('glMultiTexCoord1dARB');
16075   glMultiTexCoord1dvARB := dglGetProcAddress('glMultiTexCoord1dvARB');
16076   glMultiTexCoord1fARB := dglGetProcAddress('glMultiTexCoord1fARB');
16077   glMultiTexCoord1fvARB := dglGetProcAddress('glMultiTexCoord1fvARB');
16078   glMultiTexCoord1iARB := dglGetProcAddress('glMultiTexCoord1iARB');
16079   glMultiTexCoord1ivARB := dglGetProcAddress('glMultiTexCoord1ivARB');
16080   glMultiTexCoord1sARB := dglGetProcAddress('glMultiTexCoord1sARB');
16081   glMultiTexCoord1svARB := dglGetProcAddress('glMultiTexCoord1svARB');
16082   glMultiTexCoord2dARB := dglGetProcAddress('glMultiTexCoord2dARB');
16083   glMultiTexCoord2dvARB := dglGetProcAddress('glMultiTexCoord2dvARB');
16084   glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
16085   glMultiTexCoord2fvARB := dglGetProcAddress('glMultiTexCoord2fvARB');
16086   glMultiTexCoord2iARB := dglGetProcAddress('glMultiTexCoord2iARB');
16087   glMultiTexCoord2ivARB := dglGetProcAddress('glMultiTexCoord2ivARB');
16088   glMultiTexCoord2sARB := dglGetProcAddress('glMultiTexCoord2sARB');
16089   glMultiTexCoord2svARB := dglGetProcAddress('glMultiTexCoord2svARB');
16090   glMultiTexCoord3dARB := dglGetProcAddress('glMultiTexCoord3dARB');
16091   glMultiTexCoord3dvARB := dglGetProcAddress('glMultiTexCoord3dvARB');
16092   glMultiTexCoord3fARB := dglGetProcAddress('glMultiTexCoord3fARB');
16093   glMultiTexCoord3fvARB := dglGetProcAddress('glMultiTexCoord3fvARB');
16094   glMultiTexCoord3iARB := dglGetProcAddress('glMultiTexCoord3iARB');
16095   glMultiTexCoord3ivARB := dglGetProcAddress('glMultiTexCoord3ivARB');
16096   glMultiTexCoord3sARB := dglGetProcAddress('glMultiTexCoord3sARB');
16097   glMultiTexCoord3svARB := dglGetProcAddress('glMultiTexCoord3svARB');
16098   glMultiTexCoord4dARB := dglGetProcAddress('glMultiTexCoord4dARB');
16099   glMultiTexCoord4dvARB := dglGetProcAddress('glMultiTexCoord4dvARB');
16100   glMultiTexCoord4fARB := dglGetProcAddress('glMultiTexCoord4fARB');
16101   glMultiTexCoord4fvARB := dglGetProcAddress('glMultiTexCoord4fvARB');
16102   glMultiTexCoord4iARB := dglGetProcAddress('glMultiTexCoord4iARB');
16103   glMultiTexCoord4ivARB := dglGetProcAddress('glMultiTexCoord4ivARB');
16104   glMultiTexCoord4sARB := dglGetProcAddress('glMultiTexCoord4sARB');
16105   glMultiTexCoord4svARB := dglGetProcAddress('glMultiTexCoord4svARB');
16106 end;
16107
16108 procedure Read_GL_ARB_point_parameters;
16109 begin
16110   glPointParameterfARB := dglGetProcAddress('glPointParameterfARB');
16111   glPointParameterfvARB := dglGetProcAddress('glPointParameterfvARB');
16112 end;
16113
16114 procedure Read_GL_ARB_texture_compression;
16115 begin
16116   glCompressedTexImage3DARB := dglGetProcAddress('glCompressedTexImage3DARB');
16117   glCompressedTexImage2DARB := dglGetProcAddress('glCompressedTexImage2DARB');
16118   glCompressedTexImage1DARB := dglGetProcAddress('glCompressedTexImage1DARB');
16119   glCompressedTexSubImage3DARB := dglGetProcAddress('glCompressedTexSubImage3DARB');
16120   glCompressedTexSubImage2DARB := dglGetProcAddress('glCompressedTexSubImage2DARB');
16121   glCompressedTexSubImage1DARB := dglGetProcAddress('glCompressedTexSubImage1DARB');
16122   glGetCompressedTexImageARB := dglGetProcAddress('glGetCompressedTexImageARB');
16123 end;
16124
16125 procedure Read_GL_ARB_transpose_matrix;
16126 begin
16127   glLoadTransposeMatrixfARB := dglGetProcAddress('glLoadTransposeMatrixfARB');
16128   glLoadTransposeMatrixdARB := dglGetProcAddress('glLoadTransposeMatrixdARB');
16129   glMultTransposeMatrixfARB := dglGetProcAddress('glMultTransposeMatrixfARB');
16130   glMultTransposeMatrixdARB := dglGetProcAddress('glMultTransposeMatrixdARB');
16131 end;
16132
16133 procedure Read_GL_ARB_vertex_blend;
16134 begin
16135   glWeightbvARB := dglGetProcAddress('glWeightbvARB');
16136   glWeightsvARB := dglGetProcAddress('glWeightsvARB');
16137   glWeightivARB := dglGetProcAddress('glWeightivARB');
16138   glWeightfvARB := dglGetProcAddress('glWeightfvARB');
16139   glWeightdvARB := dglGetProcAddress('glWeightdvARB');
16140   glWeightubvARB := dglGetProcAddress('glWeightubvARB');
16141   glWeightusvARB := dglGetProcAddress('glWeightusvARB');
16142   glWeightuivARB := dglGetProcAddress('glWeightuivARB');
16143   glWeightPointerARB := dglGetProcAddress('glWeightPointerARB');
16144   glVertexBlendARB := dglGetProcAddress('glVertexBlendARB');
16145 end;
16146
16147 procedure Read_GL_ARB_vertex_buffer_object;
16148 begin
16149   glBindBufferARB := dglGetProcAddress('glBindBufferARB');
16150   glDeleteBuffersARB := dglGetProcAddress('glDeleteBuffersARB');
16151   glGenBuffersARB := dglGetProcAddress('glGenBuffersARB');
16152   glIsBufferARB := dglGetProcAddress('glIsBufferARB');
16153   glBufferDataARB := dglGetProcAddress('glBufferDataARB');
16154   glBufferSubDataARB := dglGetProcAddress('glBufferSubDataARB');
16155   glGetBufferSubDataARB := dglGetProcAddress('glGetBufferSubDataARB');
16156   glMapBufferARB := dglGetProcAddress('glMapBufferARB');
16157   glUnmapBufferARB := dglGetProcAddress('glUnmapBufferARB');
16158   glGetBufferParameterivARB := dglGetProcAddress('glGetBufferParameterivARB');
16159   glGetBufferPointervARB := dglGetProcAddress('glGetBufferPointervARB');
16160 end;
16161
16162 procedure Read_GL_ARB_vertex_program;
16163 begin
16164   glVertexAttrib1dARB := dglGetProcAddress('glVertexAttrib1dARB');
16165   glVertexAttrib1dvARB := dglGetProcAddress('glVertexAttrib1dvARB');
16166   glVertexAttrib1fARB := dglGetProcAddress('glVertexAttrib1fARB');
16167   glVertexAttrib1fvARB := dglGetProcAddress('glVertexAttrib1fvARB');
16168   glVertexAttrib1sARB := dglGetProcAddress('glVertexAttrib1sARB');
16169   glVertexAttrib1svARB := dglGetProcAddress('glVertexAttrib1svARB');
16170   glVertexAttrib2dARB := dglGetProcAddress('glVertexAttrib2dARB');
16171   glVertexAttrib2dvARB := dglGetProcAddress('glVertexAttrib2dvARB');
16172   glVertexAttrib2fARB := dglGetProcAddress('glVertexAttrib2fARB');
16173   glVertexAttrib2fvARB := dglGetProcAddress('glVertexAttrib2fvARB');
16174   glVertexAttrib2sARB := dglGetProcAddress('glVertexAttrib2sARB');
16175   glVertexAttrib2svARB := dglGetProcAddress('glVertexAttrib2svARB');
16176   glVertexAttrib3dARB := dglGetProcAddress('glVertexAttrib3dARB');
16177   glVertexAttrib3dvARB := dglGetProcAddress('glVertexAttrib3dvARB');
16178   glVertexAttrib3fARB := dglGetProcAddress('glVertexAttrib3fARB');
16179   glVertexAttrib3fvARB := dglGetProcAddress('glVertexAttrib3fvARB');
16180   glVertexAttrib3sARB := dglGetProcAddress('glVertexAttrib3sARB');
16181   glVertexAttrib3svARB := dglGetProcAddress('glVertexAttrib3svARB');
16182   glVertexAttrib4NbvARB := dglGetProcAddress('glVertexAttrib4NbvARB');
16183   glVertexAttrib4NivARB := dglGetProcAddress('glVertexAttrib4NivARB');
16184   glVertexAttrib4NsvARB := dglGetProcAddress('glVertexAttrib4NsvARB');
16185   glVertexAttrib4NubARB := dglGetProcAddress('glVertexAttrib4NubARB');
16186   glVertexAttrib4NubvARB := dglGetProcAddress('glVertexAttrib4NubvARB');
16187   glVertexAttrib4NuivARB := dglGetProcAddress('glVertexAttrib4NuivARB');
16188   glVertexAttrib4NusvARB := dglGetProcAddress('glVertexAttrib4NusvARB');
16189   glVertexAttrib4bvARB := dglGetProcAddress('glVertexAttrib4bvARB');
16190   glVertexAttrib4dARB := dglGetProcAddress('glVertexAttrib4dARB');
16191   glVertexAttrib4dvARB := dglGetProcAddress('glVertexAttrib4dvARB');
16192   glVertexAttrib4fARB := dglGetProcAddress('glVertexAttrib4fARB');
16193   glVertexAttrib4fvARB := dglGetProcAddress('glVertexAttrib4fvARB');
16194   glVertexAttrib4ivARB := dglGetProcAddress('glVertexAttrib4ivARB');
16195   glVertexAttrib4sARB := dglGetProcAddress('glVertexAttrib4sARB');
16196   glVertexAttrib4svARB := dglGetProcAddress('glVertexAttrib4svARB');
16197   glVertexAttrib4ubvARB := dglGetProcAddress('glVertexAttrib4ubvARB');
16198   glVertexAttrib4uivARB := dglGetProcAddress('glVertexAttrib4uivARB');
16199   glVertexAttrib4usvARB := dglGetProcAddress('glVertexAttrib4usvARB');
16200   glVertexAttribPointerARB := dglGetProcAddress('glVertexAttribPointerARB');
16201   glEnableVertexAttribArrayARB := dglGetProcAddress('glEnableVertexAttribArrayARB');
16202   glDisableVertexAttribArrayARB := dglGetProcAddress('glDisableVertexAttribArrayARB');
16203   glProgramStringARB := dglGetProcAddress('glProgramStringARB');
16204   glBindProgramARB := dglGetProcAddress('glBindProgramARB');
16205   glDeleteProgramsARB := dglGetProcAddress('glDeleteProgramsARB');
16206   glGenProgramsARB := dglGetProcAddress('glGenProgramsARB');
16207   glProgramEnvParameter4dARB := dglGetProcAddress('glProgramEnvParameter4dARB');
16208   glProgramEnvParameter4dvARB := dglGetProcAddress('glProgramEnvParameter4dvARB');
16209   glProgramEnvParameter4fARB := dglGetProcAddress('glProgramEnvParameter4fARB');
16210   glProgramEnvParameter4fvARB := dglGetProcAddress('glProgramEnvParameter4fvARB');
16211   glProgramLocalParameter4dARB := dglGetProcAddress('glProgramLocalParameter4dARB');
16212   glProgramLocalParameter4dvARB := dglGetProcAddress('glProgramLocalParameter4dvARB');
16213   glProgramLocalParameter4fARB := dglGetProcAddress('glProgramLocalParameter4fARB');
16214   glProgramLocalParameter4fvARB := dglGetProcAddress('glProgramLocalParameter4fvARB');
16215   glGetProgramEnvParameterdvARB := dglGetProcAddress('glGetProgramEnvParameterdvARB');
16216   glGetProgramEnvParameterfvARB := dglGetProcAddress('glGetProgramEnvParameterfvARB');
16217   glGetProgramLocalParameterdvARB := dglGetProcAddress('glGetProgramLocalParameterdvARB');
16218   glGetProgramLocalParameterfvARB := dglGetProcAddress('glGetProgramLocalParameterfvARB');
16219   glGetProgramivARB := dglGetProcAddress('glGetProgramivARB');
16220   glGetProgramStringARB := dglGetProcAddress('glGetProgramStringARB');
16221   glGetVertexAttribdvARB := dglGetProcAddress('glGetVertexAttribdvARB');
16222   glGetVertexAttribfvARB := dglGetProcAddress('glGetVertexAttribfvARB');
16223   glGetVertexAttribivARB := dglGetProcAddress('glGetVertexAttribivARB');
16224   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16225   glIsProgramARB := dglGetProcAddress('glIsProgramARB');
16226 end;
16227
16228 procedure Read_GL_ARB_window_pos;
16229 begin
16230   glWindowPos2dARB := dglGetProcAddress('glWindowPos2dARB');
16231   glWindowPos2dvARB := dglGetProcAddress('glWindowPos2dvARB');
16232   glWindowPos2fARB := dglGetProcAddress('glWindowPos2fARB');
16233   glWindowPos2fvARB := dglGetProcAddress('glWindowPos2fvARB');
16234   glWindowPos2iARB := dglGetProcAddress('glWindowPos2iARB');
16235   glWindowPos2ivARB := dglGetProcAddress('glWindowPos2ivARB');
16236   glWindowPos2sARB := dglGetProcAddress('glWindowPos2sARB');
16237   glWindowPos2svARB := dglGetProcAddress('glWindowPos2svARB');
16238   glWindowPos3dARB := dglGetProcAddress('glWindowPos3dARB');
16239   glWindowPos3dvARB := dglGetProcAddress('glWindowPos3dvARB');
16240   glWindowPos3fARB := dglGetProcAddress('glWindowPos3fARB');
16241   glWindowPos3fvARB := dglGetProcAddress('glWindowPos3fvARB');
16242   glWindowPos3iARB := dglGetProcAddress('glWindowPos3iARB');
16243   glWindowPos3ivARB := dglGetProcAddress('glWindowPos3ivARB');
16244   glWindowPos3sARB := dglGetProcAddress('glWindowPos3sARB');
16245   glWindowPos3svARB := dglGetProcAddress('glWindowPos3svARB');
16246 end;
16247
16248 procedure Read_GL_ARB_draw_buffers;
16249 begin
16250   glDrawBuffersARB := dglGetProcAddress('glDrawBuffersARB');
16251 end;
16252
16253 procedure Read_GL_ARB_color_buffer_float;
16254 begin
16255   glClampColorARB := dglGetProcAddress('glClampColorARB');
16256 end;
16257
16258 procedure Read_GL_ARB_Shader_Objects;
16259 begin
16260   // GL_ARB_Shader_Objects
16261   glCreateShaderObjectARB := dglGetProcAddress('glCreateShaderObjectARB');
16262   glShaderSourceARB := dglGetProcAddress('glShaderSourceARB');
16263   glCompileShaderARB := dglGetProcAddress('glCompileShaderARB');
16264   glDeleteObjectARB := dglGetProcAddress('glDeleteObjectARB');
16265   glGetHandleARB := dglGetProcAddress('glGetHandleARB');
16266   glDetachObjectARB := dglGetProcAddress('glDetachObjectARB');
16267   glCreateProgramObjectARB := dglGetProcAddress('glCreateProgramObjectARB');
16268   glAttachObjectARB := dglGetProcAddress('glAttachObjectARB');
16269   glLinkProgramARB := dglGetProcAddress('glLinkProgramARB');
16270   glUseProgramObjectARB := dglGetProcAddress('glUseProgramObjectARB');
16271   glValidateProgramARB := dglGetProcAddress('glValidateProgramARB');
16272   glGetObjectParameterfvARB := dglGetProcAddress('glGetObjectParameterfvARB');
16273   glGetObjectParameterivARB := dglGetProcAddress('glGetObjectParameterivARB');
16274   glGetActiveUniformARB := dglGetProcAddress('glGetActiveUniformARB');
16275   glGetAttachedObjectsARB := dglGetProcAddress('glGetAttachedObjectsARB');
16276   glGetShaderSourceARB := dglGetProcAddress('glGetShaderSourceARB');
16277   glGetUniformfvARB := dglGetProcAddress('glGetUniformfvARB');
16278   glGetUniformivARB := dglGetProcAddress('glGetUniformivARB');
16279   glGetUniformLocationARB := dglGetProcAddress('glGetUniformLocationARB');
16280   glGetInfoLogARB := dglGetProcAddress('glGetInfoLogARB');
16281   glUniform1fARB := dglGetProcAddress('glUniform1fARB');
16282   glUniform2fARB := dglGetProcAddress('glUniform2fARB');
16283   glUniform3fARB := dglGetProcAddress('glUniform3fARB');
16284   glUniform4fARB := dglGetProcAddress('glUniform4fARB');
16285   glUniform1iARB := dglGetProcAddress('glUniform1iARB');
16286   glUniform2iARB := dglGetProcAddress('glUniform2iARB');
16287   glUniform3iARB := dglGetProcAddress('glUniform3iARB');
16288   glUniform4iARB := dglGetProcAddress('glUniform4iARB');
16289   glUniform1fvARB := dglGetProcAddress('glUniform1fvARB');
16290   glUniform2fvARB := dglGetProcAddress('glUniform2fvARB');
16291   glUniform3fvARB := dglGetProcAddress('glUniform3fvARB');
16292   glUniform4fvARB := dglGetProcAddress('glUniform4fvARB');
16293   glUniform1ivARB := dglGetProcAddress('glUniform1ivARB');
16294   glUniform2ivARB := dglGetProcAddress('glUniform2ivARB');
16295   glUniform3ivARB := dglGetProcAddress('glUniform3ivARB');
16296   glUniform4ivARB := dglGetProcAddress('glUniform4ivARB');
16297   glUniformMatrix2fvARB := dglGetProcAddress('glUniformMatrix2fvARB');
16298   glUniformMatrix3fvARB := dglGetProcAddress('glUniformMatrix3fvARB');
16299   glUniformMatrix4fvARB := dglGetProcAddress('glUniformMatrix4fvARB');
16300
16301   // GL_ARB_vertex_shader
16302   glGetActiveAttribARB := dglGetProcAddress('glGetActiveAttribARB');
16303   glGetAttribLocationARB := dglGetProcAddress('glGetAttribLocationARB');
16304   glBindAttribLocationARB := dglGetProcAddress('glBindAttribLocationARB');
16305   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16306 end;
16307
16308 procedure Read_GL_ARB_occlusion_query;
16309 begin
16310   glGenQueriesARB := dglGetProcAddress('glGenQueriesARB');
16311   glDeleteQueriesARB := dglGetProcAddress('glDeleteQueriesARB');
16312   glIsQueryARB := dglGetProcAddress('glIsQueryARB');
16313   glBeginQueryARB := dglGetProcAddress('glBeginQueryARB');
16314   glEndQueryARB := dglGetProcAddress('glEndQueryARB');
16315   glGetQueryivARB := dglGetProcAddress('glGetQueryivARB');
16316   glGetQueryObjectivARB := dglGetProcAddress('glGetQueryObjectivARB');
16317   glGetQueryObjectuivARB := dglGetProcAddress('glGetQueryObjectuivARB');
16318 end;
16319
16320 procedure Read_GL_ARB_draw_instanced;
16321 begin
16322   glDrawArraysInstancedARB := dglGetProcAddress('glDrawArraysInstancedARB');
16323   glDrawElementsInstancedARB := dglGetProcAddress('glDrawElementsInstancedARB');
16324 end;
16325
16326 procedure Read_GL_ARB_framebuffer_object;
16327 begin
16328   glIsRenderbuffer := dglGetProcAddress('glIsRenderbuffer');
16329   glBindRenderbuffer := dglGetProcAddress('glBindRenderbuffer');
16330   glDeleteRenderbuffers := dglGetProcAddress('glDeleteRenderbuffers');
16331   glGenRenderbuffers := dglGetProcAddress('glGenRenderbuffers');
16332   glRenderbufferStorage := dglGetProcAddress('glRenderbufferStorage');
16333   glGetRenderbufferParameteriv := dglGetProcAddress('glGetRenderbufferParameteriv');
16334   glIsFramebuffer := dglGetProcAddress('glIsFramebuffer');
16335   glBindFramebuffer := dglGetProcAddress('glBindFramebuffer');
16336   glDeleteFramebuffers := dglGetProcAddress('glDeleteFramebuffers');
16337   glGenFramebuffers := dglGetProcAddress('glGenFramebuffers');
16338   glCheckFramebufferStatus := dglGetProcAddress('glCheckFramebufferStatus');
16339   glFramebufferTexture1D := dglGetProcAddress('glFramebufferTexture1D');
16340   glFramebufferTexture2D := dglGetProcAddress('glFramebufferTexture2D');
16341   glFramebufferTexture3D := dglGetProcAddress('glFramebufferTexture3D');
16342   glFramebufferRenderbuffer := dglGetProcAddress('glFramebufferRenderbuffer');
16343   glGetFramebufferAttachmentParameteriv := dglGetProcAddress('glGetFramebufferAttachmentParameteriv');
16344   glGenerateMipmap := dglGetProcAddress('glGenerateMipmap');
16345   glBlitFramebuffer := dglGetProcAddress('glBlitFramebuffer');
16346   glRenderbufferStorageMultisample := dglGetProcAddress('glRenderbufferStorageMultisample');
16347   glFramebufferTextureLayer := dglGetProcAddress('glFramebufferTextureLayer');
16348 end;
16349
16350 procedure Read_GL_ARB_geometry_shader4;
16351 begin
16352   glProgramParameteriARB := dglGetProcAddress('glProgramParameteriARB');
16353   glFramebufferTextureARB := dglGetProcAddress('glFramebufferTextureARB');
16354   glFramebufferTextureLayerARB := dglGetProcAddress('glFramebufferTextureLayerARB');
16355   glFramebufferTextureFaceARB := dglGetProcAddress('glFramebufferTextureFaceARB');
16356 end;
16357
16358 procedure Read_GL_ARB_instanced_arrays;
16359 begin
16360   glVertexAttribDivisorARB := dglGetProcAddress('glVertexAttribDivisorARB');
16361 end;
16362
16363 procedure Read_GL_ARB_map_buffer_range;
16364 begin
16365   glMapBufferRange := dglGetProcAddress('glMapBufferRange');
16366   glFlushMappedBufferRange := dglGetProcAddress('glFlushMappedBufferRange');
16367 end;
16368
16369 procedure Read_GL_ARB_texture_buffer_object;
16370 begin
16371   glTexBufferARB := dglGetProcAddress('glTexBufferARB');
16372 end;
16373
16374 procedure Read_GL_ARB_vertex_array_object;
16375 begin
16376   glBindVertexArray := dglGetProcAddress('glBindVertexArray');
16377   glDeleteVertexArrays := dglGetProcAddress('glDeleteVertexArrays');
16378   glGenVertexArrays := dglGetProcAddress('glGenVertexArrays');
16379   glIsVertexArray := dglGetProcAddress('glIsVertexArray');
16380 end;
16381
16382 procedure Read_GL_ARB_uniform_buffer_object;
16383 begin
16384   glGetUniformIndices := dglGetProcAddress('glGetUniformIndices');
16385   glGetActiveUniformsiv := dglGetProcAddress('glGetActiveUniformsiv');
16386   glGetActiveUniformName := dglGetProcAddress('glGetActiveUniformName');
16387   glGetUniformBlockIndex := dglGetProcAddress('glGetUniformBlockIndex');
16388   glGetActiveUniformBlockiv := dglGetProcAddress('glGetActiveUniformBlockiv');
16389   glGetActiveUniformBlockName := dglGetProcAddress('glGetActiveUniformBlockName');
16390   glUniformBlockBinding := dglGetProcAddress('glUniformBlockBinding');
16391 end;
16392
16393 procedure Read_GL_ARB_copy_buffer;
16394 begin
16395   glCopyBufferSubData := dglGetProcAddress('glCopyBufferSubData');
16396 end;
16397
16398 procedure Read_GL_ARB_draw_elements_base_vertex;
16399 begin
16400   glDrawElementsBaseVertex := dglGetProcAddress('glDrawElementsBaseVertex');
16401   glDrawRangeElementsBaseVertex := dglGetProcAddress('glDrawRangeElementsBaseVertex');
16402   glDrawElementsInstancedBaseVertex := dglGetProcAddress('glDrawElementsInstancedBaseVertex');
16403   glMultiDrawElementsBaseVertex := dglGetProcAddress('glMultiDrawElementsBaseVertex');
16404 end;
16405
16406 procedure Read_GL_ARB_provoking_vertex;
16407 begin
16408   glProvokingVertex := dglGetProcAddress('glProvokingVertex');
16409 end;
16410
16411 procedure Read_GL_ARB_sync;
16412 begin
16413   glFenceSync := dglGetProcAddress('glFenceSync');
16414   glIsSync := dglGetProcAddress('glIsSync');
16415   glDeleteSync := dglGetProcAddress('glDeleteSync');
16416   glClientWaitSync := dglGetProcAddress('glClientWaitSync');
16417   glWaitSync := dglGetProcAddress('glWaitSync');
16418   glGetInteger64v := dglGetProcAddress('glGetInteger64v');
16419   glGetSynciv := dglGetProcAddress('glGetSynciv');
16420 end;
16421
16422 procedure Read_GL_ARB_texture_multisample;
16423 begin
16424   glTexImage2DMultisample := dglGetProcAddress('glTexImage2DMultisample');
16425   glTexImage3DMultisample := dglGetProcAddress('glTexImage3DMultisample');
16426   glGetMultisamplefv := dglGetProcAddress('glGetMultisamplefv');
16427   glSampleMaski := dglGetProcAddress('glSampleMaski');
16428 end;
16429
16430 procedure Read_GL_ARB_draw_buffers_blend;
16431 begin
16432   glBlendEquationiARB := dglGetProcAddress('glBlendEquationiARB');
16433   glBlendEquationSeparateiARB := dglGetProcAddress('glBlendEquationSeparateiARB');
16434   glBlendFunciARB := dglGetProcAddress('glBlendFunciARB');
16435   glBlendFuncSeparateiARB := dglGetProcAddress('glBlendFuncSeparateiARB');
16436 end;
16437
16438 procedure Read_GL_ARB_sample_shading;
16439 begin
16440   glMinSampleShadingARB := dglGetProcAddress('glMinSampleShadingARB');
16441 end;
16442
16443 procedure Read_GL_ARB_shading_language_include;
16444 begin
16445   glNamedStringARB := dglGetProcAddress('glNamedStringARB');
16446   glDeleteNamedStringARB := dglGetProcAddress('glDeleteNamedStringARB');
16447   glCompileShaderIncludeARB := dglGetProcAddress('glCompileShaderIncludeARB');
16448   glIsNamedStringARB := dglGetProcAddress('glIsNamedStringARB');
16449   glGetNamedStringARB := dglGetProcAddress('glGetNamedStringARB');
16450   glGetNamedStringivARB := dglGetProcAddress('glGetNamedStringivARB');
16451 end;
16452
16453
16454 procedure Read_GL_ARB_sparse_texture;
16455 begin
16456   glTexPageCommitmentARB := dglGetProcAddress('glTexPageCommitmentARB');
16457 end;
16458
16459 procedure Read_GL_ARB_blend_func_extended;
16460 begin
16461   glBindFragDataLocationIndexed := dglGetProcAddress('glBindFragDataLocationIndexed');
16462   glGetFragDataIndex := dglGetProcAddress('glGetFragDataIndex');
16463 end;
16464
16465 procedure Read_GL_ARB_sampler_objects;
16466 begin
16467   glGenSamplers := dglGetProcAddress('glGenSamplers');
16468   glDeleteSamplers := dglGetProcAddress('glDeleteSamplers');
16469   glIsSampler := dglGetProcAddress('glIsSampler');
16470   glBindSampler := dglGetProcAddress('glBindSampler');
16471   glSamplerParameteri := dglGetProcAddress('glSamplerParameteri');
16472   glSamplerParameteriv := dglGetProcAddress('glSamplerParameteriv');
16473   glSamplerParameterf := dglGetProcAddress('glSamplerParameterf');
16474   glSamplerParameterfv := dglGetProcAddress('glSamplerParameterfv');
16475   glSamplerParameterIiv := dglGetProcAddress('glSamplerParameterIiv');
16476   glSamplerParameterIuiv := dglGetProcAddress('glSamplerParameterIuiv');
16477   glGetSamplerParameteriv := dglGetProcAddress('glGetSamplerParameteriv');
16478   glGetSamplerParameterIiv := dglGetProcAddress('glGetSamplerParameterIiv');
16479   glGetSamplerParameterfv := dglGetProcAddress('glGetSamplerParameterfv');
16480   glGetSamplerParameterIuiv := dglGetProcAddress('glGetSamplerParameterIuiv');
16481 end;
16482
16483 procedure Read_GL_ARB_timer_query;
16484 begin
16485   glQueryCounter := dglGetProcAddress('glQueryCounter');
16486   glGetQueryObjecti64v := dglGetProcAddress('glGetQueryObjecti64v');
16487   glGetQueryObjectui64v := dglGetProcAddress('glGetQueryObjectui64v');
16488 end;
16489
16490 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
16491 begin
16492   glVertexP2ui := dglGetProcAddress('glVertexP2ui');
16493   glVertexP2uiv := dglGetProcAddress('glVertexP2uiv');
16494   glVertexP3ui := dglGetProcAddress('glVertexP3ui');
16495   glVertexP3uiv := dglGetProcAddress('glVertexP3uiv');
16496   glVertexP4ui := dglGetProcAddress('glVertexP4ui');
16497   glVertexP4uiv := dglGetProcAddress('glVertexP4uiv');
16498   glTexCoordP1ui := dglGetProcAddress('glTexCoordP1ui');
16499   glTexCoordP1uiv := dglGetProcAddress('glTexCoordP1uiv');
16500   glTexCoordP2ui := dglGetProcAddress('glTexCoordP2ui');
16501   glTexCoordP2uiv := dglGetProcAddress('glTexCoordP2uiv');
16502   glTexCoordP3ui := dglGetProcAddress('glTexCoordP3ui');
16503   glTexCoordP3uiv := dglGetProcAddress('glTexCoordP3uiv');
16504   glTexCoordP4ui := dglGetProcAddress('glTexCoordP4ui');
16505   glTexCoordP4uiv := dglGetProcAddress('glTexCoordP4uiv');
16506   glMultiTexCoordP1ui := dglGetProcAddress('glMultiTexCoordP1ui');
16507   glMultiTexCoordP1uiv := dglGetProcAddress('glMultiTexCoordP1uiv');
16508   glMultiTexCoordP2ui := dglGetProcAddress('glMultiTexCoordP2ui');
16509   glMultiTexCoordP2uiv := dglGetProcAddress('glMultiTexCoordP2uiv');
16510   glMultiTexCoordP3ui := dglGetProcAddress('glMultiTexCoordP3ui');
16511   glMultiTexCoordP3uiv := dglGetProcAddress('glMultiTexCoordP3uiv');
16512   glMultiTexCoordP4ui := dglGetProcAddress('glMultiTexCoordP4ui');
16513   glMultiTexCoordP4uiv := dglGetProcAddress('glMultiTexCoordP4uiv');
16514   glNormalP3ui := dglGetProcAddress('glNormalP3ui');
16515   glNormalP3uiv := dglGetProcAddress('glNormalP3uiv');
16516   glColorP3ui := dglGetProcAddress('glColorP3ui');
16517   glColorP3uiv := dglGetProcAddress('glColorP3uiv');
16518   glColorP4ui := dglGetProcAddress('glColorP4ui');
16519   glColorP4uiv := dglGetProcAddress('glColorP4uiv');
16520   glSecondaryColorP3ui := dglGetProcAddress('glSecondaryColorP3ui');
16521   glSecondaryColorP3uiv := dglGetProcAddress('glSecondaryColorP3uiv');
16522   glVertexAttribP1ui := dglGetProcAddress('glVertexAttribP1ui');
16523   glVertexAttribP1uiv := dglGetProcAddress('glVertexAttribP1uiv');
16524   glVertexAttribP2ui := dglGetProcAddress('glVertexAttribP2ui');
16525   glVertexAttribP2uiv := dglGetProcAddress('glVertexAttribP2uiv');
16526   glVertexAttribP3ui := dglGetProcAddress('glVertexAttribP3ui');
16527   glVertexAttribP3uiv := dglGetProcAddress('glVertexAttribP3uiv');
16528   glVertexAttribP4ui := dglGetProcAddress('glVertexAttribP4ui');
16529   glVertexAttribP4uiv := dglGetProcAddress('glVertexAttribP4uiv');
16530 end;
16531
16532 procedure Read_GL_ARB_draw_indirect;
16533 begin
16534   glDrawArraysIndirect := dglGetProcAddress('glDrawArraysIndirect');
16535   glDrawElementsIndirect := dglGetProcAddress('glDrawElementsIndirect');
16536 end;
16537
16538 procedure Read_GL_ARB_gpu_shader_fp64;
16539 begin
16540   glUniform1d := dglGetProcAddress('glUniform1d');
16541   glUniform2d := dglGetProcAddress('glUniform2d');
16542   glUniform3d := dglGetProcAddress('glUniform3d');
16543   glUniform4d := dglGetProcAddress('glUniform4d');
16544   glUniform1dv := dglGetProcAddress('glUniform1dv');
16545   glUniform2dv := dglGetProcAddress('glUniform2dv');
16546   glUniform3dv := dglGetProcAddress('glUniform3dv');
16547   glUniform4dv := dglGetProcAddress('glUniform4dv');
16548   glUniformMatrix2dv := dglGetProcAddress('glUniformMatrix2dv');
16549   glUniformMatrix3dv := dglGetProcAddress('glUniformMatrix3dv');
16550   glUniformMatrix4dv := dglGetProcAddress('glUniformMatrix4dv');
16551   glUniformMatrix2x3dv := dglGetProcAddress('glUniformMatrix2x3dv');
16552   glUniformMatrix2x4dv := dglGetProcAddress('glUniformMatrix2x4dv');
16553   glUniformMatrix3x2dv := dglGetProcAddress('glUniformMatrix3x2dv');
16554   glUniformMatrix3x4dv := dglGetProcAddress('glUniformMatrix3x4dv');
16555   glUniformMatrix4x2dv := dglGetProcAddress('glUniformMatrix4x2dv');
16556   glUniformMatrix4x3dv := dglGetProcAddress('glUniformMatrix4x3dv');
16557   glGetUniformdv := dglGetProcAddress('glGetUniformdv');
16558 end;
16559
16560 procedure Read_GL_ARB_shader_subroutine;
16561 begin
16562   glGetSubroutineUniformLocation := dglGetProcAddress('glGetSubroutineUniformLocation');
16563   glGetSubroutineIndex := dglGetProcAddress('glGetSubroutineIndex');
16564   glGetActiveSubroutineUniformiv := dglGetProcAddress('glGetActiveSubroutineUniformiv');
16565   glGetActiveSubroutineUniformName := dglGetProcAddress('glGetActiveSubroutineUniformName');
16566   glGetActiveSubroutineName := dglGetProcAddress('glGetActiveSubroutineName');
16567   glUniformSubroutinesuiv := dglGetProcAddress('glUniformSubroutinesuiv');
16568   glGetUniformSubroutineuiv := dglGetProcAddress('glGetUniformSubroutineuiv');
16569   glGetProgramStageiv := dglGetProcAddress('glGetProgramStageiv');
16570 end;
16571
16572 procedure Read_GL_ARB_tessellation_shader;
16573 begin
16574   glPatchParameteri := dglGetProcAddress('glPatchParameteri');
16575   glPatchParameterfv := dglGetProcAddress('glPatchParameterfv');
16576 end;
16577
16578 procedure Read_GL_ARB_transform_feedback2;
16579 begin
16580   glBindTransformFeedback := dglGetProcAddress('glBindTransformFeedback');
16581   glDeleteTransformFeedbacks := dglGetProcAddress('glDeleteTransformFeedbacks');
16582   glGenTransformFeedbacks := dglGetProcAddress('glGenTransformFeedbacks');
16583   glIsTransformFeedback := dglGetProcAddress('glIsTransformFeedback');
16584   glPauseTransformFeedback := dglGetProcAddress('glPauseTransformFeedback');
16585   glResumeTransformFeedback := dglGetProcAddress('glResumeTransformFeedback');
16586   glDrawTransformFeedback := dglGetProcAddress('glDrawTransformFeedback');
16587 end;
16588
16589 procedure Read_GL_ARB_transform_feedback3;
16590 begin
16591   glDrawTransformFeedbackStream := dglGetProcAddress('glDrawTransformFeedbackStream');
16592   glBeginQueryIndexed := dglGetProcAddress('glBeginQueryIndexed');
16593   glEndQueryIndexed := dglGetProcAddress('glEndQueryIndexed');
16594   glGetQueryIndexediv := dglGetProcAddress('glGetQueryIndexediv');
16595 end;
16596
16597 procedure Read_GL_ARB_ES2_compatibility;
16598 begin
16599   glReleaseShaderCompiler := dglGetProcAddress('glReleaseShaderCompiler');
16600   glShaderBinary := dglGetProcAddress('glShaderBinary');
16601   glGetShaderPrecisionFormat := dglGetProcAddress('glGetShaderPrecisionFormat');
16602   glDepthRangef := dglGetProcAddress('glDepthRangef');
16603   glClearDepthf := dglGetProcAddress('glClearDepthf');
16604 end;
16605
16606 procedure Read_GL_ARB_get_program_binary;
16607 begin
16608   glGetProgramBinary := dglGetProcAddress('glGetProgramBinary');
16609   glProgramBinary := dglGetProcAddress('glProgramBinary');
16610   glProgramParameteri := dglGetProcAddress('glProgramParameteri');
16611 end;
16612
16613 procedure Read_GL_ARB_separate_shader_objects;
16614 begin
16615   glUseProgramStages := dglGetProcAddress('glUseProgramStages');
16616   glActiveShaderProgram := dglGetProcAddress('glActiveShaderProgram');
16617   glCreateShaderProgramv := dglGetProcAddress('glCreateShaderProgramv');
16618   glBindProgramPipeline := dglGetProcAddress('glBindProgramPipeline');
16619   glDeleteProgramPipelines := dglGetProcAddress('glDeleteProgramPipelines');
16620   glGenProgramPipelines := dglGetProcAddress('glGenProgramPipelines');
16621   glIsProgramPipeline := dglGetProcAddress('glIsProgramPipeline');
16622   glGetProgramPipelineiv := dglGetProcAddress('glGetProgramPipelineiv');
16623   glProgramUniform1i := dglGetProcAddress('glProgramUniform1i');
16624   glProgramUniform1iv := dglGetProcAddress('glProgramUniform1iv');
16625   glProgramUniform1f := dglGetProcAddress('glProgramUniform1f');
16626   glProgramUniform1fv := dglGetProcAddress('glProgramUniform1fv');
16627   glProgramUniform1d := dglGetProcAddress('glProgramUniform1d');
16628   glProgramUniform1dv := dglGetProcAddress('glProgramUniform1dv');
16629   glProgramUniform1ui := dglGetProcAddress('glProgramUniform1ui');
16630   glProgramUniform1uiv := dglGetProcAddress('glProgramUniform1uiv');
16631   glProgramUniform2i := dglGetProcAddress('glProgramUniform2i');
16632   glProgramUniform2iv := dglGetProcAddress('glProgramUniform2iv');
16633   glProgramUniform2f := dglGetProcAddress('glProgramUniform2f');
16634   glProgramUniform2fv := dglGetProcAddress('glProgramUniform2fv');
16635   glProgramUniform2d := dglGetProcAddress('glProgramUniform2d');
16636   glProgramUniform2dv := dglGetProcAddress('glProgramUniform2dv');
16637   glProgramUniform2ui := dglGetProcAddress('glProgramUniform2ui');
16638   glProgramUniform2uiv := dglGetProcAddress('glProgramUniform2uiv');
16639   glProgramUniform3i := dglGetProcAddress('glProgramUniform3i');
16640   glProgramUniform3iv := dglGetProcAddress('glProgramUniform3iv');
16641   glProgramUniform3f := dglGetProcAddress('glProgramUniform3f');
16642   glProgramUniform3fv := dglGetProcAddress('glProgramUniform3fv');
16643   glProgramUniform3d := dglGetProcAddress('glProgramUniform3d');
16644   glProgramUniform3dv := dglGetProcAddress('glProgramUniform3dv');
16645   glProgramUniform3ui := dglGetProcAddress('glProgramUniform3ui');
16646   glProgramUniform3uiv := dglGetProcAddress('glProgramUniform3uiv');
16647   glProgramUniform4i := dglGetProcAddress('glProgramUniform4i');
16648   glProgramUniform4iv := dglGetProcAddress('glProgramUniform4iv');
16649   glProgramUniform4f := dglGetProcAddress('glProgramUniform4f');
16650   glProgramUniform4fv := dglGetProcAddress('glProgramUniform4fv');
16651   glProgramUniform4d := dglGetProcAddress('glProgramUniform4d');
16652   glProgramUniform4dv := dglGetProcAddress('glProgramUniform4dv');
16653   glProgramUniform4ui := dglGetProcAddress('glProgramUniform4ui');
16654   glProgramUniform4uiv := dglGetProcAddress('glProgramUniform4uiv');
16655   glProgramUniformMatrix2fv := dglGetProcAddress('glProgramUniformMatrix2fv');
16656   glProgramUniformMatrix3fv := dglGetProcAddress('glProgramUniformMatrix3fv');
16657   glProgramUniformMatrix4fv := dglGetProcAddress('glProgramUniformMatrix4fv');
16658   glProgramUniformMatrix2dv := dglGetProcAddress('glProgramUniformMatrix2dv');
16659   glProgramUniformMatrix3dv := dglGetProcAddress('glProgramUniformMatrix3dv');
16660   glProgramUniformMatrix4dv := dglGetProcAddress('glProgramUniformMatrix4dv');
16661   glProgramUniformMatrix2x3fv := dglGetProcAddress('glProgramUniformMatrix2x3fv');
16662   glProgramUniformMatrix3x2fv := dglGetProcAddress('glProgramUniformMatrix3x2fv');
16663   glProgramUniformMatrix2x4fv := dglGetProcAddress('glProgramUniformMatrix2x4fv');
16664   glProgramUniformMatrix4x2fv := dglGetProcAddress('glProgramUniformMatrix4x2fv');
16665   glProgramUniformMatrix3x4fv := dglGetProcAddress('glProgramUniformMatrix3x4fv');
16666   glProgramUniformMatrix4x3fv := dglGetProcAddress('glProgramUniformMatrix4x3fv');
16667   glProgramUniformMatrix2x3dv := dglGetProcAddress('glProgramUniformMatrix2x3dv');
16668   glProgramUniformMatrix3x2dv := dglGetProcAddress('glProgramUniformMatrix3x2dv');
16669   glProgramUniformMatrix2x4dv := dglGetProcAddress('glProgramUniformMatrix2x4dv');
16670   glProgramUniformMatrix4x2dv := dglGetProcAddress('glProgramUniformMatrix4x2dv');
16671   glProgramUniformMatrix3x4dv := dglGetProcAddress('glProgramUniformMatrix3x4dv');
16672   glProgramUniformMatrix4x3dv := dglGetProcAddress('glProgramUniformMatrix4x3dv');
16673   glValidateProgramPipeline := dglGetProcAddress('glValidateProgramPipeline');
16674   glGetProgramPipelineInfoLog := dglGetProcAddress('glGetProgramPipelineInfoLog');
16675 end;
16676
16677 procedure Read_GL_ARB_vertex_attrib_64bit;
16678 begin
16679   glVertexAttribL1d := dglGetProcAddress('glVertexAttribL1d');
16680   glVertexAttribL2d := dglGetProcAddress('glVertexAttribL2d');
16681   glVertexAttribL3d := dglGetProcAddress('glVertexAttribL3d');
16682   glVertexAttribL4d := dglGetProcAddress('glVertexAttribL4d');
16683   glVertexAttribL1dv := dglGetProcAddress('glVertexAttribL1dv');
16684   glVertexAttribL2dv := dglGetProcAddress('glVertexAttribL2dv');
16685   glVertexAttribL3dv := dglGetProcAddress('glVertexAttribL3dv');
16686   glVertexAttribL4dv := dglGetProcAddress('glVertexAttribL4dv');
16687   glVertexAttribLPointer := dglGetProcAddress('glVertexAttribLPointer');
16688   glGetVertexAttribLdv := dglGetProcAddress('glGetVertexAttribLdv');
16689 end;
16690
16691 procedure Read_GL_ARB_viewport_array;
16692 begin
16693   glViewportArrayv := dglGetProcAddress('glViewportArrayv');
16694   glViewportIndexedf := dglGetProcAddress('glViewportIndexedf');
16695   glViewportIndexedfv := dglGetProcAddress('glViewportIndexedfv');
16696   glScissorArrayv := dglGetProcAddress('glScissorArrayv');
16697   glScissorIndexed := dglGetProcAddress('glScissorIndexed');
16698   glScissorIndexedv := dglGetProcAddress('glScissorIndexedv');
16699   glDepthRangeArrayv := dglGetProcAddress('glDepthRangeArrayv');
16700   glDepthRangeIndexed := dglGetProcAddress('glDepthRangeIndexed');
16701   glGetFloati_v := dglGetProcAddress('glGetFloati_v');
16702   glGetDoublei_v := dglGetProcAddress('glGetDoublei_v');
16703 end;
16704
16705 // GL 4.2
16706
16707 procedure Read_GL_ARB_base_instance;
16708 begin
16709 glDrawArraysInstancedBaseInstance := dglGetProcAddress('glDrawArraysInstancedBaseInstance');
16710 glDrawElementsInstancedBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseInstance');
16711 glDrawElementsInstancedBaseVertexBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseVertexBaseInstance');
16712 end;
16713
16714 procedure Read_GL_ARB_transform_feedback_instanced;
16715 begin
16716 glDrawTransformFeedbackInstanced := dglGetProcAddress('glDrawTransformFeedbackInstanced');
16717 glDrawTransformFeedbackStreamInstanced := dglGetProcAddress('glDrawTransformFeedbackStreamInstanced');
16718 end;
16719
16720 procedure Read_GL_ARB_internalformat_query;
16721 begin
16722 glGetInternalformativ := dglGetProcAddress('glGetInternalformativ');
16723 end;
16724
16725 procedure Read_GL_ARB_shader_atomic_counters;
16726 begin
16727 glGetActiveAtomicCounterBufferiv := dglGetProcAddress('glGetActiveAtomicCounterBufferiv');
16728 end;
16729
16730 procedure Read_GL_ARB_shader_image_load_store;
16731 begin
16732 glBindImageTexture := dglGetProcAddress('glBindImageTexture');
16733 glMemoryBarrier := dglGetProcAddress('glMemoryBarrier');
16734 end;
16735
16736 procedure Read_GL_ARB_texture_storage;
16737 begin
16738 glTexStorage1D := dglGetProcAddress('glTexStorage1D');
16739 glTexStorage2D := dglGetProcAddress('glTexStorage2D');
16740 glTexStorage3D := dglGetProcAddress('glTexStorage3D');
16741 glTextureStorage1DEXT := dglGetProcAddress('glTextureStorage1DEXT');
16742 glTextureStorage2DEXT := dglGetProcAddress('glTextureStorage2DEXT');
16743 glTextureStorage3DEXT := dglGetProcAddress('glTextureStorage3DEXT');
16744 end;
16745
16746
16747 // GL 4.3
16748 procedure Read_GL_KHR_debug;
16749 begin
16750   glDebugMessageControl := dglGetProcAddress('glDebugMessageControl');
16751   glDebugMessageInsert := dglGetProcAddress('glDebugMessageInsert');
16752   glDebugMessageCallback := dglGetProcAddress('glDebugMessageCallback');
16753   glGetDebugMessageLog := dglGetProcAddress('glGetDebugMessageLog');
16754   glPushDebugGroup := dglGetProcAddress('glPushDebugGroup');
16755   glPopDebugGroup := dglGetProcAddress('glPopDebugGroup');
16756   glObjectLabel := dglGetProcAddress('glObjectLabel');
16757   glGetObjectLabel := dglGetProcAddress('glGetObjectLabel');
16758   glObjectPtrLabel := dglGetProcAddress('glObjectPtrLabel');
16759   glGetObjectPtrLabel := dglGetProcAddress('glGetObjectPtrLabel');
16760 end;
16761
16762 procedure Read_GL_ARB_clear_buffer_object;
16763 begin
16764   glClearBufferData := dglGetProcAddress('glClearBufferData');
16765   glClearBufferSubData := dglGetProcAddress('glClearBufferSubData');
16766   glClearNamedBufferDataEXT := dglGetProcAddress('glClearNamedBufferDataEXT');
16767   glClearNamedBufferSubDataEXT := dglGetProcAddress('glClearNamedBufferSubDataEXT');
16768 end;
16769
16770 procedure Read_GL_ARB_compute_shader;
16771 begin
16772   glDispatchCompute := dglGetProcAddress('glDispatchCompute');
16773   glDispatchComputeIndirect := dglGetProcAddress('glDispatchComputeIndirect');
16774 end;
16775
16776 procedure Read_GL_ARB_copy_image;
16777 begin
16778   glCopyImageSubData := dglGetProcAddress('glCopyImageSubData');
16779 end;
16780
16781 procedure Read_GL_ARB_framebuffer_no_attachments;
16782 begin
16783   glFramebufferParameteri := dglGetProcAddress('glFramebufferParameteri');
16784   glGetFramebufferParameteriv := dglGetProcAddress('glGetFramebufferParameteriv');
16785   glNamedFramebufferParameteriEXT := dglGetProcAddress('glNamedFramebufferParameteriEXT');
16786   glGetNamedFramebufferParameterivEXT := dglGetProcAddress('glGetNamedFramebufferParameterivEXT');
16787 end;
16788
16789 procedure Read_GL_ARB_internalformat_query2;
16790 begin
16791   glGetInternalformati64v := dglGetProcAddress('glGetInternalformati64v');;
16792 end;
16793
16794 procedure Read_GL_ARB_invalidate_subdata;
16795 begin
16796   glInvalidateTexSubImage := dglGetProcAddress('glInvalidateTexSubImage');
16797   glInvalidateTexImage := dglGetProcAddress('glInvalidateTexImage');
16798   glInvalidateBufferSubData := dglGetProcAddress('glInvalidateBufferSubData');
16799   glInvalidateBufferData := dglGetProcAddress('glInvalidateBufferData');
16800   glInvalidateFramebuffer := dglGetProcAddress('glInvalidateFramebuffer');
16801   glInvalidateSubFramebuffer := dglGetProcAddress('glInvalidateSubFramebuffer');
16802 end;
16803
16804 procedure Read_GL_ARB_multi_draw_indirect;
16805 begin
16806   glMultiDrawArraysIndirect := dglGetProcAddress('glMultiDrawArraysIndirect');
16807   glMultiDrawElementsIndirect := dglGetProcAddress('glMultiDrawElementsIndirect');
16808 end;
16809
16810 procedure Read_GL_ARB_program_interface_query;
16811 begin
16812   glGetProgramInterfaceiv := dglGetProcAddress('glGetProgramInterfaceiv');
16813   glGetProgramResourceIndex := dglGetProcAddress('glGetProgramResourceIndex');
16814   glGetProgramResourceName := dglGetProcAddress('glGetProgramResourceName');
16815   glGetProgramResourceiv := dglGetProcAddress('glGetProgramResourceiv');
16816   glGetProgramResourceLocation := dglGetProcAddress('glGetProgramResourceLocation');
16817   glGetProgramResourceLocationIndex := dglGetProcAddress('glGetProgramResourceLocationIndex');
16818 end;
16819
16820 procedure Read_GL_ARB_shader_storage_buffer_object;
16821 begin
16822   glShaderStorageBlockBinding := dglGetProcAddress('glShaderStorageBlockBinding');
16823 end;
16824
16825 procedure Read_GL_ARB_texture_buffer_range;
16826 begin
16827   glTexBufferRange := dglGetProcAddress('glTexBufferRange');
16828   glTextureBufferRangeEXT := dglGetProcAddress('glTextureBufferRangeEXT');
16829 end;
16830
16831 procedure Read_GL_ARB_texture_storage_multisample;
16832 begin
16833   glTexStorage2DMultisample := dglGetProcAddress('glTexStorage2DMultisample');
16834   glTexStorage3DMultisample := dglGetProcAddress('glTexStorage3DMultisample');
16835   glTextureStorage2DMultisampleEXT := dglGetProcAddress('glTextureStorage2DMultisampleEXT');
16836   glTextureStorage3DMultisampleEXT := dglGetProcAddress('glTextureStorage3DMultisampleEXT');
16837 end;
16838
16839 procedure Read_GL_ARB_texture_view;
16840 begin
16841   glTextureView := dglGetProcAddress('glTextureView');
16842 end;
16843
16844 procedure Read_GL_ARB_vertex_attrib_binding;
16845 begin
16846   glBindVertexBuffer := dglGetProcAddress('glBindVertexBuffer');
16847   glVertexAttribFormat := dglGetProcAddress('glVertexAttribFormat');
16848   glVertexAttribIFormat := dglGetProcAddress('glVertexAttribIFormat');
16849   glVertexAttribLFormat := dglGetProcAddress('glVertexAttribLFormat');
16850   glVertexAttribBinding := dglGetProcAddress('glVertexAttribBinding');
16851   glVertexBindingDivisor := dglGetProcAddress('glVertexBindingDivisor');
16852   glVertexArrayBindVertexBufferEXT := dglGetProcAddress('glVertexArrayBindVertexBufferEXT');
16853   glVertexArrayVertexAttribFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribFormatEXT');
16854   glVertexArrayVertexAttribIFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribIFormatEXT');
16855   glVertexArrayVertexAttribLFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribLFormatEXT');
16856   glVertexArrayVertexAttribBindingEXT := dglGetProcAddress('glVertexArrayVertexAttribBindingEXT');
16857   glVertexArrayVertexBindingDivisorEXT := dglGetProcAddress('glVertexArrayVertexBindingDivisorEXT');
16858 end;
16859
16860 procedure Read_GL_4_4;
16861 begin
16862   glBufferStorage     := dglGetProcAddress('glBufferStorage');
16863   glClearTexImage     := dglGetProcAddress('glClearTexImage');
16864   glClearTexSubImage  := dglGetProcAddress('glClearTexSubImage');
16865   glBindBuffersBase   := dglGetProcAddress('glBindBuffersBase');
16866   glBindBuffersRange  := dglGetProcAddress('glBindBuffersRange');
16867   glBindTextures      := dglGetProcAddress('glBindTextures');
16868   glBindSamplers      := dglGetProcAddress('glBindSamplers');
16869   glBindImageTextures := dglGetProcAddress('glBindImageTextures');
16870   glBindVertexBuffers := dglGetProcAddress('glBindVertexBuffers');
16871 end;
16872
16873
16874 procedure Read_GL_NV_path_rendering;
16875 begin
16876   glGenPathsNV := dglGetProcAddress('glGenPathsNV');
16877   glDeletePathsNV := dglGetProcAddress('glDeletePathsNV');
16878   glIsPathNV := dglGetProcAddress('glIsPathNV');
16879   glPathCommandsNV := dglGetProcAddress('glPathCommandsNV');
16880   glPathCoordsNV := dglGetProcAddress('glPathCoordsNV');
16881   glPathSubCommandsNV := dglGetProcAddress('glPathSubCommandsNV');
16882   glPathSubCoordsNV := dglGetProcAddress('glPathSubCoordsNV');
16883   glPathStringNV := dglGetProcAddress('glPathStringNV');
16884   glPathGlyphsNV := dglGetProcAddress('glPathGlyphsNV');
16885   glPathGlyphRangeNV := dglGetProcAddress('glPathGlyphRangeNV');
16886   glWeightPathsNV := dglGetProcAddress('glWeightPathsNV');
16887   glCopyPathNV := dglGetProcAddress('glCopyPathNV');
16888   glInterpolatePathsNV := dglGetProcAddress('glInterpolatePathsNV');
16889   glTransformPathNV := dglGetProcAddress('glTransformPathNV');
16890   glPathParameterivNV := dglGetProcAddress('glPathParameterivNV');
16891   glPathParameteriNV := dglGetProcAddress('glPathParameteriNV');
16892   glPathParameterfvNV := dglGetProcAddress('glPathParameterfvNV');
16893   glPathParameterfNV := dglGetProcAddress('glPathParameterfNV');
16894   glPathDashArrayNV := dglGetProcAddress('glPathDashArrayNV');
16895   glPathStencilFuncNV := dglGetProcAddress('glPathStencilFuncNV');
16896   glPathStencilDepthOffsetNV := dglGetProcAddress('glPathStencilDepthOffsetNV');
16897   glStencilFillPathNV := dglGetProcAddress('glStencilFillPathNV');
16898   glStencilStrokePathNV := dglGetProcAddress('glStencilStrokePathNV');
16899   glStencilFillPathInstancedNV := dglGetProcAddress('glStencilFillPathInstancedNV');
16900   glStencilStrokePathInstancedNV := dglGetProcAddress('glStencilStrokePathInstancedNV');
16901   glPathCoverDepthFuncNV := dglGetProcAddress('glPathCoverDepthFuncNV');
16902   glPathColorGenNV := dglGetProcAddress('glPathColorGenNV');
16903   glPathTexGenNV := dglGetProcAddress('glPathTexGenNV');
16904   glPathFogGenNV := dglGetProcAddress('glPathFogGenNV');
16905   glCoverFillPathNV := dglGetProcAddress('glCoverFillPathNV');
16906   glCoverStrokePathNV := dglGetProcAddress('glCoverStrokePathNV');
16907   glCoverFillPathInstancedNV := dglGetProcAddress('glCoverFillPathInstancedNV');
16908   glCoverStrokePathInstancedNV := dglGetProcAddress('glCoverStrokePathInstancedNV');
16909   glGetPathParameterivNV := dglGetProcAddress('glGetPathParameterivNV');
16910   glGetPathParameterfvNV := dglGetProcAddress('glGetPathParameterfvNV');
16911   glGetPathCommandsNV := dglGetProcAddress('glGetPathCommandsNV');
16912   glGetPathCoordsNV := dglGetProcAddress('glGetPathCoordsNV');
16913   glGetPathDashArrayNV := dglGetProcAddress('glGetPathDashArrayNV');
16914   glGetPathMetricsNV := dglGetProcAddress('glGetPathMetricsNV');
16915   glGetPathMetricRangeNV := dglGetProcAddress('glGetPathMetricRangeNV');
16916   glGetPathSpacingNV := dglGetProcAddress('glGetPathSpacingNV');
16917   glGetPathColorGenivNV := dglGetProcAddress('glGetPathColorGenivNV');
16918   glGetPathColorGenfvNV := dglGetProcAddress('glGetPathColorGenfvNV');
16919   glGetPathTexGenivNV := dglGetProcAddress('glGetPathTexGenivNV');
16920   glGetPathTexGenfvNV := dglGetProcAddress('glGetPathTexGenfvNV');
16921   glIsPointInFillPathNV := dglGetProcAddress('glIsPointInFillPathNV');
16922   glIsPointInStrokePathNV := dglGetProcAddress('glIsPointInStrokePathNV');
16923   glGetPathLengthNV := dglGetProcAddress('glGetPathLengthNV');
16924   glPointAlongPathNV := dglGetProcAddress('glPointAlongPathNV');
16925 end;
16926
16927 procedure Read_GL_AMD_stencil_operation_extended;
16928 begin
16929         glStencilOpValueAMD := dglGetProcAddress('glStencilOpValueAMD');
16930 end;
16931
16932 procedure Read_GL_NV_bindless_texture;
16933 begin
16934   glGetTextureHandleNV := dglGetProcAddress('glGetTextureHandleNV');
16935   glGetTextureSamplerHandleNV := dglGetProcAddress('glGetTextureSamplerHandleNV');
16936   glMakeTextureHandleResidentNV := dglGetProcAddress('glMakeTextureHandleResidentNV');
16937   glMakeTextureHandleNonResidentNV := dglGetProcAddress('glMakeTextureHandleNonResidentNV');
16938   glGetImageHandleNV := dglGetProcAddress('glGetImageHandleNV');
16939   glMakeImageHandleResidentNV := dglGetProcAddress('glMakeImageHandleResidentNV');
16940   glMakeImageHandleNonResidentNV := dglGetProcAddress('glMakeImageHandleNonResidentNV');
16941   glUniformHandleui64NV := dglGetProcAddress('glUniformHandleui64NV');
16942   glUniformHandleui64vNV := dglGetProcAddress('glUniformHandleui64vNV');
16943   glProgramUniformHandleui64NV := dglGetProcAddress('glProgramUniformHandleui64NV');
16944   glProgramUniformHandleui64vNV := dglGetProcAddress('glProgramUniformHandleui64vNV');
16945   glIsTextureHandleResidentNV := dglGetProcAddress('glIsTextureHandleResidentNV');
16946   glIsImageHandleResidentNV := dglGetProcAddress('glIsImageHandleResidentNV');
16947 end;
16948
16949 procedure Read_GL_ARB_bindless_texture;
16950 begin
16951   glGetTextureHandleARB := dglGetProcAddress('TglGetTextureHandleARB');
16952   glGetTextureSamplerHandleARB := dglGetProcAddress('TglGetTextureSamplerHandleARB');
16953   glMakeTextureHandleResidentARB := dglGetProcAddress('TglMakeTextureHandleResidentARB');
16954   glMakeTextureHandleNonResidentARB := dglGetProcAddress('TglMakeTextureHandleNonResidentARB');
16955   glGetImageHandleARB := dglGetProcAddress('TglGetImageHandleARB');
16956   glMakeImageHandleResidentARB := dglGetProcAddress('TglMakeImageHandleResidentARB');
16957   glMakeImageHandleNonResidentARB := dglGetProcAddress('TglMakeImageHandleNonResidentARB');
16958   glUniformHandleui64ARB := dglGetProcAddress('TglUniformHandleui64ARB');
16959   glUniformHandleui64vARB := dglGetProcAddress('TglUniformHandleui64vARB');
16960   glProgramUniformHandleui64ARB := dglGetProcAddress('TglProgramUniformHandleui64ARB');
16961   glProgramUniformHandleui64vARB := dglGetProcAddress('TglProgramUniformHandleui64vARB');
16962   glIsTextureHandleResidentARB := dglGetProcAddress('TglIsTextureHandleResidentARB');
16963   glIsImageHandleResidentARB := dglGetProcAddress('TglIsImageHandleResidentARB');
16964   glVertexAttribL1ui64ARB := dglGetProcAddress('TglVertexAttribL1ui64ARB');
16965   glVertexAttribL1ui64vARB := dglGetProcAddress('TglVertexAttribL1ui64vARB');
16966   glGetVertexAttribLui64vARB := dglGetProcAddress('TglGetVertexAttribLui64vARB');
16967 end;
16968
16969 procedure Read_GL_ARB_cl_event;
16970 begin
16971   glCreateSyncFromCLeventARB := dglGetProcAddress('glCreateSyncFromCLeventARB');
16972 end;
16973
16974 procedure Read_GL_ARB_debug_output;
16975 begin
16976   glDebugMessageControlARB := dglGetProcAddress('glDebugMessageControlARB');
16977   glDebugMessageInsertARB := dglGetProcAddress('glDebugMessageInsertARB');
16978   glDebugMessageCallbackARB := dglGetProcAddress('glDebugMessageCallbackARB');
16979   glGetDebugMessageLogARB := dglGetProcAddress('glGetDebugMessageLogARB');
16980 end;
16981
16982 procedure Read_GL_ARB_robustness;
16983 begin
16984   glGetGraphicsResetStatusARB := dglGetProcAddress('glGetGraphicsResetStatusARB');
16985   glGetnMapdvARB := dglGetProcAddress('glGetnMapdvARB');
16986   glGetnMapfvARB := dglGetProcAddress('glGetnMapfvARB');
16987   glGetnMapivARB := dglGetProcAddress('glGetnMapivARB');
16988   glGetnPixelMapfvARB := dglGetProcAddress('glGetnPixelMapfvARB');
16989   glGetnPixelMapuivARB := dglGetProcAddress('glGetnPixelMapuivARB');
16990   glGetnPixelMapusvARB := dglGetProcAddress('glGetnPixelMapusvARB');
16991   glGetnPolygonStippleARB := dglGetProcAddress('glGetnPolygonStippleARB');
16992   glGetnColorTableARB := dglGetProcAddress('glGetnColorTableARB');
16993   glGetnConvolutionFilterARB := dglGetProcAddress('glGetnConvolutionFilterARB');
16994   glGetnSeparableFilterARB := dglGetProcAddress('glGetnSeparableFilterARB');
16995   glGetnHistogramARB := dglGetProcAddress('glGetnHistogramARB');
16996   glGetnMinmaxARB := dglGetProcAddress('glGetnMinmaxARB');
16997   glGetnTexImageARB := dglGetProcAddress('glGetnTexImageARB');
16998   glReadnPixelsARB := dglGetProcAddress('glReadnPixelsARB');
16999   glGetnCompressedTexImageARB := dglGetProcAddress('glGetnCompressedTexImageARB');
17000   glGetnUniformfvARB := dglGetProcAddress('glGetnUniformfvARB');
17001   glGetnUniformivARB := dglGetProcAddress('glGetnUniformivARB');
17002   glGetnUniformuivARB := dglGetProcAddress('glGetnUniformuivARB');
17003   glGetnUniformdvARB := dglGetProcAddress('glGetnUniformdvARB');
17004 end;
17005   
17006 procedure Read_GL_ATI_draw_buffers;
17007 begin
17008   glDrawBuffersATI := dglGetProcAddress('glDrawBuffersATI');
17009 end;
17010
17011 procedure Read_GL_ATI_element_array;
17012 begin
17013   glElementPointerATI := dglGetProcAddress('glElementPointerATI');
17014   glDrawElementArrayATI := dglGetProcAddress('glDrawElementArrayATI');
17015   glDrawRangeElementArrayATI := dglGetProcAddress('glDrawRangeElementArrayATI');
17016 end;
17017
17018 procedure Read_GL_ATI_envmap_bumpmap;
17019 begin
17020   glTexBumpParameterivATI := dglGetProcAddress('glTexBumpParameterivATI');
17021   glTexBumpParameterfvATI := dglGetProcAddress('glTexBumpParameterfvATI');
17022   glGetTexBumpParameterivATI := dglGetProcAddress('glGetTexBumpParameterivATI');
17023   glGetTexBumpParameterfvATI := dglGetProcAddress('glGetTexBumpParameterfvATI');
17024 end;
17025
17026 procedure Read_GL_ATI_fragment_shader;
17027 begin
17028   glGenFragmentShadersATI := dglGetProcAddress('glGenFragmentShadersATI');
17029   glBindFragmentShaderATI := dglGetProcAddress('glBindFragmentShaderATI');
17030   glDeleteFragmentShaderATI := dglGetProcAddress('glDeleteFragmentShaderATI');
17031   glBeginFragmentShaderATI := dglGetProcAddress('glBeginFragmentShaderATI');
17032   glEndFragmentShaderATI := dglGetProcAddress('glEndFragmentShaderATI');
17033   glPassTexCoordATI := dglGetProcAddress('glPassTexCoordATI');
17034   glSampleMapATI := dglGetProcAddress('glSampleMapATI');
17035   glColorFragmentOp1ATI := dglGetProcAddress('glColorFragmentOp1ATI');
17036   glColorFragmentOp2ATI := dglGetProcAddress('glColorFragmentOp2ATI');
17037   glColorFragmentOp3ATI := dglGetProcAddress('glColorFragmentOp3ATI');
17038   glAlphaFragmentOp1ATI := dglGetProcAddress('glAlphaFragmentOp1ATI');
17039   glAlphaFragmentOp2ATI := dglGetProcAddress('glAlphaFragmentOp2ATI');
17040   glAlphaFragmentOp3ATI := dglGetProcAddress('glAlphaFragmentOp3ATI');
17041   glSetFragmentShaderConstantATI := dglGetProcAddress('glSetFragmentShaderConstantATI');
17042 end;
17043
17044 procedure Read_GL_ATI_map_object_buffer;
17045 begin
17046   glMapObjectBufferATI := dglGetProcAddress('glMapObjectBufferATI');
17047   glUnmapObjectBufferATI := dglGetProcAddress('glUnmapObjectBufferATI');
17048 end;
17049
17050 procedure Read_GL_ATI_pn_triangles;
17051 begin
17052   glPNTrianglesiATI := dglGetProcAddress('glPNTrianglesiATI');
17053   glPNTrianglesfATI := dglGetProcAddress('glPNTrianglesfATI');
17054 end;
17055
17056 procedure Read_GL_ATI_separate_stencil;
17057 begin
17058   glStencilOpSeparateATI := dglGetProcAddress('glStencilOpSeparateATI');
17059   glStencilFuncSeparateATI := dglGetProcAddress('glStencilFuncSeparateATI');
17060 end;
17061
17062 procedure Read_GL_ATI_vertex_array_object;
17063 begin
17064   glNewObjectBufferATI := dglGetProcAddress('glNewObjectBufferATI');
17065   glIsObjectBufferATI := dglGetProcAddress('glIsObjectBufferATI');
17066   glUpdateObjectBufferATI := dglGetProcAddress('glUpdateObjectBufferATI');
17067   glGetObjectBufferfvATI := dglGetProcAddress('glGetObjectBufferfvATI');
17068   glGetObjectBufferivATI := dglGetProcAddress('glGetObjectBufferivATI');
17069   glFreeObjectBufferATI := dglGetProcAddress('glFreeObjectBufferATI');
17070   glArrayObjectATI := dglGetProcAddress('glArrayObjectATI');
17071   glGetArrayObjectfvATI := dglGetProcAddress('glGetArrayObjectfvATI');
17072   glGetArrayObjectivATI := dglGetProcAddress('glGetArrayObjectivATI');
17073   glVariantArrayObjectATI := dglGetProcAddress('glVariantArrayObjectATI');
17074   glGetVariantArrayObjectfvATI := dglGetProcAddress('glGetVariantArrayObjectfvATI');
17075   glGetVariantArrayObjectivATI := dglGetProcAddress('glGetVariantArrayObjectivATI');
17076
17077 end;
17078
17079 procedure Read_GL_ATI_vertex_attrib_array_object;
17080 begin
17081   glVertexAttribArrayObjectATI := dglGetProcAddress('glVertexAttribArrayObjectATI');
17082   glGetVertexAttribArrayObjectfvATI := dglGetProcAddress('glGetVertexAttribArrayObjectfvATI');
17083   glGetVertexAttribArrayObjectivATI := dglGetProcAddress('glGetVertexAttribArrayObjectivATI');
17084 end;
17085
17086 procedure Read_GL_ATI_vertex_streams;
17087 begin
17088   glVertexStream1sATI := dglGetProcAddress('glVertexStream1sATI');
17089   glVertexStream1svATI := dglGetProcAddress('glVertexStream1svATI');
17090   glVertexStream1iATI := dglGetProcAddress('glVertexStream1iATI');
17091   glVertexStream1ivATI := dglGetProcAddress('glVertexStream1ivATI');
17092   glVertexStream1fATI := dglGetProcAddress('glVertexStream1fATI');
17093   glVertexStream1fvATI := dglGetProcAddress('glVertexStream1fvATI');
17094   glVertexStream1dATI := dglGetProcAddress('glVertexStream1dATI');
17095   glVertexStream1dvATI := dglGetProcAddress('glVertexStream1dvATI');
17096   glVertexStream2sATI := dglGetProcAddress('glVertexStream2sATI');
17097   glVertexStream2svATI := dglGetProcAddress('glVertexStream2svATI');
17098   glVertexStream2iATI := dglGetProcAddress('glVertexStream2iATI');
17099   glVertexStream2ivATI := dglGetProcAddress('glVertexStream2ivATI');
17100   glVertexStream2fATI := dglGetProcAddress('glVertexStream2fATI');
17101   glVertexStream2fvATI := dglGetProcAddress('glVertexStream2fvATI');
17102   glVertexStream2dATI := dglGetProcAddress('glVertexStream2dATI');
17103   glVertexStream2dvATI := dglGetProcAddress('glVertexStream2dvATI');
17104   glVertexStream3sATI := dglGetProcAddress('glVertexStream3sATI');
17105   glVertexStream3svATI := dglGetProcAddress('glVertexStream3svATI');
17106   glVertexStream3iATI := dglGetProcAddress('glVertexStream3iATI');
17107   glVertexStream3ivATI := dglGetProcAddress('glVertexStream3ivATI');
17108   glVertexStream3fATI := dglGetProcAddress('glVertexStream3fATI');
17109   glVertexStream3fvATI := dglGetProcAddress('glVertexStream3fvATI');
17110   glVertexStream3dATI := dglGetProcAddress('glVertexStream3dATI');
17111   glVertexStream3dvATI := dglGetProcAddress('glVertexStream3dvATI');
17112   glVertexStream4sATI := dglGetProcAddress('glVertexStream4sATI');
17113   glVertexStream4svATI := dglGetProcAddress('glVertexStream4svATI');
17114   glVertexStream4iATI := dglGetProcAddress('glVertexStream4iATI');
17115   glVertexStream4ivATI := dglGetProcAddress('glVertexStream4ivATI');
17116   glVertexStream4fATI := dglGetProcAddress('glVertexStream4fATI');
17117   glVertexStream4fvATI := dglGetProcAddress('glVertexStream4fvATI');
17118   glVertexStream4dATI := dglGetProcAddress('glVertexStream4dATI');
17119   glVertexStream4dvATI := dglGetProcAddress('glVertexStream4dvATI');
17120   glNormalStream3bATI := dglGetProcAddress('glNormalStream3bATI');
17121   glNormalStream3bvATI := dglGetProcAddress('glNormalStream3bvATI');
17122   glNormalStream3sATI := dglGetProcAddress('glNormalStream3sATI');
17123   glNormalStream3svATI := dglGetProcAddress('glNormalStream3svATI');
17124   glNormalStream3iATI := dglGetProcAddress('glNormalStream3iATI');
17125   glNormalStream3ivATI := dglGetProcAddress('glNormalStream3ivATI');
17126   glNormalStream3fATI := dglGetProcAddress('glNormalStream3fATI');
17127   glNormalStream3fvATI := dglGetProcAddress('glNormalStream3fvATI');
17128   glNormalStream3dATI := dglGetProcAddress('glNormalStream3dATI');
17129   glNormalStream3dvATI := dglGetProcAddress('glNormalStream3dvATI');
17130   glClientActiveVertexStreamATI := dglGetProcAddress('glClientActiveVertexStreamATI');
17131   glVertexBlendEnviATI := dglGetProcAddress('glVertexBlendEnviATI');
17132   glVertexBlendEnvfATI := dglGetProcAddress('glVertexBlendEnvfATI');
17133 end;
17134
17135 procedure Read_GL_AMD_performance_monitor;
17136 begin
17137   glGetPerfMonitorGroupsAMD := dglGetProcAddress('glGetPerfMonitorGroupsAMD');
17138   glGetPerfMonitorCountersAMD := dglGetProcAddress('glGetPerfMonitorCountersAMD');
17139   glGetPerfMonitorGroupStringAMD := dglGetProcAddress('glGetPerfMonitorGroupStringAMD');
17140   glGetPerfMonitorCounterStringAMD := dglGetProcAddress('glGetPerfMonitorCounterStringAMD');
17141   glGetPerfMonitorCounterInfoAMD := dglGetProcAddress('glGetPerfMonitorCounterInfoAMD');
17142   glGenPerfMonitorsAMD := dglGetProcAddress('glGenPerfMonitorsAMD');
17143   glDeletePerfMonitorsAMD := dglGetProcAddress('glDeletePerfMonitorsAMD');
17144   glSelectPerfMonitorCountersAMD := dglGetProcAddress('glSelectPerfMonitorCountersAMD');
17145   glBeginPerfMonitorAMD := dglGetProcAddress('glBeginPerfMonitorAMD');
17146   glEndPerfMonitorAMD := dglGetProcAddress('glEndPerfMonitorAMD');
17147   glGetPerfMonitorCounterDataAMD := dglGetProcAddress('glGetPerfMonitorCounterDataAMD');
17148 end;
17149
17150 procedure Read_GL_AMD_vertex_shader_tesselator;
17151 begin
17152   glTessellationFactorAMD := dglGetProcAddress('glTessellationFactorAMD');
17153   glTessellationModeAMD := dglGetProcAddress('glTessellationModeAMD');
17154 end;
17155
17156 procedure Read_GL_AMD_draw_buffers_blend;
17157 begin
17158   glBlendFuncIndexedAMD := dglGetProcAddress('glBlendFuncIndexedAMD');
17159   glBlendFuncSeparateIndexedAMD := dglGetProcAddress('glBlendFuncSeparateIndexedAMD');
17160   glBlendEquationIndexedAMD := dglGetProcAddress('glBlendEquationIndexedAMD');
17161   glBlendEquationSeparateIndexedAMD := dglGetProcAddress('glBlendEquationSeparateIndexedAMD');
17162 end;
17163
17164 procedure Read_GL_AMD_name_gen_delete;
17165 begin
17166   glGenNamesAMD := dglGetProcAddress('glGenNamesAMD');
17167   glDeleteNamesAMD := dglGetProcAddress('glDeleteNamesAMD');
17168   glIsNameAMD := dglGetProcAddress('glIsNameAMD');
17169 end;
17170
17171 procedure Read_GL_AMD_debug_output;
17172 begin
17173   glDebugMessageEnableAMD := dglGetProcAddress('glDebugMessageEnableAMD');
17174   glDebugMessageInsertAMD := dglGetProcAddress('glDebugMessageInsertAMD');
17175   glDebugMessageCallbackAMD := dglGetProcAddress('glDebugMessageCallbackAMD');
17176   glGetDebugMessageLogAMD := dglGetProcAddress('glGetDebugMessageLogAMD');
17177 end;
17178  
17179 procedure Read_GL_EXT_blend_color;
17180 begin
17181   glBlendColorEXT := dglGetProcAddress('glBlendColorEXT');
17182 end;
17183
17184 procedure Read_GL_EXT_blend_func_separate;
17185 begin
17186   glBlendFuncSeparateEXT := dglGetProcAddress('glBlendFuncSeparateEXT');
17187 end;
17188
17189 procedure Read_GL_EXT_blend_minmax;
17190 begin
17191   glBlendEquationEXT := dglGetProcAddress('glBlendEquationEXT');
17192 end;
17193
17194 procedure Read_GL_EXT_color_subtable;
17195 begin
17196   glColorSubTableEXT := dglGetProcAddress('glColorSubTableEXT');
17197   glCopyColorSubTableEXT := dglGetProcAddress('glCopyColorSubTableEXT');
17198 end;
17199
17200 procedure Read_GL_EXT_compiled_vertex_array;
17201 begin
17202   glLockArraysEXT := dglGetProcAddress('glLockArraysEXT');
17203   glUnlockArraysEXT := dglGetProcAddress('glUnlockArraysEXT');
17204 end;
17205
17206 procedure Read_GL_EXT_convolution;
17207 begin
17208   glConvolutionFilter1DEXT := dglGetProcAddress('glConvolutionFilter1DEXT');
17209   glConvolutionFilter2DEXT := dglGetProcAddress('glConvolutionFilter2DEXT');
17210   glConvolutionParameterfEXT := dglGetProcAddress('glConvolutionParameterfEXT');
17211   glConvolutionParameterfvEXT := dglGetProcAddress('glConvolutionParameterfvEXT');
17212   glConvolutionParameteriEXT := dglGetProcAddress('glConvolutionParameteriEXT');
17213   glConvolutionParameterivEXT := dglGetProcAddress('glConvolutionParameterivEXT');
17214   glCopyConvolutionFilter1DEXT := dglGetProcAddress('glCopyConvolutionFilter1DEXT');
17215   glCopyConvolutionFilter2DEXT := dglGetProcAddress('glCopyConvolutionFilter2DEXT');
17216   glGetConvolutionFilterEXT := dglGetProcAddress('glGetConvolutionFilterEXT');
17217   glGetConvolutionParameterfvEXT := dglGetProcAddress('glGetConvolutionParameterfvEXT');
17218   glGetConvolutionParameterivEXT := dglGetProcAddress('glGetConvolutionParameterivEXT');
17219   glGetSeparableFilterEXT := dglGetProcAddress('glGetSeparableFilterEXT');
17220   glSeparableFilter2DEXT := dglGetProcAddress('glSeparableFilter2DEXT');
17221 end;
17222
17223 procedure Read_GL_EXT_coordinate_frame;
17224 begin
17225   glTangent3bEXT := dglGetProcAddress('glTangent3bEXT');
17226   glTangent3bvEXT := dglGetProcAddress('glTangent3bvEXT');
17227   glTangent3dEXT := dglGetProcAddress('glTangent3dEXT');
17228   glTangent3dvEXT := dglGetProcAddress('glTangent3dvEXT');
17229   glTangent3fEXT := dglGetProcAddress('glTangent3fEXT');
17230   glTangent3fvEXT := dglGetProcAddress('glTangent3fvEXT');
17231   glTangent3iEXT := dglGetProcAddress('glTangent3iEXT');
17232   glTangent3ivEXT := dglGetProcAddress('glTangent3ivEXT');
17233   glTangent3sEXT := dglGetProcAddress('glTangent3sEXT');
17234   glTangent3svEXT := dglGetProcAddress('glTangent3svEXT');
17235   glBinormal3bEXT := dglGetProcAddress('glBinormal3bEXT');
17236   glBinormal3bvEXT := dglGetProcAddress('glBinormal3bvEXT');
17237   glBinormal3dEXT := dglGetProcAddress('glBinormal3dEXT');
17238   glBinormal3dvEXT := dglGetProcAddress('glBinormal3dvEXT');
17239   glBinormal3fEXT := dglGetProcAddress('glBinormal3fEXT');
17240   glBinormal3fvEXT := dglGetProcAddress('glBinormal3fvEXT');
17241   glBinormal3iEXT := dglGetProcAddress('glBinormal3iEXT');
17242   glBinormal3ivEXT := dglGetProcAddress('glBinormal3ivEXT');
17243   glBinormal3sEXT := dglGetProcAddress('glBinormal3sEXT');
17244   glBinormal3svEXT := dglGetProcAddress('glBinormal3svEXT');
17245   glTangentPointerEXT := dglGetProcAddress('glTangentPointerEXT');
17246   glBinormalPointerEXT := dglGetProcAddress('glBinormalPointerEXT');
17247 end;
17248
17249 procedure Read_GL_EXT_copy_texture;
17250 begin
17251   glCopyTexImage1DEXT := dglGetProcAddress('glCopyTexImage1DEXT');
17252   glCopyTexImage2DEXT := dglGetProcAddress('glCopyTexImage2DEXT');
17253   glCopyTexSubImage1DEXT := dglGetProcAddress('glCopyTexSubImage1DEXT');
17254   glCopyTexSubImage2DEXT := dglGetProcAddress('glCopyTexSubImage2DEXT');
17255   glCopyTexSubImage3DEXT := dglGetProcAddress('glCopyTexSubImage3DEXT');
17256 end;
17257
17258 procedure Read_GL_EXT_cull_vertex;
17259 begin
17260   glCullParameterdvEXT := dglGetProcAddress('glCullParameterdvEXT');
17261   glCullParameterfvEXT := dglGetProcAddress('glCullParameterfvEXT');
17262 end;
17263
17264 procedure Read_GL_EXT_draw_range_elements;
17265 begin
17266   glDrawRangeElementsEXT := dglGetProcAddress('glDrawRangeElementsEXT');
17267 end;
17268
17269 procedure Read_GL_EXT_fog_coord;
17270 begin
17271   glFogCoordfEXT := dglGetProcAddress('glFogCoordfEXT');
17272   glFogCoordfvEXT := dglGetProcAddress('glFogCoordfvEXT');
17273   glFogCoorddEXT := dglGetProcAddress('glFogCoorddEXT');
17274   glFogCoorddvEXT := dglGetProcAddress('glFogCoorddvEXT');
17275   glFogCoordPointerEXT := dglGetProcAddress('glFogCoordPointerEXT');
17276 end;
17277
17278 procedure Read_GL_EXT_framebuffer_object;
17279 begin
17280   glIsRenderbufferEXT := dglGetProcAddress('glIsRenderbufferEXT');
17281   glBindRenderbufferEXT := dglGetProcAddress('glBindRenderbufferEXT');
17282   glDeleteRenderbuffersEXT := dglGetProcAddress('glDeleteRenderbuffersEXT');
17283   glGenRenderbuffersEXT := dglGetProcAddress('glGenRenderbuffersEXT');
17284   glRenderbufferStorageEXT := dglGetProcAddress('glRenderbufferStorageEXT');
17285   glGetRenderbufferParameterivEXT := dglGetProcAddress('glGetRenderbufferParameterivEXT');
17286   glIsFramebufferEXT := dglGetProcAddress('glIsFramebufferEXT');
17287   glBindFramebufferEXT := dglGetProcAddress('glBindFramebufferEXT');
17288   glDeleteFramebuffersEXT := dglGetProcAddress('glDeleteFramebuffersEXT');
17289   glGenFramebuffersEXT := dglGetProcAddress('glGenFramebuffersEXT');
17290   glCheckFramebufferStatusEXT := dglGetProcAddress('glCheckFramebufferStatusEXT');
17291   glFramebufferTexture1DEXT := dglGetProcAddress('glFramebufferTexture1DEXT');
17292   glFramebufferTexture2DEXT := dglGetProcAddress('glFramebufferTexture2DEXT');
17293   glFramebufferTexture3DEXT := dglGetProcAddress('glFramebufferTexture3DEXT');
17294   glFramebufferRenderbufferEXT := dglGetProcAddress('glFramebufferRenderbufferEXT');
17295   glGetFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetFramebufferAttachmentParameterivEXT');
17296   glGenerateMipmapEXT := dglGetProcAddress('glGenerateMipmapEXT');
17297 end;
17298
17299 procedure Read_GL_EXT_histogram;
17300 begin
17301   glGetHistogramEXT := dglGetProcAddress('glGetHistogramEXT');
17302   glGetHistogramParameterfvEXT := dglGetProcAddress('glGetHistogramParameterfvEXT');
17303   glGetHistogramParameterivEXT := dglGetProcAddress('glGetHistogramParameterivEXT');
17304   glGetMinmaxEXT := dglGetProcAddress('glGetMinmaxEXT');
17305   glGetMinmaxParameterfvEXT := dglGetProcAddress('glGetMinmaxParameterfvEXT');
17306   glGetMinmaxParameterivEXT := dglGetProcAddress('glGetMinmaxParameterivEXT');
17307   glHistogramEXT := dglGetProcAddress('glHistogramEXT');
17308   glMinmaxEXT := dglGetProcAddress('glMinmaxEXT');
17309   glResetHistogramEXT := dglGetProcAddress('glResetHistogramEXT');
17310   glResetMinmaxEXT := dglGetProcAddress('glResetMinmaxEXT');
17311 end;
17312
17313 procedure Read_GL_EXT_index_func;
17314 begin
17315   glIndexFuncEXT := dglGetProcAddress('glIndexFuncEXT');
17316 end;
17317
17318 procedure Read_GL_EXT_index_material;
17319 begin
17320   glIndexMaterialEXT := dglGetProcAddress('glIndexMaterialEXT');
17321 end;
17322
17323 procedure Read_GL_EXT_light_texture;
17324 begin
17325   glApplyTextureEXT := dglGetProcAddress('glApplyTextureEXT');
17326   glTextureLightEXT := dglGetProcAddress('glTextureLightEXT');
17327   glTextureMaterialEXT := dglGetProcAddress('glTextureMaterialEXT');
17328 end;
17329
17330 procedure Read_GL_EXT_multi_draw_arrays;
17331 begin
17332   glMultiDrawArraysEXT := dglGetProcAddress('glMultiDrawArraysEXT');
17333   glMultiDrawElementsEXT := dglGetProcAddress('glMultiDrawElementsEXT');
17334 end;
17335
17336 procedure Read_GL_EXT_multisample;
17337 begin
17338   glSampleMaskEXT := dglGetProcAddress('glSampleMaskEXT');
17339   glSamplePatternEXT := dglGetProcAddress('glSamplePatternEXT');
17340 end;
17341
17342 procedure Read_GL_EXT_paletted_texture;
17343 begin
17344   glColorTableEXT := dglGetProcAddress('glColorTableEXT');
17345   glGetColorTableEXT := dglGetProcAddress('glGetColorTableEXT');
17346   glGetColorTableParameterivEXT := dglGetProcAddress('glGetColorTableParameterivEXT');
17347   glGetColorTableParameterfvEXT := dglGetProcAddress('glGetColorTableParameterfvEXT');
17348 end;
17349
17350 procedure Read_GL_EXT_pixel_transform;
17351 begin
17352   glPixelTransformParameteriEXT := dglGetProcAddress('glPixelTransformParameteriEXT');
17353   glPixelTransformParameterfEXT := dglGetProcAddress('glPixelTransformParameterfEXT');
17354   glPixelTransformParameterivEXT := dglGetProcAddress('glPixelTransformParameterivEXT');
17355   glPixelTransformParameterfvEXT := dglGetProcAddress('glPixelTransformParameterfvEXT');
17356 end;
17357
17358 procedure Read_GL_EXT_point_parameters;
17359 begin
17360   glPointParameterfEXT := dglGetProcAddress('glPointParameterfEXT');
17361   glPointParameterfvEXT := dglGetProcAddress('glPointParameterfvEXT');
17362 end;
17363
17364 procedure Read_GL_EXT_polygon_offset;
17365 begin
17366   glPolygonOffsetEXT := dglGetProcAddress('glPolygonOffsetEXT');
17367 end;
17368
17369 procedure Read_GL_EXT_secondary_color;
17370 begin
17371   glSecondaryColor3bEXT := dglGetProcAddress('glSecondaryColor3bEXT');
17372   glSecondaryColor3bvEXT := dglGetProcAddress('glSecondaryColor3bvEXT');
17373   glSecondaryColor3dEXT := dglGetProcAddress('glSecondaryColor3dEXT');
17374   glSecondaryColor3dvEXT := dglGetProcAddress('glSecondaryColor3dvEXT');
17375   glSecondaryColor3fEXT := dglGetProcAddress('glSecondaryColor3fEXT');
17376   glSecondaryColor3fvEXT := dglGetProcAddress('glSecondaryColor3fvEXT');
17377   glSecondaryColor3iEXT := dglGetProcAddress('glSecondaryColor3iEXT');
17378   glSecondaryColor3ivEXT := dglGetProcAddress('glSecondaryColor3ivEXT');
17379   glSecondaryColor3sEXT := dglGetProcAddress('glSecondaryColor3sEXT');
17380   glSecondaryColor3svEXT := dglGetProcAddress('glSecondaryColor3svEXT');
17381   glSecondaryColor3ubEXT := dglGetProcAddress('glSecondaryColor3ubEXT');
17382   glSecondaryColor3ubvEXT := dglGetProcAddress('glSecondaryColor3ubvEXT');
17383   glSecondaryColor3uiEXT := dglGetProcAddress('glSecondaryColor3uiEXT');
17384   glSecondaryColor3uivEXT := dglGetProcAddress('glSecondaryColor3uivEXT');
17385   glSecondaryColor3usEXT := dglGetProcAddress('glSecondaryColor3usEXT');
17386   glSecondaryColor3usvEXT := dglGetProcAddress('glSecondaryColor3usvEXT');
17387   glSecondaryColorPointerEXT := dglGetProcAddress('glSecondaryColorPointerEXT');
17388 end;
17389
17390 procedure Read_GL_EXT_stencil_two_side;
17391 begin
17392   glActiveStencilFaceEXT := dglGetProcAddress('glActiveStencilFaceEXT');
17393 end;
17394
17395 procedure Read_GL_EXT_subtexture;
17396 begin
17397   glTexSubImage1DEXT := dglGetProcAddress('glTexSubImage1DEXT');
17398   glTexSubImage2DEXT := dglGetProcAddress('glTexSubImage2DEXT');
17399 end;
17400
17401 procedure Read_GL_EXT_texture3D;
17402 begin
17403   glTexImage3DEXT := dglGetProcAddress('glTexImage3DEXT');
17404   glTexSubImage3DEXT := dglGetProcAddress('glTexSubImage3DEXT');
17405 end;
17406
17407 procedure Read_GL_EXT_texture_object;
17408 begin
17409   glAreTexturesResidentEXT := dglGetProcAddress('glAreTexturesResidentEXT');
17410   glBindTextureEXT := dglGetProcAddress('glBindTextureEXT');
17411   glDeleteTexturesEXT := dglGetProcAddress('glDeleteTexturesEXT');
17412   glGenTexturesEXT := dglGetProcAddress('glGenTexturesEXT');
17413   glIsTextureEXT := dglGetProcAddress('glIsTextureEXT');
17414   glPrioritizeTexturesEXT := dglGetProcAddress('glPrioritizeTexturesEXT');
17415 end;
17416
17417 procedure Read_GL_EXT_texture_perturb_normal;
17418 begin
17419   glTextureNormalEXT := dglGetProcAddress('glTextureNormalEXT');
17420 end;
17421
17422 procedure Read_GL_EXT_vertex_array;
17423 begin
17424   glArrayElementEXT := dglGetProcAddress('glArrayElementEXT');
17425   glColorPointerEXT := dglGetProcAddress('glColorPointerEXT');
17426   glDrawArraysEXT := dglGetProcAddress('glDrawArraysEXT');
17427   glEdgeFlagPointerEXT := dglGetProcAddress('glEdgeFlagPointerEXT');
17428   glGetPointervEXT := dglGetProcAddress('glGetPointervEXT');
17429   glIndexPointerEXT := dglGetProcAddress('glIndexPointerEXT');
17430   glNormalPointerEXT := dglGetProcAddress('glNormalPointerEXT');
17431   glTexCoordPointerEXT := dglGetProcAddress('glTexCoordPointerEXT');
17432   glVertexPointerEXT := dglGetProcAddress('glVertexPointerEXT');
17433 end;
17434
17435 procedure Read_GL_EXT_vertex_shader;
17436 begin
17437   glBeginVertexShaderEXT := dglGetProcAddress('glBeginVertexShaderEXT');
17438   glEndVertexShaderEXT := dglGetProcAddress('glEndVertexShaderEXT');
17439   glBindVertexShaderEXT := dglGetProcAddress('glBindVertexShaderEXT');
17440   glGenVertexShadersEXT := dglGetProcAddress('glGenVertexShadersEXT');
17441   glDeleteVertexShaderEXT := dglGetProcAddress('glDeleteVertexShaderEXT');
17442   glShaderOp1EXT := dglGetProcAddress('glShaderOp1EXT');
17443   glShaderOp2EXT := dglGetProcAddress('glShaderOp2EXT');
17444   glShaderOp3EXT := dglGetProcAddress('glShaderOp3EXT');
17445   glSwizzleEXT := dglGetProcAddress('glSwizzleEXT');
17446   glWriteMaskEXT := dglGetProcAddress('glWriteMaskEXT');
17447   glInsertComponentEXT := dglGetProcAddress('glInsertComponentEXT');
17448   glExtractComponentEXT := dglGetProcAddress('glExtractComponentEXT');
17449   glGenSymbolsEXT := dglGetProcAddress('glGenSymbolsEXT');
17450   glSetInvariantEXT := dglGetProcAddress('glSetInvariantEXT');
17451   glSetLocalConstantEXT := dglGetProcAddress('glSetLocalConstantEXT');
17452   glVariantbvEXT := dglGetProcAddress('glVariantbvEXT');
17453   glVariantsvEXT := dglGetProcAddress('glVariantsvEXT');
17454   glVariantivEXT := dglGetProcAddress('glVariantivEXT');
17455   glVariantfvEXT := dglGetProcAddress('glVariantfvEXT');
17456   glVariantdvEXT := dglGetProcAddress('glVariantdvEXT');
17457   glVariantubvEXT := dglGetProcAddress('glVariantubvEXT');
17458   glVariantusvEXT := dglGetProcAddress('glVariantusvEXT');
17459   glVariantuivEXT := dglGetProcAddress('glVariantuivEXT');
17460   glVariantPointerEXT := dglGetProcAddress('glVariantPointerEXT');
17461   glEnableVariantClientStateEXT := dglGetProcAddress('glEnableVariantClientStateEXT');
17462   glDisableVariantClientStateEXT := dglGetProcAddress('glDisableVariantClientStateEXT');
17463   glBindLightParameterEXT := dglGetProcAddress('glBindLightParameterEXT');
17464   glBindMaterialParameterEXT := dglGetProcAddress('glBindMaterialParameterEXT');
17465   glBindTexGenParameterEXT := dglGetProcAddress('glBindTexGenParameterEXT');
17466   glBindTextureUnitParameterEXT := dglGetProcAddress('glBindTextureUnitParameterEXT');
17467   glBindParameterEXT := dglGetProcAddress('glBindParameterEXT');
17468   glIsVariantEnabledEXT := dglGetProcAddress('glIsVariantEnabledEXT');
17469   glGetVariantBooleanvEXT := dglGetProcAddress('glGetVariantBooleanvEXT');
17470   glGetVariantIntegervEXT := dglGetProcAddress('glGetVariantIntegervEXT');
17471   glGetVariantFloatvEXT := dglGetProcAddress('glGetVariantFloatvEXT');
17472   glGetVariantPointervEXT := dglGetProcAddress('glGetVariantPointervEXT');
17473   glGetInvariantBooleanvEXT := dglGetProcAddress('glGetInvariantBooleanvEXT');
17474   glGetInvariantIntegervEXT := dglGetProcAddress('glGetInvariantIntegervEXT');
17475   glGetInvariantFloatvEXT := dglGetProcAddress('glGetInvariantFloatvEXT');
17476   glGetLocalConstantBooleanvEXT := dglGetProcAddress('glGetLocalConstantBooleanvEXT');
17477   glGetLocalConstantIntegervEXT := dglGetProcAddress('glGetLocalConstantIntegervEXT');
17478   glGetLocalConstantFloatvEXT := dglGetProcAddress('glGetLocalConstantFloatvEXT');
17479 end;
17480
17481 procedure Read_GL_EXT_vertex_weighting;
17482 begin
17483   glVertexWeightfEXT := dglGetProcAddress('glVertexWeightfEXT');
17484   glVertexWeightfvEXT := dglGetProcAddress('glVertexWeightfvEXT');
17485   glVertexWeightPointerEXT := dglGetProcAddress('glVertexWeightPointerEXT');
17486 end;
17487
17488 procedure Read_GL_EXT_depth_bounds_test;
17489 begin
17490   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
17491   glDepthBoundsEXT := dglGetProcAddress('glDepthBoundsEXT');
17492 end;
17493
17494 procedure Read_GL_EXT_blend_equation_separate;
17495 begin
17496   glBlendEquationSeparateEXT := dglGetProcAddress('glBlendEquationSeparateEXT');
17497 end;
17498
17499 procedure Read_GL_EXT_stencil_clear_tag;
17500 begin
17501   glStencilClearTagEXT := dglGetProcAddress('glStencilClearTagEXT');
17502 end;
17503
17504 procedure Read_GL_EXT_framebuffer_blit;
17505 begin
17506   glBlitFramebufferEXT := dglGetProcAddress('glBlitFramebufferEXT');
17507 end;
17508
17509 procedure Read_GL_EXT_framebuffer_multisample;
17510 begin
17511   glRenderbufferStorageMultisampleEXT := dglGetProcAddress('glRenderbufferStorageMultisampleEXT');
17512 end;
17513
17514 procedure Read_GL_EXT_timer_query;
17515 begin
17516   glGetQueryObjecti64vEXT := dglGetProcAddress('glGetQueryObjecti64vEXT');
17517   glGetQueryObjectui64vEXT := dglGetProcAddress('glGetQueryObjectui64vEXT');
17518 end;
17519
17520 procedure Read_GL_EXT_gpu_program_parameters;
17521 begin
17522   glProgramEnvParameters4fvEXT := dglGetProcAddress('glProgramEnvParameters4fvEXT');
17523   glProgramLocalParameters4fvEXT := dglGetProcAddress('glProgramLocalParameters4fvEXT');
17524 end;
17525
17526 procedure Read_GL_EXT_bindable_uniform;
17527 begin
17528   glUniformBufferEXT := dglGetProcAddress('glUniformBufferEXT');
17529   glGetUniformBufferSizeEXT := dglGetProcAddress('glGetUniformBufferSizeEXT');
17530   glGetUniformOffsetEXT := dglGetProcAddress('glGetUniformOffsetEXT');
17531 end;
17532
17533 procedure Read_GL_EXT_draw_buffers2;
17534 begin
17535   glColorMaskIndexedEXT := dglGetProcAddress('glColorMaskIndexedEXT');
17536   glGetBooleanIndexedvEXT := dglGetProcAddress('glGetBooleanIndexedvEXT');
17537   glGetIntegerIndexedvEXT := dglGetProcAddress('glGetIntegerIndexedvEXT');
17538   glEnableIndexedEXT := dglGetProcAddress('glEnableIndexedEXT');
17539   glDisableIndexedEXT := dglGetProcAddress('glDisableIndexedEXT');
17540   glIsEnabledIndexedEXT := dglGetProcAddress('glIsEnabledIndexedEXT');
17541 end;
17542
17543 procedure Read_GL_EXT_draw_instanced;
17544 begin
17545   glDrawArraysInstancedEXT := dglGetProcAddress('glDrawArraysInstancedEXT');
17546   glDrawElementsInstancedEXT := dglGetProcAddress('glDrawElementsInstancedEXT');
17547 end;
17548
17549 procedure Read_GL_EXT_geometry_shader4;
17550 begin
17551   glProgramParameteriEXT := dglGetProcAddress('glProgramParameteriEXT');
17552   glFramebufferTextureEXT := dglGetProcAddress('glFramebufferTextureEXT');
17553 //  glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17554   glFramebufferTextureFaceEXT := dglGetProcAddress('glFramebufferTextureFaceEXT');
17555 end;
17556
17557 procedure Read_GL_EXT_gpu_shader4;
17558 begin
17559   glVertexAttribI1iEXT := dglGetProcAddress('glVertexAttribI1iEXT');
17560   glVertexAttribI2iEXT := dglGetProcAddress('glVertexAttribI2iEXT');
17561   glVertexAttribI3iEXT := dglGetProcAddress('glVertexAttribI3iEXT');
17562   glVertexAttribI4iEXT := dglGetProcAddress('glVertexAttribI4iEXT');
17563   glVertexAttribI1uiEXT := dglGetProcAddress('glVertexAttribI1uiEXT');
17564   glVertexAttribI2uiEXT := dglGetProcAddress('glVertexAttribI2uiEXT');
17565   glVertexAttribI3uiEXT := dglGetProcAddress('glVertexAttribI3uiEXT');
17566   glVertexAttribI4uiEXT := dglGetProcAddress('glVertexAttribI4uiEXT');
17567   glVertexAttribI1ivEXT := dglGetProcAddress('glVertexAttribI1ivEXT');
17568   glVertexAttribI2ivEXT := dglGetProcAddress('glVertexAttribI2ivEXT');
17569   glVertexAttribI3ivEXT := dglGetProcAddress('glVertexAttribI3ivEXT');
17570   glVertexAttribI4ivEXT := dglGetProcAddress('glVertexAttribI4ivEXT');
17571   glVertexAttribI1uivEXT := dglGetProcAddress('glVertexAttribI1uivEXT');
17572   glVertexAttribI2uivEXT := dglGetProcAddress('glVertexAttribI2uivEXT');
17573   glVertexAttribI3uivEXT := dglGetProcAddress('glVertexAttribI3uivEXT');
17574   glVertexAttribI4uivEXT := dglGetProcAddress('glVertexAttribI4uivEXT');
17575   glVertexAttribI4bvEXT := dglGetProcAddress('glVertexAttribI4bvEXT');
17576   glVertexAttribI4svEXT := dglGetProcAddress('glVertexAttribI4svEXT');
17577   glVertexAttribI4ubvEXT := dglGetProcAddress('glVertexAttribI4ubvEXT');
17578   glVertexAttribI4usvEXT := dglGetProcAddress('glVertexAttribI4usvEXT');
17579   glVertexAttribIPointerEXT := dglGetProcAddress('glVertexAttribIPointerEXT');
17580   glGetVertexAttribIivEXT := dglGetProcAddress('glGetVertexAttribIivEXT');
17581   glGetVertexAttribIuivEXT := dglGetProcAddress('glGetVertexAttribIuivEXT');
17582   glUniform1uiEXT := dglGetProcAddress('glUniform1uiEXT');
17583   glUniform2uiEXT := dglGetProcAddress('glUniform2uiEXT');
17584   glUniform3uiEXT := dglGetProcAddress('glUniform3uiEXT');
17585   glUniform4uiEXT := dglGetProcAddress('glUniform4uiEXT');
17586   glUniform1uivEXT := dglGetProcAddress('glUniform1uivEXT');
17587   glUniform2uivEXT := dglGetProcAddress('glUniform2uivEXT');
17588   glUniform3uivEXT := dglGetProcAddress('glUniform3uivEXT');
17589   glUniform4uivEXT := dglGetProcAddress('glUniform4uivEXT');
17590   glGetUniformuivEXT := dglGetProcAddress('glGetUniformuivEXT');
17591   glBindFragDataLocationEXT := dglGetProcAddress('glBindFragDataLocationEXT');
17592   glGetFragDataLocationEXT := dglGetProcAddress('glGetFragDataLocationEXT');
17593 end;
17594
17595 procedure Read_GL_EXT_texture_array;
17596 begin
17597   glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17598 end;
17599
17600 procedure Read_GL_EXT_texture_buffer_object;
17601 begin
17602   glTexBufferEXT := dglGetProcAddress('glTexBufferEXT');
17603 end;
17604
17605 procedure Read_GL_EXT_texture_integer;
17606 begin
17607   glClearColorIiEXT := dglGetProcAddress('glClearColorIiEXT');
17608   glClearColorIuiEXT := dglGetProcAddress('glClearColorIuiEXT');
17609   glTexParameterIivEXT := dglGetProcAddress('glTexParameterIivEXT');
17610   glTexParameterIuivEXT := dglGetProcAddress('glTexParameterIuivEXT');
17611   glGetTexParameterIivEXT := dglGetProcAddress('glGetTexParameterIivEXT');
17612   glGetTexParameterIiuvEXT := dglGetProcAddress('glGetTexParameterIiuvEXT');
17613 end;
17614
17615 procedure Read_GL_EXT_transform_feedback;
17616 begin
17617   glBeginTransformFeedbackEXT := dglGetProcAddress('lBeginTransformFeedbackEXT');
17618   glEndTransformFeedbackEXT := dglGetProcAddress('glEndTransformFeedbackEXT');
17619   glBindBufferRangeEXT := dglGetProcAddress('glBindBufferRangeEXT');
17620   glBindBufferOffsetEXT := dglGetProcAddress('glBindBufferOffsetEXT');
17621   glBindBufferBaseEXT := dglGetProcAddress('glBindBufferBaseEXT');
17622   glTransformFeedbackVaryingsEXT := dglGetProcAddress('glTransformFeedbackVaryingsEXT');
17623   glGetTransformFeedbackVaryingEXT := dglGetProcAddress('glGetTransformFeedbackVaryingEXT');
17624 end;
17625
17626 procedure Read_GL_EXT_direct_state_access;
17627 begin
17628   glClientAttribDefaultEXT := dglGetProcAddress('glClientAttribDefaultEXT');
17629   glPushClientAttribDefaultEXT := dglGetProcAddress('glPushClientAttribDefaultEXT');
17630   glMatrixLoadfEXT := dglGetProcAddress('glMatrixLoadfEXT');
17631   glMatrixLoaddEXT := dglGetProcAddress('glMatrixLoaddEXT');
17632   glMatrixMultfEXT := dglGetProcAddress('glMatrixMultfEXT');
17633   glMatrixMultdEXT := dglGetProcAddress('glMatrixMultdEXT');
17634   glMatrixLoadIdentityEXT := dglGetProcAddress('glMatrixLoadIdentityEXT');
17635   glMatrixRotatefEXT := dglGetProcAddress('glMatrixRotatefEXT');
17636   glMatrixRotatedEXT := dglGetProcAddress('glMatrixRotatedEXT');
17637   glMatrixScalefEXT := dglGetProcAddress('glMatrixScalefEXT');
17638   glMatrixScaledEXT := dglGetProcAddress('glMatrixScaledEXT');
17639   glMatrixTranslatefEXT := dglGetProcAddress('glMatrixTranslatefEXT');
17640   glMatrixTranslatedEXT := dglGetProcAddress('glMatrixTranslatedEXT');
17641   glMatrixFrustumEXT := dglGetProcAddress('glMatrixFrustumEXT');
17642   glMatrixOrthoEXT := dglGetProcAddress('glMatrixOrthoEXT');
17643   glMatrixPopEXT := dglGetProcAddress('glMatrixPopEXT');
17644   glMatrixPushEXT := dglGetProcAddress('glMatrixPushEXT');
17645   glMatrixLoadTransposefEXT := dglGetProcAddress('glMatrixLoadTransposefEXT');
17646   glMatrixLoadTransposedEXT := dglGetProcAddress('glMatrixLoadTransposedEXT');
17647   glMatrixMultTransposefEXT := dglGetProcAddress('glMatrixMultTransposefEXT');
17648   glMatrixMultTransposedEXT := dglGetProcAddress('glMatrixMultTransposedEXT');
17649   glTextureParameterfEXT := dglGetProcAddress('glTextureParameterfEXT');
17650   glTextureParameterfvEXT := dglGetProcAddress('glTextureParameterfvEXT');
17651   glTextureParameteriEXT := dglGetProcAddress('glTextureParameteriEXT');
17652   glTextureParameterivEXT := dglGetProcAddress('glTextureParameterivEXT');
17653   glTextureImage1DEXT := dglGetProcAddress('glTextureImage1DEXT');
17654   glTextureImage2DEXT := dglGetProcAddress('glTextureImage2DEXT');
17655   glTextureSubImage1DEXT := dglGetProcAddress('glTextureSubImage1DEXT');
17656   glTextureSubImage2DEXT := dglGetProcAddress('glTextureSubImage2DEXT');
17657   glCopyTextureImage1DEXT := dglGetProcAddress('glCopyTextureImage1DEXT');
17658   glCopyTextureImage2DEXT := dglGetProcAddress('glCopyTextureImage2DEXT');
17659   glCopyTextureSubImage1DEXT := dglGetProcAddress('glCopyTextureSubImage1DEXT');
17660   glCopyTextureSubImage2DEXT := dglGetProcAddress('glCopyTextureSubImage2DEXT');
17661   glGetTextureImageEXT := dglGetProcAddress('glGetTextureImageEXT');
17662   glGetTextureParameterfvEXT := dglGetProcAddress('glGetTextureParameterfvEXT');
17663   glGetTextureParameterivEXT := dglGetProcAddress('glGetTextureParameterivEXT');
17664   glGetTextureLevelParameterfvEXT := dglGetProcAddress('glGetTextureLevelParameterfvEXT');
17665   glGetTextureLevelParameterivEXT := dglGetProcAddress('glGetTextureLevelParameterivEXT');
17666   glTextureImage3DEXT := dglGetProcAddress('glTextureImage3DEXT');
17667   glTextureSubImage3DEXT := dglGetProcAddress('glTextureSubImage3DEXT');
17668   glCopyTextureSubImage3DEXT := dglGetProcAddress('glCopyTextureSubImage3DEXT');
17669   glMultiTexParameterfEXT := dglGetProcAddress('glMultiTexParameterfEXT');
17670   glMultiTexParameterfvEXT := dglGetProcAddress('glMultiTexParameterfvEXT');
17671   glMultiTexParameteriEXT := dglGetProcAddress('glMultiTexParameteriEXT');
17672   glMultiTexParameterivEXT := dglGetProcAddress('glMultiTexParameterivEXT');
17673   glMultiTexImage1DEXT := dglGetProcAddress('glMultiTexImage1DEXT');
17674   glMultiTexImage2DEXT := dglGetProcAddress('glMultiTexImage2DEXT');
17675   glMultiTexSubImage1DEXT := dglGetProcAddress('glMultiTexSubImage1DEXT');
17676   glMultiTexSubImage2DEXT := dglGetProcAddress('glMultiTexSubImage2DEXT');
17677   glCopyMultiTexImage1DEXT := dglGetProcAddress('glCopyMultiTexImage1DEXT');
17678   glCopyMultiTexImage2DEXT := dglGetProcAddress('glCopyMultiTexImage2DEXT');
17679   glCopyMultiTexSubImage1DEXT := dglGetProcAddress('glCopyMultiTexSubImage1DEXT');
17680   glCopyMultiTexSubImage2DEXT := dglGetProcAddress('glCopyMultiTexSubImage2DEXT');
17681   glGetMultiTexImageEXT := dglGetProcAddress('glGetMultiTexImageEXT');
17682   glGetMultiTexParameterfvEXT := dglGetProcAddress('glGetMultiTexParameterfvEXT');
17683   glGetMultiTexParameterivEXT := dglGetProcAddress('glGetMultiTexParameterivEXT');
17684   glGetMultiTexLevelParameterfvEXT := dglGetProcAddress('glGetMultiTexLevelParameterfvEXT');
17685   glGetMultiTexLevelParameterivEXT := dglGetProcAddress('glGetMultiTexLevelParameterivEXT');
17686   glMultiTexImage3DEXT := dglGetProcAddress('glMultiTexImage3DEXT');
17687   glMultiTexSubImage3DEXT := dglGetProcAddress('glMultiTexSubImage3DEXT');
17688   glCopyMultiTexSubImage3DEXT := dglGetProcAddress('glCopyMultiTexSubImage3DEXT');
17689   glBindMultiTextureEXT := dglGetProcAddress('glBindMultiTextureEXT');
17690   glEnableClientStateIndexedEXT := dglGetProcAddress('glEnableClientStateIndexedEXT');
17691   glDisableClientStateIndexedEXT := dglGetProcAddress('glDisableClientStateIndexedEXT');
17692   glMultiTexCoordPointerEXT := dglGetProcAddress('glMultiTexCoordPointerEXT');
17693   glMultiTexEnvfEXT := dglGetProcAddress('glMultiTexEnvfEXT');
17694   glMultiTexEnvfvEXT := dglGetProcAddress('glMultiTexEnvfvEXT');
17695   glMultiTexEnviEXT := dglGetProcAddress('glMultiTexEnviEXT');
17696   glMultiTexEnvivEXT := dglGetProcAddress('glMultiTexEnvivEXT');
17697   glMultiTexGendEXT := dglGetProcAddress('glMultiTexGendEXT');
17698   glMultiTexGendvEXT := dglGetProcAddress('glMultiTexGendvEXT');
17699   glMultiTexGenfEXT := dglGetProcAddress('glMultiTexGenfEXT');
17700   glMultiTexGenfvEXT := dglGetProcAddress('glMultiTexGenfvEXT');
17701   glMultiTexGeniEXT := dglGetProcAddress('glMultiTexGeniEXT');
17702   glMultiTexGenivEXT := dglGetProcAddress('glMultiTexGenivEXT');
17703   glGetMultiTexEnvfvEXT := dglGetProcAddress('glGetMultiTexEnvfvEXT');
17704   glGetMultiTexEnvivEXT := dglGetProcAddress('glGetMultiTexEnvivEXT');
17705   glGetMultiTexGendvEXT := dglGetProcAddress('glGetMultiTexGendvEXT');
17706   glGetMultiTexGenfvEXT := dglGetProcAddress('glGetMultiTexGenfvEXT');
17707   glGetMultiTexGenivEXT := dglGetProcAddress('glGetMultiTexGenivEXT');
17708   glGetFloatIndexedvEXT := dglGetProcAddress('glGetFloatIndexedvEXT');
17709   glGetDoubleIndexedvEXT := dglGetProcAddress('glGetDoubleIndexedvEXT');
17710   glGetPointerIndexedvEXT := dglGetProcAddress('glGetPointerIndexedvEXT');
17711   glCompressedTextureImage3DEXT := dglGetProcAddress('glCompressedTextureImage3DEXT');
17712   glCompressedTextureImage2DEXT := dglGetProcAddress('glCompressedTextureImage2DEXT');
17713   glCompressedTextureImage1DEXT := dglGetProcAddress('glCompressedTextureImage1DEXT');
17714   glCompressedTextureSubImage3DEXT := dglGetProcAddress('glCompressedTextureSubImage3DEXT');
17715   glCompressedTextureSubImage2DEXT := dglGetProcAddress('glCompressedTextureSubImage2DEXT');
17716   glCompressedTextureSubImage1DEXT := dglGetProcAddress('glCompressedTextureSubImage1DEXT');
17717   glGetCompressedTextureImageEXT := dglGetProcAddress('glGetCompressedTextureImageEXT');
17718   glCompressedMultiTexImage3DEXT := dglGetProcAddress('glCompressedMultiTexImage3DEXT');
17719   glCompressedMultiTexImage2DEXT := dglGetProcAddress('glCompressedMultiTexImage2DEXT');
17720   glCompressedMultiTexImage1DEXT := dglGetProcAddress('glCompressedMultiTexImage1DEXT');
17721   glCompressedMultiTexSubImage3DEXT := dglGetProcAddress('glCompressedMultiTexSubImage3DEXT');
17722   glCompressedMultiTexSubImage2DEXT := dglGetProcAddress('glCompressedMultiTexSubImage2DEXT');
17723   glCompressedMultiTexSubImage1DEXT := dglGetProcAddress('glCompressedMultiTexSubImage1DEXT');
17724   glGetCompressedMultiTexImageEXT := dglGetProcAddress('glGetCompressedMultiTexImageEXT');
17725   glNamedProgramStringEXT := dglGetProcAddress('glNamedProgramStringEXT');
17726   glNamedProgramLocalParameter4dEXT := dglGetProcAddress('glNamedProgramLocalParameter4dEXT');
17727   glNamedProgramLocalParameter4dvEXT := dglGetProcAddress('glNamedProgramLocalParameter4dvEXT');
17728   glNamedProgramLocalParameter4fEXT := dglGetProcAddress('glNamedProgramLocalParameter4fEXT');
17729   glNamedProgramLocalParameter4fvEXT := dglGetProcAddress('glNamedProgramLocalParameter4fvEXT');
17730   glGetNamedProgramLocalParameterdvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterdvEXT');
17731   glGetNamedProgramLocalParameterfvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterfvEXT');
17732   glGetNamedProgramivEXT := dglGetProcAddress('glGetNamedProgramivEXT');
17733   glGetNamedProgramStringEXT := dglGetProcAddress('glGetNamedProgramStringEXT');
17734   glNamedProgramLocalParameters4fvEXT := dglGetProcAddress('glNamedProgramLocalParameters4fvEXT');
17735   glNamedProgramLocalParameterI4iEXT := dglGetProcAddress('glNamedProgramLocalParameterI4iEXT');
17736   glNamedProgramLocalParameterI4ivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4ivEXT');
17737   glNamedProgramLocalParametersI4ivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4ivEXT');
17738   glNamedProgramLocalParameterI4uiEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uiEXT');
17739   glNamedProgramLocalParameterI4uivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uivEXT');
17740   glNamedProgramLocalParametersI4uivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4uivEXT');
17741   glGetNamedProgramLocalParameterIivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIivEXT');
17742   glGetNamedProgramLocalParameterIuivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIuivEXT');
17743   glTextureParameterIivEXT := dglGetProcAddress('glTextureParameterIivEXT');
17744   glTextureParameterIuivEXT := dglGetProcAddress('glTextureParameterIuivEXT');
17745   glGetTextureParameterIivEXT := dglGetProcAddress('glGetTextureParameterIivEXT');
17746   glGetTextureParameterIuivEXT := dglGetProcAddress('glGetTextureParameterIuivEXT');
17747   glMultiTexParameterIivEXT := dglGetProcAddress('glMultiTexParameterIivEXT');
17748   glMultiTexParameterIuivEXT := dglGetProcAddress('glMultiTexParameterIuivEXT');
17749   glGetMultiTexParameterIivEXT := dglGetProcAddress('glGetMultiTexParameterIivEXT');
17750   glGetMultiTexParameterIuivEXT := dglGetProcAddress('glGetMultiTexParameterIuivEXT');
17751   glProgramUniform1fEXT := dglGetProcAddress('glProgramUniform1fEXT');
17752   glProgramUniform2fEXT := dglGetProcAddress('glProgramUniform2fEXT');
17753   glProgramUniform3fEXT := dglGetProcAddress('glProgramUniform3fEXT');
17754   glProgramUniform4fEXT := dglGetProcAddress('glProgramUniform4fEXT');
17755   glProgramUniform1iEXT := dglGetProcAddress('glProgramUniform1iEXT');
17756   glProgramUniform2iEXT := dglGetProcAddress('glProgramUniform2iEXT');
17757   glProgramUniform3iEXT := dglGetProcAddress('glProgramUniform3iEXT');
17758   glProgramUniform4iEXT := dglGetProcAddress('glProgramUniform4iEXT');
17759   glProgramUniform1fvEXT := dglGetProcAddress('glProgramUniform1fvEXT');
17760   glProgramUniform2fvEXT := dglGetProcAddress('glProgramUniform2fvEXT');
17761   glProgramUniform3fvEXT := dglGetProcAddress('glProgramUniform3fvEXT');
17762   glProgramUniform4fvEXT := dglGetProcAddress('glProgramUniform4fvEXT');
17763   glProgramUniform1ivEXT := dglGetProcAddress('glProgramUniform1ivEXT');
17764   glProgramUniform2ivEXT := dglGetProcAddress('glProgramUniform2ivEXT');
17765   glProgramUniform3ivEXT := dglGetProcAddress('glProgramUniform3ivEXT');
17766   glProgramUniform4ivEXT := dglGetProcAddress('glProgramUniform4ivEXT');
17767   glProgramUniformMatrix2fvEXT := dglGetProcAddress('glProgramUniformMatrix2fvEXT');
17768   glProgramUniformMatrix3fvEXT := dglGetProcAddress('glProgramUniformMatrix3fvEXT');
17769   glProgramUniformMatrix4fvEXT := dglGetProcAddress('glProgramUniformMatrix4fvEXT');
17770   glProgramUniformMatrix2x3fvEXT := dglGetProcAddress('glProgramUniformMatrix2x3fvEXT');
17771   glProgramUniformMatrix3x2fvEXT := dglGetProcAddress('glProgramUniformMatrix3x2fvEXT');
17772   glProgramUniformMatrix2x4fvEXT := dglGetProcAddress('glProgramUniformMatrix2x4fvEXT');
17773   glProgramUniformMatrix4x2fvEXT := dglGetProcAddress('glProgramUniformMatrix4x2fvEXT');
17774   glProgramUniformMatrix3x4fvEXT := dglGetProcAddress('glProgramUniformMatrix3x4fvEXT');
17775   glProgramUniformMatrix4x3fvEXT := dglGetProcAddress('glProgramUniformMatrix4x3fvEXT');
17776   glProgramUniform1uiEXT := dglGetProcAddress('glProgramUniform1uiEXT');
17777   glProgramUniform2uiEXT := dglGetProcAddress('glProgramUniform2uiEXT');
17778   glProgramUniform3uiEXT := dglGetProcAddress('glProgramUniform3uiEXT');
17779   glProgramUniform4uiEXT := dglGetProcAddress('glProgramUniform4uiEXT');
17780   glProgramUniform1uivEXT := dglGetProcAddress('glProgramUniform1uivEXT');
17781   glProgramUniform2uivEXT := dglGetProcAddress('glProgramUniform2uivEXT');
17782   glProgramUniform3uivEXT := dglGetProcAddress('glProgramUniform3uivEXT');
17783   glProgramUniform4uivEXT := dglGetProcAddress('glProgramUniform4uivEXT');
17784   glNamedBufferDataEXT := dglGetProcAddress('glNamedBufferDataEXT');
17785   glNamedBufferSubDataEXT := dglGetProcAddress('glNamedBufferSubDataEXT');
17786   glMapNamedBufferEXT := dglGetProcAddress('glMapNamedBufferEXT');
17787   glUnmapNamedBufferEXT := dglGetProcAddress('glUnmapNamedBufferEXT');
17788   glMapNamedBufferRangeEXT := dglGetProcAddress('glMapNamedBufferRangeEXT');
17789   glFlushMappedNamedBufferRangeEXT := dglGetProcAddress('glFlushMappedNamedBufferRangeEXT');
17790   glNamedCopyBufferSubDataEXT := dglGetProcAddress('glNamedCopyBufferSubDataEXT');
17791   glGetNamedBufferParameterivEXT := dglGetProcAddress('glGetNamedBufferParameterivEXT');
17792   glGetNamedBufferPointervEXT := dglGetProcAddress('glGetNamedBufferPointervEXT');
17793   glGetNamedBufferSubDataEXT := dglGetProcAddress('glGetNamedBufferSubDataEXT');
17794   glTextureBufferEXT := dglGetProcAddress('glTextureBufferEXT');
17795   glMultiTexBufferEXT := dglGetProcAddress('glMultiTexBufferEXT');
17796   glNamedRenderbufferStorageEXT := dglGetProcAddress('glNamedRenderbufferStorageEXT');
17797   glGetNamedRenderbufferParameterivEXT := dglGetProcAddress('glGetNamedRenderbufferParameterivEXT');
17798   glCheckNamedFramebufferStatusEXT := dglGetProcAddress('glCheckNamedFramebufferStatusEXT');
17799   glNamedFramebufferTexture1DEXT := dglGetProcAddress('glNamedFramebufferTexture1DEXT');
17800   glNamedFramebufferTexture2DEXT := dglGetProcAddress('glNamedFramebufferTexture2DEXT');
17801   glNamedFramebufferTexture3DEXT := dglGetProcAddress('glNamedFramebufferTexture3DEXT');
17802   glNamedFramebufferRenderbufferEXT := dglGetProcAddress('glNamedFramebufferRenderbufferEXT');
17803   glGetNamedFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetNamedFramebufferAttachmentParameterivEXT');
17804   glGenerateTextureMipmapEXT := dglGetProcAddress('glGenerateTextureMipmapEXT');
17805   glGenerateMultiTexMipmapEXT := dglGetProcAddress('glGenerateMultiTexMipmapEXT');
17806   glFramebufferDrawBufferEXT := dglGetProcAddress('glFramebufferDrawBufferEXT');
17807   glFramebufferDrawBuffersEXT := dglGetProcAddress('glFramebufferDrawBuffersEXT');
17808   glFramebufferReadBufferEXT := dglGetProcAddress('glFramebufferReadBufferEXT');
17809   glGetFramebufferParameterivEXT := dglGetProcAddress('glGetFramebufferParameterivEXT');
17810   glNamedRenderbufferStorageMultisampleEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleEXT');
17811   glNamedRenderbufferStorageMultisampleCoverageEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleCoverageEXT');
17812   glNamedFramebufferTextureEXT := dglGetProcAddress('glNamedFramebufferTextureEXT');
17813   glNamedFramebufferTextureLayerEXT := dglGetProcAddress('glNamedFramebufferTextureLayerEXT');
17814   glNamedFramebufferTextureFaceEXT := dglGetProcAddress('glNamedFramebufferTextureFaceEXT');
17815   glTextureRenderbufferEXT := dglGetProcAddress('glTextureRenderbufferEXT');
17816   glMultiTexRenderbufferEXT := dglGetProcAddress('glMultiTexRenderbufferEXT');
17817   glProgramUniform1dEXT := dglGetProcAddress('glProgramUniform1dEXT');
17818   glProgramUniform2dEXT := dglGetProcAddress('glProgramUniform2dEXT');
17819   glProgramUniform3dEXT := dglGetProcAddress('glProgramUniform3dEXT');
17820   glProgramUniform4dEXT := dglGetProcAddress('glProgramUniform4dEXT');
17821   glProgramUniform1dvEXT := dglGetProcAddress('glProgramUniform1dvEXT');
17822   glProgramUniform2dvEXT := dglGetProcAddress('glProgramUniform2dvEXT');
17823   glProgramUniform3dvEXT := dglGetProcAddress('glProgramUniform3dvEXT');
17824   glProgramUniform4dvEXT := dglGetProcAddress('glProgramUniform4dvEXT');
17825   glProgramUniformMatrix2dvEXT := dglGetProcAddress('glProgramUniformMatrix2dvEXT');
17826   glProgramUniformMatrix3dvEXT := dglGetProcAddress('glProgramUniformMatrix3dvEXT');
17827   glProgramUniformMatrix4dvEXT := dglGetProcAddress('glProgramUniformMatrix4dvEXT');
17828   glProgramUniformMatrix2x3dvEXT := dglGetProcAddress('glProgramUniformMatrix2x3dvEXT');
17829   glProgramUniformMatrix2x4dvEXT := dglGetProcAddress('glProgramUniformMatrix2x4dvEXT');
17830   glProgramUniformMatrix3x2dvEXT := dglGetProcAddress('glProgramUniformMatrix3x2dvEXT');
17831   glProgramUniformMatrix3x4dvEXT := dglGetProcAddress('glProgramUniformMatrix3x4dvEXT');
17832   glProgramUniformMatrix4x2dvEXT := dglGetProcAddress('glProgramUniformMatrix4x2dvEXT');
17833   glProgramUniformMatrix4x3dvEXT := dglGetProcAddress('glProgramUniformMatrix4x3dvEXT');
17834 end;
17835
17836 procedure Read_GL_EXT_separate_shader_objects;
17837 begin
17838   glUseShaderProgramEXT := dglGetProcAddress('glUseShaderProgramEXT');
17839   glActiveProgramEXT := dglGetProcAddress('glActiveProgramEXT');
17840   glCreateShaderProgramEXT := dglGetProcAddress('glCreateShaderProgramEXT');
17841 end;
17842
17843 procedure Read_GL_EXT_shader_image_load_store;
17844 begin
17845   glBindImageTextureEXT := dglGetProcAddress('glBindImageTextureEXT');
17846   glMemoryBarrierEXT := dglGetProcAddress('glMemoryBarrierEXT');
17847 end;
17848
17849 procedure Read_GL_EXT_vertex_attrib_64bit;
17850 begin
17851   glVertexAttribL1dEXT := dglGetProcAddress('glVertexAttribL1dEXT');
17852   glVertexAttribL2dEXT := dglGetProcAddress('glVertexAttribL2dEXT');
17853   glVertexAttribL3dEXT := dglGetProcAddress('glVertexAttribL3dEXT');
17854   glVertexAttribL4dEXT := dglGetProcAddress('glVertexAttribL4dEXT');
17855   glVertexAttribL1dvEXT := dglGetProcAddress('glVertexAttribL1dvEXT');
17856   glVertexAttribL2dvEXT := dglGetProcAddress('glVertexAttribL2dvEXT');
17857   glVertexAttribL3dvEXT := dglGetProcAddress('glVertexAttribL3dvEXT');
17858   glVertexAttribL4dvEXT := dglGetProcAddress('glVertexAttribL4dvEXT');
17859   glVertexAttribLPointerEXT := dglGetProcAddress('glVertexAttribLPointerEXT');
17860   glGetVertexAttribLdvEXT := dglGetProcAddress('glGetVertexAttribLdvEXT');
17861   glVertexArrayVertexAttribLOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribLOffsetEXT');
17862 end;
17863
17864 procedure Read_GL_HP_image_transform;
17865 begin
17866   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
17867   glImageTransformParameterfHP := dglGetProcAddress('glImageTransformParameterfHP');
17868   glImageTransformParameterivHP := dglGetProcAddress('glImageTransformParameterivHP');
17869   glImageTransformParameterfvHP := dglGetProcAddress('glImageTransformParameterfvHP');
17870   glGetImageTransformParameterivHP := dglGetProcAddress('glGetImageTransformParameterivHP');
17871   glGetImageTransformParameterfvHP := dglGetProcAddress('glGetImageTransformParameterfvHP');
17872 end;
17873
17874 procedure Read_GL_IBM_multimode_draw_arrays;
17875 begin
17876   glMultiModeDrawArraysIBM := dglGetProcAddress('glMultiModeDrawArraysIBM');
17877   glMultiModeDrawElementsIBM := dglGetProcAddress('glMultiModeDrawElementsIBM');
17878 end;
17879
17880 procedure Read_GL_IBM_vertex_array_lists;
17881 begin
17882   glColorPointerListIBM := dglGetProcAddress('glColorPointerListIBM');
17883   glSecondaryColorPointerListIBM := dglGetProcAddress('glSecondaryColorPointerListIBM');
17884   glEdgeFlagPointerListIBM := dglGetProcAddress('glEdgeFlagPointerListIBM');
17885   glFogCoordPointerListIBM := dglGetProcAddress('glFogCoordPointerListIBM');
17886   glIndexPointerListIBM := dglGetProcAddress('glIndexPointerListIBM');
17887   glNormalPointerListIBM := dglGetProcAddress('glNormalPointerListIBM');
17888   glTexCoordPointerListIBM := dglGetProcAddress('glTexCoordPointerListIBM');
17889   glVertexPointerListIBM := dglGetProcAddress('glVertexPointerListIBM');
17890 end;
17891
17892 procedure Read_GL_INGR_blend_func_separate;
17893 begin
17894   glBlendFuncSeparateINGR := dglGetProcAddress('glBlendFuncSeparateINGR');
17895 end;
17896
17897 procedure Read_GL_INTEL_parallel_arrays;
17898 begin
17899   glVertexPointervINTEL := dglGetProcAddress('glVertexPointervINTEL');
17900   glNormalPointervINTEL := dglGetProcAddress('glNormalPointervINTEL');
17901   glColorPointervINTEL := dglGetProcAddress('glColorPointervINTEL');
17902   glTexCoordPointervINTEL := dglGetProcAddress('glTexCoordPointervINTEL');
17903 end;
17904
17905 procedure Read_GL_MESA_resize_buffers;
17906 begin
17907   glResizeBuffersMESA := dglGetProcAddress('glResizeBuffersMESA');
17908 end;
17909
17910 procedure Read_GL_MESA_window_pos;
17911 begin
17912   glWindowPos2dMESA := dglGetProcAddress('glWindowPos2dMESA');
17913   glWindowPos2dvMESA := dglGetProcAddress('glWindowPos2dvMESA');
17914   glWindowPos2fMESA := dglGetProcAddress('glWindowPos2fMESA');
17915   glWindowPos2fvMESA := dglGetProcAddress('glWindowPos2fvMESA');
17916   glWindowPos2iMESA := dglGetProcAddress('glWindowPos2iMESA');
17917   glWindowPos2ivMESA := dglGetProcAddress('glWindowPos2ivMESA');
17918   glWindowPos2sMESA := dglGetProcAddress('glWindowPos2sMESA');
17919   glWindowPos2svMESA := dglGetProcAddress('glWindowPos2svMESA');
17920   glWindowPos3dMESA := dglGetProcAddress('glWindowPos3dMESA');
17921   glWindowPos3dvMESA := dglGetProcAddress('glWindowPos3dvMESA');
17922   glWindowPos3fMESA := dglGetProcAddress('glWindowPos3fMESA');
17923   glWindowPos3fvMESA := dglGetProcAddress('glWindowPos3fvMESA');
17924   glWindowPos3iMESA := dglGetProcAddress('glWindowPos3iMESA');
17925   glWindowPos3ivMESA := dglGetProcAddress('glWindowPos3ivMESA');
17926   glWindowPos3sMESA := dglGetProcAddress('glWindowPos3sMESA');
17927   glWindowPos3svMESA := dglGetProcAddress('glWindowPos3svMESA');
17928   glWindowPos4dMESA := dglGetProcAddress('glWindowPos4dMESA');
17929   glWindowPos4dvMESA := dglGetProcAddress('glWindowPos4dvMESA');
17930   glWindowPos4fMESA := dglGetProcAddress('glWindowPos4fMESA');
17931   glWindowPos4fvMESA := dglGetProcAddress('glWindowPos4fvMESA');
17932   glWindowPos4iMESA := dglGetProcAddress('glWindowPos4iMESA');
17933   glWindowPos4ivMESA := dglGetProcAddress('glWindowPos4ivMESA');
17934   glWindowPos4sMESA := dglGetProcAddress('glWindowPos4sMESA');
17935   glWindowPos4svMESA := dglGetProcAddress('glWindowPos4svMESA');
17936 end;
17937
17938 procedure Read_GL_NV_evaluators;
17939 begin
17940   glMapControlPointsNV := dglGetProcAddress('glMapControlPointsNV');
17941   glMapParameterivNV := dglGetProcAddress('glMapParameterivNV');
17942   glMapParameterfvNV := dglGetProcAddress('glMapParameterfvNV');
17943   glGetMapControlPointsNV := dglGetProcAddress('glGetMapControlPointsNV');
17944   glGetMapParameterivNV := dglGetProcAddress('glGetMapParameterivNV');
17945   glGetMapParameterfvNV := dglGetProcAddress('glGetMapParameterfvNV');
17946   glGetMapAttribParameterivNV := dglGetProcAddress('glGetMapAttribParameterivNV');
17947   glGetMapAttribParameterfvNV := dglGetProcAddress('glGetMapAttribParameterfvNV');
17948   glEvalMapsNV := dglGetProcAddress('glEvalMapsNV');
17949 end;
17950
17951 procedure Read_GL_NV_fence;
17952 begin
17953   glDeleteFencesNV := dglGetProcAddress('glDeleteFencesNV');
17954   glGenFencesNV := dglGetProcAddress('glGenFencesNV');
17955   glIsFenceNV := dglGetProcAddress('glIsFenceNV');
17956   glTestFenceNV := dglGetProcAddress('glTestFenceNV');
17957   glGetFenceivNV := dglGetProcAddress('glGetFenceivNV');
17958   glFinishFenceNV := dglGetProcAddress('glFinishFenceNV');
17959   glSetFenceNV := dglGetProcAddress('glSetFenceNV');
17960 end;
17961
17962 procedure Read_GL_NV_fragment_program;
17963 begin
17964   glProgramNamedParameter4fNV := dglGetProcAddress('glProgramNamedParameter4fNV');
17965   glProgramNamedParameter4dNV := dglGetProcAddress('glProgramNamedParameter4dNV');
17966   glProgramNamedParameter4fvNV := dglGetProcAddress('glProgramNamedParameter4fvNV');
17967   glProgramNamedParameter4dvNV := dglGetProcAddress('glProgramNamedParameter4dvNV');
17968   glGetProgramNamedParameterfvNV := dglGetProcAddress('glGetProgramNamedParameterfvNV');
17969   glGetProgramNamedParameterdvNV := dglGetProcAddress('glGetProgramNamedParameterdvNV');
17970 end;
17971
17972 procedure Read_GL_NV_half_float;
17973 begin
17974   glVertex2hNV := dglGetProcAddress('glVertex2hNV');
17975   glVertex2hvNV := dglGetProcAddress('glVertex2hvNV');
17976   glVertex3hNV := dglGetProcAddress('glVertex3hNV');
17977   glVertex3hvNV := dglGetProcAddress('glVertex3hvNV');
17978   glVertex4hNV := dglGetProcAddress('glVertex4hNV');
17979   glVertex4hvNV := dglGetProcAddress('glVertex4hvNV');
17980   glNormal3hNV := dglGetProcAddress('glNormal3hNV');
17981   glNormal3hvNV := dglGetProcAddress('glNormal3hvNV');
17982   glColor3hNV := dglGetProcAddress('glColor3hNV');
17983   glColor3hvNV := dglGetProcAddress('glColor3hvNV');
17984   glColor4hNV := dglGetProcAddress('glColor4hNV');
17985   glColor4hvNV := dglGetProcAddress('glColor4hvNV');
17986   glTexCoord1hNV := dglGetProcAddress('glTexCoord1hNV');
17987   glTexCoord1hvNV := dglGetProcAddress('glTexCoord1hvNV');
17988   glTexCoord2hNV := dglGetProcAddress('glTexCoord2hNV');
17989   glTexCoord2hvNV := dglGetProcAddress('glTexCoord2hvNV');
17990   glTexCoord3hNV := dglGetProcAddress('glTexCoord3hNV');
17991   glTexCoord3hvNV := dglGetProcAddress('glTexCoord3hvNV');
17992   glTexCoord4hNV := dglGetProcAddress('glTexCoord4hNV');
17993   glTexCoord4hvNV := dglGetProcAddress('glTexCoord4hvNV');
17994   glMultiTexCoord1hNV := dglGetProcAddress('glMultiTexCoord1hNV');
17995   glMultiTexCoord1hvNV := dglGetProcAddress('glMultiTexCoord1hvNV');
17996   glMultiTexCoord2hNV := dglGetProcAddress('glMultiTexCoord2hNV');
17997   glMultiTexCoord2hvNV := dglGetProcAddress('glMultiTexCoord2hvNV');
17998   glMultiTexCoord3hNV := dglGetProcAddress('glMultiTexCoord3hNV');
17999   glMultiTexCoord3hvNV := dglGetProcAddress('glMultiTexCoord3hvNV');
18000   glMultiTexCoord4hNV := dglGetProcAddress('glMultiTexCoord4hNV');
18001   glMultiTexCoord4hvNV := dglGetProcAddress('glMultiTexCoord4hvNV');
18002   glFogCoordhNV := dglGetProcAddress('glFogCoordhNV');
18003   glFogCoordhvNV := dglGetProcAddress('glFogCoordhvNV');
18004   glSecondaryColor3hNV := dglGetProcAddress('glSecondaryColor3hNV');
18005   glSecondaryColor3hvNV := dglGetProcAddress('glSecondaryColor3hvNV');
18006   glVertexWeighthNV := dglGetProcAddress('glVertexWeighthNV');
18007   glVertexWeighthvNV := dglGetProcAddress('glVertexWeighthvNV');
18008   glVertexAttrib1hNV := dglGetProcAddress('glVertexAttrib1hNV');
18009   glVertexAttrib1hvNV := dglGetProcAddress('glVertexAttrib1hvNV');
18010   glVertexAttrib2hNV := dglGetProcAddress('glVertexAttrib2hNV');
18011   glVertexAttrib2hvNV := dglGetProcAddress('glVertexAttrib2hvNV');
18012   glVertexAttrib3hNV := dglGetProcAddress('glVertexAttrib3hNV');
18013   glVertexAttrib3hvNV := dglGetProcAddress('glVertexAttrib3hvNV');
18014   glVertexAttrib4hNV := dglGetProcAddress('glVertexAttrib4hNV');
18015   glVertexAttrib4hvNV := dglGetProcAddress('glVertexAttrib4hvNV');
18016   glVertexAttribs1hvNV := dglGetProcAddress('glVertexAttribs1hvNV');
18017   glVertexAttribs2hvNV := dglGetProcAddress('glVertexAttribs2hvNV');
18018   glVertexAttribs3hvNV := dglGetProcAddress('glVertexAttribs3hvNV');
18019   glVertexAttribs4hvNV := dglGetProcAddress('glVertexAttribs4hvNV');
18020 end;
18021
18022 procedure Read_GL_NV_occlusion_query;
18023 begin
18024   glGenOcclusionQueriesNV := dglGetProcAddress('glGenOcclusionQueriesNV');
18025   glDeleteOcclusionQueriesNV := dglGetProcAddress('glDeleteOcclusionQueriesNV');
18026   glIsOcclusionQueryNV := dglGetProcAddress('glIsOcclusionQueryNV');
18027   glBeginOcclusionQueryNV := dglGetProcAddress('glBeginOcclusionQueryNV');
18028   glEndOcclusionQueryNV := dglGetProcAddress('glEndOcclusionQueryNV');
18029   glGetOcclusionQueryivNV := dglGetProcAddress('glGetOcclusionQueryivNV');
18030   glGetOcclusionQueryuivNV := dglGetProcAddress('glGetOcclusionQueryuivNV');
18031 end;
18032
18033 procedure Read_GL_NV_pixel_data_range;
18034 begin
18035   glPixelDataRangeNV := dglGetProcAddress('glPixelDataRangeNV');
18036   glFlushPixelDataRangeNV := dglGetProcAddress('glFlushPixelDataRangeNV');
18037 end;
18038
18039 procedure Read_GL_NV_point_sprite;
18040 begin
18041   glPointParameteriNV := dglGetProcAddress('glPointParameteriNV');
18042   glPointParameterivNV := dglGetProcAddress('glPointParameterivNV');
18043 end;
18044
18045 procedure Read_GL_NV_primitive_restart;
18046 begin
18047   glPrimitiveRestartNV := dglGetProcAddress('glPrimitiveRestartNV');
18048   glPrimitiveRestartIndexNV := dglGetProcAddress('glPrimitiveRestartIndexNV');
18049 end;
18050
18051 procedure Read_GL_NV_register_combiners;
18052 begin
18053   glCombinerParameterfvNV := dglGetProcAddress('glCombinerParameterfvNV');
18054   glCombinerParameterfNV := dglGetProcAddress('glCombinerParameterfNV');
18055   glCombinerParameterivNV := dglGetProcAddress('glCombinerParameterivNV');
18056   glCombinerParameteriNV := dglGetProcAddress('glCombinerParameteriNV');
18057   glCombinerInputNV := dglGetProcAddress('glCombinerInputNV');
18058   glCombinerOutputNV := dglGetProcAddress('glCombinerOutputNV');
18059   glFinalCombinerInputNV := dglGetProcAddress('glFinalCombinerInputNV');
18060   glGetCombinerInputParameterfvNV := dglGetProcAddress('glGetCombinerInputParameterfvNV');
18061   glGetCombinerInputParameterivNV := dglGetProcAddress('glGetCombinerInputParameterivNV');
18062   glGetCombinerOutputParameterfvNV := dglGetProcAddress('glGetCombinerOutputParameterfvNV');
18063   glGetCombinerOutputParameterivNV := dglGetProcAddress('glGetCombinerOutputParameterivNV');
18064   glGetFinalCombinerInputParameterfvNV := dglGetProcAddress('glGetFinalCombinerInputParameterfvNV');
18065   glGetFinalCombinerInputParameterivNV := dglGetProcAddress('glGetFinalCombinerInputParameterivNV');
18066 end;
18067
18068 procedure Read_GL_NV_register_combiners2;
18069 begin
18070   glCombinerStageParameterfvNV := dglGetProcAddress('glCombinerStageParameterfvNV');
18071   glGetCombinerStageParameterfvNV := dglGetProcAddress('glGetCombinerStageParameterfvNV');
18072 end;
18073
18074 procedure Read_GL_NV_vertex_array_range;
18075 begin
18076   glFlushVertexArrayRangeNV := dglGetProcAddress('glFlushVertexArrayRangeNV');
18077   glVertexArrayRangeNV := dglGetProcAddress('glVertexArrayRangeNV');
18078 end;
18079
18080 procedure Read_GL_NV_vertex_program;
18081 begin
18082   glAreProgramsResidentNV := dglGetProcAddress('glAreProgramsResidentNV');
18083   glBindProgramNV := dglGetProcAddress('glBindProgramNV');
18084   glDeleteProgramsNV := dglGetProcAddress('glDeleteProgramsNV');
18085   glExecuteProgramNV := dglGetProcAddress('glExecuteProgramNV');
18086   glGenProgramsNV := dglGetProcAddress('glGenProgramsNV');
18087   glGetProgramParameterdvNV := dglGetProcAddress('glGetProgramParameterdvNV');
18088   glGetProgramParameterfvNV := dglGetProcAddress('glGetProgramParameterfvNV');
18089   glGetProgramivNV := dglGetProcAddress('glGetProgramivNV');
18090   glGetProgramStringNV := dglGetProcAddress('glGetProgramStringNV');
18091   glGetTrackMatrixivNV := dglGetProcAddress('glGetTrackMatrixivNV');
18092   glGetVertexAttribdvNV := dglGetProcAddress('glGetVertexAttribdvNV');
18093   glGetVertexAttribfvNV := dglGetProcAddress('glGetVertexAttribfvNV');
18094   glGetVertexAttribivNV := dglGetProcAddress('glGetVertexAttribivNV');
18095   glGetVertexAttribPointervNV := dglGetProcAddress('glGetVertexAttribPointervNV');
18096   glIsProgramNV := dglGetProcAddress('glIsProgramNV');
18097   glLoadProgramNV := dglGetProcAddress('glLoadProgramNV');
18098   glProgramParameter4dNV := dglGetProcAddress('glProgramParameter4dNV');
18099   glProgramParameter4dvNV := dglGetProcAddress('glProgramParameter4dvNV');
18100   glProgramParameter4fNV := dglGetProcAddress('glProgramParameter4fNV');
18101   glProgramParameter4fvNV := dglGetProcAddress('glProgramParameter4fvNV');
18102   glProgramParameters4dvNV := dglGetProcAddress('glProgramParameters4dvNV');
18103   glProgramParameters4fvNV := dglGetProcAddress('glProgramParameters4fvNV');
18104   glRequestResidentProgramsNV := dglGetProcAddress('glRequestResidentProgramsNV');
18105   glTrackMatrixNV := dglGetProcAddress('glTrackMatrixNV');
18106   glVertexAttribPointerNV := dglGetProcAddress('glVertexAttribPointerNV');
18107   glVertexAttrib1dNV := dglGetProcAddress('glVertexAttrib1dNV');
18108   glVertexAttrib1dvNV := dglGetProcAddress('glVertexAttrib1dvNV');
18109   glVertexAttrib1fNV := dglGetProcAddress('glVertexAttrib1fNV');
18110   glVertexAttrib1fvNV := dglGetProcAddress('glVertexAttrib1fvNV');
18111   glVertexAttrib1sNV := dglGetProcAddress('glVertexAttrib1sNV');
18112   glVertexAttrib1svNV := dglGetProcAddress('glVertexAttrib1svNV');
18113   glVertexAttrib2dNV := dglGetProcAddress('glVertexAttrib2dNV');
18114   glVertexAttrib2dvNV := dglGetProcAddress('glVertexAttrib2dvNV');
18115   glVertexAttrib2fNV := dglGetProcAddress('glVertexAttrib2fNV');
18116   glVertexAttrib2fvNV := dglGetProcAddress('glVertexAttrib2fvNV');
18117   glVertexAttrib2sNV := dglGetProcAddress('glVertexAttrib2sNV');
18118   glVertexAttrib2svNV := dglGetProcAddress('glVertexAttrib2svNV');
18119   glVertexAttrib3dNV := dglGetProcAddress('glVertexAttrib3dNV');
18120   glVertexAttrib3dvNV := dglGetProcAddress('glVertexAttrib3dvNV');
18121   glVertexAttrib3fNV := dglGetProcAddress('glVertexAttrib3fNV');
18122   glVertexAttrib3fvNV := dglGetProcAddress('glVertexAttrib3fvNV');
18123   glVertexAttrib3sNV := dglGetProcAddress('glVertexAttrib3sNV');
18124   glVertexAttrib3svNV := dglGetProcAddress('glVertexAttrib3svNV');
18125   glVertexAttrib4dNV := dglGetProcAddress('glVertexAttrib4dNV');
18126   glVertexAttrib4dvNV := dglGetProcAddress('glVertexAttrib4dvNV');
18127   glVertexAttrib4fNV := dglGetProcAddress('glVertexAttrib4fNV');
18128   glVertexAttrib4fvNV := dglGetProcAddress('glVertexAttrib4fvNV');
18129   glVertexAttrib4sNV := dglGetProcAddress('glVertexAttrib4sNV');
18130   glVertexAttrib4svNV := dglGetProcAddress('glVertexAttrib4svNV');
18131   glVertexAttrib4ubNV := dglGetProcAddress('glVertexAttrib4ubNV');
18132   glVertexAttrib4ubvNV := dglGetProcAddress('glVertexAttrib4ubvNV');
18133   glVertexAttribs1dvNV := dglGetProcAddress('glVertexAttribs1dvNV');
18134   glVertexAttribs1fvNV := dglGetProcAddress('glVertexAttribs1fvNV');
18135   glVertexAttribs1svNV := dglGetProcAddress('glVertexAttribs1svNV');
18136   glVertexAttribs2dvNV := dglGetProcAddress('glVertexAttribs2dvNV');
18137   glVertexAttribs2fvNV := dglGetProcAddress('glVertexAttribs2fvNV');
18138   glVertexAttribs2svNV := dglGetProcAddress('glVertexAttribs2svNV');
18139   glVertexAttribs3dvNV := dglGetProcAddress('glVertexAttribs3dvNV');
18140   glVertexAttribs3fvNV := dglGetProcAddress('glVertexAttribs3fvNV');
18141   glVertexAttribs3svNV := dglGetProcAddress('glVertexAttribs3svNV');
18142   glVertexAttribs4dvNV := dglGetProcAddress('glVertexAttribs4dvNV');
18143   glVertexAttribs4fvNV := dglGetProcAddress('glVertexAttribs4fvNV');
18144   glVertexAttribs4svNV := dglGetProcAddress('glVertexAttribs4svNV');
18145   glVertexAttribs4ubvNV := dglGetProcAddress('glVertexAttribs4ubvNV');
18146 end;
18147
18148 procedure Read_GL_NV_depth_buffer_float;
18149 begin
18150   glDepthRangedNV := dglGetProcAddress('glDepthRangedNV');
18151   glClearDepthdNV := dglGetProcAddress('glClearDepthdNV');
18152   glDepthBoundsdNV := dglGetProcAddress('glDepthBoundsdNV');
18153 end;
18154
18155 procedure Read_GL_NV_framebuffer_multisample_coverage;
18156 begin
18157   glRenderbufferStorageMultsampleCoverageNV := dglGetProcAddress('glRenderbufferStorageMultsampleCoverageNV');
18158 end;
18159
18160 procedure Read_GL_NV_geometry_program4;
18161 begin
18162   glProgramVertexLimitNV := dglGetProcAddress('glProgramVertexLimitNV');
18163 end;
18164
18165 procedure Read_GL_NV_gpu_program4;
18166 begin
18167   glProgramLocalParameterI4iNV := dglGetProcAddress('glProgramLocalParameterI4iNV');
18168   glProgramLocalParameterI4ivNV := dglGetProcAddress('glProgramLocalParameterI4ivNV');
18169   glProgramLocalParametersI4ivNV := dglGetProcAddress('glProgramLocalParametersI4ivNV');
18170   glProgramLocalParameterI4uiNV := dglGetProcAddress('glProgramLocalParameterI4uiNV');
18171   glProgramLocalParameterI4uivNV := dglGetProcAddress('glProgramLocalParameterI4uivNV');
18172   glProgramLocalParametersI4uivNV := dglGetProcAddress('glProgramLocalParametersI4uivNV');
18173   glProgramEnvParameterI4iNV := dglGetProcAddress('glProgramEnvParameterI4iNV');
18174   glProgramEnvParameterI4ivNV := dglGetProcAddress('glProgramEnvParameterI4ivNV');
18175   glProgramEnvParametersI4ivNV := dglGetProcAddress('glProgramEnvParametersI4ivNV');
18176   glProgramEnvParameterI4uiNV := dglGetProcAddress('glProgramEnvParameterI4uiNV');
18177   glProgramEnvParameterI4uivNV := dglGetProcAddress('glProgramEnvParameterI4uivNV');
18178   glProgramEnvParametersI4uivNV := dglGetProcAddress('glProgramEnvParametersI4uivNV');
18179   glGetProgramLocalParameterIivNV := dglGetProcAddress('glGetProgramLocalParameterIivNV');
18180   glGetProgramLocalParameterIuivNV := dglGetProcAddress('glGetProgramLocalParameterIuivNV');
18181   glGetProgramEnvParameterIivNV := dglGetProcAddress('glGetProgramEnvParameterIivNV');
18182   glGetProgramEnvParameterIuivNV := dglGetProcAddress('glGetProgramEnvParameterIuivNV');
18183 end;
18184
18185 procedure Read_GL_NV_parameter_buffer_object;
18186 begin
18187   glProgramBufferParametersfvNV := dglGetProcAddress('glProgramBufferParametersfvNV');
18188   glProgramBufferParametersIivNV := dglGetProcAddress('glProgramBufferParametersIivNV');
18189   glProgramBufferParametersIuivNV := dglGetProcAddress('glProgramBufferParametersIuivNV');
18190 end;
18191
18192 procedure Read_GL_NV_transform_feedback;
18193 begin
18194   glBeginTransformFeedbackNV := dglGetProcAddress('glBeginTransformFeedbackNV');
18195   glEndTransformFeedbackNV := dglGetProcAddress('glEndTransformFeedbackNV');
18196   glTransformFeedbackAttribsNV := dglGetProcAddress('glTransformFeedbackAttribsNV');
18197   glBindBufferRangeNV := dglGetProcAddress('glBindBufferRangeNV');
18198   glBindBufferOffsetNV := dglGetProcAddress('glBindBufferOffsetNV');
18199   glBindBufferBaseNV := dglGetProcAddress('glBindBufferBaseNV');
18200   glTransformFeedbackVaryingsNV := dglGetProcAddress('glTransformFeedbackVaryingsNV');
18201   glActiveVaryingNV := dglGetProcAddress('glActiveVaryingNV');
18202   glGetVaryingLocationNV := dglGetProcAddress('glGetVaryingLocationNV');
18203   glGetActiveVaryingNV := dglGetProcAddress('glGetActiveVaryingNV');
18204   glGetTransformFeedbackVaryingNV := dglGetProcAddress('glGetTransformFeedbackVaryingNV');
18205   glTransformFeedbackStreamAttribsNV := dglGetProcAddress('glTransformFeedbackStreamAttribsNV');
18206 end;
18207
18208 procedure Read_GL_NV_conditional_render;
18209 begin
18210   glBeginConditionalRenderNV := dglGetProcAddress('glBeginConditionalRenderNV');
18211   glEndConditionalRenderNV := dglGetProcAddress('glEndConditionalRenderNV');
18212 end;
18213
18214 procedure Read_GL_NV_present_video;
18215 begin
18216   glPresentFrameKeyedNV := dglGetProcAddress('glPresentFrameKeyedNV');
18217   glPresentFrameDualFillNV := dglGetProcAddress('glPresentFrameDualFillNV');
18218   glGetVideoivNV := dglGetProcAddress('glGetVideoivNV');
18219   glGetVideouivNV := dglGetProcAddress('glGetVideouivNV');
18220   glGetVideoi64vNV := dglGetProcAddress('glGetVideoi64vNV');
18221   glGetVideoui64vNV := dglGetProcAddress('glGetVideoui64vNV');
18222 //  glVideoParameterivNV := dglGetProcAddress('glVideoParameterivNV');
18223 end;
18224
18225 procedure Read_GL_NV_explicit_multisample;
18226 begin
18227   glGetMultisamplefvNV := dglGetProcAddress('glGetMultisamplefvNV');
18228   glSampleMaskIndexedNV := dglGetProcAddress('glSampleMaskIndexedNV');
18229   glTexRenderbufferNV := dglGetProcAddress('glTexRenderbufferNV');
18230 end;
18231
18232 procedure Read_GL_NV_transform_feedback2;
18233 begin
18234   glBindTransformFeedbackNV := dglGetProcAddress('glBindTransformFeedbackNV');
18235   glDeleteTransformFeedbacksNV := dglGetProcAddress('glDeleteTransformFeedbacksNV');
18236   glGenTransformFeedbacksNV := dglGetProcAddress('glGenTransformFeedbacksNV');
18237   glIsTransformFeedbackNV := dglGetProcAddress('glIsTransformFeedbackNV');
18238   glPauseTransformFeedbackNV := dglGetProcAddress('glPauseTransformFeedbackNV');
18239   glResumeTransformFeedbackNV := dglGetProcAddress('glResumeTransformFeedbackNV');
18240   glDrawTransformFeedbackNV := dglGetProcAddress('glDrawTransformFeedbackNV');
18241 end;
18242
18243 procedure Read_GL_NV_video_capture;
18244 begin
18245   glBeginVideoCaptureNV := dglGetProcAddress('glBeginVideoCaptureNV');
18246   glBindVideoCaptureStreamBufferNV := dglGetProcAddress('glBindVideoCaptureStreamBufferNV');
18247   glBindVideoCaptureStreamTextureNV := dglGetProcAddress('glBindVideoCaptureStreamTextureNV');
18248   glEndVideoCaptureNV := dglGetProcAddress('glEndVideoCaptureNV');
18249   glGetVideoCaptureivNV := dglGetProcAddress('glGetVideoCaptureivNV');
18250   glGetVideoCaptureStreamivNV := dglGetProcAddress('glGetVideoCaptureStreamivNV');
18251   glGetVideoCaptureStreamfvNV := dglGetProcAddress('glGetVideoCaptureStreamfvNV');
18252   glGetVideoCaptureStreamdvNV := dglGetProcAddress('glGetVideoCaptureStreamdvNV');
18253   glVideoCaptureNV := dglGetProcAddress('glVideoCaptureNV');
18254   glVideoCaptureStreamParameterivNV := dglGetProcAddress('glVideoCaptureStreamParameterivNV');
18255   glVideoCaptureStreamParameterfvNV := dglGetProcAddress('glVideoCaptureStreamParameterfvNV');
18256   glVideoCaptureStreamParameterdvNV := dglGetProcAddress('glVideoCaptureStreamParameterdvNV');
18257 end;
18258
18259 procedure Read_GL_NV_copy_image;
18260 begin
18261   glCopyImageSubDataNV := dglGetProcAddress('glCopyImageSubDataNV');
18262 end;
18263
18264 procedure Read_GL_NV_shader_buffer_load;
18265 begin
18266   glMakeBufferResidentNV := dglGetProcAddress('glMakeBufferResidentNV');
18267   glMakeBufferNonResidentNV := dglGetProcAddress('glMakeBufferNonResidentNV');
18268   glIsBufferResidentNV := dglGetProcAddress('glIsBufferResidentNV');
18269   glMakeNamedBufferResidentNV := dglGetProcAddress('glMakeNamedBufferResidentNV');
18270   glMakeNamedBufferNonResidentNV := dglGetProcAddress('glMakeNamedBufferNonResidentNV');
18271   glIsNamedBufferResidentNV := dglGetProcAddress('glIsNamedBufferResidentNV');
18272   glGetBufferParameterui64vNV := dglGetProcAddress('glGetBufferParameterui64vNV');
18273   glGetNamedBufferParameterui64vNV := dglGetProcAddress('glGetNamedBufferParameterui64vNV');
18274   glGetIntegerui64vNV := dglGetProcAddress('glGetIntegerui64vNV');
18275   glUniformui64NV := dglGetProcAddress('glUniformui64NV');
18276   glUniformui64vNV := dglGetProcAddress('glUniformui64vNV');
18277   glGetUniformui64vNV := dglGetProcAddress('glGetUniformui64vNV');
18278   glProgramUniformui64NV := dglGetProcAddress('glProgramUniformui64NV');
18279   glProgramUniformui64vNV := dglGetProcAddress('glProgramUniformui64vNV');
18280 end;
18281
18282 procedure Read_GL_NV_vertex_buffer_unified_memory;
18283 begin
18284   glBufferAddressRangeNV := dglGetProcAddress('glBufferAddressRangeNV');
18285   glVertexFormatNV := dglGetProcAddress('glVertexFormatNV');
18286   glNormalFormatNV := dglGetProcAddress('glNormalFormatNV');
18287   glColorFormatNV := dglGetProcAddress('glColorFormatNV');
18288   glIndexFormatNV := dglGetProcAddress('glIndexFormatNV');
18289   glTexCoordFormatNV := dglGetProcAddress('glTexCoordFormatNV');
18290   glEdgeFlagFormatNV := dglGetProcAddress('glEdgeFlagFormatNV');
18291   glSecondaryColorFormatNV := dglGetProcAddress('glSecondaryColorFormatNV');
18292   glFogCoordFormatNV := dglGetProcAddress('glFogCoordFormatNV');
18293   glVertexAttribFormatNV := dglGetProcAddress('glVertexAttribFormatNV');
18294   glVertexAttribIFormatNV := dglGetProcAddress('glVertexAttribIFormatNV');
18295   glGetIntegerui64i_vNV := dglGetProcAddress('glGetIntegerui64i_vNV');
18296 end;
18297
18298 procedure Read_GL_NV_gpu_program5;
18299 begin
18300   glProgramSubroutineParametersuivNV := dglGetProcAddress('glProgramSubroutineParametersuivNV');
18301   glGetProgramSubroutineParameteruivNV := dglGetProcAddress('glGetProgramSubroutineParameteruivNV');
18302 end;
18303
18304 procedure Read_GL_NV_gpu_shader5;
18305 begin
18306   glUniform1i64NV := dglGetProcAddress('glUniform1i64NV');
18307   glUniform2i64NV := dglGetProcAddress('glUniform2i64NV');
18308   glUniform3i64NV := dglGetProcAddress('glUniform3i64NV');
18309   glUniform4i64NV := dglGetProcAddress('glUniform4i64NV');
18310   glUniform1i64vNV := dglGetProcAddress('glUniform1i64vNV');
18311   glUniform2i64vNV := dglGetProcAddress('glUniform2i64vNV');
18312   glUniform3i64vNV := dglGetProcAddress('glUniform3i64vNV');
18313   glUniform4i64vNV := dglGetProcAddress('glUniform4i64vNV');
18314   glUniform1ui64NV := dglGetProcAddress('glUniform1ui64NV');
18315   glUniform2ui64NV := dglGetProcAddress('glUniform2ui64NV');
18316   glUniform3ui64NV := dglGetProcAddress('glUniform3ui64NV');
18317   glUniform4ui64NV := dglGetProcAddress('glUniform4ui64NV');
18318   glUniform1ui64vNV := dglGetProcAddress('glUniform1ui64vNV');
18319   glUniform2ui64vNV := dglGetProcAddress('glUniform2ui64vNV');
18320   glUniform3ui64vNV := dglGetProcAddress('glUniform3ui64vNV');
18321   glUniform4ui64vNV := dglGetProcAddress('glUniform4ui64vNV');
18322   glGetUniformi64vNV := dglGetProcAddress('glGetUniformi64vNV');
18323   glProgramUniform1i64NV := dglGetProcAddress('glProgramUniform1i64NV');
18324   glProgramUniform2i64NV := dglGetProcAddress('glProgramUniform2i64NV');
18325   glProgramUniform3i64NV := dglGetProcAddress('glProgramUniform3i64NV');
18326   glProgramUniform4i64NV := dglGetProcAddress('glProgramUniform4i64NV');
18327   glProgramUniform1i64vNV := dglGetProcAddress('glProgramUniform1i64vNV');
18328   glProgramUniform2i64vNV := dglGetProcAddress('glProgramUniform2i64vNV');
18329   glProgramUniform3i64vNV := dglGetProcAddress('glProgramUniform3i64vNV');
18330   glProgramUniform4i64vNV := dglGetProcAddress('glProgramUniform4i64vNV');
18331   glProgramUniform1ui64NV := dglGetProcAddress('glProgramUniform1ui64NV');
18332   glProgramUniform2ui64NV := dglGetProcAddress('glProgramUniform2ui64NV');
18333   glProgramUniform3ui64NV := dglGetProcAddress('glProgramUniform3ui64NV');
18334   glProgramUniform4ui64NV := dglGetProcAddress('glProgramUniform4ui64NV');
18335   glProgramUniform1ui64vNV := dglGetProcAddress('glProgramUniform1ui64vNV');
18336   glProgramUniform2ui64vNV := dglGetProcAddress('glProgramUniform2ui64vNV');
18337   glProgramUniform3ui64vNV := dglGetProcAddress('glProgramUniform3ui64vNV');
18338   glProgramUniform4ui64vNV := dglGetProcAddress('glProgramUniform4ui64vNV');
18339 end;
18340
18341 procedure Read_GL_NV_vertex_attrib_integer_64bit;
18342 begin
18343   glVertexAttribL1i64NV := dglGetProcAddress('glVertexAttribL1i64NV');
18344   glVertexAttribL2i64NV := dglGetProcAddress('glVertexAttribL2i64NV');
18345   glVertexAttribL3i64NV := dglGetProcAddress('glVertexAttribL3i64NV');
18346   glVertexAttribL4i64NV := dglGetProcAddress('glVertexAttribL4i64NV');
18347   glVertexAttribL1i64vNV := dglGetProcAddress('glVertexAttribL1i64vNV');
18348   glVertexAttribL2i64vNV := dglGetProcAddress('glVertexAttribL2i64vNV');
18349   glVertexAttribL3i64vNV := dglGetProcAddress('glVertexAttribL3i64vNV');
18350   glVertexAttribL4i64vNV := dglGetProcAddress('glVertexAttribL4i64vNV');
18351   glVertexAttribL1ui64NV := dglGetProcAddress('glVertexAttribL1ui64NV');
18352   glVertexAttribL2ui64NV := dglGetProcAddress('glVertexAttribL2ui64NV');
18353   glVertexAttribL3ui64NV := dglGetProcAddress('glVertexAttribL3ui64NV');
18354   glVertexAttribL4ui64NV := dglGetProcAddress('glVertexAttribL4ui64NV');
18355   glVertexAttribL1ui64vNV := dglGetProcAddress('glVertexAttribL1ui64vNV');
18356   glVertexAttribL2ui64vNV := dglGetProcAddress('glVertexAttribL2ui64vNV');
18357   glVertexAttribL3ui64vNV := dglGetProcAddress('glVertexAttribL3ui64vNV');
18358   glVertexAttribL4ui64vNV := dglGetProcAddress('glVertexAttribL4ui64vNV');
18359   glGetVertexAttribLi64vNV := dglGetProcAddress('glGetVertexAttribLi64vNV');
18360   glGetVertexAttribLui64vNV := dglGetProcAddress('glGetVertexAttribLui64vNV');
18361   glVertexAttribLFormatNV := dglGetProcAddress('glVertexAttribLFormatNV');
18362 end;  
18363
18364 procedure Read_GL_NV_vdpau_interop;
18365 begin
18366   glVDPAUInitNV := dglGetProcAddress('glVDPAUInitNV');
18367   glVDPAUFiniNV := dglGetProcAddress('glVDPAUFiniNV');
18368   glVDPAURegisterVideoSurfaceNV := dglGetProcAddress('glVDPAURegisterVideoSurfaceNV');
18369   glVDPAURegisterOutputSurfaceNV := dglGetProcAddress('glVDPAURegisterOutputSurfaceNV');
18370   glVDPAUIsSurfaceNV := dglGetProcAddress('glVDPAUIsSurfaceNV');
18371   glVDPAUUnregisterSurfaceNV := dglGetProcAddress('glVDPAUUnregisterSurfaceNV');
18372   glVDPAUGetSurfaceivNV := dglGetProcAddress('glVDPAUGetSurfaceivNV');
18373   glVDPAUSurfaceAccessNV := dglGetProcAddress('glVDPAUSurfaceAccessNV');
18374   glVDPAUMapSurfacesNV := dglGetProcAddress('glVDPAUMapSurfacesNV');
18375   glVDPAUUnmapSurfacesNV := dglGetProcAddress('glVDPAUUnmapSurfacesNV');
18376 end;
18377   
18378 procedure Read_GL_NV_texture_barrier;
18379 begin
18380   glTextureBarrierNV := dglGetProcAddress('glTextureBarrierNV');
18381 end;
18382
18383 procedure Read_GL_PGI_misc_hints;
18384 begin
18385   glHintPGI := dglGetProcAddress('glHintPGI');
18386 end;
18387
18388 procedure Read_GL_SGIS_detail_texture;
18389 begin
18390   glDetailTexFuncSGIS := dglGetProcAddress('glDetailTexFuncSGIS');
18391   glGetDetailTexFuncSGIS := dglGetProcAddress('glGetDetailTexFuncSGIS');
18392 end;
18393
18394 procedure Read_GL_SGIS_fog_function;
18395 begin
18396   glFogFuncSGIS := dglGetProcAddress('glFogFuncSGIS');
18397   glGetFogFuncSGIS := dglGetProcAddress('glGetFogFuncSGIS');
18398 end;
18399
18400 procedure Read_GL_SGIS_multisample;
18401 begin
18402   glSampleMaskSGIS := dglGetProcAddress('glSampleMaskSGIS');
18403   glSamplePatternSGIS := dglGetProcAddress('glSamplePatternSGIS');
18404 end;
18405
18406 procedure Read_GL_SGIS_pixel_texture;
18407 begin
18408   glPixelTexGenParameteriSGIS := dglGetProcAddress('glPixelTexGenParameteriSGIS');
18409   glPixelTexGenParameterivSGIS := dglGetProcAddress('glPixelTexGenParameterivSGIS');
18410   glPixelTexGenParameterfSGIS := dglGetProcAddress('glPixelTexGenParameterfSGIS');
18411   glPixelTexGenParameterfvSGIS := dglGetProcAddress('glPixelTexGenParameterfvSGIS');
18412   glGetPixelTexGenParameterivSGIS := dglGetProcAddress('glGetPixelTexGenParameterivSGIS');
18413   glGetPixelTexGenParameterfvSGIS := dglGetProcAddress('glGetPixelTexGenParameterfvSGIS');
18414 end;
18415
18416 procedure Read_GL_SGIS_point_parameters;
18417 begin
18418   glPointParameterfSGIS := dglGetProcAddress('glPointParameterfSGIS');
18419   glPointParameterfvSGIS := dglGetProcAddress('glPointParameterfvSGIS');
18420 end;
18421
18422 procedure Read_GL_SGIS_sharpen_texture;
18423 begin
18424   glSharpenTexFuncSGIS := dglGetProcAddress('glSharpenTexFuncSGIS');
18425   glGetSharpenTexFuncSGIS := dglGetProcAddress('glGetSharpenTexFuncSGIS');
18426 end;
18427
18428 procedure Read_GL_SGIS_texture4D;
18429 begin
18430   glTexImage4DSGIS := dglGetProcAddress('glTexImage4DSGIS');
18431   glTexSubImage4DSGIS := dglGetProcAddress('glTexSubImage4DSGIS');
18432 end;
18433
18434 procedure Read_GL_SGIS_texture_color_mask;
18435 begin
18436   glTextureColorMaskSGIS := dglGetProcAddress('glTextureColorMaskSGIS');
18437 end;
18438
18439 procedure Read_GL_SGIS_texture_filter4;
18440 begin
18441   glGetTexFilterFuncSGIS := dglGetProcAddress('glGetTexFilterFuncSGIS');
18442   glTexFilterFuncSGIS := dglGetProcAddress('glTexFilterFuncSGIS');
18443 end;
18444
18445 procedure Read_GL_SGIX_async;
18446 begin
18447   glAsyncMarkerSGIX := dglGetProcAddress('glAsyncMarkerSGIX');
18448   glFinishAsyncSGIX := dglGetProcAddress('glFinishAsyncSGIX');
18449   glPollAsyncSGIX := dglGetProcAddress('glPollAsyncSGIX');
18450   glGenAsyncMarkersSGIX := dglGetProcAddress('glGenAsyncMarkersSGIX');
18451   glDeleteAsyncMarkersSGIX := dglGetProcAddress('glDeleteAsyncMarkersSGIX');
18452   glIsAsyncMarkerSGIX := dglGetProcAddress('glIsAsyncMarkerSGIX');
18453 end;
18454
18455 procedure Read_GL_SGIX_flush_raster;
18456 begin
18457   glFlushRasterSGIX := dglGetProcAddress('glFlushRasterSGIX');
18458 end;
18459
18460 procedure Read_GL_SGIX_fragment_lighting;
18461 begin
18462   glFragmentColorMaterialSGIX := dglGetProcAddress('glFragmentColorMaterialSGIX');
18463   glFragmentLightfSGIX := dglGetProcAddress('glFragmentLightfSGIX');
18464   glFragmentLightfvSGIX := dglGetProcAddress('glFragmentLightfvSGIX');
18465   glFragmentLightiSGIX := dglGetProcAddress('glFragmentLightiSGIX');
18466   glFragmentLightivSGIX := dglGetProcAddress('glFragmentLightivSGIX');
18467   glFragmentLightModelfSGIX := dglGetProcAddress('glFragmentLightModelfSGIX');
18468   glFragmentLightModelfvSGIX := dglGetProcAddress('glFragmentLightModelfvSGIX');
18469   glFragmentLightModeliSGIX := dglGetProcAddress('glFragmentLightModeliSGIX');
18470   glFragmentLightModelivSGIX := dglGetProcAddress('glFragmentLightModelivSGIX');
18471   glFragmentMaterialfSGIX := dglGetProcAddress('glFragmentMaterialfSGIX');
18472   glFragmentMaterialfvSGIX := dglGetProcAddress('glFragmentMaterialfvSGIX');
18473   glFragmentMaterialiSGIX := dglGetProcAddress('glFragmentMaterialiSGIX');
18474   glFragmentMaterialivSGIX := dglGetProcAddress('glFragmentMaterialivSGIX');
18475   glGetFragmentLightfvSGIX := dglGetProcAddress('glGetFragmentLightfvSGIX');
18476   glGetFragmentLightivSGIX := dglGetProcAddress('glGetFragmentLightivSGIX');
18477   glGetFragmentMaterialfvSGIX := dglGetProcAddress('glGetFragmentMaterialfvSGIX');
18478   glGetFragmentMaterialivSGIX := dglGetProcAddress('glGetFragmentMaterialivSGIX');
18479   glLightEnviSGIX := dglGetProcAddress('glLightEnviSGIX');
18480 end;
18481
18482 procedure Read_GL_SGIX_framezoom;
18483 begin
18484   glFrameZoomSGIX := dglGetProcAddress('glFrameZoomSGIX');
18485 end;
18486
18487 procedure Read_GL_SGIX_igloo_interface;
18488 begin
18489   glIglooInterfaceSGIX := dglGetProcAddress('glIglooInterfaceSGIX');
18490 end;
18491
18492 procedure Read_GL_SGIX_instruments;
18493 begin
18494   glGetInstrumentsSGIX := dglGetProcAddress('glGetInstrumentsSGIX');
18495   glInstrumentsBufferSGIX := dglGetProcAddress('glInstrumentsBufferSGIX');
18496   glPollInstrumentsSGIX := dglGetProcAddress('glPollInstrumentsSGIX');
18497   glReadInstrumentsSGIX := dglGetProcAddress('glReadInstrumentsSGIX');
18498   glStartInstrumentsSGIX := dglGetProcAddress('glStartInstrumentsSGIX');
18499   glStopInstrumentsSGIX := dglGetProcAddress('glStopInstrumentsSGIX');
18500 end;
18501
18502 procedure Read_GL_SGIX_list_priority;
18503 begin
18504   glGetListParameterfvSGIX := dglGetProcAddress('glGetListParameterfvSGIX');
18505   glGetListParameterivSGIX := dglGetProcAddress('glGetListParameterivSGIX');
18506   glListParameterfSGIX := dglGetProcAddress('glListParameterfSGIX');
18507   glListParameterfvSGIX := dglGetProcAddress('glListParameterfvSGIX');
18508   glListParameteriSGIX := dglGetProcAddress('glListParameteriSGIX');
18509   glListParameterivSGIX := dglGetProcAddress('glListParameterivSGIX');
18510 end;
18511
18512 procedure Read_GL_SGIX_pixel_texture;
18513 begin
18514   glPixelTexGenSGIX := dglGetProcAddress('glPixelTexGenSGIX');
18515 end;
18516
18517 procedure Read_GL_SGIX_polynomial_ffd;
18518 begin
18519   glDeformationMap3dSGIX := dglGetProcAddress('glDeformationMap3dSGIX');
18520   glDeformationMap3fSGIX := dglGetProcAddress('glDeformationMap3fSGIX');
18521   glDeformSGIX := dglGetProcAddress('glDeformSGIX');
18522   glLoadIdentityDeformationMapSGIX := dglGetProcAddress('glLoadIdentityDeformationMapSGIX');
18523 end;
18524
18525 procedure Read_GL_SGIX_reference_plane;
18526 begin
18527   glReferencePlaneSGIX := dglGetProcAddress('glReferencePlaneSGIX');
18528 end;
18529
18530 procedure Read_GL_SGIX_sprite;
18531 begin
18532   glSpriteParameterfSGIX := dglGetProcAddress('glSpriteParameterfSGIX');
18533   glSpriteParameterfvSGIX := dglGetProcAddress('glSpriteParameterfvSGIX');
18534   glSpriteParameteriSGIX := dglGetProcAddress('glSpriteParameteriSGIX');
18535   glSpriteParameterivSGIX := dglGetProcAddress('glSpriteParameterivSGIX');
18536 end;
18537
18538 procedure Read_GL_SGIX_tag_sample_buffer;
18539 begin
18540   glTagSampleBufferSGIX := dglGetProcAddress('glTagSampleBufferSGIX');
18541 end;
18542
18543 procedure Read_GL_SGI_color_table;
18544 begin
18545   glColorTableSGI := dglGetProcAddress('glColorTableSGI');
18546   glColorTableParameterfvSGI := dglGetProcAddress('glColorTableParameterfvSGI');
18547   glColorTableParameterivSGI := dglGetProcAddress('glColorTableParameterivSGI');
18548   glCopyColorTableSGI := dglGetProcAddress('glCopyColorTableSGI');
18549   glGetColorTableSGI := dglGetProcAddress('glGetColorTableSGI');
18550   glGetColorTableParameterfvSGI := dglGetProcAddress('glGetColorTableParameterfvSGI');
18551   glGetColorTableParameterivSGI := dglGetProcAddress('glGetColorTableParameterivSGI');
18552 end;
18553
18554 procedure Read_GL_SUNX_constant_data;
18555 begin
18556   glFinishTextureSUNX := dglGetProcAddress('glFinishTextureSUNX');
18557 end;
18558
18559 procedure Read_GL_SUN_global_alpha;
18560 begin
18561   glGlobalAlphaFactorbSUN := dglGetProcAddress('glGlobalAlphaFactorbSUN');
18562   glGlobalAlphaFactorsSUN := dglGetProcAddress('glGlobalAlphaFactorsSUN');
18563   glGlobalAlphaFactoriSUN := dglGetProcAddress('glGlobalAlphaFactoriSUN');
18564   glGlobalAlphaFactorfSUN := dglGetProcAddress('glGlobalAlphaFactorfSUN');
18565   glGlobalAlphaFactordSUN := dglGetProcAddress('glGlobalAlphaFactordSUN');
18566   glGlobalAlphaFactorubSUN := dglGetProcAddress('glGlobalAlphaFactorubSUN');
18567   glGlobalAlphaFactorusSUN := dglGetProcAddress('glGlobalAlphaFactorusSUN');
18568   glGlobalAlphaFactoruiSUN := dglGetProcAddress('glGlobalAlphaFactoruiSUN');
18569 end;
18570
18571 procedure Read_GL_SUN_mesh_array;
18572 begin
18573   glDrawMeshArraysSUN := dglGetProcAddress('glDrawMeshArraysSUN');
18574 end;
18575
18576 procedure Read_GL_SUN_triangle_list;
18577 begin
18578   glReplacementCodeuiSUN := dglGetProcAddress('glReplacementCodeuiSUN');
18579   glReplacementCodeusSUN := dglGetProcAddress('glReplacementCodeusSUN');
18580   glReplacementCodeubSUN := dglGetProcAddress('glReplacementCodeubSUN');
18581   glReplacementCodeuivSUN := dglGetProcAddress('glReplacementCodeuivSUN');
18582   glReplacementCodeusvSUN := dglGetProcAddress('glReplacementCodeusvSUN');
18583   glReplacementCodeubvSUN := dglGetProcAddress('glReplacementCodeubvSUN');
18584   glReplacementCodePointerSUN := dglGetProcAddress('glReplacementCodePointerSUN');
18585 end;
18586
18587 procedure Read_GL_SUN_vertex;
18588 begin
18589   glColor4ubVertex2fSUN := dglGetProcAddress('glColor4ubVertex2fSUN');
18590   glColor4ubVertex2fvSUN := dglGetProcAddress('glColor4ubVertex2fvSUN');
18591   glColor4ubVertex3fSUN := dglGetProcAddress('glColor4ubVertex3fSUN');
18592   glColor4ubVertex3fvSUN := dglGetProcAddress('glColor4ubVertex3fvSUN');
18593   glColor3fVertex3fSUN := dglGetProcAddress('glColor3fVertex3fSUN');
18594   glColor3fVertex3fvSUN := dglGetProcAddress('glColor3fVertex3fvSUN');
18595   glNormal3fVertex3fSUN := dglGetProcAddress('glNormal3fVertex3fSUN');
18596   glNormal3fVertex3fvSUN := dglGetProcAddress('glNormal3fVertex3fvSUN');
18597   glColor4fNormal3fVertex3fSUN := dglGetProcAddress('glColor4fNormal3fVertex3fSUN');
18598   glColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glColor4fNormal3fVertex3fvSUN');
18599   glTexCoord2fVertex3fSUN := dglGetProcAddress('glTexCoord2fVertex3fSUN');
18600   glTexCoord2fVertex3fvSUN := dglGetProcAddress('glTexCoord2fVertex3fvSUN');
18601   glTexCoord4fVertex4fSUN := dglGetProcAddress('glTexCoord4fVertex4fSUN');
18602   glTexCoord4fVertex4fvSUN := dglGetProcAddress('glTexCoord4fVertex4fvSUN');
18603   glTexCoord2fColor4ubVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fSUN');
18604   glTexCoord2fColor4ubVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fvSUN');
18605   glTexCoord2fColor3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fSUN');
18606   glTexCoord2fColor3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fvSUN');
18607   glTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fSUN');
18608   glTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fvSUN');
18609   glTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fSUN');
18610   glTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fvSUN');
18611   glTexCoord4fColor4fNormal3fVertex4fSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fSUN');
18612   glTexCoord4fColor4fNormal3fVertex4fvSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fvSUN');
18613   glReplacementCodeuiVertex3fSUN := dglGetProcAddress('glReplacementCodeuiVertex3fSUN');
18614   glReplacementCodeuiVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiVertex3fvSUN');
18615   glReplacementCodeuiColor4ubVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fSUN');
18616   glReplacementCodeuiColor4ubVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fvSUN');
18617   glReplacementCodeuiColor3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fSUN');
18618   glReplacementCodeuiColor3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fvSUN');
18619   glReplacementCodeuiNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fSUN');
18620   glReplacementCodeuiNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fvSUN');
18621   glReplacementCodeuiColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fSUN');
18622   glReplacementCodeuiColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fvSUN');
18623   glReplacementCodeuiTexCoord2fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fSUN');
18624   glReplacementCodeuiTexCoord2fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fvSUN');
18625   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN');
18626   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN');
18627   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN');
18628   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN');
18629 end;
18630
18631 {$IFDEF DGL_WIN}
18632 procedure Read_WGL_ARB_buffer_region;
18633 begin
18634   wglCreateBufferRegionARB := dglGetProcAddress('wglCreateBufferRegionARB');
18635   wglDeleteBufferRegionARB := dglGetProcAddress('wglDeleteBufferRegionARB');
18636   wglSaveBufferRegionARB := dglGetProcAddress('wglSaveBufferRegionARB');
18637   wglRestoreBufferRegionARB := dglGetProcAddress('wglRestoreBufferRegionARB');
18638 end;
18639
18640 procedure Read_WGL_ARB_extensions_string;
18641 begin
18642   wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
18643 end;
18644
18645 procedure Read_WGL_ARB_make_current_read;
18646 begin
18647   wglMakeContextCurrentARB := dglGetProcAddress('wglMakeContextCurrentARB');
18648   wglGetCurrentReadDCARB := dglGetProcAddress('wglGetCurrentReadDCARB');
18649 end;
18650
18651 procedure Read_WGL_ARB_pbuffer;
18652 begin
18653   wglCreatePbufferARB := dglGetProcAddress('wglCreatePbufferARB');
18654   wglGetPbufferDCARB := dglGetProcAddress('wglGetPbufferDCARB');
18655   wglReleasePbufferDCARB := dglGetProcAddress('wglReleasePbufferDCARB');
18656   wglDestroyPbufferARB := dglGetProcAddress('wglDestroyPbufferARB');
18657   wglQueryPbufferARB := dglGetProcAddress('wglQueryPbufferARB');
18658 end;
18659
18660 procedure Read_WGL_ARB_pixel_format;
18661 begin
18662   wglGetPixelFormatAttribivARB := dglGetProcAddress('wglGetPixelFormatAttribivARB');
18663   wglGetPixelFormatAttribfvARB := dglGetProcAddress('wglGetPixelFormatAttribfvARB');
18664   wglChoosePixelFormatARB := dglGetProcAddress('wglChoosePixelFormatARB');
18665 end;
18666
18667 procedure Read_WGL_ARB_pixel_format_float;
18668 begin
18669   wglClampColorARB := dglGetProcAddress('wglClampColorARB');
18670 end;
18671
18672 procedure Read_WGL_ARB_render_texture;
18673 begin
18674   wglBindTexImageARB := dglGetProcAddress('wglBindTexImageARB');
18675   wglReleaseTexImageARB := dglGetProcAddress('wglReleaseTexImageARB');
18676   wglSetPbufferAttribARB := dglGetProcAddress('wglSetPbufferAttribARB');
18677 end;
18678
18679 procedure Read_WGL_ARB_create_context;
18680 begin
18681   wglCreateContextAttribsARB := dglGetProcAddress('wglCreateContextAttribsARB');
18682 end;
18683
18684 procedure Read_WGL_AMD_gpu_association;
18685 begin
18686   wglGetGPUIDsAMD := dglGetProcAddress('wglGetGPUIDsAMD');
18687   wglGetGPUInfoAMD := dglGetProcAddress('wglGetGPUInfoAMD');
18688   wglGetContextGPUIDAMD := dglGetProcAddress('wglGetContextGPUIDAMD');
18689   wglCreateAssociatedContextAMD := dglGetProcAddress('wglCreateAssociatedContextAMD');
18690   wglCreateAssociatedContextAttribsAMD := dglGetProcAddress('wglCreateAssociatedContextAttribsAMD');
18691   wglDeleteAssociatedContextAMD := dglGetProcAddress('wglDeleteAssociatedContextAMD');
18692   wglMakeAssociatedContextCurrentAMD := dglGetProcAddress('wglMakeAssociatedContextCurrentAMD');
18693   wglGetCurrentAssociatedContextAMD := dglGetProcAddress('wglGetCurrentAssociatedContextAMD');
18694   wglBlitContextFramebufferAMD := dglGetProcAddress('wglBlitContextFramebufferAMD');
18695 end;
18696
18697 procedure Read_WGL_EXT_display_color_table;
18698 begin
18699   wglCreateDisplayColorTableEXT := dglGetProcAddress('wglCreateDisplayColorTableEXT');
18700   wglLoadDisplayColorTableEXT := dglGetProcAddress('wglLoadDisplayColorTableEXT');
18701   wglBindDisplayColorTableEXT := dglGetProcAddress('wglBindDisplayColorTableEXT');
18702   wglDestroyDisplayColorTableEXT := dglGetProcAddress('wglDestroyDisplayColorTableEXT');
18703 end;
18704
18705 procedure Read_WGL_EXT_extensions_string;
18706 begin
18707   wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
18708 end;
18709
18710 procedure Read_WGL_EXT_make_current_read;
18711 begin
18712   wglMakeContextCurrentEXT := dglGetProcAddress('wglMakeContextCurrentEXT');
18713   wglGetCurrentReadDCEXT := dglGetProcAddress('wglGetCurrentReadDCEXT');
18714 end;
18715
18716 procedure Read_WGL_EXT_pbuffer;
18717 begin
18718   wglCreatePbufferEXT := dglGetProcAddress('wglCreatePbufferEXT');
18719   wglGetPbufferDCEXT := dglGetProcAddress('wglGetPbufferDCEXT');
18720   wglReleasePbufferDCEXT := dglGetProcAddress('wglReleasePbufferDCEXT');
18721   wglDestroyPbufferEXT := dglGetProcAddress('wglDestroyPbufferEXT');
18722   wglQueryPbufferEXT := dglGetProcAddress('wglQueryPbufferEXT');
18723 end;
18724
18725 procedure Read_WGL_EXT_pixel_format;
18726 begin
18727   wglGetPixelFormatAttribivEXT := dglGetProcAddress('wglGetPixelFormatAttribivEXT');
18728   wglGetPixelFormatAttribfvEXT := dglGetProcAddress('wglGetPixelFormatAttribfvEXT');
18729   wglChoosePixelFormatEXT := dglGetProcAddress('wglChoosePixelFormatEXT');
18730 end;
18731
18732 procedure Read_WGL_EXT_swap_control;
18733 begin
18734   wglSwapIntervalEXT := dglGetProcAddress('wglSwapIntervalEXT');
18735   wglGetSwapIntervalEXT := dglGetProcAddress('wglGetSwapIntervalEXT');
18736 end;
18737
18738 procedure Read_WGL_I3D_digital_video_control;
18739 begin
18740   wglGetDigitalVideoParametersI3D := dglGetProcAddress('wglGetDigitalVideoParametersI3D');
18741   wglSetDigitalVideoParametersI3D := dglGetProcAddress('wglSetDigitalVideoParametersI3D');
18742 end;
18743
18744 procedure Read_WGL_I3D_gamma;
18745 begin
18746   wglGetGammaTableParametersI3D := dglGetProcAddress('wglGetGammaTableParametersI3D');
18747   wglSetGammaTableParametersI3D := dglGetProcAddress('wglSetGammaTableParametersI3D');
18748   wglGetGammaTableI3D := dglGetProcAddress('wglGetGammaTableI3D');
18749   wglSetGammaTableI3D := dglGetProcAddress('wglSetGammaTableI3D');
18750 end;
18751
18752 procedure Read_WGL_I3D_genlock;
18753 begin
18754   wglEnableGenlockI3D := dglGetProcAddress('wglEnableGenlockI3D');
18755   wglDisableGenlockI3D := dglGetProcAddress('wglDisableGenlockI3D');
18756   wglIsEnabledGenlockI3D := dglGetProcAddress('wglIsEnabledGenlockI3D');
18757   wglGenlockSourceI3D := dglGetProcAddress('wglGenlockSourceI3D');
18758   wglGetGenlockSourceI3D := dglGetProcAddress('wglGetGenlockSourceI3D');
18759   wglGenlockSourceEdgeI3D := dglGetProcAddress('wglGenlockSourceEdgeI3D');
18760   wglGetGenlockSourceEdgeI3D := dglGetProcAddress('wglGetGenlockSourceEdgeI3D');
18761   wglGenlockSampleRateI3D := dglGetProcAddress('wglGenlockSampleRateI3D');
18762   wglGetGenlockSampleRateI3D := dglGetProcAddress('wglGetGenlockSampleRateI3D');
18763   wglGenlockSourceDelayI3D := dglGetProcAddress('wglGenlockSourceDelayI3D');
18764   wglGetGenlockSourceDelayI3D := dglGetProcAddress('wglGetGenlockSourceDelayI3D');
18765   wglQueryGenlockMaxSourceDelayI3D := dglGetProcAddress('wglQueryGenlockMaxSourceDelayI3D');
18766 end;
18767
18768 procedure Read_WGL_I3D_image_buffer;
18769 begin
18770   wglCreateImageBufferI3D := dglGetProcAddress('wglCreateImageBufferI3D');
18771   wglDestroyImageBufferI3D := dglGetProcAddress('wglDestroyImageBufferI3D');
18772   wglAssociateImageBufferEventsI3D := dglGetProcAddress('wglAssociateImageBufferEventsI3D');
18773   wglReleaseImageBufferEventsI3D := dglGetProcAddress('wglReleaseImageBufferEventsI3D');
18774 end;
18775
18776 procedure Read_WGL_I3D_swap_frame_lock;
18777 begin
18778   wglEnableFrameLockI3D := dglGetProcAddress('wglEnableFrameLockI3D');
18779   wglDisableFrameLockI3D := dglGetProcAddress('wglDisableFrameLockI3D');
18780   wglIsEnabledFrameLockI3D := dglGetProcAddress('wglIsEnabledFrameLockI3D');
18781   wglQueryFrameLockMasterI3D := dglGetProcAddress('wglQueryFrameLockMasterI3D');
18782 end;
18783
18784 procedure Read_WGL_I3D_swap_frame_usage;
18785 begin
18786   wglGetFrameUsageI3D := dglGetProcAddress('wglGetFrameUsageI3D');
18787   wglBeginFrameTrackingI3D := dglGetProcAddress('wglBeginFrameTrackingI3D');
18788   wglEndFrameTrackingI3D := dglGetProcAddress('wglEndFrameTrackingI3D');
18789   wglQueryFrameTrackingI3D := dglGetProcAddress('wglQueryFrameTrackingI3D');
18790 end;
18791
18792 procedure Read_WGL_NV_vertex_array_range;
18793 begin
18794   wglAllocateMemoryNV := dglGetProcAddress('wglAllocateMemoryNV');
18795   wglFreeMemoryNV := dglGetProcAddress('wglFreeMemoryNV');
18796 end;
18797
18798 procedure Read_WGL_NV_present_video;
18799 begin
18800   wglEnumerateVideoDevicesNV := dglGetProcAddress('wglEnumerateVideoDevicesNV');
18801   wglBindVideoDeviceNV := dglGetProcAddress('wglBindVideoDeviceNV');
18802   wglQueryCurrentContextNV := dglGetProcAddress('wglQueryCurrentContextNV');
18803 end;
18804
18805 procedure Read_WGL_NV_video_output;
18806 begin
18807   wglGetVideoDeviceNV := dglGetProcAddress('wglGetVideoDeviceNV');
18808   wglReleaseVideoDeviceNV := dglGetProcAddress('wglReleaseVideoDeviceNV');
18809   wglBindVideoImageNV := dglGetProcAddress('wglBindVideoImageNV');
18810   wglReleaseVideoImageNV := dglGetProcAddress('wglReleaseVideoImageNV');
18811   wglSendPbufferToVideoNV := dglGetProcAddress('wglSendPbufferToVideoNV');
18812   wglGetVideoInfoNV := dglGetProcAddress('wglGetVideoInfoNV');
18813 end;
18814
18815 procedure Read_WGL_NV_swap_group;
18816 begin
18817   wglJoinSwapGroupNV := dglGetProcAddress('wglJoinSwapGroupNV');
18818   wglBindSwapBarrierNV := dglGetProcAddress('wglBindSwapBarrierNV');
18819   wglQuerySwapGroupNV := dglGetProcAddress('wglQuerySwapGroupNV');
18820   wglQueryMaxSwapGroupsNV := dglGetProcAddress('wglQueryMaxSwapGroupsNV');
18821   wglQueryFrameCountNV := dglGetProcAddress('wglQueryFrameCountNV');
18822   wglResetFrameCountNV := dglGetProcAddress('wglResetFrameCountNV');
18823 end;
18824
18825 procedure Read_WGL_NV_gpu_affinity;
18826 begin
18827   wglEnumGpusNV := dglGetProcAddress('wglEnumGpusNV');
18828   wglEnumGpuDevicesNV := dglGetProcAddress('wglEnumGpuDevicesNV');
18829   wglCreateAffinityDCNV := dglGetProcAddress('wglCreateAffinityDCNV');
18830   wglEnumGpusFromAffinityDCNV := dglGetProcAddress('wglEnumGpusFromAffinityDCNV');
18831   wglDeleteDCNV := dglGetProcAddress('wglDeleteDCNV');
18832 end;
18833
18834 procedure Read_WGL_NV_video_capture;
18835 begin
18836   wglBindVideoCaptureDeviceNV := dglGetProcAddress('wglBindVideoCaptureDeviceNV');
18837   wglEnumerateVideoCaptureDevicesNV := dglGetProcAddress('wglEnumerateVideoCaptureDevicesNV');
18838   wglLockVideoCaptureDeviceNV := dglGetProcAddress('wglLockVideoCaptureDeviceNV');
18839   wglQueryVideoCaptureDeviceNV := dglGetProcAddress('wglQueryVideoCaptureDeviceNV');
18840   wglReleaseVideoCaptureDeviceNV := dglGetProcAddress('wglReleaseVideoCaptureDeviceNV');
18841 end;
18842
18843 procedure Read_WGL_NV_copy_image;
18844 begin
18845   wglCopyImageSubDataNV := dglGetProcAddress('wglCopyImageSubDataNV');
18846 end;
18847
18848 procedure Read_WGL_NV_DX_interop;
18849 begin
18850   wglDXSetResourceShareHandleNV := dglGetProcAddress('wglDXSetResourceShareHandleNV');
18851   wglDXOpenDeviceNV := dglGetProcAddress('wglDXOpenDeviceNV');
18852   wglDXCloseDeviceNV := dglGetProcAddress('wglDXCloseDeviceNV');
18853   wglDXRegisterObjectNV := dglGetProcAddress('wglDXRegisterObjectNV');
18854   wglDXUnregisterObjectNV := dglGetProcAddress('wglDXUnregisterObjectNV');
18855   wglDXObjectAccessNV := dglGetProcAddress('wglDXObjectAccessNV');
18856   wglDXLockObjectsNV := dglGetProcAddress('wglDXLockObjectsNV');
18857   wglDXUnlockObjectsNV := dglGetProcAddress('wglDXUnlockObjectsNV');
18858 end;
18859
18860
18861 procedure Read_WGL_OML_sync_control;
18862 begin
18863   wglGetSyncValuesOML := dglGetProcAddress('wglGetSyncValuesOML');
18864   wglGetMscRateOML := dglGetProcAddress('wglGetMscRateOML');
18865   wglSwapBuffersMscOML := dglGetProcAddress('wglSwapBuffersMscOML');
18866   wglSwapLayerBuffersMscOML := dglGetProcAddress('wglSwapLayerBuffersMscOML');
18867   wglWaitForMscOML := dglGetProcAddress('wglWaitForMscOML');
18868   wglWaitForSbcOML := dglGetProcAddress('wglWaitForSbcOML');
18869 end;
18870
18871 procedure Read_WGL_3DL_stereo_control;
18872 begin
18873   wglSetStereoEmitterState3DL := dglGetProcAddress('wglSetStereoEmitterState3DL');
18874 end;
18875
18876 procedure Read_WIN_draw_range_elements;
18877 begin
18878   glDrawRangeElementsWIN := dglGetProcAddress('glDrawRangeElementsWIN');
18879 end;
18880
18881 procedure Read_WIN_swap_hint;
18882 begin
18883   glAddSwapHintRectWIN := dglGetProcAddress('glAddSwapHintRectWIN');
18884 end;
18885 {$ENDIF}
18886
18887
18888 procedure ReadExtensions;
18889 begin
18890   ReadOpenGLCore;
18891   
18892   Read_GL_3DFX_tbuffer;
18893   Read_GL_APPLE_element_array;
18894   Read_GL_APPLE_fence;
18895   Read_GL_APPLE_vertex_array_object;
18896   Read_GL_APPLE_vertex_array_range;
18897   Read_GL_APPLE_texture_range;
18898   Read_GL_APPLE_vertex_program_evaluators;
18899   Read_GL_APPLE_object_purgeable;
18900   Read_GL_ARB_matrix_palette;
18901   Read_GL_ARB_multitexture;
18902   Read_GL_ARB_point_parameters;
18903   Read_GL_ARB_texture_compression;
18904   Read_GL_ARB_transpose_matrix;
18905   Read_GL_ARB_vertex_blend;
18906   Read_GL_ARB_vertex_buffer_object;
18907   Read_GL_ARB_vertex_program;
18908   Read_GL_ARB_window_pos;
18909   Read_GL_ARB_color_buffer_float;
18910   Read_GL_ARB_Shader_Objects;
18911   Read_GL_ARB_occlusion_query;
18912   Read_GL_ARB_draw_instanced;
18913   Read_GL_ARB_framebuffer_object;
18914   Read_GL_ARB_geometry_shader4;
18915   Read_GL_ARB_instanced_arrays;
18916   Read_GL_ARB_map_buffer_range;
18917   Read_GL_ARB_texture_buffer_object;
18918   Read_GL_ARB_vertex_array_object;
18919   Read_GL_ARB_uniform_buffer_object;
18920   Read_GL_ARB_copy_buffer;
18921   Read_GL_ARB_draw_elements_base_vertex;
18922   Read_GL_ARB_provoking_vertex;
18923   Read_GL_ARB_sync;
18924   Read_GL_ARB_texture_multisample;
18925   Read_GL_ARB_draw_buffers_blend;
18926   Read_GL_ARB_sample_shading;
18927   Read_GL_ARB_shading_language_include;
18928   Read_GL_ARB_sparse_texture;
18929   Read_GL_ARB_blend_func_extended;
18930   Read_GL_ARB_sampler_objects;
18931   Read_GL_ARB_timer_query;
18932   Read_GL_ARB_vertex_type_2_10_10_10_rev;
18933   Read_GL_ARB_draw_indirect;
18934   Read_GL_ARB_gpu_shader_fp64;
18935   Read_GL_ARB_shader_subroutine;
18936   Read_GL_ARB_tessellation_shader;
18937   Read_GL_ARB_transform_feedback2;
18938   Read_GL_ARB_transform_feedback3;
18939   Read_GL_ARB_ES2_compatibility;
18940   Read_GL_ARB_get_program_binary;
18941   Read_GL_ARB_separate_shader_objects;
18942   Read_GL_ARB_vertex_attrib_64bit;
18943   Read_GL_ARB_viewport_array;
18944   Read_GL_ARB_cl_event;
18945   Read_GL_ARB_debug_output;
18946   Read_GL_ARB_robustness;
18947   //
18948   Read_GL_ATI_draw_buffers;
18949   Read_GL_ATI_element_array;
18950   Read_GL_ATI_envmap_bumpmap;
18951   Read_GL_ATI_fragment_shader;
18952   Read_GL_ATI_map_object_buffer;
18953   Read_GL_ATI_pn_triangles;
18954   Read_GL_ATI_separate_stencil;
18955   Read_GL_ATI_vertex_array_object;
18956   Read_GL_ATI_vertex_attrib_array_object;
18957   Read_GL_ATI_vertex_streams;
18958   Read_GL_AMD_performance_monitor;
18959   Read_GL_AMD_vertex_shader_tesselator;
18960   Read_GL_AMD_draw_buffers_blend;
18961   Read_GL_AMD_name_gen_delete;
18962   Read_GL_AMD_debug_output;
18963   Read_GL_AMD_stencil_operation_extended;
18964   Read_GL_EXT_blend_color;
18965   Read_GL_EXT_blend_func_separate;
18966   Read_GL_EXT_blend_minmax;
18967   Read_GL_EXT_color_subtable;
18968   Read_GL_EXT_compiled_vertex_array;
18969   Read_GL_EXT_convolution;
18970   Read_GL_EXT_coordinate_frame;
18971   Read_GL_EXT_copy_texture;
18972   Read_GL_EXT_cull_vertex;
18973   Read_GL_EXT_draw_range_elements;
18974   Read_GL_EXT_fog_coord;
18975   Read_GL_EXT_framebuffer_object;
18976   Read_GL_EXT_histogram;
18977   Read_GL_EXT_index_func;
18978   Read_GL_EXT_index_material;
18979   Read_GL_EXT_multi_draw_arrays;
18980   Read_GL_EXT_multisample;
18981   Read_GL_EXT_paletted_texture;
18982   Read_GL_EXT_pixel_transform;
18983   Read_GL_EXT_point_parameters;
18984   Read_GL_EXT_polygon_offset;
18985   Read_GL_EXT_secondary_color;
18986   Read_GL_EXT_stencil_two_side;
18987   Read_GL_EXT_subtexture;
18988   Read_GL_EXT_texture3D;
18989   Read_GL_EXT_texture_object;
18990   Read_GL_EXT_texture_perturb_normal;
18991   Read_GL_EXT_vertex_array;
18992   Read_GL_EXT_vertex_shader;
18993   Read_GL_EXT_vertex_weighting;
18994   Read_GL_EXT_depth_bounds_test;
18995   Read_GL_EXT_blend_equation_separate;
18996   Read_GL_EXT_stencil_clear_tag;
18997   Read_GL_EXT_framebuffer_blit;
18998   Read_GL_EXT_framebuffer_multisample;
18999   Read_GL_EXT_timer_query;
19000   Read_GL_EXT_gpu_program_parameters;
19001   Read_GL_EXT_bindable_uniform;
19002   Read_GL_EXT_draw_buffers2;
19003   Read_GL_EXT_draw_instanced;
19004   Read_GL_EXT_geometry_shader4;
19005   Read_GL_EXT_gpu_shader4;
19006   Read_GL_EXT_texture_array;
19007   Read_GL_EXT_texture_buffer_object;
19008   Read_GL_EXT_texture_integer;
19009   Read_GL_EXT_transform_feedback;
19010   Read_GL_EXT_direct_state_access;
19011   Read_GL_EXT_separate_shader_objects;
19012   Read_GL_EXT_shader_image_load_store;
19013   Read_GL_EXT_vertex_attrib_64bit;
19014   Read_GL_HP_image_transform;
19015   Read_GL_IBM_multimode_draw_arrays;
19016   Read_GL_IBM_vertex_array_lists;
19017   Read_GL_INGR_blend_func_separate;
19018   Read_GL_INTEL_parallel_arrays;
19019   Read_GL_MESA_resize_buffers;
19020   Read_GL_MESA_window_pos;
19021   Read_GL_NV_evaluators;
19022   Read_GL_NV_fence;
19023   Read_GL_NV_fragment_program;
19024   Read_GL_NV_half_float;
19025   Read_GL_NV_occlusion_query;
19026   Read_GL_NV_pixel_data_range;
19027   Read_GL_NV_point_sprite;
19028   Read_GL_NV_primitive_restart;
19029   Read_GL_NV_register_combiners;
19030   Read_GL_NV_register_combiners2;
19031   Read_GL_NV_vertex_array_range;
19032   Read_GL_NV_vertex_program;
19033   Read_GL_NV_depth_buffer_float;
19034   Read_GL_NV_framebuffer_multisample_coverage;
19035   Read_GL_NV_geometry_program4;
19036   Read_GL_NV_gpu_program4;
19037   Read_GL_NV_parameter_buffer_object;
19038   Read_GL_NV_transform_feedback;
19039   Read_GL_NV_conditional_render;
19040   Read_GL_NV_present_video;
19041   Read_GL_NV_explicit_multisample;
19042   Read_GL_NV_transform_feedback2;
19043   Read_GL_NV_video_capture;
19044   Read_GL_NV_copy_image;
19045   Read_GL_NV_shader_buffer_load;
19046   Read_GL_NV_vertex_buffer_unified_memory;
19047   Read_GL_NV_gpu_program5;
19048   Read_GL_NV_gpu_shader5;
19049   Read_GL_NV_vertex_attrib_integer_64bit;
19050   Read_GL_NV_vdpau_interop;
19051   Read_GL_NV_texture_barrier;
19052   Read_GL_NV_path_rendering;
19053   Read_GL_NV_bindless_texture;
19054   Read_GL_PGI_misc_hints;
19055   Read_GL_SGIS_detail_texture;
19056   Read_GL_SGIS_fog_function;
19057   Read_GL_SGIS_multisample;
19058   Read_GL_SGIS_pixel_texture;
19059   Read_GL_SGIS_point_parameters;
19060   Read_GL_SGIS_sharpen_texture;
19061   Read_GL_SGIS_texture4D;
19062   Read_GL_SGIS_texture_color_mask;
19063   Read_GL_SGIS_texture_filter4;
19064   Read_GL_SGIX_async;
19065   Read_GL_SGIX_flush_raster;
19066   Read_GL_SGIX_fragment_lighting;
19067   Read_GL_SGIX_framezoom;
19068   Read_GL_SGIX_igloo_interface;
19069   Read_GL_SGIX_instruments;
19070   Read_GL_SGIX_list_priority;
19071   Read_GL_SGIX_pixel_texture;
19072   Read_GL_SGIX_polynomial_ffd;
19073   Read_GL_SGIX_reference_plane;
19074   Read_GL_SGIX_sprite;
19075   Read_GL_SGIX_tag_sample_buffer;
19076   Read_GL_SGI_color_table;
19077   Read_GL_SUNX_constant_data;
19078   Read_GL_SUN_global_alpha;
19079   Read_GL_SUN_mesh_array;
19080   Read_GL_SUN_triangle_list;
19081   Read_GL_SUN_vertex;
19082
19083 {$IFDEF DGL_WIN}
19084   Read_WGL_ARB_buffer_region;
19085   Read_WGL_ARB_extensions_string;
19086   Read_WGL_ARB_make_current_read;
19087   Read_WGL_ARB_pbuffer;
19088   Read_WGL_ARB_pixel_format;
19089   Read_WGL_ARB_pixel_format_float;
19090   Read_WGL_ARB_render_texture;
19091   Read_WGL_ARB_create_context;
19092   Read_WGL_AMD_gpu_association;
19093   Read_WGL_EXT_display_color_table;
19094   Read_WGL_EXT_extensions_string;
19095   Read_WGL_EXT_make_current_read;
19096   Read_WGL_EXT_pbuffer;
19097   Read_WGL_EXT_pixel_format;
19098   Read_WGL_EXT_swap_control;
19099   Read_WGL_I3D_digital_video_control;
19100   Read_WGL_I3D_gamma;
19101   Read_WGL_I3D_genlock;
19102   Read_WGL_I3D_image_buffer;
19103   Read_WGL_I3D_swap_frame_lock;
19104   Read_WGL_I3D_swap_frame_usage;
19105   Read_WGL_NV_vertex_array_range;
19106   Read_WGL_NV_present_video;
19107   Read_WGL_NV_video_output;
19108   Read_WGL_NV_swap_group;
19109   Read_WGL_NV_gpu_affinity;
19110   Read_WGL_NV_video_capture;
19111   Read_WGL_NV_copy_image;
19112   Read_WGL_NV_DX_interop;
19113   Read_WGL_OML_sync_control;
19114   Read_WGL_3DL_stereo_control;
19115
19116   Read_WIN_draw_range_elements;
19117   Read_WIN_swap_hint;
19118 {$ENDIF}
19119
19120   ExtensionsRead := True;
19121 end;
19122
19123 // =============================================================================
19124 //  ReadCoreVersion
19125 // =============================================================================
19126
19127 procedure ReadCoreVersion;
19128 var
19129   AnsiBuffer: AnsiString;
19130   Buffer: String;
19131   MajorVersion, MinorVersion: Integer;
19132
19133   procedure TrimAndSplitVersionString(Buffer: String; var Max, Min: Integer);
19134     // Peels out the X.Y form from the given Buffer which must contain a version string like "text Minor.Major.Build text"
19135     // at least however "Major.Minor".
19136   var
19137     Separator: Integer;
19138   begin
19139     try
19140       // There must be at least one dot to separate major and minor version number.
19141       Separator := Pos('.', Buffer);
19142       // At least one number must be before and one after the dot.
19143       if (Separator > 1) and (Separator < Length(Buffer)) and (AnsiChar(Buffer[Separator - 1]) in ['0'..'9']) and
19144       (AnsiChar(Buffer[Separator + 1]) in ['0'..'9']) then
19145       begin
19146         // OK, it's a valid version string. Now remove unnecessary parts.
19147         Dec(Separator);
19148         // Find last non-numeric character before version number.
19149         while (Separator > 0) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19150           Dec(Separator);
19151         // Delete leading characters which do not belong to the version string.
19152         Delete(Buffer, 1, Separator);
19153         Separator := Pos('.', Buffer) + 1;
19154         // Find first non-numeric character after version number
19155         while (Separator <= Length(Buffer)) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19156           Inc(Separator);
19157         // delete trailing characters not belonging to the version string
19158         Delete(Buffer, Separator, 255);
19159         // Now translate the numbers.
19160         Separator := Pos('.', Buffer); // This is necessary because the buffer length might have changed.
19161         Max := StrToInt(Copy(Buffer, 1, Separator - 1));
19162         Min := StrToInt(Copy(Buffer, Separator + 1, 1));
19163       end
19164       else
19165         Abort;
19166     except
19167       Min := 0;
19168       Max := 0;
19169     end;
19170   end;
19171
19172
19173 begin
19174   // determine version of implementation
19175   // GL
19176   if not Assigned(@glGetString) then
19177     glGetString := dglGetProcAddress('glGetString');
19178
19179   AnsiBuffer := glGetString(GL_VERSION);
19180   Buffer := String(AnsiBuffer);
19181
19182   TrimAndSplitVersionString(Buffer, MajorVersion, MinorVersion);
19183
19184   GL_VERSION_1_0 := True;
19185   GL_VERSION_1_1 := False;
19186   GL_VERSION_1_2 := False;
19187   GL_VERSION_1_3 := False;
19188   GL_VERSION_1_4 := False;
19189   GL_VERSION_1_5 := False;
19190   GL_VERSION_2_0 := False;
19191   GL_VERSION_2_1 := False;
19192   GL_VERSION_3_0 := False;
19193   GL_VERSION_3_1 := False;
19194   GL_VERSION_3_2 := False;
19195   GL_VERSION_3_3 := False;
19196   GL_VERSION_4_0 := False;
19197   GL_VERSION_4_1 := False;
19198   GL_VERSION_4_2 := False;
19199   GL_VERSION_4_3 := False;
19200   GL_VERSION_4_4 := False;
19201
19202   if MajorVersion = 1 then
19203   begin
19204     if MinorVersion >= 1 then
19205       GL_VERSION_1_1 := True;
19206     if MinorVersion >= 2 then
19207       GL_VERSION_1_2 := True;
19208     if MinorVersion >= 3 then
19209       GL_VERSION_1_3 := True;
19210     if MinorVersion >= 4 then
19211       GL_VERSION_1_4 := True;
19212     if MinorVersion >= 5 then
19213       GL_VERSION_1_5 := True;
19214   end;
19215
19216   if MajorVersion >= 2 then
19217   begin
19218     GL_VERSION_1_1 := True;
19219     GL_VERSION_1_2 := True;
19220     GL_VERSION_1_3 := True;
19221     GL_VERSION_1_4 := True;
19222     GL_VERSION_1_5 := True;
19223     GL_VERSION_2_0 := True;
19224
19225     if MinorVersion >= 1 then
19226       GL_VERSION_2_1 := True;
19227   end;
19228
19229   if MajorVersion >= 3 then
19230   begin
19231     GL_VERSION_2_1 := True;
19232     GL_VERSION_3_0 := True;
19233     
19234     if MinorVersion >= 1 then
19235       GL_VERSION_3_1 := True;
19236     if MinorVersion >= 2 then
19237       GL_VERSION_3_2 := True;
19238     if MinorVersion >= 3 then
19239       GL_VERSION_3_3 := True;
19240   end;
19241
19242   if MajorVersion >= 4 then
19243   begin
19244     GL_VERSION_3_1 := True;
19245     GL_VERSION_3_2 := True;
19246     GL_VERSION_3_3 := True;
19247     GL_VERSION_4_0 := True;
19248
19249     if MinorVersion >= 1 then
19250       GL_VERSION_4_1 := True;
19251     if MinorVersion >= 2 then
19252       GL_VERSION_4_2 := True;
19253     if MinorVersion >= 3 then
19254       GL_VERSION_4_3 := True;
19255     if MinorVersion >= 4 then
19256       GL_VERSION_4_4 := True;
19257   end;
19258
19259   // GLU
19260   GLU_VERSION_1_1 := False;
19261   GLU_VERSION_1_2 := False;
19262   GLU_VERSION_1_3 := False;
19263
19264   if Assigned(gluGetString) then begin
19265     AnsiBuffer := gluGetString(GLU_VERSION);
19266     Buffer := String(AnsiBuffer);
19267
19268     TrimAndSplitVersionString(Buffer, Majorversion, MinorVersion);
19269
19270     GLU_VERSION_1_1 := True;
19271
19272     if MinorVersion >= 2 then
19273       GLU_VERSION_1_2 := True;
19274
19275     if MinorVersion >= 3 then
19276       GLU_VERSION_1_3 := True;
19277   end;
19278 end;
19279
19280
19281 // =============================================================================
19282 //  ReadImplementationProperties
19283 // =============================================================================
19284
19285 procedure ReadImplementationProperties;
19286 var
19287   Buffer: Ansistring;
19288 begin
19289   ReadCoreVersion;
19290
19291   // Check all extensions
19292   Buffer := Int_GetExtensionString;
19293
19294   // === 3DFX ====================================================================
19295   GL_3DFX_multisample := Int_CheckExtension(Buffer, 'GL_3DFX_multisample');
19296   GL_3DFX_tbuffer := Int_CheckExtension(Buffer, 'GL_3DFX_tbuffer');
19297   GL_3DFX_texture_compression_FXT1 := Int_CheckExtension(Buffer, 'GL_3DFX_texture_compression_FXT1');
19298
19299   // === APPLE ===================================================================
19300   GL_APPLE_client_storage := Int_CheckExtension(Buffer, 'GL_APPLE_client_storage');
19301   GL_APPLE_element_array := Int_CheckExtension(Buffer, 'GL_APPLE_element_array');
19302   GL_APPLE_fence := Int_CheckExtension(Buffer, 'GL_APPLE_fence');
19303   GL_APPLE_specular_vector := Int_CheckExtension(Buffer, 'GL_APPLE_specular_vector');
19304   GL_APPLE_transform_hint := Int_CheckExtension(Buffer, 'GL_APPLE_transform_hint');
19305   GL_APPLE_vertex_array_object := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_object');
19306   GL_APPLE_vertex_array_range := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_range');
19307   GL_APPLE_ycbcr_422 := Int_CheckExtension(Buffer, 'GL_APPLE_ycbcr_422');
19308   GL_APPLE_texture_range := Int_CheckExtension(Buffer, 'GL_APPLE_texture_range');
19309   GL_APPLE_float_pixels := Int_CheckExtension(Buffer, 'GL_APPLE_float_pixels');
19310   GL_APPLE_vertex_program_evaluators := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_program_evaluators');
19311   GL_APPLE_aux_depth_stencil := Int_CheckExtension(Buffer, 'GL_APPLE_aux_depth_stencil');
19312   GL_APPLE_object_purgeable := Int_CheckExtension(Buffer, 'GL_APPLE_object_purgeable');
19313   GL_APPLE_row_bytes := Int_CheckExtension(Buffer, 'GL_APPLE_row_bytes');
19314   GL_APPLE_rgb_422 := Int_CheckExtension(Buffer, 'GL_APPLE_rgb_422');
19315
19316   // === ARB =====================================================================
19317   GL_ARB_depth_texture := Int_CheckExtension(Buffer, 'GL_ARB_depth_texture');
19318   GL_ARB_fragment_program := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program');
19319   GL_ARB_imaging := Int_CheckExtension(Buffer, 'GL_ARB_imaging');
19320   GL_ARB_matrix_palette := Int_CheckExtension(Buffer, 'GL_ARB_matrix_palette');
19321   GL_ARB_multisample := Int_CheckExtension(Buffer, 'GL_ARB_multisample');
19322   GL_ARB_multitexture := Int_CheckExtension(Buffer, 'GL_ARB_multitexture');
19323   GL_ARB_point_parameters := Int_CheckExtension(Buffer, 'GL_ARB_point_parameters');
19324   GL_ARB_shadow := Int_CheckExtension(Buffer, 'GL_ARB_shadow');
19325   GL_ARB_shadow_ambient := Int_CheckExtension(Buffer, 'GL_ARB_shadow_ambient');
19326   GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19327   GL_ARB_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_ARB_texture_border_clamp');
19328   GL_ARB_texture_compression := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression');
19329   GL_ARB_texture_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map');
19330   GL_ARB_texture_env_add := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_add');
19331   GL_ARB_texture_env_combine := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_combine');
19332   GL_ARB_texture_env_crossbar := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_crossbar');
19333   GL_ARB_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_dot3');
19334   GL_ARB_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_ARB_texture_mirrored_repeat');
19335   GL_ARB_transpose_matrix := Int_CheckExtension(Buffer, 'GL_ARB_transpose_matrix');
19336   GL_ARB_vertex_blend := Int_CheckExtension(Buffer, 'GL_ARB_vertex_blend');
19337   GL_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_buffer_object');
19338   GL_ARB_vertex_program := Int_CheckExtension(Buffer, 'GL_ARB_vertex_program');
19339   GL_ARB_window_pos := Int_CheckExtension(Buffer, 'GL_ARB_window_pos');
19340   GL_ARB_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_shader_objects');
19341   GL_ARB_vertex_shader := Int_CheckExtension(Buffer, 'GL_ARB_vertex_shader');
19342   GL_ARB_fragment_shader := Int_CheckExtension(Buffer, 'GL_ARB_fragment_shader');
19343   GL_ARB_occlusion_query := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query');
19344   GL_ARB_shading_language_100 := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_100');
19345   GL_ARB_point_sprite := Int_CheckExtension(Buffer, 'GL_ARB_point_sprite');
19346   GL_ARB_texture_non_power_of_two := Int_CheckExtension(Buffer, 'GL_ARB_texture_non_power_of_two');
19347   GL_ARB_fragment_program_shadow := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program_shadow');
19348   GL_ARB_draw_buffers := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers');
19349   GL_ARB_texture_rectangle := Int_CheckExtension(Buffer, 'GL_ARB_texture_rectangle');
19350   GL_ARB_color_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_color_buffer_float');
19351   GL_ARB_half_float_pixel := Int_CheckExtension(Buffer, 'GL_ARB_half_float_pixel');
19352   GL_ARB_texture_float := Int_CheckExtension(Buffer, 'GL_ARB_texture_float');
19353   GL_ARB_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_pixel_buffer_object');
19354   GL_ARB_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_depth_buffer_float');
19355   GL_ARB_draw_instanced := Int_CheckExtension(Buffer, 'GL_ARB_draw_instanced');
19356   GL_ARB_framebuffer_object := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_object');
19357   GL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_sRGB');
19358   GL_ARB_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_ARB_geometry_shader4');
19359   GL_ARB_half_float_vertex := Int_CheckExtension(Buffer, 'GL_ARB_half_float_vertex');
19360   GL_ARB_instanced_arrays := Int_CheckExtension(Buffer, 'GL_ARB_instanced_arrays');
19361   GL_ARB_map_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_range');
19362   GL_ARB_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object');
19363   GL_ARB_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_rgtc');
19364   GL_ARB_texture_rg := Int_CheckExtension(Buffer, 'GL_ARB_texture_rg');
19365   GL_ARB_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_object');
19366   GL_ARB_uniform_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_uniform_buffer_object');
19367   GL_ARB_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_compatibility');
19368   GL_ARB_copy_buffer := Int_CheckExtension(Buffer, 'GL_ARB_copy_buffer');
19369   GL_ARB_shader_texture_lod := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_lod');
19370   GL_ARB_depth_clamp := Int_CheckExtension(Buffer, 'GL_ARB_depth_clamp');
19371   GL_ARB_draw_elements_base_vertex := Int_CheckExtension(Buffer, 'GL_ARB_draw_elements_base_vertex');
19372   GL_ARB_fragment_coord_conventions := Int_CheckExtension(Buffer, 'GL_ARB_fragment_coord_conventions');
19373   GL_ARB_provoking_vertex := Int_CheckExtension(Buffer, 'GL_ARB_provoking_vertex');
19374   GL_ARB_seamless_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_seamless_cube_map');
19375   GL_ARB_sync := Int_CheckExtension(Buffer, 'GL_ARB_sync');
19376   GL_ARB_texture_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_multisample');
19377   GL_ARB_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_bgra');
19378   GL_ARB_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers_blend');
19379   GL_ARB_sample_shading := Int_CheckExtension(Buffer, 'GL_ARB_sample_shading');
19380   GL_ARB_texture_cube_map_array := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map_array');
19381   GL_ARB_texture_gather := Int_CheckExtension(Buffer, 'GL_ARB_texture_gather');
19382   GL_ARB_texture_query_lod := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_lod');
19383   GL_ARB_shading_language_include := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_include');
19384   GL_ARB_texture_compression_bptc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_bptc');
19385   GL_ARB_blend_func_extended := Int_CheckExtension(Buffer, 'GL_ARB_blend_func_extended');
19386   GL_ARB_explicit_attrib_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_attrib_location');
19387   GL_ARB_occlusion_query2 := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query2');
19388   GL_ARB_sampler_objects := Int_CheckExtension(Buffer, 'GL_ARB_sampler_objects');
19389   GL_ARB_shader_bit_encoding := Int_CheckExtension(Buffer, 'GL_ARB_shader_bit_encoding');
19390   GL_ARB_texture_rgb10_a2ui := Int_CheckExtension(Buffer, 'GL_ARB_texture_rgb10_a2ui');
19391   GL_ARB_texture_swizzle := Int_CheckExtension(Buffer, 'GL_ARB_texture_swizzle');
19392   GL_ARB_timer_query := Int_CheckExtension(Buffer, 'GL_ARB_timer_query');
19393   GL_ARB_vertex_type_2_10_10_10_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_2_10_10_10_rev');
19394   GL_ARB_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_draw_indirect');
19395   GL_ARB_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader5');
19396   GL_ARB_gpu_shader_fp64 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader_fp64');
19397   GL_ARB_shader_subroutine := Int_CheckExtension(Buffer, 'GL_ARB_shader_subroutine');
19398   GL_ARB_tessellation_shader := Int_CheckExtension(Buffer, 'GL_ARB_tessellation_shader');
19399   GL_ARB_texture_buffer_object_rgb32 := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object_rgb32');
19400   GL_ARB_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback2');
19401   GL_ARB_transform_feedback3 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback3');
19402   GL_ARB_ES2_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES2_compatibility');
19403   GL_ARB_get_program_binary := Int_CheckExtension(Buffer, 'GL_ARB_get_program_binary');
19404   GL_ARB_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_separate_shader_objects');
19405   GL_ARB_shader_precision := Int_CheckExtension(Buffer, 'GL_ARB_shader_precision');
19406   GL_ARB_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_64bit');
19407   GL_ARB_viewport_array := Int_CheckExtension(Buffer, 'GL_ARB_viewport_array');
19408
19409   // GL 4.2
19410     GL_ARB_base_instance := Int_CheckExtension(Buffer, 'GL_ARB_base_instance');
19411     GL_ARB_shading_language_420pack := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_420pack');
19412     GL_ARB_transform_feedback_instanced := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback_instanced');
19413     GL_ARB_compressed_texture_pixel_storage := Int_CheckExtension(Buffer, 'GL_ARB_compressed_texture_pixel_storage');
19414     GL_ARB_conservative_depth := Int_CheckExtension(Buffer, 'GL_ARB_conservative_depth');
19415     GL_ARB_internalformat_query := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query');
19416     GL_ARB_map_buffer_alignment := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_alignment');
19417     GL_ARB_shader_atomic_counters := Int_CheckExtension(Buffer, 'GL_ARB_shader_atomic_counters');
19418     GL_ARB_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_load_store');
19419     GL_ARB_shading_language_packing := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_packing');
19420     GL_ARB_texture_storage := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage');
19421   // END GL 4.2
19422
19423   // GL 4.3
19424     GL_ARB_arrays_of_arrays := Int_CheckExtension(Buffer, 'GL_ARB_arrays_of_arrays');
19425     GL_ARB_fragment_layer_viewport := Int_CheckExtension(Buffer, 'GL_ARB_fragment_layer_viewport');
19426     GL_ARB_shader_image_size := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_size');
19427     GL_ARB_ES3_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_compatibility');
19428     GL_ARB_clear_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_clear_buffer_object');
19429     GL_ARB_compute_shader := Int_CheckExtension(Buffer, 'GL_ARB_compute_shader');
19430     GL_ARB_copy_image := Int_CheckExtension(Buffer, 'GL_ARB_copy_image');
19431     GL_KHR_debug := Int_CheckExtension(Buffer, 'GL_KHR_debug');
19432     GL_ARB_explicit_uniform_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_uniform_location');
19433     GL_ARB_framebuffer_no_attachments := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_no_attachments');
19434     GL_ARB_internalformat_query2 := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query2');
19435     GL_ARB_invalidate_subdata := Int_CheckExtension(Buffer, 'GL_ARB_invalidate_subdata');
19436     GL_ARB_multi_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_multi_draw_indirect');
19437     GL_ARB_program_interface_query := Int_CheckExtension(Buffer, 'GL_ARB_program_interface_query');
19438     GL_ARB_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_ARB_robust_buffer_access_behavior');
19439     GL_ARB_shader_storage_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_shader_storage_buffer_object');
19440     GL_ARB_stencil_texturing := Int_CheckExtension(Buffer, 'GL_ARB_stencil_texturing');
19441     GL_ARB_texture_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_range');
19442     GL_ARB_texture_query_levels := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_levels');
19443     GL_ARB_texture_storage_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage_multisample');
19444     GL_ARB_texture_view := Int_CheckExtension(Buffer, 'GL_ARB_texture_view');
19445     GL_ARB_vertex_attrib_binding := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_binding');
19446     GL_ARB_cl_event := Int_CheckExtension(Buffer, 'GL_ARB_cl_event');
19447     GL_ARB_debug_output := Int_CheckExtension(Buffer, 'GL_ARB_debug_output');
19448     GL_ARB_robustness := Int_CheckExtension(Buffer, 'GL_ARB_robustness');
19449     GL_ARB_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_ARB_shader_stencil_export');
19450   // END GL 4.3
19451
19452   // GL 4.4
19453     GL_ARB_buffer_storage               := Int_CheckExtension(Buffer, 'GL_ARB_buffer_storage');
19454     GL_ARB_clear_texture                := Int_CheckExtension(Buffer, 'GL_ARB_clear_texture');
19455     GL_ARB_enhanced_layouts             := Int_CheckExtension(Buffer, 'GL_ARB_enhanced_layouts');
19456     GL_ARB_multi_bind                   := Int_CheckExtension(Buffer, 'GL_ARB_multi_bind');
19457     GL_ARB_query_buffer_object          := Int_CheckExtension(Buffer, 'GL_ARB_query_buffer_object');
19458     GL_ARB_texture_mirror_clamp_to_edge := Int_CheckExtension(Buffer, 'GL_ARB_texture_mirror_clamp_to_edge');
19459     GL_ARB_texture_stencil8             := Int_CheckExtension(Buffer, 'GL_ARB_texture_stencil8');
19460     GL_ARB_vertex_type_10f_11f_11f_rev  := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_10f_11f_11f_rev');
19461
19462           GL_ARB_bindless_texture                                       := Int_CheckExtension(Buffer, 'GL_ARB_bindless_texture');
19463                 GL_ARB_sparse_texture                                                           := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19464
19465   // END GL 4.4
19466
19467   // === ATI/AMD ================================================================
19468   GL_ATI_draw_buffers := Int_CheckExtension(Buffer, 'GL_ATI_draw_buffers');
19469   GL_ATI_element_array := Int_CheckExtension(Buffer, 'GL_ATI_element_array');
19470   GL_ATI_envmap_bumpmap := Int_CheckExtension(Buffer, 'GL_ATI_envmap_bumpmap');
19471   GL_ATI_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_fragment_shader');
19472   GL_ATI_map_object_buffer := Int_CheckExtension(Buffer, 'GL_ATI_map_object_buffer');
19473   GL_ATI_pn_triangles := Int_CheckExtension(Buffer, 'GL_ATI_pn_triangles');
19474   GL_ATI_separate_stencil := Int_CheckExtension(Buffer, 'GL_ATI_separate_stencil');
19475   GL_ATI_text_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_text_fragment_shader');
19476   GL_ATI_texture_env_combine3 := Int_CheckExtension(Buffer, 'GL_ATI_texture_env_combine3');
19477   GL_ATI_texture_float := Int_CheckExtension(Buffer, 'GL_ATI_texture_float');
19478   GL_ATI_texture_mirror_once := Int_CheckExtension(Buffer, 'GL_ATI_texture_mirror_once');
19479   GL_ATI_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_array_object');
19480   GL_ATI_vertex_attrib_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_attrib_array_object');
19481   GL_ATI_vertex_streams := Int_CheckExtension(Buffer, 'GL_ATI_vertex_streams');
19482   GL_ATI_meminfo := Int_CheckExtension(Buffer, 'GL_ATI_meminfo');
19483   GL_AMD_performance_monitor := Int_CheckExtension(Buffer, 'GL_AMD_performance_monitor');
19484   GL_AMD_texture_texture4 := Int_CheckExtension(Buffer, 'GL_AMD_texture_texture4');
19485   GL_AMD_vertex_shader_tesselator := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_tesselator');
19486   GL_AMD_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_AMD_draw_buffers_blend');
19487   GL_AMD_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_AMD_shader_stencil_export');
19488   GL_AMD_seamless_cubemap_per_texture := Int_CheckExtension(Buffer, 'GL_AMD_seamless_cubemap_per_texture');
19489   GL_AMD_conservative_depth := Int_CheckExtension(Buffer, 'GL_AMD_conservative_depth');
19490   GL_AMD_name_gen_delete := Int_CheckExtension(Buffer, 'GL_AMD_name_gen_delete');
19491   GL_AMD_debug_output := Int_CheckExtension(Buffer, 'GL_AMD_debug_output');
19492   GL_AMD_transform_feedback3_lines_triangles := Int_CheckExtension(Buffer, 'GL_AMD_transform_feedback3_lines_triangles');
19493   GL_AMD_depth_clamp_separate := Int_CheckExtension(Buffer, 'GL_AMD_depth_clamp_separate');
19494   // 4.3
19495   GL_AMD_pinned_memory := Int_CheckExtension(Buffer, 'GL_AMD_pinned_memory');
19496   GL_AMD_stencil_operation_extended := Int_CheckExtension(Buffer, 'GL_AMD_stencil_operation_extended');
19497   GL_AMD_vertex_shader_viewport_index := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_viewport_index');
19498   GL_AMD_vertex_shader_layer := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_layer');
19499         GL_AMD_query_buffer_object := Int_CheckExtension(Buffer, 'GL_AMD_query_buffer_object');
19500
19501   // === EXT =====================================================================
19502   GL_EXT_422_pixels := Int_CheckExtension(Buffer, 'GL_EXT_422_pixels');
19503   GL_EXT_abgr := Int_CheckExtension(Buffer, 'GL_EXT_abgr');
19504   GL_EXT_bgra := Int_CheckExtension(Buffer, 'GL_EXT_bgra');
19505   GL_EXT_blend_color := Int_CheckExtension(Buffer, 'GL_EXT_blend_color');
19506   GL_EXT_blend_func_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_func_separate');
19507   GL_EXT_blend_logic_op := Int_CheckExtension(Buffer, 'GL_EXT_blend_logic_op');
19508   GL_EXT_blend_minmax := Int_CheckExtension(Buffer, 'GL_EXT_blend_minmax');
19509   GL_EXT_blend_subtract := Int_CheckExtension(Buffer, 'GL_EXT_blend_subtract');
19510   GL_EXT_clip_volume_hint := Int_CheckExtension(Buffer, 'GL_EXT_clip_volume_hint');
19511   GL_EXT_cmyka := Int_CheckExtension(Buffer, 'GL_EXT_cmyka');
19512   GL_EXT_color_matrix := Int_CheckExtension(Buffer, 'GL_EXT_color_matrix');
19513   GL_EXT_color_subtable := Int_CheckExtension(Buffer, 'GL_EXT_color_subtable');
19514   GL_EXT_compiled_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_compiled_vertex_array');
19515   GL_EXT_convolution := Int_CheckExtension(Buffer, 'GL_EXT_convolution');
19516   GL_EXT_coordinate_frame := Int_CheckExtension(Buffer, 'GL_EXT_coordinate_frame');
19517   GL_EXT_copy_texture := Int_CheckExtension(Buffer, 'GL_EXT_copy_texture');
19518   GL_EXT_cull_vertex := Int_CheckExtension(Buffer, 'GL_EXT_cull_vertex');
19519   GL_EXT_draw_range_elements := Int_CheckExtension(Buffer, 'GL_EXT_draw_range_elements');
19520   GL_EXT_fog_coord := Int_CheckExtension(Buffer, 'GL_EXT_fog_coord');
19521   GL_EXT_framebuffer_object := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_object');
19522   GL_EXT_histogram := Int_CheckExtension(Buffer, 'GL_EXT_histogram');
19523   GL_EXT_index_array_formats := Int_CheckExtension(Buffer, 'GL_EXT_index_array_formats');
19524   GL_EXT_index_func := Int_CheckExtension(Buffer, 'GL_EXT_index_func');
19525   GL_EXT_index_material := Int_CheckExtension(Buffer, 'GL_EXT_index_material');
19526   GL_EXT_index_texture := Int_CheckExtension(Buffer, 'GL_EXT_index_texture');
19527   GL_EXT_light_texture := Int_CheckExtension(Buffer, 'GL_EXT_light_texture');
19528   GL_EXT_misc_attribute := Int_CheckExtension(Buffer, 'GL_EXT_misc_attribute');
19529   GL_EXT_multi_draw_arrays := Int_CheckExtension(Buffer, 'GL_EXT_multi_draw_arrays');
19530   GL_EXT_multisample := Int_CheckExtension(Buffer, 'GL_EXT_multisample');
19531   GL_EXT_packed_pixels := Int_CheckExtension(Buffer, 'GL_EXT_packed_pixels');
19532   GL_EXT_paletted_texture := Int_CheckExtension(Buffer, 'GL_EXT_paletted_texture');
19533   GL_EXT_pixel_transform := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform');
19534   GL_EXT_pixel_transform_color_table := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform_color_table');
19535   GL_EXT_point_parameters := Int_CheckExtension(Buffer, 'GL_EXT_point_parameters');
19536   GL_EXT_polygon_offset := Int_CheckExtension(Buffer, 'GL_EXT_polygon_offset');
19537   GL_EXT_rescale_normal := Int_CheckExtension(Buffer, 'GL_EXT_rescale_normal');
19538   GL_EXT_secondary_color := Int_CheckExtension(Buffer, 'GL_EXT_secondary_color');
19539   GL_EXT_separate_specular_color := Int_CheckExtension(Buffer, 'GL_EXT_separate_specular_color');
19540   GL_EXT_shadow_funcs := Int_CheckExtension(Buffer, 'GL_EXT_shadow_funcs');
19541   GL_EXT_shared_texture_palette := Int_CheckExtension(Buffer, 'GL_EXT_shared_texture_palette');
19542   GL_EXT_stencil_two_side := Int_CheckExtension(Buffer, 'GL_EXT_stencil_two_side');
19543   GL_EXT_stencil_wrap := Int_CheckExtension(Buffer, 'GL_EXT_stencil_wrap');
19544   GL_EXT_subtexture := Int_CheckExtension(Buffer, 'GL_EXT_subtexture');
19545   GL_EXT_texture := Int_CheckExtension(Buffer, 'GL_EXT_texture');
19546   GL_EXT_texture3D := Int_CheckExtension(Buffer, 'GL_EXT_texture3D');
19547   GL_EXT_texture_compression_s3tc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_s3tc');
19548   GL_EXT_texture_cube_map := Int_CheckExtension(Buffer, 'GL_EXT_texture_cube_map');
19549   GL_EXT_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_edge_clamp');
19550   GL_EXT_texture_env_add := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_add');
19551   GL_EXT_texture_env_combine := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_combine');
19552   GL_EXT_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_dot3');
19553   GL_EXT_texture_filter_anisotropic := Int_CheckExtension(Buffer, 'GL_EXT_texture_filter_anisotropic');
19554   GL_EXT_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_EXT_texture_lod_bias');
19555   GL_EXT_texture_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_object');
19556   GL_EXT_texture_perturb_normal := Int_CheckExtension(Buffer, 'GL_EXT_texture_perturb_normal');
19557   GL_EXT_texture_rectangle := Int_CheckExtension(Buffer, 'GL_EXT_texture_rectangle');
19558   GL_EXT_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array');
19559   GL_EXT_vertex_shader := Int_CheckExtension(Buffer, 'GL_EXT_vertex_shader');
19560   GL_EXT_vertex_weighting := Int_CheckExtension(Buffer, 'GL_EXT_vertex_weighting');
19561   GL_EXT_depth_bounds_test := Int_CheckExtension(Buffer, 'GL_EXT_depth_bounds_test');
19562   GL_EXT_texture_mirror_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_mirror_clamp');
19563   GL_EXT_blend_equation_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_equation_separate');
19564   GL_EXT_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_pixel_buffer_object');
19565   GL_EXT_texture_compression_dxt1 := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_dxt1');
19566   GL_EXT_stencil_clear_tag := Int_CheckExtension(Buffer, 'GL_EXT_stencil_clear_tag');
19567   GL_EXT_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_EXT_packed_depth_stencil');
19568   GL_EXT_texture_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB');
19569   GL_EXT_framebuffer_blit := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_blit');
19570   GL_EXT_framebuffer_multisample := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_multisample');
19571   GL_EXT_timer_query := Int_CheckExtension(Buffer, 'GL_EXT_timer_query');
19572   GL_EXT_gpu_program_parameters := Int_CheckExtension(Buffer, 'GL_EXT_gpu_program_parameters');
19573   GL_EXT_bindable_uniform := Int_CheckExtension(Buffer, 'GL_EXT_bindable_uniform');
19574   GL_EXT_draw_buffers2 := Int_CheckExtension(Buffer, 'GL_EXT_draw_buffers2');
19575   GL_EXT_draw_instanced := Int_CheckExtension(Buffer, 'GL_EXT_draw_instanced');
19576   GL_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_sRGB');
19577   GL_EXT_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_geometry_shader4');
19578   GL_EXT_gpu_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_gpu_shader4');
19579   GL_EXT_packed_float := Int_CheckExtension(Buffer, 'GL_EXT_packed_float');
19580   GL_EXT_texture_array := Int_CheckExtension(Buffer, 'GL_EXT_texture_array');
19581   GL_EXT_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_buffer_object');
19582   GL_EXT_texture_compression_latc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_latc');
19583   GL_EXT_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_rgtc');
19584   GL_EXT_texture_integer := Int_CheckExtension(Buffer, 'GL_EXT_texture_integer');
19585   GL_EXT_texture_shared_exponent := Int_CheckExtension(Buffer, 'GL_EXT_texture_shared_exponent');
19586   GL_EXT_transform_feedback := Int_CheckExtension(Buffer, 'GL_EXT_transform_feedback');
19587   GL_EXT_direct_state_access := Int_CheckExtension(Buffer, 'GL_EXT_direct_state_access');
19588   GL_EXT_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array_bgra');
19589   GL_EXT_texture_swizzle := Int_CheckExtension(Buffer, 'GL_EXT_texture_swizzle');
19590   GL_EXT_provoking_vertex := Int_CheckExtension(Buffer, 'GL_EXT_provoking_vertex');
19591   GL_EXT_texture_snorm := Int_CheckExtension(Buffer, 'GL_EXT_texture_snorm');
19592   GL_EXT_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_EXT_separate_shader_objects');
19593   GL_EXT_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_EXT_shader_image_load_store');
19594   GL_EXT_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_EXT_vertex_attrib_64bit');
19595   GL_EXT_texture_sRGB_decode := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB_decode');
19596   
19597   // === HP ======================================================================
19598   GL_HP_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_HP_convolution_border_modes');
19599   GL_HP_image_transform := Int_CheckExtension(Buffer, 'GL_HP_image_transform');
19600   GL_HP_occlusion_test := Int_CheckExtension(Buffer, 'GL_HP_occlusion_test');
19601   GL_HP_texture_lighting := Int_CheckExtension(Buffer, 'GL_HP_texture_lighting');
19602
19603   // === IBM =====================================================================
19604   GL_IBM_cull_vertex := Int_CheckExtension(Buffer, 'GL_IBM_cull_vertex');
19605   GL_IBM_multimode_draw_arrays := Int_CheckExtension(Buffer, 'GL_IBM_multimode_draw_arrays');
19606   GL_IBM_rasterpos_clip := Int_CheckExtension(Buffer, 'GL_IBM_rasterpos_clip');
19607   GL_IBM_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_IBM_texture_mirrored_repeat');
19608   GL_IBM_vertex_array_lists := Int_CheckExtension(Buffer, 'GL_IBM_vertex_array_lists');
19609
19610   // === INGR ====================================================================
19611   GL_INGR_blend_func_separate := Int_CheckExtension(Buffer, 'GL_INGR_blend_func_separate');
19612   GL_INGR_color_clamp := Int_CheckExtension(Buffer, 'GL_INGR_color_clamp');
19613   GL_INGR_interlace_read := Int_CheckExtension(Buffer, 'GL_INGR_interlace_read');
19614   GL_INGR_palette_buffer := Int_CheckExtension(Buffer, 'GL_INGR_palette_buffer');
19615
19616   // === INTEL ===================================================================
19617   GL_INTEL_parallel_arrays := Int_CheckExtension(Buffer, 'GL_INTEL_parallel_arrays');
19618   GL_INTEL_texture_scissor := Int_CheckExtension(Buffer, 'GL_INTEL_texture_scissor');
19619
19620   // === MESA ====================================================================
19621   GL_MESA_resize_buffers := Int_CheckExtension(Buffer, 'GL_MESA_resize_buffers');
19622   GL_MESA_window_pos := Int_CheckExtension(Buffer, 'GL_MESA_window_pos');
19623
19624   // === NVIDIA ==================================================================
19625   GL_NV_blend_square := Int_CheckExtension(Buffer, 'GL_NV_blend_square');
19626   GL_NV_copy_depth_to_color := Int_CheckExtension(Buffer, 'GL_NV_copy_depth_to_color');
19627   GL_NV_depth_clamp := Int_CheckExtension(Buffer, 'GL_NV_depth_clamp');
19628   GL_NV_evaluators := Int_CheckExtension(Buffer, 'GL_NV_evaluators');
19629   GL_NV_fence := Int_CheckExtension(Buffer, 'GL_NV_fence');
19630   GL_NV_float_buffer := Int_CheckExtension(Buffer, 'GL_NV_float_buffer');
19631   GL_NV_fog_distance := Int_CheckExtension(Buffer, 'GL_NV_fog_distance');
19632   GL_NV_fragment_program := Int_CheckExtension(Buffer, 'GL_NV_fragment_program');
19633   GL_NV_half_float := Int_CheckExtension(Buffer, 'GL_NV_half_float');
19634   GL_NV_light_max_exponent := Int_CheckExtension(Buffer, 'GL_NV_light_max_exponent');
19635   GL_NV_multisample_filter_hint := Int_CheckExtension(Buffer, 'GL_NV_multisample_filter_hint');
19636   GL_NV_occlusion_query := Int_CheckExtension(Buffer, 'GL_NV_occlusion_query');
19637   GL_NV_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_NV_packed_depth_stencil');
19638   GL_NV_pixel_data_range := Int_CheckExtension(Buffer, 'GL_NV_pixel_data_range');
19639   GL_NV_point_sprite := Int_CheckExtension(Buffer, 'GL_NV_point_sprite');
19640   GL_NV_primitive_restart := Int_CheckExtension(Buffer, 'GL_NV_primitive_restart');
19641   GL_NV_register_combiners := Int_CheckExtension(Buffer, 'GL_NV_register_combiners');
19642   GL_NV_register_combiners2 := Int_CheckExtension(Buffer, 'GL_NV_register_combiners2');
19643   GL_NV_texgen_emboss := Int_CheckExtension(Buffer, 'GL_NV_texgen_emboss');
19644   GL_NV_texgen_reflection := Int_CheckExtension(Buffer, 'GL_NV_texgen_reflection');
19645   GL_NV_texture_compression_vtc := Int_CheckExtension(Buffer, 'GL_NV_texture_compression_vtc');
19646   GL_NV_texture_env_combine4 := Int_CheckExtension(Buffer, 'GL_NV_texture_env_combine4');
19647   GL_NV_texture_expand_normal := Int_CheckExtension(Buffer, 'GL_NV_texture_expand_normal');
19648   GL_NV_texture_rectangle := Int_CheckExtension(Buffer, 'GL_NV_texture_rectangle');
19649   GL_NV_texture_shader := Int_CheckExtension(Buffer, 'GL_NV_texture_shader');
19650   GL_NV_texture_shader2 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader2');
19651   GL_NV_texture_shader3 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader3');
19652   GL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range');
19653   GL_NV_vertex_array_range2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range2');
19654   GL_NV_vertex_program := Int_CheckExtension(Buffer, 'GL_NV_vertex_program');
19655   GL_NV_vertex_program1_1 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program1_1');
19656   GL_NV_vertex_program2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2');
19657   GL_NV_fragment_program_option := Int_CheckExtension(Buffer, 'GL_NV_fragment_program_option');
19658   GL_NV_fragment_program2 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program2');
19659   GL_NV_vertex_program2_option := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2_option');
19660   GL_NV_vertex_program3 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program3');
19661   GL_NV_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_NV_depth_buffer_float');
19662   GL_NV_fragment_program4 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program4');
19663   GL_NV_framebuffer_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_framebuffer_multisample_coverage');
19664   GL_NV_geometry_program4 := Int_CheckExtension(Buffer, 'GL_NV_geometry_program4');
19665   GL_NV_gpu_program4 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program4');
19666   GL_NV_parameter_buffer_object := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object');
19667   GL_NV_transform_feedback := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback');
19668   GL_NV_vertex_program4 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program4');
19669   GL_NV_conditional_render := Int_CheckExtension(Buffer, 'GL_NV_conditional_render');
19670   GL_NV_present_video := Int_CheckExtension(Buffer, 'GL_NV_present_video');
19671   GL_NV_explicit_multisample := Int_CheckExtension(Buffer, 'GL_NV_explicit_multisample');
19672   GL_NV_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback2');
19673   GL_NV_video_capture := Int_CheckExtension(Buffer, 'GL_NV_video_capture');
19674   GL_NV_copy_image := Int_CheckExtension(Buffer, 'GL_NV_copy_image');
19675   GL_NV_parameter_buffer_object2 := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object2');
19676   GL_NV_shader_buffer_load := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_load');
19677   GL_NV_vertex_buffer_unified_memory := Int_CheckExtension(Buffer, 'GL_NV_vertex_buffer_unified_memory');
19678   GL_NV_gpu_program5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program5');
19679   GL_NV_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_shader5');
19680   GL_NV_shader_buffer_store := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_store');
19681   GL_NV_tessellation_program5 := Int_CheckExtension(Buffer, 'GL_NV_tessellation_program5');
19682   GL_NV_vertex_attrib_integer_64bit := Int_CheckExtension(Buffer, 'GL_NV_vertex_attrib_integer_64bit');
19683   GL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_multisample_coverage');
19684   GL_NV_vdpau_interop := Int_CheckExtension(Buffer, 'GL_NV_vdpau_interop');
19685   GL_NV_texture_barrier := Int_CheckExtension(Buffer, 'GL_NV_texture_barrier');
19686   // 4.3
19687         GL_NV_path_rendering := Int_CheckExtension(Buffer, 'GL_NV_path_rendering');
19688   GL_NV_bindless_texture := Int_CheckExtension(Buffer, 'GL_NV_bindless_texture');
19689         GL_NV_shader_atomic_float := Int_CheckExtension(Buffer, 'GL_NV_shader_atomic_float');
19690
19691   // === OML =====================================================================
19692   GL_OML_interlace := Int_CheckExtension(Buffer, 'GL_OML_interlace');
19693   GL_OML_resample := Int_CheckExtension(Buffer, 'GL_OML_resample');
19694   GL_OML_subsample := Int_CheckExtension(Buffer, 'GL_OML_subsample');
19695
19696   // === PGI =====================================================================
19697   GL_PGI_misc_hints := Int_CheckExtension(Buffer, 'GL_PGI_misc_hints');
19698   GL_PGI_vertex_hints := Int_CheckExtension(Buffer, 'GL_PGI_vertex_hints');
19699
19700   // === REND ====================================================================
19701   GL_REND_screen_coordinates := Int_CheckExtension(Buffer, 'GL_REND_screen_coordinates');
19702
19703   // === S3 ======================================================================
19704   GL_S3_s3tc := Int_CheckExtension(Buffer, 'GL_S3_s3tc');
19705
19706   // === SGIS ====================================================================
19707   GL_SGIS_detail_texture := Int_CheckExtension(Buffer, 'GL_SGIS_detail_texture');
19708   GL_SGIS_fog_function := Int_CheckExtension(Buffer, 'GL_SGIS_fog_function');
19709   GL_SGIS_generate_mipmap := Int_CheckExtension(Buffer, 'GL_SGIS_generate_mipmap');
19710   GL_SGIS_multisample := Int_CheckExtension(Buffer, 'GL_SGIS_multisample');
19711   GL_SGIS_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIS_pixel_texture');
19712   GL_SGIS_point_line_texgen := Int_CheckExtension(Buffer, 'GL_SGIS_point_line_texgen');
19713   GL_SGIS_point_parameters := Int_CheckExtension(Buffer, 'GL_SGIS_point_parameters');
19714   GL_SGIS_sharpen_texture := Int_CheckExtension(Buffer, 'GL_SGIS_sharpen_texture');
19715   GL_SGIS_texture4D := Int_CheckExtension(Buffer, 'GL_SGIS_texture4D');
19716   GL_SGIS_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_border_clamp');
19717   GL_SGIS_texture_color_mask := Int_CheckExtension(Buffer, 'GL_SGIS_texture_color_mask');
19718   GL_SGIS_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_edge_clamp');
19719   GL_SGIS_texture_filter4 := Int_CheckExtension(Buffer, 'GL_SGIS_texture_filter4');
19720   GL_SGIS_texture_lod := Int_CheckExtension(Buffer, 'GL_SGIS_texture_lod');
19721   GL_SGIS_texture_select := Int_CheckExtension(Buffer, 'GL_SGIS_texture_select');
19722
19723   // === SGIX ====================================================================
19724   GL_FfdMaskSGIX := Int_CheckExtension(Buffer, 'GL_FfdMaskSGIX');
19725   GL_SGIX_async := Int_CheckExtension(Buffer, 'GL_SGIX_async');
19726   GL_SGIX_async_histogram := Int_CheckExtension(Buffer, 'GL_SGIX_async_histogram');
19727   GL_SGIX_async_pixel := Int_CheckExtension(Buffer, 'GL_SGIX_async_pixel');
19728   GL_SGIX_blend_alpha_minmax := Int_CheckExtension(Buffer, 'GL_SGIX_blend_alpha_minmax');
19729   GL_SGIX_calligraphic_fragment := Int_CheckExtension(Buffer, 'GL_SGIX_calligraphic_fragment');
19730   GL_SGIX_clipmap := Int_CheckExtension(Buffer, 'GL_SGIX_clipmap');
19731   GL_SGIX_convolution_accuracy := Int_CheckExtension(Buffer, 'GL_SGIX_convolution_accuracy');
19732   GL_SGIX_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGIX_depth_pass_instrument');
19733   GL_SGIX_depth_texture := Int_CheckExtension(Buffer, 'GL_SGIX_depth_texture');
19734   GL_SGIX_flush_raster := Int_CheckExtension(Buffer, 'GL_SGIX_flush_raster');
19735   GL_SGIX_fog_offset := Int_CheckExtension(Buffer, 'GL_SGIX_fog_offset');
19736   GL_SGIX_fog_scale := Int_CheckExtension(Buffer, 'GL_SGIX_fog_scale');
19737   GL_SGIX_fragment_lighting := Int_CheckExtension(Buffer, 'GL_SGIX_fragment_lighting');
19738   GL_SGIX_framezoom := Int_CheckExtension(Buffer, 'GL_SGIX_framezoom');
19739   GL_SGIX_igloo_interface := Int_CheckExtension(Buffer, 'GL_SGIX_igloo_interface');
19740   GL_SGIX_impact_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_impact_pixel_texture');
19741   GL_SGIX_instruments := Int_CheckExtension(Buffer, 'GL_SGIX_instruments');
19742   GL_SGIX_interlace := Int_CheckExtension(Buffer, 'GL_SGIX_interlace');
19743   GL_SGIX_ir_instrument1 := Int_CheckExtension(Buffer, 'GL_SGIX_ir_instrument1');
19744   GL_SGIX_list_priority := Int_CheckExtension(Buffer, 'GL_SGIX_list_priority');
19745   GL_SGIX_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_texture');
19746   GL_SGIX_pixel_tiles := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_tiles');
19747   GL_SGIX_polynomial_ffd := Int_CheckExtension(Buffer, 'GL_SGIX_polynomial_ffd');
19748   GL_SGIX_reference_plane := Int_CheckExtension(Buffer, 'GL_SGIX_reference_plane');
19749   GL_SGIX_resample := Int_CheckExtension(Buffer, 'GL_SGIX_resample');
19750   GL_SGIX_scalebias_hint := Int_CheckExtension(Buffer, 'GL_SGIX_scalebias_hint');
19751   GL_SGIX_shadow := Int_CheckExtension(Buffer, 'GL_SGIX_shadow');
19752   GL_SGIX_shadow_ambient := Int_CheckExtension(Buffer, 'GL_SGIX_shadow_ambient');
19753   GL_SGIX_sprite := Int_CheckExtension(Buffer, 'GL_SGIX_sprite');
19754   GL_SGIX_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_subsample');
19755   GL_SGIX_tag_sample_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_tag_sample_buffer');
19756   GL_SGIX_texture_add_env := Int_CheckExtension(Buffer, 'GL_SGIX_texture_add_env');
19757   GL_SGIX_texture_coordinate_clamp := Int_CheckExtension(Buffer, 'GL_SGIX_texture_coordinate_clamp');
19758   GL_SGIX_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_lod_bias');
19759   GL_SGIX_texture_multi_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_texture_multi_buffer');
19760   GL_SGIX_texture_scale_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_scale_bias');
19761   GL_SGIX_texture_select := Int_CheckExtension(Buffer, 'GL_SGIX_texture_select');
19762   GL_SGIX_vertex_preclip := Int_CheckExtension(Buffer, 'GL_SGIX_vertex_preclip');
19763   GL_SGIX_ycrcb := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb');
19764   GL_SGIX_ycrcb_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb_subsample');
19765   GL_SGIX_ycrcba := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcba');
19766
19767   // === SGI =====================================================================
19768   GL_SGI_color_matrix := Int_CheckExtension(Buffer, 'GL_SGI_color_matrix');
19769   GL_SGI_color_table := Int_CheckExtension(Buffer, 'GL_SGI_color_table');
19770   GL_SGI_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGI_depth_pass_instrument');
19771   GL_SGI_texture_color_table := Int_CheckExtension(Buffer, 'GL_SGI_texture_color_table');
19772
19773   // === SUN =====================================================================
19774   GL_SUNX_constant_data := Int_CheckExtension(Buffer, 'GL_SUNX_constant_data');
19775   GL_SUN_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_SUN_convolution_border_modes');
19776   GL_SUN_global_alpha := Int_CheckExtension(Buffer, 'GL_SUN_global_alpha');
19777   GL_SUN_mesh_array := Int_CheckExtension(Buffer, 'GL_SUN_mesh_array');
19778   GL_SUN_slice_accum := Int_CheckExtension(Buffer, 'GL_SUN_slice_accum');
19779   GL_SUN_triangle_list := Int_CheckExtension(Buffer, 'GL_SUN_triangle_list');
19780   GL_SUN_vertex := Int_CheckExtension(Buffer, 'GL_SUN_vertex');
19781
19782   // === WIN =====================================================================
19783   GL_WIN_phong_shading := Int_CheckExtension(Buffer, 'GL_WIN_phong_shading');
19784   GL_WIN_specular_fog := Int_CheckExtension(Buffer, 'GL_WIN_specular_fog');
19785
19786   {$IFDEF DGL_WIN}
19787   // === WGL =====================================================================
19788   WGL_3DFX_multisample := Int_CheckExtension(Buffer, 'WGL_3DFX_multisample');
19789   WGL_ARB_buffer_region := Int_CheckExtension(Buffer, 'WGL_ARB_buffer_region');
19790   WGL_ARB_extensions_string := Int_CheckExtension(Buffer, 'WGL_ARB_extensions_string');
19791   WGL_ARB_make_current_read := Int_CheckExtension(Buffer, 'WGL_ARB_make_current_read');
19792   WGL_ARB_multisample := Int_CheckExtension(Buffer, 'WGL_ARB_multisample');
19793   WGL_ARB_pbuffer := Int_CheckExtension(Buffer, 'WGL_ARB_pbuffer');
19794   WGL_ARB_pixel_format := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format');
19795   WGL_ARB_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format_float');
19796   WGL_ARB_render_texture := Int_CheckExtension(Buffer, 'WGL_ARB_render_texture');
19797   WGL_ARB_create_context := Int_CheckExtension(Buffer, 'WGL_ARB_create_context');
19798   WGL_ARB_create_context_profile := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_profile');
19799   WGL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'WGL_ARB_framebuffer_sRGB');
19800   WGL_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_robustness');
19801   WGL_ATI_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ATI_pixel_format_float');
19802   WGL_AMD_gpu_association := Int_CheckExtension(Buffer, 'WGL_AMD_gpu_association');
19803   WGL_EXT_depth_float := Int_CheckExtension(Buffer, 'WGL_EXT_depth_float');
19804   WGL_EXT_display_color_table := Int_CheckExtension(Buffer, 'WGL_EXT_display_color_table');
19805   WGL_EXT_extensions_string := Int_CheckExtension(Buffer, 'WGL_EXT_extensions_string');
19806   WGL_EXT_make_current_read := Int_CheckExtension(Buffer, 'WGL_EXT_make_current_read');
19807   WGL_EXT_multisample := Int_CheckExtension(Buffer, 'WGL_EXT_multisample');
19808   WGL_EXT_pbuffer := Int_CheckExtension(Buffer, 'WGL_EXT_pbuffer');
19809   WGL_EXT_pixel_format := Int_CheckExtension(Buffer, 'WGL_EXT_pixel_format');
19810   WGL_EXT_swap_control := Int_CheckExtension(Buffer, 'WGL_EXT_swap_control');
19811   WGL_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'WGL_EXT_create_context_es2_profile');
19812   WGL_I3D_digital_video_control := Int_CheckExtension(Buffer, 'WGL_I3D_digital_video_control');
19813   WGL_I3D_gamma := Int_CheckExtension(Buffer, 'WGL_I3D_gamma');
19814   WGL_I3D_genlock := Int_CheckExtension(Buffer, 'WGL_I3D_genlock');
19815   WGL_I3D_image_buffer := Int_CheckExtension(Buffer, 'WGL_I3D_image_buffer');
19816   WGL_I3D_swap_frame_lock := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_lock');
19817   WGL_I3D_swap_frame_usage := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_usage');
19818   WGL_NV_float_buffer := Int_CheckExtension(Buffer, 'WGL_NV_float_buffer');
19819   WGL_NV_render_depth_texture := Int_CheckExtension(Buffer, 'WGL_NV_render_depth_texture');
19820   WGL_NV_render_texture_rectangle := Int_CheckExtension(Buffer, 'WGL_NV_render_texture_rectangle');
19821   WGL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'WGL_NV_vertex_array_range');
19822   WGL_NV_present_video := Int_CheckExtension(Buffer, 'WGL_NV_present_video');
19823   WGL_NV_video_output := Int_CheckExtension(Buffer, 'WGL_NV_video_output');
19824   WGL_NV_swap_group := Int_CheckExtension(Buffer, 'WGL_NV_swap_group');
19825   WGL_NV_gpu_affinity := Int_CheckExtension(Buffer, 'WGL_NV_gpu_affinity');
19826   WGL_NV_video_capture := Int_CheckExtension(Buffer, 'WGL_NV_video_capture');
19827   WGL_NV_copy_image := Int_CheckExtension(Buffer, 'WGL_NV_copy_image');
19828   WGL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19829   WGL_NV_DX_interop := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19830   WGL_OML_sync_control := Int_CheckExtension(Buffer, 'WGL_OML_sync_control');
19831   WGL_3DL_stereo_control := Int_CheckExtension(Buffer, 'WGL_3DL_stereo_control');
19832
19833   WIN_draw_range_elements := Int_CheckExtension(Buffer, 'WIN_draw_range_elements');
19834   WIN_swap_hint := Int_CheckExtension(Buffer, 'WIN_swap_hint');
19835   {$ENDIF}
19836
19837   {$IFDEF DGL_LINUX}
19838   // === GLX =====================================================================
19839   GLX_ARB_multisample := Int_CheckExtension(Buffer, 'GLX_ARB_multisample');
19840   GLX_ARB_fbconfig_float := Int_CheckExtension(Buffer, 'GLX_ARB_fbconfig_float');
19841   GLX_ARB_get_proc_address := Int_CheckExtension(Buffer, 'GLX_ARB_get_proc_address');
19842   GLX_ARB_create_context := Int_CheckExtension(Buffer, 'GLX_ARB_create_context');
19843   GLX_ARB_create_context_profile := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_profile');
19844   GLX_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GLX_ARB_vertex_buffer_object');
19845   GLX_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_ARB_framebuffer_sRGB');
19846   GLX_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_robustness');
19847   GLX_EXT_visual_info := Int_CheckExtension(Buffer, 'GLX_EXT_visual_info');
19848   GLX_EXT_visual_rating := Int_CheckExtension(Buffer, 'GLX_EXT_visual_rating');
19849   GLX_EXT_import_context := Int_CheckExtension(Buffer, 'GLX_EXT_import_context');
19850   GLX_EXT_fbconfig_packed_float := Int_CheckExtension(Buffer, 'GLX_EXT_fbconfig_packed_float');
19851   GLX_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_EXT_framebuffer_sRGB');
19852   GLX_EXT_texture_from_pixmap := Int_CheckExtension(Buffer, 'GLX_EXT_texture_from_pixmap');
19853   GLX_EXT_swap_control := Int_CheckExtension(Buffer, 'GLX_EXT_swap_control');
19854   GLX_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'GLX_EXT_create_context_es2_profile');
19855   {$ENDIF}
19856   ImplementationRead := True;
19857 end;
19858
19859 {$IFDEF DGL_WIN}
19860 // =============================================================================
19861 // RaiseLastOSError
19862 // =============================================================================
19863 // Needed for compatibility with older Delphiversions
19864 // =============================================================================
19865
19866 procedure RaiseLastOSError;
19867 begin
19868 {$IFDEF FPC}
19869   raise Exception.Create('RaiseLastOSError!'); // To-Do: find a better solution
19870 {$ELSE}
19871   {$IFDEF DELPHI6_AND_DOWN} // If Delphi 6 or later
19872     SysUtils.RaiseLastWin32Error;
19873   {$ELSE}
19874     SysUtils.RaiseLastOSError;
19875   {$ENDIF}
19876 {$ENDIF}
19877 end;
19878
19879 // =============================================================================
19880 // CreateRenderingContext
19881 // =============================================================================
19882
19883 function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
19884 const
19885   OBJ_MEMDC = 10;
19886   OBJ_ENHMETADC = 12;
19887   OBJ_METADC = 4;
19888   PFD_DOUBLEBUFFER = $00000001;
19889   PFD_STEREO = $00000002;
19890   PFD_DRAW_TO_WINDOW = $00000004;
19891   PFD_DRAW_TO_BITMAP = $00000008;
19892   PFD_SUPPORT_GDI = $00000010;
19893   PFD_SUPPORT_OPENGL = $00000020;
19894   PFD_TYPE_RGBA = 0;
19895   PFD_MAIN_PLANE = 0;
19896   PFD_OVERLAY_PLANE = 1;
19897   PFD_UNDERLAY_PLANE = LongWord(-1);
19898   MemoryDCs = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
19899 var
19900   PFDescriptor: TPixelFormatDescriptor;
19901   PixelFormat: Integer;
19902   AType: DWORD;
19903 begin
19904   if GL_LibHandle = nil then
19905     InitOpenGL;
19906
19907   FillChar(PFDescriptor, SizeOf(PFDescriptor), 0);
19908
19909   with PFDescriptor do
19910   begin
19911     nSize := SizeOf(PFDescriptor);
19912     nVersion := 1;
19913     dwFlags := PFD_SUPPORT_OPENGL;
19914
19915     AType := GetObjectType(DC);
19916
19917     if AType = 0 then
19918       RaiseLastOSError;
19919
19920     if AType in MemoryDCs then
19921       dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
19922     else
19923       dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
19924
19925     if opDoubleBuffered in Options then
19926       dwFlags := dwFlags or PFD_DOUBLEBUFFER;
19927
19928     if opGDI in Options then
19929       dwFlags := dwFlags or PFD_SUPPORT_GDI;
19930
19931     if opStereo in Options then
19932       dwFlags := dwFlags or PFD_STEREO;
19933
19934     iPixelType := PFD_TYPE_RGBA;
19935     cColorBits := ColorBits;
19936     cDepthBits := zBits;
19937     cStencilBits := StencilBits;
19938     cAccumBits := AccumBits;
19939     cAuxBuffers := AuxBuffers;
19940
19941     if Layer = 0 then
19942       iLayerType := PFD_MAIN_PLANE
19943     else
19944     if Layer > 0 then
19945       iLayerType := PFD_OVERLAY_PLANE
19946     else
19947       iLayerType := Byte(PFD_UNDERLAY_PLANE);
19948   end;
19949
19950   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
19951
19952   if PixelFormat = 0 then
19953     RaiseLastOSError;
19954
19955   if GetPixelFormat(DC) <> PixelFormat then
19956     if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
19957       RaiseLastOSError;
19958
19959   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
19960
19961   Result := wglCreateContext(DC);
19962
19963   if Result = 0 then
19964     RaiseLastOSError
19965   else
19966     LastPixelFormat := 0;
19967 end;
19968
19969 // =============================================================================
19970 // CreateRenderingContextVersion
19971 // =============================================================================
19972 //  Creates a context for the more recent OpenGL versions (3.0) and up
19973 //  For that we first need to get a normal GL context for getting the
19974 //  function pointer to wglCreateContextAttribsARB first
19975 // =============================================================================
19976 function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
19977 const
19978   OBJ_MEMDC          = 10;
19979   OBJ_ENHMETADC      = 12;
19980   OBJ_METADC         = 4;
19981   PFD_DOUBLEBUFFER   = $00000001;
19982   PFD_STEREO         = $00000002;
19983   PFD_DRAW_TO_WINDOW = $00000004;
19984   PFD_DRAW_TO_BITMAP = $00000008;
19985   PFD_SUPPORT_GDI    = $00000010;
19986   PFD_SUPPORT_OPENGL = $00000020;
19987   PFD_TYPE_RGBA      = 0;
19988   PFD_MAIN_PLANE     = 0;
19989   PFD_OVERLAY_PLANE  = 1;
19990   PFD_UNDERLAY_PLANE = LongWord(-1);
19991   MemoryDCs          = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
19992 var
19993   PFDescriptor : TPixelFormatDescriptor;
19994   PixelFormat  : Integer;
19995   AType        : DWORD;
19996   LegacyRC     : HGLRC;
19997   Attribs      : array of Integer;
19998 begin
19999   if GL_LibHandle = nil then
20000         InitOpenGL;
20001
20002   if not Assigned(GL_LibHandle) then
20003         raise Exception.Create('GL_LibHandle is NIL. Could not load OpenGL library!');
20004
20005   FillChar(PFDescriptor, SizeOf(PFDescriptor), 0);
20006
20007   with PFDescriptor do
20008     begin
20009       nSize    := SizeOf(PFDescriptor);
20010       nVersion := 1;
20011       dwFlags  := PFD_SUPPORT_OPENGL;
20012       AType    := GetObjectType(DC);
20013
20014       if AType = 0 then
20015         RaiseLastOSError;
20016
20017       if AType in MemoryDCs then
20018         dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
20019       else
20020         dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
20021
20022       if opDoubleBuffered in Options then
20023         dwFlags := dwFlags or PFD_DOUBLEBUFFER;
20024
20025       if opGDI in Options then
20026         dwFlags := dwFlags or PFD_SUPPORT_GDI;
20027
20028       if opStereo in Options then
20029         dwFlags := dwFlags or PFD_STEREO;
20030
20031       iPixelType   := PFD_TYPE_RGBA;
20032       cColorBits   := ColorBits;
20033       cDepthBits   := zBits;
20034       cStencilBits := StencilBits;
20035       cAccumBits   := AccumBits;
20036       cAuxBuffers  := AuxBuffers;
20037
20038       if Layer = 0 then
20039         iLayerType := PFD_MAIN_PLANE
20040       else
20041         if Layer > 0 then
20042           iLayerType := PFD_OVERLAY_PLANE
20043         else
20044           iLayerType := Byte(PFD_UNDERLAY_PLANE);
20045     end;
20046
20047   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
20048
20049   if PixelFormat = 0 then
20050         RaiseLastOSError;
20051
20052   if GetPixelFormat(DC) <> PixelFormat then
20053         if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
20054                 RaiseLastOSError;
20055
20056   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
20057
20058   // Create legacy render context first for we need function pointers to
20059   // create new OpenGL render contexts
20060   LegacyRC := wglCreateContext(DC);
20061   wglMakeCurrent(DC, LegacyRC);
20062
20063   // Set attributes to describe our requested context
20064   SetLength(Attribs, 5);
20065   Attribs[0] := WGL_CONTEXT_MAJOR_VERSION_ARB;
20066   Attribs[1] := MajorVersion;
20067   Attribs[2] := WGL_CONTEXT_MINOR_VERSION_ARB;
20068   Attribs[3] := MinorVersion;
20069
20070   // Add context flag for forward compatible context
20071   //  Forward compatible means no more support for legacy functions like
20072   //  immediate mode (glvertex, glrotate, gltranslate, etc.)
20073   if ForwardCompatible then
20074     begin
20075       SetLength(Attribs, Length(Attribs)+2);
20076       Attribs[4] := WGL_CONTEXT_FLAGS_ARB;
20077       Attribs[5] := WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
20078     end;
20079
20080   // Attribute flags must be finalized with a zero
20081   Attribs[High(Attribs)] := 0;
20082
20083   // Get function pointer for new context creation function
20084   wglCreateContextAttribsARB := wglGetProcAddress('wglCreateContextAttribsARB');
20085
20086   if not Assigned(wglCreateContextAttribsARB) then
20087     begin
20088       raise Exception.Create('Could not get function pointer adress for wglCreateContextAttribsARB - OpenGL 3.x and above not supported!');
20089       wglDeleteContext(LegacyRC);
20090       exit;
20091     end;
20092
20093   // Create context
20094   Result := wglCreateContextAttribsARB(DC, 0, @Attribs[0]);
20095
20096   if Result = 0 then
20097     begin
20098       raise Exception.Create('Could not create the desired OpenGL rendering context!');
20099       wglDeleteContext(LegacyRC);
20100       exit;
20101     end;
20102
20103   wglDeleteContext(LegacyRC);
20104
20105   if Result = 0 then
20106         RaiseLastOSError
20107   else
20108         LastPixelFormat := 0;
20109 end;
20110
20111 // =============================================================================
20112 // DestroyRenderingContext
20113 // =============================================================================
20114
20115 procedure DestroyRenderingContext(RC: HGLRC);
20116 begin
20117   wglDeleteContext(RC);
20118 end;
20119
20120
20121 // =============================================================================
20122 // ActivateRenderingContext
20123 // =============================================================================
20124
20125 procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
20126 begin
20127   Assert((DC <> 0), 'DC must not be 0');
20128   Assert((RC <> 0), 'RC must not be 0');
20129
20130   wglMakeCurrent(DC, RC);
20131
20132   {$ifdef DGL_TINY_HEADER}
20133   ReadCoreVersion;
20134   {$else}
20135   ReadImplementationProperties;
20136
20137   if (loadext) then
20138     ReadExtensions;
20139   {$endif}
20140 end;
20141
20142 // =============================================================================
20143 // DeactivateRenderingContext
20144 // =============================================================================
20145
20146 procedure DeactivateRenderingContext;
20147 begin
20148   wglMakeCurrent(0, 0);
20149 end;
20150 {$ENDIF}
20151
20152
20153 initialization
20154
20155 {$IFDEF CPU386}
20156   Set8087CW($133F);
20157 {$ENDIF}
20158
20159 finalization
20160
20161 end.