* removed native OpenGL support
[glBitmap.git] / examples / dglOpenGL.pas
1 { ============================================================================
2
3        OpenGL 4.4 - Headertranslation
4        Version 4.4
5        Date : 2013/07/22
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
412
413 ==============================================================================
414  Header based on glext.h  rev 87 (2012-08-06)
415  Header based on wglext.h rev 24 (2012/01/04)
416  Header based on glxext.h rev 33 (2012/02/29)  (only Core/ARB/EXT)
417
418  This is an important notice for maintaining. Dont remove it. And make sure
419  to keep it up to date
420 ============================================================================== }
421
422 {$define DGL_DEPRECATED}
423 {
424   This define defines if the header should use deprecated ARB stuff or not.
425   per Default the Header use deprecated Stuff.
426 }
427
428
429 {.$define DGL_TINY_HEADER}
430 {
431   If you enable the define DGL_TINY_HEADER no function automatically will be loaded if you
432   call ActivateRenderingContext. This may some bit faster and the smart linker can delete
433   all non used functions. This will reduce the filesize of your binary file. But in this
434   case you have to load the functions by yourself. There are two ways to do this.
435
436   1. You can load whole extension by calling the func Read_Extensionname. But if you do
437      this it's possible to load functions you dont use. So you have the same "problem"
438      like before. But it's only an bit smaler.
439      > Read_GL_ARB_multitexture;
440
441   2. You are able to load only the functions you exactly need. In this case you are able
442      to use the variables of the dglOpenGL.pas. So you only need to load the functions
443      and you can use the header like before.
444      To do this you have to created and activated an opengl context and than you can load
445      the needed functions.
446      > ActivateRenderingContext(fDC, fRC);
447      > glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
448      > glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
449
450      So only the function "glActiveTextureARB" and "glMultiTexCoord2fARB" will be loaded.
451
452
453   Please notice that the extension variables won't be loaded if this define is active. But
454   you can call dglCheckExtension to check if any extension exists. You can assign them to
455   the variables of the dglOpenGL.pas so all code they use this will find them.
456
457   > GL_ARB_shading_language_100 := dglCheckExtension('GL_ARB_shading_language_100');
458 }
459
460
461 unit dglOpenGL;
462
463 interface
464
465 // defines to configure freepascal
466 {$IFDEF FPC}
467   {$MODE Delphi}
468
469   {$IFNDEF WINDOWS}
470     {$LINKLIB c}
471   {$ENDIF}
472 {$ENDIF}
473
474 // known delphi versions
475 {$IFNDEF FPC}       // if freepascal isnt defined
476   {$IFDEF VER140}   // Delphi 6
477     {$DEFINE DELPHI6_AND_DOWN}
478   {$ENDIF}
479
480   {$IFDEF VER130}   // Delphi 5
481     {$DEFINE DELPHI6_AND_DOWN}
482   {$ENDIF}
483
484   {$IFDEF VER120}   // Delphi 4
485     {$DEFINE DELPHI6_AND_DOWN}
486   {$ENDIF}
487
488   {$IFDEF VER110}   // C++ Builder 3
489     {$DEFINE DELPHI6_AND_DOWN}
490   {$ENDIF}
491
492   {$IFDEF VER100}   // Delphi 3
493     {$DEFINE DELPHI6_AND_DOWN}
494   {$ENDIF}
495 {$ENDIF}
496
497 // Options for Delphi < 5
498 {$IFDEF DELPHI6_AND_DOWN}
499   {$A+}
500 {$ELSE}
501   {$A4}
502 {$ENDIF}
503
504 // generell options
505 {$H+,O+,X+}
506
507 // detecting Windows
508 {$IFDEF Win32}          // Delphi and fpc of 32 Bit Windows
509   {$DEFINE DGL_WIN}
510 {$ENDIF}
511
512 {$IFDEF Win64}          // Delphi and fpc of 32 Bit Windows
513   {$DEFINE DGL_WIN}
514 {$ENDIF}
515
516 // detecting Linux
517 {$IFDEF linux}          // Linux
518   {$DEFINE DGL_LINUX}
519 {$ENDIF}
520
521 {$IFDEF DARWIN}  // Mac OS X and FPC
522    {$DEFINE DGL_MAC}
523 {$ENDIF}   
524
525 {$IFDEF DELPHI}  // Mac OS X add Delphi 
526 {$IFDEF MACOS}
527    {$DEFINE DGL_MAC}
528 {$ENDIF}   
529 {$ENDIF}   
530
531
532 // detecting 64 Bit CPU
533 {$IFDEF CPU64}          // fpc on 64 bit cpus
534   {$DEFINE DGL_64BIT}   // dgl define for 64 bit
535 {$ENDIF}
536
537
538
539 uses
540   {$IFDEF FPC}{$IFDEF DARWIN}dynlibs,{$ENDIF}{$ENDIF}  // LoadLibrary functions 
541   SysUtils
542   {$IFDEF DGL_WIN}, Windows{$ENDIF}
543   {$IFDEF DGL_LINUX}, X, XLib, XUtil{$ENDIF}
544   ;
545
546 type
547   // Needed for Delphi 6 and less (defined in system.pas for Delphi 7)
548   PPointer = ^Pointer;
549   PCardinal = ^Cardinal;
550
551   GLenum = Cardinal;
552   GLboolean = BYTEBOOL;
553   GLbitfield = Cardinal;
554   GLbyte = Shortint;
555   GLshort = SmallInt;
556   GLint = Integer;
557   GLsizei = Integer;
558   GLubyte = Byte;
559   GLushort = Word;
560   GLuint = Cardinal;
561   GLfloat = Single;
562   GLclampf = Single;
563   GLdouble = Double;
564   GLclampd = Double;
565   GLvoid = Pointer;
566   GLint64 = Int64;
567   GLuint64 = {$IFDEF DELPHI6_AND_DOWN} Int64 {$ELSE} UInt64 {$ENDIF};
568   
569   TGLenum = GLenum;
570   TGLboolean = GLboolean;
571   TGLbitfield = GLbitfield;
572   TGLbyte = GLbyte;
573   TGLshort = GLshort;
574   TGLint = GLint;
575   TGLsizei = GLsizei;
576   TGLubyte = GLubyte;
577   TGLushort = GLushort;
578   TGLuint = GLuint;
579   TGLfloat = GLfloat;
580   TGLclampf = GLclampf;
581   TGLdouble = GLdouble;
582   TGLclampd = GLclampd;
583   TGLvoid = GLvoid;
584   TGLint64 = GLint64;
585   TGLuint64 = GLuint64;
586
587   PGLboolean = ^GLboolean;
588   PGLbyte = ^GLbyte;
589   PGLshort = ^GLshort;
590   PGLint = ^GLint;
591   PGLsizei = ^GLsizei;
592   PGLubyte = ^GLubyte;
593   PGLushort = ^GLushort;
594   PGLuint = ^GLuint;
595   PGLclampf = ^GLclampf;
596   PGLfloat = ^GLfloat;
597   PGLdouble = ^GLdouble;
598   PGLclampd = ^GLclampd;
599   PGLenum = ^GLenum;
600   PGLvoid = Pointer;
601   PPGLvoid = ^PGLvoid;
602   PGLint64 = ^GLint64;
603   PGLuint64 = ^GLuint64;
604
605   // GL_NV_half_float
606   GLhalfNV = WORD;
607   TGLhalfNV = GLhalfNV;
608   PGLhalfNV = ^GLhalfNV;
609
610   // GL_ARB_shader_objects
611   PGLHandleARB = ^GLHandleARB;
612   GLHandleARB = Integer;
613   GLcharARB = AnsiChar;
614   PGLcharARB = PAnsiChar;
615   PPGLcharARB = ^PGLcharARB;
616
617   // GL_VERSION_1_5
618   GLintptr = GLint;
619   GLsizeiptr = GLsizei;
620
621   // GL_ARB_vertex_buffer_object
622   GLintptrARB = GLint;
623   GLsizeiptrARB = GLsizei;
624
625   // GL_VERSION_2_0
626   GLHandle = Integer;
627   PGLchar = PAnsiChar;
628   PPGLchar = ^PGLChar;
629
630   // GL_EXT_timer_query
631   GLint64EXT = Int64;
632   TGLint64EXT = GLint64EXT;
633   PGLint64EXT = ^GLint64EXT;
634
635   GLuint64EXT = GLuint64;
636   TGLuint64EXT = GLuint64EXT;
637   PGLuint64EXT = ^GLuint64EXT;
638
639   // WGL_ARB_pbuffer
640   HPBUFFERARB = THandle;
641
642   // WGL_EXT_pbuffer
643   HPBUFFEREXT = THandle;
644
645   // WGL_NV_present_video
646   PHVIDEOOUTPUTDEVICENV = ^HVIDEOOUTPUTDEVICENV;
647   HVIDEOOUTPUTDEVICENV = THandle;
648
649   // WGL_NV_video_output
650   PHPVIDEODEV = ^HPVIDEODEV;
651   HPVIDEODEV = THandle;
652
653   // WGL_NV_gpu_affinity
654   PHPGPUNV = ^HPGPUNV;
655   PHGPUNV = ^HGPUNV;
656
657   // WGL_NV_video_capture
658   HVIDEOINPUTDEVICENV = THandle;
659   PHVIDEOINPUTDEVICENV = ^HVIDEOINPUTDEVICENV;
660   
661   HPGPUNV = THandle;
662   HGPUNV = THandle;
663
664   // GL_ARB_sync
665   GLsync = Pointer;
666
667   // GL_ARB_cl_event
668   { These incomplete types let us declare types compatible with OpenCL's cl_context and cl_event }
669   _cl_context = record end;
670   _cl_event = record end;
671   p_cl_context = ^_cl_context;
672   p_cl_event = ^_cl_event;
673
674   // GL_ARB_debug_output
675   TglDebugProcARB = procedure (source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
676
677   // GL_AMD_debug_output
678   TglDebugProcAMD = procedure (id: GLuint; category: GLenum; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
679
680         // (4.3) GL_KHR_debug
681   TglDebugProc = procedure(source : GLEnum; type_ : GLEnum; id : GLUInt; severity : GLUInt; length : GLsizei; const message_ : PGLCHar; userParam : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
682
683   // GL_NV_vdpau_interop
684   GLvdpauSurfaceNV = GLintptr;
685   PGLvdpauSurfaceNV = ^GLvdpauSurfaceNV;
686   
687   
688   // GLX
689   {$IFDEF DGL_LINUX}
690     GLXContext = Pointer;
691     GLXContextID = TXID;
692     GLXDrawable = TXID;
693     GLXFBConfig = Pointer;
694     GLXPbuffer = TXID;
695     GLXPixmap = TXID;
696     GLXWindow = TXID;
697
698     Window = TXID;
699     Colormap = TXID;
700     Pixmap = TXID;
701     Font = TXID;
702   {$ENDIF}
703
704   // Datatypes corresponding to GL's types TGL(name)(type)(count)
705   TGLVectorub2 = array[0..1] of GLubyte;
706   TGLVectori2  = array[0..1] of GLint;
707   TGLVectorf2  = array[0..1] of GLfloat;
708   TGLVectord2  = array[0..1] of GLdouble;
709   TGLVectorp2  = array[0..1] of Pointer;
710
711   TGLVectorub3 = array[0..2] of GLubyte;
712   TGLVectori3  = array[0..2] of GLint;
713   TGLVectorf3  = array[0..2] of GLfloat;
714   TGLVectord3  = array[0..2] of GLdouble;
715   TGLVectorp3  = array[0..2] of Pointer;
716
717   TGLVectorub4 = array[0..3] of GLubyte;
718   TGLVectori4  = array[0..3] of GLint;
719   TGLVectorf4  = array[0..3] of GLfloat;
720   TGLVectord4  = array[0..3] of GLdouble;
721   TGLVectorp4  = array[0..3] of Pointer;
722
723   TGLArrayf4 = TGLVectorf4;
724   TGLArrayf3 = TGLVectorf3;
725   TGLArrayd3 = TGLVectord3;
726   TGLArrayi4 = TGLVectori4;
727   TGLArrayp4 = TGLVectorp4;
728
729   TGlMatrixub3 = array[0..2, 0..2] of GLubyte;
730   TGlMatrixi3  = array[0..2, 0..2] of GLint;
731   TGLMatrixf3  = array[0..2, 0..2] of GLfloat;
732   TGLMatrixd3  = array[0..2, 0..2] of GLdouble;
733
734   TGlMatrixub4 = array[0..3, 0..3] of GLubyte;
735   TGlMatrixi4  = array[0..3, 0..3] of GLint;
736   TGLMatrixf4  = array[0..3, 0..3] of GLfloat;
737   TGLMatrixd4  = array[0..3, 0..3] of GLdouble;
738
739   TGLVector3f = TGLVectorf3;
740
741   // Datatypes corresponding to OpenGL12.pas for easy porting
742   TVector3d = TGLVectord3;
743
744   TVector4i = TGLVectori4;
745   TVector4f = TGLVectorf4;
746   TVector4p = TGLVectorp4;
747
748   TMatrix4f = TGLMatrixf4;
749   TMatrix4d = TGLMatrixd4;
750
751   PGLMatrixd4 = ^TGLMatrixd4;
752   PVector4i = ^TVector4i;
753
754
755
756 {$IFDEF FPC}
757   TRect = packed record
758     Left, Top, Right, Bottom: Longint;
759   end;
760 {$ENDIF}
761
762
763   PGPU_DEVICE = ^GPU_DEVICE;
764   GPU_DEVICE = record
765     cb: DWORD;
766     DeviceName: array [0..31] of AnsiChar;
767     DeviceString: array [0..127] of AnsiChar;
768     Flags: DWORD;
769     rcVirtualScreen: TRect;
770   end;
771   
772
773 type
774 {$IFDEF FPC}
775   {$IFDEF DGL_WIN}
776     PWGLSwap = ^TWGLSwap;
777     {$EXTERNALSYM _WGLSWAP}
778       _WGLSWAP = packed record
779         hdc: HDC;
780         uiFlags: UINT;
781       end;
782
783     TWGLSwap = _WGLSWAP;
784   {$EXTERNALSYM WGLSWAP}
785     WGLSWAP = _WGLSWAP;
786
787   {$ENDIF}
788 {$ENDIF}
789
790   // GLU types
791   TGLUNurbs = record
792   end;
793   TGLUQuadric = record
794   end;
795   TGLUTesselator = record
796   end;
797   PGLUNurbs = ^TGLUNurbs;
798   PGLUQuadric = ^TGLUQuadric;
799   PGLUTesselator = ^TGLUTesselator;
800   // backwards compatibility
801   TGLUNurbsObj = TGLUNurbs;
802   TGLUQuadricObj = TGLUQuadric;
803   TGLUTesselatorObj = TGLUTesselator;
804   TGLUTriangulatorObj = TGLUTesselator;
805   PGLUNurbsObj = PGLUNurbs;
806   PGLUQuadricObj = PGLUQuadric;
807   PGLUTesselatorObj = PGLUTesselator;
808   PGLUTriangulatorObj = PGLUTesselator;
809
810   // GLUQuadricCallback
811   TGLUQuadricErrorProc = procedure(errorCode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
812   // GLUTessCallback
813   TGLUTessBeginProc = procedure(AType: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
814   TGLUTessEdgeFlagProc = procedure(Flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
815   TGLUTessVertexProc = procedure(VertexData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
816   TGLUTessEndProc = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
817   TGLUTessErrorProc = procedure(ErrNo: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
818   TGLUTessCombineProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
819   TGLUTessBeginDataProc = procedure(AType: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
820   TGLUTessEdgeFlagDataProc = procedure(Flag: GLboolean; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
821   TGLUTessVertexDataProc = procedure(VertexData: Pointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
822   TGLUTessEndDataProc = procedure(UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
823   TGLUTessErrorDataProc = procedure(ErrNo: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
824   TGLUTessCombineDataProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
825   // GLUNurbsCallback
826   TGLUNurbsErrorProc = procedure(ErrorCode: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
827
828 var
829   GL_VERSION_1_0,
830   GL_VERSION_1_1,
831   GL_VERSION_1_2,
832   GL_VERSION_1_3,
833   GL_VERSION_1_4,
834   GL_VERSION_1_5,
835   GL_VERSION_2_0,
836   GL_VERSION_2_1,
837   GL_VERSION_3_0,
838   GL_VERSION_3_1,
839   GL_VERSION_3_2,
840   GL_VERSION_3_3,
841   GL_VERSION_4_0,
842   GL_VERSION_4_1,
843   GL_VERSION_4_2,
844   GL_VERSION_4_3,
845   GL_VERSION_4_4,
846   GLU_VERSION_1_1,
847   GLU_VERSION_1_2,
848   GLU_VERSION_1_3,
849   GL_3DFX_multisample,
850   GL_3DFX_tbuffer,
851   GL_3DFX_texture_compression_FXT1,
852   GL_APPLE_client_storage,
853   GL_APPLE_element_array,
854   GL_APPLE_fence,
855   GL_APPLE_specular_vector,
856   GL_APPLE_transform_hint,
857   GL_APPLE_vertex_array_object,
858   GL_APPLE_vertex_array_range,
859   GL_APPLE_ycbcr_422,
860   GL_APPLE_texture_range,
861   GL_APPLE_float_pixels,
862   GL_APPLE_vertex_program_evaluators,
863   GL_APPLE_aux_depth_stencil,
864   GL_APPLE_object_purgeable,
865   GL_APPLE_row_bytes,
866   GL_APPLE_rgb_422,
867   GL_ARB_depth_texture,
868   GL_ARB_fragment_program,
869   GL_ARB_imaging,
870   GL_ARB_matrix_palette,
871   GL_ARB_multisample,
872   GL_ARB_multitexture,
873   GL_ARB_point_parameters,
874   GL_ARB_shadow,
875   GL_ARB_shadow_ambient,
876   GL_ARB_texture_border_clamp,
877   GL_ARB_texture_compression,
878   GL_ARB_texture_cube_map,
879   GL_ARB_texture_env_add,
880   GL_ARB_texture_env_combine,
881   GL_ARB_texture_env_crossbar,
882   GL_ARB_texture_env_dot3,
883   GL_ARB_texture_mirrored_repeat,
884   GL_ARB_transpose_matrix,
885   GL_ARB_vertex_blend,
886   GL_ARB_vertex_buffer_object,
887   GL_ARB_vertex_program,
888   GL_ARB_window_pos,
889   GL_ARB_shader_objects,
890   GL_ARB_vertex_shader,
891   GL_ARB_fragment_shader,
892   GL_ARB_shading_language_100,
893   GL_ARB_occlusion_query,
894   GL_ARB_texture_non_power_of_two,
895   GL_ARB_point_sprite,
896   GL_ARB_fragment_program_shadow,
897   GL_ARB_draw_buffers,
898   GL_ARB_texture_rectangle,
899   GL_ARB_color_buffer_float,
900   GL_ARB_half_float_pixel,
901   GL_ARB_texture_float,
902   GL_ARB_pixel_buffer_object,
903   GL_ARB_depth_buffer_float,
904   GL_ARB_draw_instanced,
905   GL_ARB_framebuffer_object,
906   GL_ARB_framebuffer_sRGB,
907   GL_ARB_geometry_shader4,
908   GL_ARB_half_float_vertex,
909   GL_ARB_instanced_arrays,
910   GL_ARB_map_buffer_range,
911   GL_ARB_texture_buffer_object,
912   GL_ARB_texture_compression_rgtc,
913   GL_ARB_texture_rg,
914   GL_ARB_vertex_array_object,
915   GL_ARB_uniform_buffer_object,
916   GL_ARB_compatibility,
917   GL_ARB_copy_buffer,
918   GL_ARB_shader_texture_lod,
919   GL_ARB_depth_clamp,
920   GL_ARB_draw_elements_base_vertex,
921   GL_ARB_fragment_coord_conventions,
922   GL_ARB_provoking_vertex,
923   GL_ARB_seamless_cube_map,
924   GL_ARB_sync,
925   GL_ARB_texture_multisample,
926   GL_ARB_vertex_array_bgra,
927   GL_ARB_draw_buffers_blend,
928   GL_ARB_sample_shading,
929   GL_ARB_texture_cube_map_array,
930   GL_ARB_texture_gather,
931   GL_ARB_texture_query_lod,
932   GL_ARB_shading_language_include,
933   GL_ARB_texture_compression_bptc,
934   GL_ARB_blend_func_extended,
935   GL_ARB_explicit_attrib_location,
936   GL_ARB_occlusion_query2,
937   GL_ARB_sampler_objects,
938   GL_ARB_shader_bit_encoding,
939   GL_ARB_texture_rgb10_a2ui,
940   GL_ARB_texture_swizzle,
941   GL_ARB_timer_query,
942   GL_ARB_vertex_type_2_10_10_10_rev,
943   GL_ARB_draw_indirect,
944   GL_ARB_gpu_shader5,
945   GL_ARB_gpu_shader_fp64,
946   GL_ARB_shader_subroutine,
947   GL_ARB_tessellation_shader,
948   GL_ARB_texture_buffer_object_rgb32,
949   GL_ARB_transform_feedback2,
950   GL_ARB_transform_feedback3,
951   GL_ARB_ES2_compatibility,
952   GL_ARB_get_program_binary,
953   GL_ARB_separate_shader_objects,
954   GL_ARB_shader_precision,
955   GL_ARB_vertex_attrib_64bit,
956   GL_ARB_viewport_array,
957
958   // GL 4.2
959     GL_ARB_base_instance,
960     GL_ARB_shading_language_420pack,
961     GL_ARB_transform_feedback_instanced,
962     GL_ARB_compressed_texture_pixel_storage,
963     GL_ARB_conservative_depth,
964     GL_ARB_internalformat_query,
965     GL_ARB_map_buffer_alignment,
966     GL_ARB_shader_atomic_counters,
967     GL_ARB_shader_image_load_store,
968     GL_ARB_shading_language_packing,
969     GL_ARB_texture_storage,
970   // END GL 4.2
971
972   // GL 4.3
973     GL_ARB_arrays_of_arrays,
974     GL_ARB_fragment_layer_viewport,
975     GL_ARB_shader_image_size,
976     GL_ARB_ES3_compatibility,
977     GL_ARB_clear_buffer_object,
978     GL_ARB_compute_shader,
979     GL_ARB_copy_image,
980     GL_KHR_debug,
981     GL_ARB_explicit_uniform_location,
982     GL_ARB_framebuffer_no_attachments,
983     GL_ARB_internalformat_query2,
984     GL_ARB_invalidate_subdata,
985     GL_ARB_multi_draw_indirect,
986     GL_ARB_program_interface_query,
987     GL_ARB_robust_buffer_access_behavior,
988     GL_ARB_shader_storage_buffer_object,
989     GL_ARB_stencil_texturing,
990     GL_ARB_texture_buffer_range,
991     GL_ARB_texture_query_levels,
992     GL_ARB_texture_storage_multisample,
993     GL_ARB_texture_view,
994     GL_ARB_vertex_attrib_binding,
995     GL_NV_path_rendering,
996     GL_AMD_pinned_memory,
997     GL_AMD_stencil_operation_extended,
998     GL_AMD_vertex_shader_viewport_index,
999     GL_AMD_vertex_shader_layer,
1000     GL_NV_bindless_texture,
1001     GL_NV_shader_atomic_float,
1002     GL_AMD_query_buffer_object,
1003   // END GL 4.3
1004
1005   // GL 4.4
1006     GL_ARB_buffer_storage,
1007     GL_ARB_clear_texture,
1008     GL_ARB_enhanced_layouts,
1009     GL_ARB_multi_bind,
1010     GL_ARB_query_buffer_object,
1011     GL_ARB_texture_mirror_clamp_to_edge,
1012     GL_ARB_texture_stencil8,
1013     GL_ARB_vertex_type_10f_11f_11f_rev,
1014   // END 4.4
1015
1016   GL_ARB_cl_event,
1017   GL_ARB_debug_output,
1018   GL_ARB_robustness,
1019   GL_ARB_shader_stencil_export,
1020   GL_ATI_draw_buffers,
1021   GL_ATI_element_array,
1022   GL_ATI_envmap_bumpmap,
1023   GL_ATI_fragment_shader,
1024   GL_ATI_map_object_buffer,
1025   GL_ATI_pn_triangles,
1026   GL_ATI_separate_stencil,
1027   GL_ATI_text_fragment_shader,
1028   GL_ATI_texture_env_combine3,
1029   GL_ATI_texture_float,
1030   GL_ATI_texture_mirror_once,
1031   GL_ATI_vertex_array_object,
1032   GL_ATI_vertex_attrib_array_object,
1033   GL_ATI_vertex_streams,
1034   GL_ATI_meminfo,
1035   GL_AMD_performance_monitor,
1036   GL_AMD_texture_texture4,
1037   GL_AMD_vertex_shader_tesselator,
1038   GL_AMD_draw_buffers_blend,
1039   GL_AMD_shader_stencil_export,
1040   GL_AMD_seamless_cubemap_per_texture,
1041   GL_AMD_conservative_depth,
1042   GL_AMD_name_gen_delete,
1043   GL_AMD_debug_output,
1044   GL_AMD_transform_feedback3_lines_triangles,
1045   GL_AMD_depth_clamp_separate,
1046   GL_EXT_422_pixels,
1047   GL_EXT_abgr,
1048   GL_EXT_bgra,
1049   GL_EXT_blend_color,
1050   GL_EXT_blend_func_separate,
1051   GL_EXT_blend_logic_op,
1052   GL_EXT_blend_minmax,
1053   GL_EXT_blend_subtract,
1054   GL_EXT_clip_volume_hint,
1055   GL_EXT_cmyka,
1056   GL_EXT_color_matrix,
1057   GL_EXT_color_subtable,
1058   GL_EXT_compiled_vertex_array,
1059   GL_EXT_convolution,
1060   GL_EXT_coordinate_frame,
1061   GL_EXT_copy_texture,
1062   GL_EXT_cull_vertex,
1063   GL_EXT_draw_range_elements,
1064   GL_EXT_fog_coord,
1065   GL_EXT_framebuffer_object,
1066   GL_EXT_histogram,
1067   GL_EXT_index_array_formats,
1068   GL_EXT_index_func,
1069   GL_EXT_index_material,
1070   GL_EXT_index_texture,
1071   GL_EXT_light_texture,
1072   GL_EXT_misc_attribute,
1073   GL_EXT_multi_draw_arrays,
1074   GL_EXT_multisample,
1075   GL_EXT_packed_pixels,
1076   GL_EXT_paletted_texture,
1077   GL_EXT_pixel_transform,
1078   GL_EXT_pixel_transform_color_table,
1079   GL_EXT_point_parameters,
1080   GL_EXT_polygon_offset,
1081   GL_EXT_rescale_normal,
1082   GL_EXT_secondary_color,
1083   GL_EXT_separate_specular_color,
1084   GL_EXT_shadow_funcs,
1085   GL_EXT_shared_texture_palette,
1086   GL_EXT_stencil_two_side,
1087   GL_EXT_stencil_wrap,
1088   GL_EXT_subtexture,
1089   GL_EXT_texture,
1090   GL_EXT_texture3D,
1091   GL_EXT_texture_compression_s3tc,
1092   GL_EXT_texture_cube_map,
1093   GL_EXT_texture_edge_clamp,
1094   GL_EXT_texture_env_add,
1095   GL_EXT_texture_env_combine,
1096   GL_EXT_texture_env_dot3,
1097   GL_EXT_texture_filter_anisotropic,
1098   GL_EXT_texture_lod_bias,
1099   GL_EXT_texture_object,
1100   GL_EXT_texture_perturb_normal,
1101   GL_EXT_texture_rectangle,
1102   GL_EXT_vertex_array,
1103   GL_EXT_vertex_shader,
1104   GL_EXT_vertex_weighting,
1105   GL_EXT_depth_bounds_test,
1106   GL_EXT_texture_mirror_clamp,
1107   GL_EXT_blend_equation_separate,
1108   GL_EXT_pixel_buffer_object,
1109   GL_EXT_texture_compression_dxt1,
1110   GL_EXT_stencil_clear_tag,
1111   GL_EXT_packed_depth_stencil,
1112   GL_EXT_texture_sRGB,
1113   GL_EXT_framebuffer_blit,
1114   GL_EXT_framebuffer_multisample,
1115   GL_EXT_timer_query,
1116   GL_EXT_gpu_program_parameters,
1117   GL_EXT_bindable_uniform,
1118   GL_EXT_draw_buffers2,
1119   GL_EXT_draw_instanced,
1120   GL_EXT_framebuffer_sRGB,
1121   GL_EXT_geometry_shader4,
1122   GL_EXT_gpu_shader4,
1123   GL_EXT_packed_float,
1124   GL_EXT_texture_array,
1125   GL_EXT_texture_buffer_object,
1126   GL_EXT_texture_compression_latc,
1127   GL_EXT_texture_compression_rgtc,
1128   GL_EXT_texture_integer,
1129   GL_EXT_texture_shared_exponent,
1130   GL_EXT_transform_feedback,
1131   GL_EXT_direct_state_access,
1132   GL_EXT_vertex_array_bgra,
1133   GL_EXT_texture_swizzle,
1134   GL_EXT_provoking_vertex,
1135   GL_EXT_texture_snorm,
1136   GL_EXT_separate_shader_objects,
1137   GL_EXT_shader_image_load_store,
1138   GL_EXT_vertex_attrib_64bit,
1139   GL_EXT_texture_sRGB_decode,
1140   GL_FfdMaskSGIX,
1141   GL_HP_convolution_border_modes,
1142   GL_HP_image_transform,
1143   GL_HP_occlusion_test,
1144   GL_HP_texture_lighting,
1145   GL_IBM_cull_vertex,
1146   GL_IBM_multimode_draw_arrays,
1147   GL_IBM_rasterpos_clip,
1148   GL_IBM_texture_mirrored_repeat,
1149   GL_IBM_vertex_array_lists,
1150   GL_INGR_blend_func_separate,
1151   GL_INGR_color_clamp,
1152   GL_INGR_interlace_read,
1153   GL_INGR_palette_buffer,
1154   GL_INTEL_parallel_arrays,
1155   GL_INTEL_texture_scissor,
1156   GL_MESA_resize_buffers,
1157   GL_MESA_window_pos,
1158   GL_NV_blend_square,
1159   GL_NV_copy_depth_to_color,
1160   GL_NV_depth_clamp,
1161   GL_NV_evaluators,
1162   GL_NV_fence,
1163   GL_NV_float_buffer,
1164   GL_NV_fog_distance,
1165   GL_NV_fragment_program,
1166   GL_NV_half_float,
1167   GL_NV_light_max_exponent,
1168   GL_NV_multisample_filter_hint,
1169   GL_NV_occlusion_query,
1170   GL_NV_packed_depth_stencil,
1171   GL_NV_pixel_data_range,
1172   GL_NV_point_sprite,
1173   GL_NV_primitive_restart,
1174   GL_NV_register_combiners,
1175   GL_NV_register_combiners2,
1176   GL_NV_texgen_emboss,
1177   GL_NV_texgen_reflection,
1178   GL_NV_texture_compression_vtc,
1179   GL_NV_texture_env_combine4,
1180   GL_NV_texture_expand_normal,
1181   GL_NV_texture_rectangle,
1182   GL_NV_texture_shader,
1183   GL_NV_texture_shader2,
1184   GL_NV_texture_shader3,
1185   GL_NV_vertex_array_range,
1186   GL_NV_vertex_array_range2,
1187   GL_NV_vertex_program,
1188   GL_NV_vertex_program1_1,
1189   GL_NV_vertex_program2,
1190   GL_NV_fragment_program_option,
1191   GL_NV_fragment_program2,
1192   GL_NV_vertex_program2_option,
1193   GL_NV_vertex_program3,
1194   GL_NV_depth_buffer_float,
1195   GL_NV_fragment_program4,
1196   GL_NV_framebuffer_multisample_coverage,
1197   GL_NV_geometry_program4,
1198   GL_NV_gpu_program4,
1199   GL_NV_parameter_buffer_object,
1200   GL_NV_transform_feedback,
1201   GL_NV_vertex_program4,
1202   GL_NV_conditional_render,
1203   GL_NV_present_video,
1204   GL_NV_explicit_multisample,
1205   GL_NV_transform_feedback2,
1206   GL_NV_video_capture,
1207   GL_NV_copy_image,
1208   GL_NV_parameter_buffer_object2,
1209   GL_NV_shader_buffer_load,
1210   GL_NV_vertex_buffer_unified_memory,
1211   GL_NV_gpu_program5,
1212   GL_NV_gpu_shader5,
1213   GL_NV_shader_buffer_store,
1214   GL_NV_tessellation_program5,
1215   GL_NV_vertex_attrib_integer_64bit,
1216   GL_NV_multisample_coverage,
1217   GL_NV_vdpau_interop,
1218   GL_NV_texture_barrier,
1219   GL_OML_interlace,
1220   GL_OML_resample,
1221   GL_OML_subsample,
1222   GL_PGI_misc_hints,
1223   GL_PGI_vertex_hints,
1224   GL_REND_screen_coordinates,
1225   GL_S3_s3tc,
1226   GL_SGIS_detail_texture,
1227   GL_SGIS_fog_function,
1228   GL_SGIS_generate_mipmap,
1229   GL_SGIS_multisample,
1230   GL_SGIS_pixel_texture,
1231   GL_SGIS_point_line_texgen,
1232   GL_SGIS_point_parameters,
1233   GL_SGIS_sharpen_texture,
1234   GL_SGIS_texture4D,
1235   GL_SGIS_texture_border_clamp,
1236   GL_SGIS_texture_color_mask,
1237   GL_SGIS_texture_edge_clamp,
1238   GL_SGIS_texture_filter4,
1239   GL_SGIS_texture_lod,
1240   GL_SGIS_texture_select,
1241   GL_SGIX_async,
1242   GL_SGIX_async_histogram,
1243   GL_SGIX_async_pixel,
1244   GL_SGIX_blend_alpha_minmax,
1245   GL_SGIX_calligraphic_fragment,
1246   GL_SGIX_clipmap,
1247   GL_SGIX_convolution_accuracy,
1248   GL_SGIX_depth_pass_instrument,
1249   GL_SGIX_depth_texture,
1250   GL_SGIX_flush_raster,
1251   GL_SGIX_fog_offset,
1252   GL_SGIX_fog_scale,
1253   GL_SGIX_fragment_lighting,
1254   GL_SGIX_framezoom,
1255   GL_SGIX_igloo_interface,
1256   GL_SGIX_impact_pixel_texture,
1257   GL_SGIX_instruments,
1258   GL_SGIX_interlace,
1259   GL_SGIX_ir_instrument1,
1260   GL_SGIX_list_priority,
1261   GL_SGIX_pixel_texture,
1262   GL_SGIX_pixel_tiles,
1263   GL_SGIX_polynomial_ffd,
1264   GL_SGIX_reference_plane,
1265   GL_SGIX_resample,
1266   GL_SGIX_scalebias_hint,
1267   GL_SGIX_shadow,
1268   GL_SGIX_shadow_ambient,
1269   GL_SGIX_sprite,
1270   GL_SGIX_subsample,
1271   GL_SGIX_tag_sample_buffer,
1272   GL_SGIX_texture_add_env,
1273   GL_SGIX_texture_coordinate_clamp,
1274   GL_SGIX_texture_lod_bias,
1275   GL_SGIX_texture_multi_buffer,
1276   GL_SGIX_texture_scale_bias,
1277   GL_SGIX_texture_select,
1278   GL_SGIX_vertex_preclip,
1279   GL_SGIX_ycrcb,
1280   GL_SGIX_ycrcb_subsample,
1281   GL_SGIX_ycrcba,
1282   GL_SGI_color_matrix,
1283   GL_SGI_color_table,
1284   GL_SGI_depth_pass_instrument,
1285   GL_SGI_texture_color_table,
1286   GL_SUNX_constant_data,
1287   GL_SUN_convolution_border_modes,
1288   GL_SUN_global_alpha,
1289   GL_SUN_mesh_array,
1290   GL_SUN_slice_accum,
1291   GL_SUN_triangle_list,
1292   GL_SUN_vertex,
1293
1294   GL_WIN_phong_shading,
1295   GL_WIN_specular_fog,
1296   WGL_3DFX_multisample,
1297   WGL_ARB_buffer_region,
1298   WGL_ARB_extensions_string,
1299   WGL_ARB_make_current_read,
1300   WGL_ARB_multisample,
1301   WGL_ARB_pbuffer,
1302   WGL_ARB_pixel_format,
1303   WGL_ARB_pixel_format_float,
1304   WGL_ARB_render_texture,
1305   WGL_ARB_create_context,
1306   WGL_ARB_create_context_profile,
1307   WGL_ARB_framebuffer_sRGB,
1308   WGL_ARB_create_context_robustness,
1309   WGL_ATI_pixel_format_float,
1310   WGL_AMD_gpu_association,
1311   WGL_EXT_depth_float,
1312   WGL_EXT_display_color_table,
1313   WGL_EXT_extensions_string,
1314   WGL_EXT_make_current_read,
1315   WGL_EXT_multisample,
1316   WGL_EXT_pbuffer,
1317   WGL_EXT_pixel_format,
1318   WGL_EXT_swap_control,
1319   WGL_EXT_create_context_es2_profile,
1320   WGL_I3D_digital_video_control,
1321   WGL_I3D_gamma,
1322   WGL_I3D_genlock,
1323   WGL_I3D_image_buffer,
1324   WGL_I3D_swap_frame_lock,
1325   WGL_I3D_swap_frame_usage,
1326   WGL_NV_float_buffer,
1327   WGL_NV_render_depth_texture,
1328   WGL_NV_render_texture_rectangle,
1329   WGL_NV_vertex_array_range,
1330   WGL_NV_present_video,
1331   WGL_NV_video_output,
1332   WGL_NV_swap_group,
1333   WGL_NV_gpu_affinity,
1334   WGL_NV_video_capture,
1335   WGL_NV_copy_image,
1336   WGL_NV_multisample_coverage,
1337   WGL_NV_DX_interop,
1338   WGL_OML_sync_control,
1339   WGL_3DL_stereo_control,
1340   WIN_draw_range_elements,
1341   WIN_swap_hint,
1342   
1343 //  GLX_VERSION_1_0,
1344   GLX_VERSION_1_3,
1345   GLX_VERSION_1_4,
1346   GLX_ARB_multisample,
1347   GLX_ARB_fbconfig_float,
1348   GLX_ARB_get_proc_address,
1349   GLX_ARB_create_context,
1350   GLX_ARB_create_context_profile,
1351   GLX_ARB_vertex_buffer_object,
1352   GLX_ARB_framebuffer_sRGB,
1353   GLX_ARB_create_context_robustness,
1354   GLX_EXT_visual_info,
1355   GLX_EXT_visual_rating,
1356   GLX_EXT_import_context,
1357   GLX_EXT_fbconfig_packed_float,
1358   GLX_EXT_framebuffer_sRGB,
1359   GLX_EXT_texture_from_pixmap,
1360   GLX_EXT_swap_control,
1361   GLX_EXT_create_context_es2_profile : Boolean;
1362
1363 const
1364   // GL_VERSION_1_1
1365   { AttribMask }
1366   GL_DEPTH_BUFFER_BIT = $00000100;
1367   GL_STENCIL_BUFFER_BIT = $00000400;
1368   GL_COLOR_BUFFER_BIT = $00004000;
1369   { Boolean }
1370   GL_TRUE = 1;
1371   GL_FALSE = 0;
1372   { BeginMode }
1373   GL_POINTS = $0000;
1374   GL_LINES = $0001;
1375   GL_LINE_LOOP = $0002;
1376   GL_LINE_STRIP = $0003;
1377   GL_TRIANGLES = $0004;
1378   GL_TRIANGLE_STRIP = $0005;
1379   GL_TRIANGLE_FAN = $0006;
1380   { AlphaFunction }
1381   GL_NEVER = $0200;
1382   GL_LESS = $0201;
1383   GL_EQUAL = $0202;
1384   GL_LEQUAL = $0203;
1385   GL_GREATER = $0204;
1386   GL_NOTEQUAL = $0205;
1387   GL_GEQUAL = $0206;
1388   GL_ALWAYS = $0207;
1389   { BlendingFactorDest }
1390   GL_ZERO = 0;
1391   GL_ONE = 1;
1392   GL_SRC_COLOR = $0300;
1393   GL_ONE_MINUS_SRC_COLOR = $0301;
1394   GL_SRC_ALPHA = $0302;
1395   GL_ONE_MINUS_SRC_ALPHA = $0303;
1396   GL_DST_ALPHA = $0304;
1397   GL_ONE_MINUS_DST_ALPHA = $0305;
1398   { BlendingFactorSrc }
1399   GL_DST_COLOR = $0306;
1400   GL_ONE_MINUS_DST_COLOR = $0307;
1401   GL_SRC_ALPHA_SATURATE = $0308;
1402   { DrawBufferMode }
1403   GL_NONE = 0;
1404   GL_FRONT_LEFT = $0400;
1405   GL_FRONT_RIGHT = $0401;
1406   GL_BACK_LEFT = $0402;
1407   GL_BACK_RIGHT = $0403;
1408   GL_FRONT = $0404;
1409   GL_BACK = $0405;
1410   GL_LEFT = $0406;
1411   GL_RIGHT = $0407;
1412   GL_FRONT_AND_BACK = $0408;
1413   { ErrorCode }
1414   GL_NO_ERROR = 0;
1415   GL_INVALID_ENUM = $0500;
1416   GL_INVALID_VALUE = $0501;
1417   GL_INVALID_OPERATION = $0502;
1418   GL_OUT_OF_MEMORY = $0505;
1419   { FrontFaceDirection }
1420   GL_CW = $0900;
1421   GL_CCW = $0901;
1422   { GetPName }
1423   GL_POINT_SIZE = $0B11;
1424   GL_POINT_SIZE_RANGE = $0B12;
1425   GL_POINT_SIZE_GRANULARITY = $0B13;
1426   GL_LINE_SMOOTH = $0B20;
1427   GL_LINE_WIDTH = $0B21;
1428   GL_LINE_WIDTH_RANGE = $0B22;
1429   GL_LINE_WIDTH_GRANULARITY = $0B23;
1430   GL_POLYGON_SMOOTH = $0B41;
1431   GL_CULL_FACE = $0B44;
1432   GL_CULL_FACE_MODE = $0B45;
1433   GL_FRONT_FACE = $0B46;
1434   GL_DEPTH_RANGE = $0B70;
1435   GL_DEPTH_TEST = $0B71;
1436   GL_DEPTH_WRITEMASK = $0B72;
1437   GL_DEPTH_CLEAR_VALUE = $0B73;
1438   GL_DEPTH_FUNC = $0B74;
1439   GL_STENCIL_TEST = $0B90;
1440   GL_STENCIL_CLEAR_VALUE = $0B91;
1441   GL_STENCIL_FUNC = $0B92;
1442   GL_STENCIL_VALUE_MASK = $0B93;
1443   GL_STENCIL_FAIL = $0B94;
1444   GL_STENCIL_PASS_DEPTH_FAIL = $0B95;
1445   GL_STENCIL_PASS_DEPTH_PASS = $0B96;
1446   GL_STENCIL_REF = $0B97;
1447   GL_STENCIL_WRITEMASK = $0B98;
1448   GL_VIEWPORT = $0BA2;
1449   GL_DITHER = $0BD0;
1450   GL_BLEND_DST = $0BE0;
1451   GL_BLEND_SRC = $0BE1;
1452   GL_BLEND = $0BE2;
1453   GL_LOGIC_OP_MODE = $0BF0;
1454   GL_COLOR_LOGIC_OP = $0BF2;
1455   GL_DRAW_BUFFER = $0C01;
1456   GL_READ_BUFFER = $0C02;
1457   GL_SCISSOR_BOX = $0C10;
1458   GL_SCISSOR_TEST = $0C11;
1459   GL_COLOR_CLEAR_VALUE = $0C22;
1460   GL_COLOR_WRITEMASK = $0C23;
1461   GL_DOUBLEBUFFER = $0C32;
1462   GL_STEREO = $0C33;
1463   GL_LINE_SMOOTH_HINT = $0C52;
1464   GL_POLYGON_SMOOTH_HINT = $0C53;
1465   GL_UNPACK_SWAP_BYTES = $0CF0;
1466   GL_UNPACK_LSB_FIRST = $0CF1;
1467   GL_UNPACK_ROW_LENGTH = $0CF2;
1468   GL_UNPACK_SKIP_ROWS = $0CF3;
1469   GL_UNPACK_SKIP_PIXELS = $0CF4;
1470   GL_UNPACK_ALIGNMENT = $0CF5;
1471   GL_PACK_SWAP_BYTES = $0D00;
1472   GL_PACK_LSB_FIRST = $0D01;
1473   GL_PACK_ROW_LENGTH = $0D02;
1474   GL_PACK_SKIP_ROWS = $0D03;
1475   GL_PACK_SKIP_PIXELS = $0D04;
1476   GL_PACK_ALIGNMENT = $0D05;
1477   GL_MAX_TEXTURE_SIZE = $0D33;
1478   GL_MAX_VIEWPORT_DIMS = $0D3A;
1479   GL_SUBPIXEL_BITS = $0D50;
1480   GL_TEXTURE_1D = $0DE0;
1481   GL_TEXTURE_2D = $0DE1;
1482   GL_POLYGON_OFFSET_UNITS = $2A00;
1483   GL_POLYGON_OFFSET_POINT = $2A01;
1484   GL_POLYGON_OFFSET_LINE = $2A02;
1485   GL_POLYGON_OFFSET_FILL = $8037;
1486   GL_POLYGON_OFFSET_FACTOR = $8038;
1487   GL_TEXTURE_BINDING_1D = $8068;
1488   GL_TEXTURE_BINDING_2D = $8069;
1489   { GetTextureParameter }
1490   GL_TEXTURE_WIDTH = $1000;
1491   GL_TEXTURE_HEIGHT = $1001;
1492   GL_TEXTURE_INTERNAL_FORMAT = $1003;
1493   GL_TEXTURE_BORDER_COLOR = $1004;
1494   GL_TEXTURE_BORDER = $1005;
1495   GL_TEXTURE_RED_SIZE = $805C;
1496   GL_TEXTURE_GREEN_SIZE = $805D;
1497   GL_TEXTURE_BLUE_SIZE = $805E;
1498   GL_TEXTURE_ALPHA_SIZE = $805F;
1499   { HintMode }
1500   GL_DONT_CARE = $1100;
1501   GL_FASTEST = $1101;
1502   GL_NICEST = $1102;
1503   { DataType }
1504   GL_BYTE = $1400;
1505   GL_UNSIGNED_BYTE = $1401;
1506   GL_SHORT = $1402;
1507   GL_UNSIGNED_SHORT = $1403;
1508   GL_INT = $1404;
1509   GL_UNSIGNED_INT = $1405;
1510   GL_FLOAT = $1406;
1511   GL_DOUBLE = $140A;
1512   { LogicOp }
1513   GL_CLEAR = $1500;
1514   GL_AND = $1501;
1515   GL_AND_REVERSE = $1502;
1516   GL_COPY = $1503;
1517   GL_AND_INVERTED = $1504;
1518   GL_NOOP = $1505;
1519   GL_XOR = $1506;
1520   GL_OR = $1507;
1521   GL_NOR = $1508;
1522   GL_EQUIV = $1509;
1523   GL_INVERT = $150A;
1524   GL_OR_REVERSE = $150B;
1525   GL_COPY_INVERTED = $150C;
1526   GL_OR_INVERTED = $150D;
1527   GL_NAND = $150E;
1528   GL_SET = $150F;
1529   { MatrixMode (for gl3.h, FBO attachment type) }
1530   GL_TEXTURE = $1702;
1531   { PixelCopyType }
1532   GL_COLOR = $1800;
1533   GL_DEPTH = $1801;
1534   GL_STENCIL = $1802;
1535   { PixelFormat }
1536   GL_STENCIL_INDEX = $1901;
1537   GL_DEPTH_COMPONENT = $1902;
1538   GL_RED = $1903;
1539   GL_GREEN = $1904;
1540   GL_BLUE = $1905;
1541   GL_ALPHA = $1906;
1542   GL_RGB = $1907;
1543   GL_RGBA = $1908;
1544   { PolygonMode }
1545   GL_POINT = $1B00;
1546   GL_LINE = $1B01;
1547   GL_FILL = $1B02;
1548   { StencilOp }
1549   GL_KEEP = $1E00;
1550   GL_REPLACE = $1E01;
1551   GL_INCR = $1E02;
1552   GL_DECR = $1E03;
1553   { StringName }
1554   GL_VENDOR = $1F00;
1555   GL_RENDERER = $1F01;
1556   GL_VERSION = $1F02;
1557   GL_EXTENSIONS = $1F03;
1558   { TextureMagFilter }
1559   GL_NEAREST = $2600;
1560   GL_LINEAR = $2601;
1561   { TextureMinFilter }
1562   GL_NEAREST_MIPMAP_NEAREST = $2700;
1563   GL_LINEAR_MIPMAP_NEAREST = $2701;
1564   GL_NEAREST_MIPMAP_LINEAR = $2702;
1565   GL_LINEAR_MIPMAP_LINEAR = $2703;
1566   { TextureParameterName }
1567   GL_TEXTURE_MAG_FILTER = $2800;
1568   GL_TEXTURE_MIN_FILTER = $2801;
1569   GL_TEXTURE_WRAP_S = $2802;
1570   GL_TEXTURE_WRAP_T = $2803;
1571   { TextureTarget }
1572   GL_PROXY_TEXTURE_1D = $8063;
1573   GL_PROXY_TEXTURE_2D = $8064;
1574   { TextureWrapMode }
1575   GL_REPEAT = $2901;
1576   { PixelInternalFormat }
1577   GL_R3_G3_B2 = $2A10;
1578   GL_RGB4 = $804F;
1579   GL_RGB5 = $8050;
1580   GL_RGB8 = $8051;
1581   GL_RGB10 = $8052;
1582   GL_RGB12 = $8053;
1583   GL_RGB16 = $8054;
1584   GL_RGBA2 = $8055;
1585   GL_RGBA4 = $8056;
1586   GL_RGB5_A1 = $8057;
1587   GL_RGBA8 = $8058;
1588   GL_RGB10_A2 = $8059;
1589   GL_RGBA12 = $805A;
1590   GL_RGBA16 = $805B;
1591 {$ifdef DGL_DEPRECATED}
1592   GL_ACCUM = $0100;
1593   GL_LOAD = $0101;
1594   GL_RETURN = $0102;
1595   GL_MULT = $0103;
1596   GL_ADD = $0104;
1597   GL_CURRENT_BIT = $00000001;
1598   GL_POINT_BIT = $00000002;
1599   GL_LINE_BIT = $00000004;
1600   GL_POLYGON_BIT = $00000008;
1601   GL_POLYGON_STIPPLE_BIT = $00000010;
1602   GL_PIXEL_MODE_BIT = $00000020;
1603   GL_LIGHTING_BIT = $00000040;
1604   GL_FOG_BIT = $00000080;
1605   GL_ACCUM_BUFFER_BIT = $00000200;
1606   GL_VIEWPORT_BIT = $00000800;
1607   GL_TRANSFORM_BIT = $00001000;
1608   GL_ENABLE_BIT = $00002000;
1609   GL_HINT_BIT = $00008000;
1610   GL_EVAL_BIT = $00010000;
1611   GL_LIST_BIT = $00020000;
1612   GL_TEXTURE_BIT = $00040000;
1613   GL_SCISSOR_BIT = $00080000;
1614   GL_ALL_ATTRIB_BITS = $000FFFFF;
1615   GL_QUADS = $0007;
1616   GL_QUAD_STRIP = $0008;
1617   GL_POLYGON = $0009;
1618   GL_CLIP_PLANE0 = $3000;
1619   GL_CLIP_PLANE1 = $3001;
1620   GL_CLIP_PLANE2 = $3002;
1621   GL_CLIP_PLANE3 = $3003;
1622   GL_CLIP_PLANE4 = $3004;
1623   GL_CLIP_PLANE5 = $3005;
1624   GL_2_BYTES = $1407;
1625   GL_3_BYTES = $1408;
1626   GL_4_BYTES = $1409;
1627   GL_AUX0 = $0409;
1628   GL_AUX1 = $040A;
1629   GL_AUX2 = $040B;
1630   GL_AUX3 = $040C;
1631   GL_STACK_OVERFLOW = $0503;
1632   GL_STACK_UNDERFLOW = $0504;
1633   GL_2D = $0600;
1634   GL_3D = $0601;
1635   GL_3D_COLOR = $0602;
1636   GL_3D_COLOR_TEXTURE = $0603;
1637   GL_4D_COLOR_TEXTURE = $0604;
1638   GL_PASS_THROUGH_TOKEN = $0700;
1639   GL_POINT_TOKEN = $0701;
1640   GL_LINE_TOKEN = $0702;
1641   GL_POLYGON_TOKEN = $0703;
1642   GL_BITMAP_TOKEN = $0704;
1643   GL_DRAW_PIXEL_TOKEN = $0705;
1644   GL_COPY_PIXEL_TOKEN = $0706;
1645   GL_LINE_RESET_TOKEN = $0707;
1646   GL_EXP = $0800;
1647   GL_EXP2 = $0801;
1648   GL_COEFF = $0A00;
1649   GL_ORDER = $0A01;
1650   GL_DOMAIN = $0A02;
1651   GL_CURRENT_COLOR = $0B00;
1652   GL_CURRENT_INDEX = $0B01;
1653   GL_CURRENT_NORMAL = $0B02;
1654   GL_CURRENT_TEXTURE_COORDS = $0B03;
1655   GL_CURRENT_RASTER_COLOR = $0B04;
1656   GL_CURRENT_RASTER_INDEX = $0B05;
1657   GL_CURRENT_RASTER_TEXTURE_COORDS = $0B06;
1658   GL_CURRENT_RASTER_POSITION = $0B07;
1659   GL_CURRENT_RASTER_POSITION_VALID = $0B08;
1660   GL_CURRENT_RASTER_DISTANCE = $0B09;
1661   GL_POINT_SMOOTH = $0B10;
1662   GL_LINE_STIPPLE = $0B24;
1663   GL_LINE_STIPPLE_PATTERN = $0B25;
1664   GL_LINE_STIPPLE_REPEAT = $0B26;
1665   GL_LIST_MODE = $0B30;
1666   GL_MAX_LIST_NESTING = $0B31;
1667   GL_LIST_BASE = $0B32;
1668   GL_LIST_INDEX = $0B33;
1669   GL_POLYGON_MODE = $0B40;
1670   GL_POLYGON_STIPPLE = $0B42;
1671   GL_EDGE_FLAG = $0B43;
1672   GL_LIGHTING = $0B50;
1673   GL_LIGHT_MODEL_LOCAL_VIEWER = $0B51;
1674   GL_LIGHT_MODEL_TWO_SIDE = $0B52;
1675   GL_LIGHT_MODEL_AMBIENT = $0B53;
1676   GL_SHADE_MODEL = $0B54;
1677   GL_COLOR_MATERIAL_FACE = $0B55;
1678   GL_COLOR_MATERIAL_PARAMETER = $0B56;
1679   GL_COLOR_MATERIAL = $0B57;
1680   GL_FOG = $0B60;
1681   GL_FOG_INDEX = $0B61;
1682   GL_FOG_DENSITY = $0B62;
1683   GL_FOG_START = $0B63;
1684   GL_FOG_END = $0B64;
1685   GL_FOG_MODE = $0B65;
1686   GL_FOG_COLOR = $0B66;
1687   GL_ACCUM_CLEAR_VALUE = $0B80;
1688   GL_MATRIX_MODE = $0BA0;
1689   GL_NORMALIZE = $0BA1;
1690   GL_MODELVIEW_STACK_DEPTH = $0BA3;
1691   GL_PROJECTION_STACK_DEPTH = $0BA4;
1692   GL_TEXTURE_STACK_DEPTH = $0BA5;
1693   GL_MODELVIEW_MATRIX = $0BA6;
1694   GL_PROJECTION_MATRIX = $0BA7;
1695   GL_TEXTURE_MATRIX = $0BA8;
1696   GL_ATTRIB_STACK_DEPTH = $0BB0;
1697   GL_CLIENT_ATTRIB_STACK_DEPTH = $0BB1;
1698   GL_ALPHA_TEST = $0BC0;
1699   GL_ALPHA_TEST_FUNC = $0BC1;
1700   GL_ALPHA_TEST_REF = $0BC2;
1701   GL_INDEX_LOGIC_OP = $0BF1;
1702   GL_AUX_BUFFERS = $0C00;
1703   GL_INDEX_CLEAR_VALUE = $0C20;
1704   GL_INDEX_WRITEMASK = $0C21;
1705   GL_INDEX_MODE = $0C30;
1706   GL_RGBA_MODE = $0C31;
1707   GL_RENDER_MODE = $0C40;
1708   GL_PERSPECTIVE_CORRECTION_HINT = $0C50;
1709   GL_POINT_SMOOTH_HINT = $0C51;
1710   GL_FOG_HINT = $0C54;
1711   GL_TEXTURE_GEN_S = $0C60;
1712   GL_TEXTURE_GEN_T = $0C61;
1713   GL_TEXTURE_GEN_R = $0C62;
1714   GL_TEXTURE_GEN_Q = $0C63;
1715   GL_PIXEL_MAP_I_TO_I = $0C70;
1716   GL_PIXEL_MAP_S_TO_S = $0C71;
1717   GL_PIXEL_MAP_I_TO_R = $0C72;
1718   GL_PIXEL_MAP_I_TO_G = $0C73;
1719   GL_PIXEL_MAP_I_TO_B = $0C74;
1720   GL_PIXEL_MAP_I_TO_A = $0C75;
1721   GL_PIXEL_MAP_R_TO_R = $0C76;
1722   GL_PIXEL_MAP_G_TO_G = $0C77;
1723   GL_PIXEL_MAP_B_TO_B = $0C78;
1724   GL_PIXEL_MAP_A_TO_A = $0C79;
1725   GL_PIXEL_MAP_I_TO_I_SIZE = $0CB0;
1726   GL_PIXEL_MAP_S_TO_S_SIZE = $0CB1;
1727   GL_PIXEL_MAP_I_TO_R_SIZE = $0CB2;
1728   GL_PIXEL_MAP_I_TO_G_SIZE = $0CB3;
1729   GL_PIXEL_MAP_I_TO_B_SIZE = $0CB4;
1730   GL_PIXEL_MAP_I_TO_A_SIZE = $0CB5;
1731   GL_PIXEL_MAP_R_TO_R_SIZE = $0CB6;
1732   GL_PIXEL_MAP_G_TO_G_SIZE = $0CB7;
1733   GL_PIXEL_MAP_B_TO_B_SIZE = $0CB8;
1734   GL_PIXEL_MAP_A_TO_A_SIZE = $0CB9;
1735   GL_MAP_COLOR = $0D10;
1736   GL_MAP_STENCIL = $0D11;
1737   GL_INDEX_SHIFT = $0D12;
1738   GL_INDEX_OFFSET = $0D13;
1739   GL_RED_SCALE = $0D14;
1740   GL_RED_BIAS = $0D15;
1741   GL_ZOOM_X = $0D16;
1742   GL_ZOOM_Y = $0D17;
1743   GL_GREEN_SCALE = $0D18;
1744   GL_GREEN_BIAS = $0D19;
1745   GL_BLUE_SCALE = $0D1A;
1746   GL_BLUE_BIAS = $0D1B;
1747   GL_ALPHA_SCALE = $0D1C;
1748   GL_ALPHA_BIAS = $0D1D;
1749   GL_DEPTH_SCALE = $0D1E;
1750   GL_DEPTH_BIAS = $0D1F;
1751   GL_MAX_EVAL_ORDER = $0D30;
1752   GL_MAX_LIGHTS = $0D31;
1753   GL_MAX_CLIP_PLANES = $0D32;
1754   GL_MAX_PIXEL_MAP_TABLE = $0D34;
1755   GL_MAX_ATTRIB_STACK_DEPTH = $0D35;
1756   GL_MAX_MODELVIEW_STACK_DEPTH = $0D36;
1757   GL_MAX_NAME_STACK_DEPTH = $0D37;
1758   GL_MAX_PROJECTION_STACK_DEPTH = $0D38;
1759   GL_MAX_TEXTURE_STACK_DEPTH = $0D39;
1760   GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = $0D3B;
1761   GL_INDEX_BITS = $0D51;
1762   GL_RED_BITS = $0D52;
1763   GL_GREEN_BITS = $0D53;
1764   GL_BLUE_BITS = $0D54;
1765   GL_ALPHA_BITS = $0D55;
1766   GL_DEPTH_BITS = $0D56;
1767   GL_STENCIL_BITS = $0D57;
1768   GL_ACCUM_RED_BITS = $0D58;
1769   GL_ACCUM_GREEN_BITS = $0D59;
1770   GL_ACCUM_BLUE_BITS = $0D5A;
1771   GL_ACCUM_ALPHA_BITS = $0D5B;
1772   GL_NAME_STACK_DEPTH = $0D70;
1773   GL_AUTO_NORMAL = $0D80;
1774   GL_MAP1_COLOR_4 = $0D90;
1775   GL_MAP1_INDEX = $0D91;
1776   GL_MAP1_NORMAL = $0D92;
1777   GL_MAP1_TEXTURE_COORD_1 = $0D93;
1778   GL_MAP1_TEXTURE_COORD_2 = $0D94;
1779   GL_MAP1_TEXTURE_COORD_3 = $0D95;
1780   GL_MAP1_TEXTURE_COORD_4 = $0D96;
1781   GL_MAP1_VERTEX_3 = $0D97;
1782   GL_MAP1_VERTEX_4 = $0D98;
1783   GL_MAP2_COLOR_4 = $0DB0;
1784   GL_MAP2_INDEX = $0DB1;
1785   GL_MAP2_NORMAL = $0DB2;
1786   GL_MAP2_TEXTURE_COORD_1 = $0DB3;
1787   GL_MAP2_TEXTURE_COORD_2 = $0DB4;
1788   GL_MAP2_TEXTURE_COORD_3 = $0DB5;
1789   GL_MAP2_TEXTURE_COORD_4 = $0DB6;
1790   GL_MAP2_VERTEX_3 = $0DB7;
1791   GL_MAP2_VERTEX_4 = $0DB8;
1792   GL_MAP1_GRID_DOMAIN = $0DD0;
1793   GL_MAP1_GRID_SEGMENTS = $0DD1;
1794   GL_MAP2_GRID_DOMAIN = $0DD2;
1795   GL_MAP2_GRID_SEGMENTS = $0DD3;
1796   GL_FEEDBACK_BUFFER_POINTER = $0DF0;
1797   GL_FEEDBACK_BUFFER_SIZE = $0DF1;
1798   GL_FEEDBACK_BUFFER_TYPE = $0DF2;
1799   GL_SELECTION_BUFFER_POINTER = $0DF3;
1800   GL_SELECTION_BUFFER_SIZE = $0DF4;
1801   GL_LIGHT0 = $4000;
1802   GL_LIGHT1 = $4001;
1803   GL_LIGHT2 = $4002;
1804   GL_LIGHT3 = $4003;
1805   GL_LIGHT4 = $4004;
1806   GL_LIGHT5 = $4005;
1807   GL_LIGHT6 = $4006;
1808   GL_LIGHT7 = $4007;
1809   GL_AMBIENT = $1200;
1810   GL_DIFFUSE = $1201;
1811   GL_SPECULAR = $1202;
1812   GL_POSITION = $1203;
1813   GL_SPOT_DIRECTION = $1204;
1814   GL_SPOT_EXPONENT = $1205;
1815   GL_SPOT_CUTOFF = $1206;
1816   GL_CONSTANT_ATTENUATION = $1207;
1817   GL_LINEAR_ATTENUATION = $1208;
1818   GL_QUADRATIC_ATTENUATION = $1209;
1819   GL_COMPILE = $1300;
1820   GL_COMPILE_AND_EXECUTE = $1301;
1821   GL_EMISSION = $1600;
1822   GL_SHININESS = $1601;
1823   GL_AMBIENT_AND_DIFFUSE = $1602;
1824   GL_COLOR_INDEXES = $1603;
1825   GL_MODELVIEW = $1700;
1826   GL_PROJECTION = $1701;
1827   GL_COLOR_INDEX = $1900;
1828   GL_LUMINANCE = $1909;
1829   GL_LUMINANCE_ALPHA = $190A;
1830   GL_BITMAP = $1A00;
1831   GL_RENDER = $1C00;
1832   GL_FEEDBACK = $1C01;
1833   GL_SELECT = $1C02;
1834   GL_FLAT = $1D00;
1835   GL_SMOOTH = $1D01;
1836   GL_S = $2000;
1837   GL_T = $2001;
1838   GL_R = $2002;
1839   GL_Q = $2003;
1840   GL_MODULATE = $2100;
1841   GL_DECAL = $2101;
1842   GL_TEXTURE_ENV_MODE = $2200;
1843   GL_TEXTURE_ENV_COLOR = $2201;
1844   GL_TEXTURE_ENV = $2300;
1845   GL_EYE_LINEAR = $2400;
1846   GL_OBJECT_LINEAR = $2401;
1847   GL_SPHERE_MAP = $2402;
1848   GL_TEXTURE_GEN_MODE = $2500;
1849   GL_OBJECT_PLANE = $2501;
1850   GL_EYE_PLANE = $2502;
1851   GL_CLAMP = $2900;
1852   GL_CLIENT_PIXEL_STORE_BIT = $00000001;
1853   GL_CLIENT_VERTEX_ARRAY_BIT = $00000002;
1854   GL_CLIENT_ALL_ATTRIB_BITS = $FFFFFFFF;
1855   GL_ALPHA4 = $803B;
1856   GL_ALPHA8 = $803C;
1857   GL_ALPHA12 = $803D;
1858   GL_ALPHA16 = $803E;
1859   GL_LUMINANCE4 = $803F;
1860   GL_LUMINANCE8 = $8040;
1861   GL_LUMINANCE12 = $8041;
1862   GL_LUMINANCE16 = $8042;
1863   GL_LUMINANCE4_ALPHA4 = $8043;
1864   GL_LUMINANCE6_ALPHA2 = $8044;
1865   GL_LUMINANCE8_ALPHA8 = $8045;
1866   GL_LUMINANCE12_ALPHA4 = $8046;
1867   GL_LUMINANCE12_ALPHA12 = $8047;
1868   GL_LUMINANCE16_ALPHA16 = $8048;
1869   GL_INTENSITY = $8049;
1870   GL_INTENSITY4 = $804A;
1871   GL_INTENSITY8 = $804B;
1872   GL_INTENSITY12 = $804C;
1873   GL_INTENSITY16 = $804D;
1874   GL_TEXTURE_LUMINANCE_SIZE = $8060;
1875   GL_TEXTURE_INTENSITY_SIZE = $8061;
1876   GL_TEXTURE_PRIORITY = $8066;
1877   GL_TEXTURE_RESIDENT = $8067;
1878   GL_VERTEX_ARRAY = $8074;
1879   GL_NORMAL_ARRAY = $8075;
1880   GL_COLOR_ARRAY = $8076;
1881   GL_INDEX_ARRAY = $8077;
1882   GL_TEXTURE_COORD_ARRAY = $8078;
1883   GL_EDGE_FLAG_ARRAY = $8079;
1884   GL_VERTEX_ARRAY_SIZE = $807A;
1885   GL_VERTEX_ARRAY_TYPE = $807B;
1886   GL_VERTEX_ARRAY_STRIDE = $807C;
1887   GL_NORMAL_ARRAY_TYPE = $807E;
1888   GL_NORMAL_ARRAY_STRIDE = $807F;
1889   GL_COLOR_ARRAY_SIZE = $8081;
1890   GL_COLOR_ARRAY_TYPE = $8082;
1891   GL_COLOR_ARRAY_STRIDE = $8083;
1892   GL_INDEX_ARRAY_TYPE = $8085;
1893   GL_INDEX_ARRAY_STRIDE = $8086;
1894   GL_TEXTURE_COORD_ARRAY_SIZE = $8088;
1895   GL_TEXTURE_COORD_ARRAY_TYPE = $8089;
1896   GL_TEXTURE_COORD_ARRAY_STRIDE = $808A;
1897   GL_EDGE_FLAG_ARRAY_STRIDE = $808C;
1898   GL_VERTEX_ARRAY_POINTER = $808E;
1899   GL_NORMAL_ARRAY_POINTER = $808F;
1900   GL_COLOR_ARRAY_POINTER = $8090;
1901   GL_INDEX_ARRAY_POINTER = $8091;
1902   GL_TEXTURE_COORD_ARRAY_POINTER = $8092;
1903   GL_EDGE_FLAG_ARRAY_POINTER = $8093;
1904   GL_V2F = $2A20;
1905   GL_V3F = $2A21;
1906   GL_C4UB_V2F = $2A22;
1907   GL_C4UB_V3F = $2A23;
1908   GL_C3F_V3F = $2A24;
1909   GL_N3F_V3F = $2A25;
1910   GL_C4F_N3F_V3F = $2A26;
1911   GL_T2F_V3F = $2A27;
1912   GL_T4F_V4F = $2A28;
1913   GL_T2F_C4UB_V3F = $2A29;
1914   GL_T2F_C3F_V3F = $2A2A;
1915   GL_T2F_N3F_V3F = $2A2B;
1916   GL_T2F_C4F_N3F_V3F = $2A2C;
1917   GL_T4F_C4F_N3F_V4F = $2A2D;
1918   GL_COLOR_TABLE_FORMAT_EXT = $80D8;
1919   GL_COLOR_TABLE_WIDTH_EXT = $80D9;
1920   GL_COLOR_TABLE_RED_SIZE_EXT = $80DA;
1921   GL_COLOR_TABLE_GREEN_SIZE_EXT = $80DB;
1922   GL_COLOR_TABLE_BLUE_SIZE_EXT = $80DC;
1923   GL_COLOR_TABLE_ALPHA_SIZE_EXT = $80DD;
1924   GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = $80DE;
1925   GL_COLOR_TABLE_INTENSITY_SIZE_EXT = $80DF;
1926   GL_LOGIC_OP = GL_INDEX_LOGIC_OP;
1927   GL_TEXTURE_COMPONENTS = GL_TEXTURE_INTERNAL_FORMAT;
1928 {$endif}
1929
1930   // GL_VERSION_1_2
1931   GL_UNSIGNED_BYTE_3_3_2 = $8032;
1932   GL_UNSIGNED_SHORT_4_4_4_4 = $8033;
1933   GL_UNSIGNED_SHORT_5_5_5_1 = $8034;
1934   GL_UNSIGNED_INT_8_8_8_8 = $8035;
1935   GL_UNSIGNED_INT_10_10_10_2 = $8036;
1936   GL_TEXTURE_BINDING_3D = $806A;
1937   GL_PACK_SKIP_IMAGES = $806B;
1938   GL_PACK_IMAGE_HEIGHT = $806C;
1939   GL_UNPACK_SKIP_IMAGES = $806D;
1940   GL_UNPACK_IMAGE_HEIGHT = $806E;
1941   GL_TEXTURE_3D = $806F;
1942   GL_PROXY_TEXTURE_3D = $8070;
1943   GL_TEXTURE_DEPTH = $8071;
1944   GL_TEXTURE_WRAP_R = $8072;
1945   GL_MAX_3D_TEXTURE_SIZE = $8073;
1946   GL_UNSIGNED_BYTE_2_3_3_REV = $8362;
1947   GL_UNSIGNED_SHORT_5_6_5 = $8363;
1948   GL_UNSIGNED_SHORT_5_6_5_REV = $8364;
1949   GL_UNSIGNED_SHORT_4_4_4_4_REV = $8365;
1950   GL_UNSIGNED_SHORT_1_5_5_5_REV = $8366;
1951   GL_UNSIGNED_INT_8_8_8_8_REV = $8367;
1952   GL_UNSIGNED_INT_2_10_10_10_REV = $8368;
1953   GL_BGR = $80E0;
1954   GL_BGRA = $80E1;
1955   GL_MAX_ELEMENTS_VERTICES = $80E8;
1956   GL_MAX_ELEMENTS_INDICES = $80E9;
1957   GL_CLAMP_TO_EDGE = $812F;
1958   GL_TEXTURE_MIN_LOD = $813A;
1959   GL_TEXTURE_MAX_LOD = $813B;
1960   GL_TEXTURE_BASE_LEVEL = $813C;
1961   GL_TEXTURE_MAX_LEVEL = $813D;
1962   GL_SMOOTH_POINT_SIZE_RANGE = $0B12;
1963   GL_SMOOTH_POINT_SIZE_GRANULARITY = $0B13;
1964   GL_SMOOTH_LINE_WIDTH_RANGE = $0B22;
1965   GL_SMOOTH_LINE_WIDTH_GRANULARITY = $0B23;
1966   GL_ALIASED_LINE_WIDTH_RANGE = $846E;
1967 {$ifdef DGL_DEPRECATED}
1968   GL_RESCALE_NORMAL = $803A;
1969   GL_LIGHT_MODEL_COLOR_CONTROL = $81F8;
1970   GL_SINGLE_COLOR = $81F9;
1971   GL_SEPARATE_SPECULAR_COLOR = $81FA;
1972   GL_ALIASED_POINT_SIZE_RANGE = $846D;
1973 {$endif}
1974
1975   // GL_VERSION_1_3
1976   GL_TEXTURE0 = $84C0;
1977   GL_TEXTURE1 = $84C1;
1978   GL_TEXTURE2 = $84C2;
1979   GL_TEXTURE3 = $84C3;
1980   GL_TEXTURE4 = $84C4;
1981   GL_TEXTURE5 = $84C5;
1982   GL_TEXTURE6 = $84C6;
1983   GL_TEXTURE7 = $84C7;
1984   GL_TEXTURE8 = $84C8;
1985   GL_TEXTURE9 = $84C9;
1986   GL_TEXTURE10 = $84CA;
1987   GL_TEXTURE11 = $84CB;
1988   GL_TEXTURE12 = $84CC;
1989   GL_TEXTURE13 = $84CD;
1990   GL_TEXTURE14 = $84CE;
1991   GL_TEXTURE15 = $84CF;
1992   GL_TEXTURE16 = $84D0;
1993   GL_TEXTURE17 = $84D1;
1994   GL_TEXTURE18 = $84D2;
1995   GL_TEXTURE19 = $84D3;
1996   GL_TEXTURE20 = $84D4;
1997   GL_TEXTURE21 = $84D5;
1998   GL_TEXTURE22 = $84D6;
1999   GL_TEXTURE23 = $84D7;
2000   GL_TEXTURE24 = $84D8;
2001   GL_TEXTURE25 = $84D9;
2002   GL_TEXTURE26 = $84DA;
2003   GL_TEXTURE27 = $84DB;
2004   GL_TEXTURE28 = $84DC;
2005   GL_TEXTURE29 = $84DD;
2006   GL_TEXTURE30 = $84DE;
2007   GL_TEXTURE31 = $84DF;
2008   GL_ACTIVE_TEXTURE = $84E0;
2009   GL_MULTISAMPLE = $809D;
2010   GL_SAMPLE_ALPHA_TO_COVERAGE = $809E;
2011   GL_SAMPLE_ALPHA_TO_ONE = $809F;
2012   GL_SAMPLE_COVERAGE = $80A0;
2013   GL_SAMPLE_BUFFERS = $80A8;
2014   GL_SAMPLES = $80A9;
2015   GL_SAMPLE_COVERAGE_VALUE = $80AA;
2016   GL_SAMPLE_COVERAGE_INVERT = $80AB;
2017   GL_TEXTURE_CUBE_MAP = $8513;
2018   GL_TEXTURE_BINDING_CUBE_MAP = $8514;
2019   GL_TEXTURE_CUBE_MAP_POSITIVE_X = $8515;
2020   GL_TEXTURE_CUBE_MAP_NEGATIVE_X = $8516;
2021   GL_TEXTURE_CUBE_MAP_POSITIVE_Y = $8517;
2022   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = $8518;
2023   GL_TEXTURE_CUBE_MAP_POSITIVE_Z = $8519;
2024   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = $851A;
2025   GL_PROXY_TEXTURE_CUBE_MAP = $851B;
2026   GL_MAX_CUBE_MAP_TEXTURE_SIZE = $851C;
2027   GL_COMPRESSED_RGB = $84ED;
2028   GL_COMPRESSED_RGBA = $84EE;
2029   GL_TEXTURE_COMPRESSION_HINT = $84EF;
2030   GL_TEXTURE_COMPRESSED_IMAGE_SIZE = $86A0;
2031   GL_TEXTURE_COMPRESSED = $86A1;
2032   GL_NUM_COMPRESSED_TEXTURE_FORMATS = $86A2;
2033   GL_COMPRESSED_TEXTURE_FORMATS = $86A3;
2034   GL_CLAMP_TO_BORDER = $812D;
2035 {$ifdef DGL_DEPRECATED}
2036   GL_CLIENT_ACTIVE_TEXTURE = $84E1;
2037   GL_MAX_TEXTURE_UNITS = $84E2;
2038   GL_TRANSPOSE_MODELVIEW_MATRIX = $84E3;
2039   GL_TRANSPOSE_PROJECTION_MATRIX = $84E4;
2040   GL_TRANSPOSE_TEXTURE_MATRIX = $84E5;
2041   GL_TRANSPOSE_COLOR_MATRIX = $84E6;
2042   GL_MULTISAMPLE_BIT = $20000000;
2043   GL_NORMAL_MAP = $8511;
2044   GL_REFLECTION_MAP = $8512;
2045   GL_COMPRESSED_ALPHA = $84E9;
2046   GL_COMPRESSED_LUMINANCE = $84EA;
2047   GL_COMPRESSED_LUMINANCE_ALPHA = $84EB;
2048   GL_COMPRESSED_INTENSITY = $84EC;
2049   GL_COMBINE = $8570;
2050   GL_COMBINE_RGB = $8571;
2051   GL_COMBINE_ALPHA = $8572;
2052   GL_SOURCE0_RGB = $8580;
2053   GL_SOURCE1_RGB = $8581;
2054   GL_SOURCE2_RGB = $8582;
2055   GL_SOURCE0_ALPHA = $8588;
2056   GL_SOURCE1_ALPHA = $8589;
2057   GL_SOURCE2_ALPHA = $858A;
2058   GL_OPERAND0_RGB = $8590;
2059   GL_OPERAND1_RGB = $8591;
2060   GL_OPERAND2_RGB = $8592;
2061   GL_OPERAND0_ALPHA = $8598;
2062   GL_OPERAND1_ALPHA = $8599;
2063   GL_OPERAND2_ALPHA = $859A;
2064   GL_RGB_SCALE = $8573;
2065   GL_ADD_SIGNED = $8574;
2066   GL_INTERPOLATE = $8575;
2067   GL_SUBTRACT = $84E7;
2068   GL_CONSTANT = $8576;
2069   GL_PRIMARY_COLOR = $8577;
2070   GL_PREVIOUS = $8578;
2071   GL_DOT3_RGB = $86AE;
2072   GL_DOT3_RGBA = $86AF;
2073 {$endif}
2074
2075   // GL_VERSION_1_4
2076   GL_BLEND_DST_RGB = $80C8;
2077   GL_BLEND_SRC_RGB = $80C9;
2078   GL_BLEND_DST_ALPHA = $80CA;
2079   GL_BLEND_SRC_ALPHA = $80CB;
2080   GL_POINT_FADE_THRESHOLD_SIZE = $8128;
2081   GL_DEPTH_COMPONENT16 = $81A5;
2082   GL_DEPTH_COMPONENT24 = $81A6;
2083   GL_DEPTH_COMPONENT32 = $81A7;
2084   GL_MIRRORED_REPEAT = $8370;
2085   GL_MAX_TEXTURE_LOD_BIAS = $84FD;
2086   GL_TEXTURE_LOD_BIAS = $8501;
2087   GL_INCR_WRAP = $8507;
2088   GL_DECR_WRAP = $8508;
2089   GL_TEXTURE_DEPTH_SIZE = $884A;
2090   GL_TEXTURE_COMPARE_MODE = $884C;
2091   GL_TEXTURE_COMPARE_FUNC = $884D;
2092 {$ifdef DGL_DEPRECATED}
2093   GL_POINT_SIZE_MIN = $8126;
2094   GL_POINT_SIZE_MAX = $8127;
2095   GL_POINT_DISTANCE_ATTENUATION = $8129;
2096   GL_GENERATE_MIPMAP = $8191;
2097   GL_GENERATE_MIPMAP_HINT = $8192;
2098   GL_FOG_COORDINATE_SOURCE = $8450;
2099   GL_FOG_COORDINATE = $8451;
2100   GL_FRAGMENT_DEPTH = $8452;
2101   GL_CURRENT_FOG_COORDINATE = $8453;
2102   GL_FOG_COORDINATE_ARRAY_TYPE = $8454;
2103   GL_FOG_COORDINATE_ARRAY_STRIDE = $8455;
2104   GL_FOG_COORDINATE_ARRAY_POINTER = $8456;
2105   GL_FOG_COORDINATE_ARRAY = $8457;
2106   GL_COLOR_SUM = $8458;
2107   GL_CURRENT_SECONDARY_COLOR = $8459;
2108   GL_SECONDARY_COLOR_ARRAY_SIZE = $845A;
2109   GL_SECONDARY_COLOR_ARRAY_TYPE = $845B;
2110   GL_SECONDARY_COLOR_ARRAY_STRIDE = $845C;
2111   GL_SECONDARY_COLOR_ARRAY_POINTER = $845D;
2112   GL_SECONDARY_COLOR_ARRAY = $845E;
2113   GL_TEXTURE_FILTER_CONTROL = $8500;
2114   GL_DEPTH_TEXTURE_MODE = $884B;
2115   GL_COMPARE_R_TO_TEXTURE = $884E;
2116 {$endif}
2117
2118   // GL_VERSION_1_5
2119   GL_BUFFER_SIZE = $8764;
2120   GL_BUFFER_USAGE = $8765;
2121   GL_QUERY_COUNTER_BITS = $8864;
2122   GL_CURRENT_QUERY = $8865;
2123   GL_QUERY_RESULT = $8866;
2124   GL_QUERY_RESULT_AVAILABLE = $8867;
2125   GL_ARRAY_BUFFER = $8892;
2126   GL_ELEMENT_ARRAY_BUFFER = $8893;
2127   GL_ARRAY_BUFFER_BINDING = $8894;
2128   GL_ELEMENT_ARRAY_BUFFER_BINDING = $8895;
2129   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = $889F;
2130   GL_READ_ONLY = $88B8;
2131   GL_WRITE_ONLY = $88B9;
2132   GL_READ_WRITE = $88BA;
2133   GL_BUFFER_ACCESS = $88BB;
2134   GL_BUFFER_MAPPED = $88BC;
2135   GL_BUFFER_MAP_POINTER = $88BD;
2136   GL_STREAM_DRAW = $88E0;
2137   GL_STREAM_READ = $88E1;
2138   GL_STREAM_COPY = $88E2;
2139   GL_STATIC_DRAW = $88E4;
2140   GL_STATIC_READ = $88E5;
2141   GL_STATIC_COPY = $88E6;
2142   GL_DYNAMIC_DRAW = $88E8;
2143   GL_DYNAMIC_READ = $88E9;
2144   GL_DYNAMIC_COPY = $88EA;
2145   GL_SAMPLES_PASSED = $8914;
2146 {$ifdef DGL_DEPRECATED}
2147   GL_VERTEX_ARRAY_BUFFER_BINDING = $8896;
2148   GL_NORMAL_ARRAY_BUFFER_BINDING = $8897;
2149   GL_COLOR_ARRAY_BUFFER_BINDING = $8898;
2150   GL_INDEX_ARRAY_BUFFER_BINDING = $8899;
2151   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = $889A;
2152   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = $889B;
2153   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = $889C;
2154   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = $889D;
2155   GL_WEIGHT_ARRAY_BUFFER_BINDING = $889E;
2156   GL_FOG_COORD_SRC = $8450;
2157   GL_FOG_COORD = $8451;
2158   GL_CURRENT_FOG_COORD = $8453;
2159   GL_FOG_COORD_ARRAY_TYPE = $8454;
2160   GL_FOG_COORD_ARRAY_STRIDE = $8455;
2161   GL_FOG_COORD_ARRAY_POINTER = $8456;
2162   GL_FOG_COORD_ARRAY = $8457;
2163   GL_FOG_COORD_ARRAY_BUFFER_BINDING = $889D;
2164   GL_SRC0_RGB = $8580;
2165   GL_SRC1_RGB = $8581;
2166   GL_SRC2_RGB = $8582;
2167   GL_SRC0_ALPHA = $8588;
2168   GL_SRC1_ALPHA = $8589;
2169   GL_SRC2_ALPHA = $858A;
2170 {$endif}
2171
2172   // GL_VERSION_2_0
2173   GL_BLEND_EQUATION_RGB = $8009;
2174   GL_VERTEX_ATTRIB_ARRAY_ENABLED = $8622;
2175   GL_VERTEX_ATTRIB_ARRAY_SIZE = $8623;
2176   GL_VERTEX_ATTRIB_ARRAY_STRIDE = $8624;
2177   GL_VERTEX_ATTRIB_ARRAY_TYPE = $8625;
2178   GL_CURRENT_VERTEX_ATTRIB = $8626;
2179   GL_VERTEX_PROGRAM_POINT_SIZE = $8642;
2180   GL_VERTEX_ATTRIB_ARRAY_POINTER = $8645;
2181   GL_STENCIL_BACK_FUNC = $8800;
2182   GL_STENCIL_BACK_FAIL = $8801;
2183   GL_STENCIL_BACK_PASS_DEPTH_FAIL = $8802;
2184   GL_STENCIL_BACK_PASS_DEPTH_PASS = $8803;
2185   GL_MAX_DRAW_BUFFERS = $8824;
2186   GL_DRAW_BUFFER0 = $8825;
2187   GL_DRAW_BUFFER1 = $8826;
2188   GL_DRAW_BUFFER2 = $8827;
2189   GL_DRAW_BUFFER3 = $8828;
2190   GL_DRAW_BUFFER4 = $8829;
2191   GL_DRAW_BUFFER5 = $882A;
2192   GL_DRAW_BUFFER6 = $882B;
2193   GL_DRAW_BUFFER7 = $882C;
2194   GL_DRAW_BUFFER8 = $882D;
2195   GL_DRAW_BUFFER9 = $882E;
2196   GL_DRAW_BUFFER10 = $882F;
2197   GL_DRAW_BUFFER11 = $8830;
2198   GL_DRAW_BUFFER12 = $8831;
2199   GL_DRAW_BUFFER13 = $8832;
2200   GL_DRAW_BUFFER14 = $8833;
2201   GL_DRAW_BUFFER15 = $8834;
2202   GL_BLEND_EQUATION_ALPHA = $883D;
2203   GL_MAX_VERTEX_ATTRIBS = $8869;
2204   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = $886A;
2205   GL_MAX_TEXTURE_IMAGE_UNITS = $8872;
2206   GL_FRAGMENT_SHADER = $8B30;
2207   GL_VERTEX_SHADER = $8B31;
2208   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = $8B49;
2209   GL_MAX_VERTEX_UNIFORM_COMPONENTS = $8B4A;
2210   GL_MAX_VARYING_FLOATS = $8B4B;
2211   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = $8B4C;
2212   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = $8B4D;
2213   GL_SHADER_TYPE = $8B4F;
2214   GL_FLOAT_VEC2 = $8B50;
2215   GL_FLOAT_VEC3 = $8B51;
2216   GL_FLOAT_VEC4 = $8B52;
2217   GL_INT_VEC2 = $8B53;
2218   GL_INT_VEC3 = $8B54;
2219   GL_INT_VEC4 = $8B55;
2220   GL_BOOL = $8B56;
2221   GL_BOOL_VEC2 = $8B57;
2222   GL_BOOL_VEC3 = $8B58;
2223   GL_BOOL_VEC4 = $8B59;
2224   GL_FLOAT_MAT2 = $8B5A;
2225   GL_FLOAT_MAT3 = $8B5B;
2226   GL_FLOAT_MAT4 = $8B5C;
2227   GL_SAMPLER_1D = $8B5D;
2228   GL_SAMPLER_2D = $8B5E;
2229   GL_SAMPLER_3D = $8B5F;
2230   GL_SAMPLER_CUBE = $8B60;
2231   GL_SAMPLER_1D_SHADOW = $8B61;
2232   GL_SAMPLER_2D_SHADOW = $8B62;
2233   GL_DELETE_STATUS = $8B80;
2234   GL_COMPILE_STATUS = $8B81;
2235   GL_LINK_STATUS = $8B82;
2236   GL_VALIDATE_STATUS = $8B83;
2237   GL_INFO_LOG_LENGTH = $8B84;
2238   GL_ATTACHED_SHADERS = $8B85;
2239   GL_ACTIVE_UNIFORMS = $8B86;
2240   GL_ACTIVE_UNIFORM_MAX_LENGTH = $8B87;
2241   GL_SHADER_SOURCE_LENGTH = $8B88;
2242   GL_ACTIVE_ATTRIBUTES = $8B89;
2243   GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = $8B8A;
2244   GL_FRAGMENT_SHADER_DERIVATIVE_HINT = $8B8B;
2245   GL_SHADING_LANGUAGE_VERSION = $8B8C;
2246   GL_CURRENT_PROGRAM = $8B8D;
2247   GL_POINT_SPRITE_COORD_ORIGIN = $8CA0;
2248   GL_LOWER_LEFT = $8CA1;
2249   GL_UPPER_LEFT = $8CA2;
2250   GL_STENCIL_BACK_REF = $8CA3;
2251   GL_STENCIL_BACK_VALUE_MASK = $8CA4;
2252   GL_STENCIL_BACK_WRITEMASK = $8CA5;
2253 {$ifdef DGL_DEPRECATED}
2254   GL_VERTEX_PROGRAM_TWO_SIDE = $8643;
2255   GL_POINT_SPRITE = $8861;
2256   GL_COORD_REPLACE = $8862;
2257   GL_MAX_TEXTURE_COORDS = $8871;
2258 {$endif}
2259
2260   // GL_VERSION_2_1
2261   GL_PIXEL_PACK_BUFFER = $88EB;
2262   GL_PIXEL_UNPACK_BUFFER = $88EC;
2263   GL_PIXEL_PACK_BUFFER_BINDING = $88ED;
2264   GL_PIXEL_UNPACK_BUFFER_BINDING = $88EF;
2265   GL_FLOAT_MAT2x3 = $8B65;
2266   GL_FLOAT_MAT2x4 = $8B66;
2267   GL_FLOAT_MAT3x2 = $8B67;
2268   GL_FLOAT_MAT3x4 = $8B68;
2269   GL_FLOAT_MAT4x2 = $8B69;
2270   GL_FLOAT_MAT4x3 = $8B6A;
2271   GL_SRGB = $8C40;
2272   GL_SRGB8 = $8C41;
2273   GL_SRGB_ALPHA = $8C42;
2274   GL_SRGB8_ALPHA8 = $8C43;
2275   GL_COMPRESSED_SRGB = $8C48;
2276   GL_COMPRESSED_SRGB_ALPHA = $8C49;
2277 {$ifdef DGL_DEPRECATED}
2278   GL_CURRENT_RASTER_SECONDARY_COLOR = $845F;
2279   GL_SLUMINANCE_ALPHA = $8C44;
2280   GL_SLUMINANCE8_ALPHA8 = $8C45;
2281   GL_SLUMINANCE = $8C46;
2282   GL_SLUMINANCE8 = $8C47;
2283   GL_COMPRESSED_SLUMINANCE = $8C4A;
2284   GL_COMPRESSED_SLUMINANCE_ALPHA = $8C4B;
2285 {$endif}
2286
2287   // GL_VERSION_3_0
2288   GL_COMPARE_REF_TO_TEXTURE = $884E;
2289   GL_CLIP_DISTANCE0 = $3000;
2290   GL_CLIP_DISTANCE1 = $3001;
2291   GL_CLIP_DISTANCE2 = $3002;
2292   GL_CLIP_DISTANCE3 = $3003;
2293   GL_CLIP_DISTANCE4 = $3004;
2294   GL_CLIP_DISTANCE5 = $3005;
2295   GL_CLIP_DISTANCE6 = $3006;
2296   GL_CLIP_DISTANCE7 = $3007;
2297   GL_MAX_CLIP_DISTANCES = $0D32;
2298   GL_MAJOR_VERSION = $821B;
2299   GL_MINOR_VERSION = $821C;
2300   GL_NUM_EXTENSIONS = $821D;
2301   GL_CONTEXT_FLAGS = $821E;
2302   GL_DEPTH_BUFFER = $8223;
2303   GL_STENCIL_BUFFER = $8224;
2304   GL_COMPRESSED_RED = $8225;
2305   GL_COMPRESSED_RG = $8226;
2306   GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = $0001;
2307   GL_RGBA32F = $8814;
2308   GL_RGB32F = $8815;
2309   GL_RGBA16F = $881A;
2310   GL_RGB16F = $881B;
2311   GL_VERTEX_ATTRIB_ARRAY_INTEGER = $88FD;
2312   GL_MAX_ARRAY_TEXTURE_LAYERS = $88FF;
2313   GL_MIN_PROGRAM_TEXEL_OFFSET = $8904;
2314   GL_MAX_PROGRAM_TEXEL_OFFSET = $8905;
2315   GL_CLAMP_READ_COLOR = $891C;
2316   GL_FIXED_ONLY = $891D;
2317   GL_MAX_VARYING_COMPONENTS = $8B4B;
2318   GL_TEXTURE_1D_ARRAY = $8C18;
2319   GL_PROXY_TEXTURE_1D_ARRAY = $8C19;
2320   GL_TEXTURE_2D_ARRAY = $8C1A;
2321   GL_PROXY_TEXTURE_2D_ARRAY = $8C1B;
2322   GL_TEXTURE_BINDING_1D_ARRAY = $8C1C;
2323   GL_TEXTURE_BINDING_2D_ARRAY = $8C1D;
2324   GL_R11F_G11F_B10F = $8C3A;
2325   GL_UNSIGNED_INT_10F_11F_11F_REV = $8C3B;
2326   GL_RGB9_E5 = $8C3D;
2327   GL_UNSIGNED_INT_5_9_9_9_REV = $8C3E;
2328   GL_TEXTURE_SHARED_SIZE = $8C3F;
2329   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = $8C76;
2330   GL_TRANSFORM_FEEDBACK_BUFFER_MODE = $8C7F;
2331   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = $8C80;
2332   GL_TRANSFORM_FEEDBACK_VARYINGS = $8C83;
2333   GL_TRANSFORM_FEEDBACK_BUFFER_START = $8C84;
2334   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = $8C85;
2335   GL_PRIMITIVES_GENERATED = $8C87;
2336   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = $8C88;
2337   GL_RASTERIZER_DISCARD = $8C89;
2338   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = $8C8A;
2339   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = $8C8B;
2340   GL_INTERLEAVED_ATTRIBS = $8C8C;
2341   GL_SEPARATE_ATTRIBS = $8C8D;
2342   GL_TRANSFORM_FEEDBACK_BUFFER = $8C8E;
2343   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = $8C8F;
2344   GL_RGBA32UI = $8D70;
2345   GL_RGB32UI = $8D71;
2346   GL_RGBA16UI = $8D76;
2347   GL_RGB16UI = $8D77;
2348   GL_RGBA8UI = $8D7C;
2349   GL_RGB8UI = $8D7D;
2350   GL_RGBA32I = $8D82;
2351   GL_RGB32I = $8D83;
2352   GL_RGBA16I = $8D88;
2353   GL_RGB16I = $8D89;
2354   GL_RGBA8I = $8D8E;
2355   GL_RGB8I = $8D8F;
2356   GL_RED_INTEGER = $8D94;
2357   GL_GREEN_INTEGER = $8D95;
2358   GL_BLUE_INTEGER = $8D96;
2359   GL_RGB_INTEGER = $8D98;
2360   GL_RGBA_INTEGER = $8D99;
2361   GL_BGR_INTEGER = $8D9A;
2362   GL_BGRA_INTEGER = $8D9B;
2363   GL_SAMPLER_1D_ARRAY = $8DC0;
2364   GL_SAMPLER_2D_ARRAY = $8DC1;
2365   GL_SAMPLER_1D_ARRAY_SHADOW = $8DC3;
2366   GL_SAMPLER_2D_ARRAY_SHADOW = $8DC4;
2367   GL_SAMPLER_CUBE_SHADOW = $8DC5;
2368   GL_UNSIGNED_INT_VEC2 = $8DC6;
2369   GL_UNSIGNED_INT_VEC3 = $8DC7;
2370   GL_UNSIGNED_INT_VEC4 = $8DC8;
2371   GL_INT_SAMPLER_1D = $8DC9;
2372   GL_INT_SAMPLER_2D = $8DCA;
2373   GL_INT_SAMPLER_3D = $8DCB;
2374   GL_INT_SAMPLER_CUBE = $8DCC;
2375   GL_INT_SAMPLER_1D_ARRAY = $8DCE;
2376   GL_INT_SAMPLER_2D_ARRAY = $8DCF;
2377   GL_UNSIGNED_INT_SAMPLER_1D = $8DD1;
2378   GL_UNSIGNED_INT_SAMPLER_2D = $8DD2;
2379   GL_UNSIGNED_INT_SAMPLER_3D = $8DD3;
2380   GL_UNSIGNED_INT_SAMPLER_CUBE = $8DD4;
2381   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = $8DD6;
2382   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = $8DD7;
2383   GL_QUERY_WAIT = $8E13;
2384   GL_QUERY_NO_WAIT = $8E14;
2385   GL_QUERY_BY_REGION_WAIT = $8E15;
2386   GL_QUERY_BY_REGION_NO_WAIT = $8E16;
2387   GL_BUFFER_ACCESS_FLAGS = $911F;
2388   GL_BUFFER_MAP_LENGTH = $9120;
2389   GL_BUFFER_MAP_OFFSET = $9121;
2390   { Reuse tokens from ARB_depth_buffer_float }
2391   { reuse GL_DEPTH_COMPONENT32F }
2392   { reuse GL_DEPTH32F_STENCIL8 }
2393   { reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV }
2394   { Reuse tokens from ARB_framebuffer_object }
2395   { reuse GL_INVALID_FRAMEBUFFER_OPERATION }
2396   { reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING }
2397   { reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE }
2398   { reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE }
2399   { reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE }
2400   { reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE }
2401   { reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE }
2402   { reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE }
2403   { reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE }
2404   { reuse GL_FRAMEBUFFER_DEFAULT }
2405   { reuse GL_FRAMEBUFFER_UNDEFINED }
2406   { reuse GL_DEPTH_STENCIL_ATTACHMENT }
2407   { reuse GL_INDEX }
2408   { reuse GL_MAX_RENDERBUFFER_SIZE }
2409   { reuse GL_DEPTH_STENCIL }
2410   { reuse GL_UNSIGNED_INT_24_8 }
2411   { reuse GL_DEPTH24_STENCIL8 }
2412   { reuse GL_TEXTURE_STENCIL_SIZE }
2413   { reuse GL_TEXTURE_RED_TYPE }
2414   { reuse GL_TEXTURE_GREEN_TYPE }
2415   { reuse GL_TEXTURE_BLUE_TYPE }
2416   { reuse GL_TEXTURE_ALPHA_TYPE }
2417   { reuse GL_TEXTURE_DEPTH_TYPE }
2418   { reuse GL_UNSIGNED_NORMALIZED }
2419   { reuse GL_FRAMEBUFFER_BINDING }
2420   { reuse GL_DRAW_FRAMEBUFFER_BINDING }
2421   { reuse GL_RENDERBUFFER_BINDING }
2422   { reuse GL_READ_FRAMEBUFFER }
2423   { reuse GL_DRAW_FRAMEBUFFER }
2424   { reuse GL_READ_FRAMEBUFFER_BINDING }
2425   { reuse GL_RENDERBUFFER_SAMPLES }
2426   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE }
2427   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME }
2428   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL }
2429   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE }
2430   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2431   { reuse GL_FRAMEBUFFER_COMPLETE }
2432   { reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT }
2433   { reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT }
2434   { reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER }
2435   { reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER }
2436   { reuse GL_FRAMEBUFFER_UNSUPPORTED }
2437   { reuse GL_MAX_COLOR_ATTACHMENTS }
2438   { reuse GL_COLOR_ATTACHMENT0 }
2439   { reuse GL_COLOR_ATTACHMENT1 }
2440   { reuse GL_COLOR_ATTACHMENT2 }
2441   { reuse GL_COLOR_ATTACHMENT3 }
2442   { reuse GL_COLOR_ATTACHMENT4 }
2443   { reuse GL_COLOR_ATTACHMENT5 }
2444   { reuse GL_COLOR_ATTACHMENT6 }
2445   { reuse GL_COLOR_ATTACHMENT7 }
2446   { reuse GL_COLOR_ATTACHMENT8 }
2447   { reuse GL_COLOR_ATTACHMENT9 }
2448   { reuse GL_COLOR_ATTACHMENT10 }
2449   { reuse GL_COLOR_ATTACHMENT11 }
2450   { reuse GL_COLOR_ATTACHMENT12 }
2451   { reuse GL_COLOR_ATTACHMENT13 }
2452   { reuse GL_COLOR_ATTACHMENT14 }
2453   { reuse GL_COLOR_ATTACHMENT15 }
2454   { reuse GL_DEPTH_ATTACHMENT }
2455   { reuse GL_STENCIL_ATTACHMENT }
2456   { reuse GL_FRAMEBUFFER }
2457   { reuse GL_RENDERBUFFER }
2458   { reuse GL_RENDERBUFFER_WIDTH }
2459   { reuse GL_RENDERBUFFER_HEIGHT }
2460   { reuse GL_RENDERBUFFER_INTERNAL_FORMAT }
2461   { reuse GL_STENCIL_INDEX1 }
2462   { reuse GL_STENCIL_INDEX4 }
2463   { reuse GL_STENCIL_INDEX8 }
2464   { reuse GL_STENCIL_INDEX16 }
2465   { reuse GL_RENDERBUFFER_RED_SIZE }
2466   { reuse GL_RENDERBUFFER_GREEN_SIZE }
2467   { reuse GL_RENDERBUFFER_BLUE_SIZE }
2468   { reuse GL_RENDERBUFFER_ALPHA_SIZE }
2469   { reuse GL_RENDERBUFFER_DEPTH_SIZE }
2470   { reuse GL_RENDERBUFFER_STENCIL_SIZE }
2471   { reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE }
2472   { reuse GL_MAX_SAMPLES }
2473   { Reuse tokens from ARB_framebuffer_sRGB }
2474   { reuse GL_FRAMEBUFFER_SRGB }
2475   { Reuse tokens from ARB_half_float_vertex }
2476   { reuse GL_HALF_FLOAT }
2477   { Reuse tokens from ARB_map_buffer_range }
2478   { reuse GL_MAP_READ_BIT }
2479   { reuse GL_MAP_WRITE_BIT }
2480   { reuse GL_MAP_INVALIDATE_RANGE_BIT }
2481   { reuse GL_MAP_INVALIDATE_BUFFER_BIT }
2482   { reuse GL_MAP_FLUSH_EXPLICIT_BIT }
2483   { reuse GL_MAP_UNSYNCHRONIZED_BIT }
2484   { Reuse tokens from ARB_texture_compression_rgtc }
2485   { reuse GL_COMPRESSED_RED_RGTC1 }
2486   { reuse GL_COMPRESSED_SIGNED_RED_RGTC1 }
2487   { reuse GL_COMPRESSED_RG_RGTC2 }
2488   { reuse GL_COMPRESSED_SIGNED_RG_RGTC2 }
2489   { Reuse tokens from ARB_texture_rg }
2490   { reuse GL_RG }
2491   { reuse GL_RG_INTEGER }
2492   { reuse GL_R8 }
2493   { reuse GL_R16 }
2494   { reuse GL_RG8 }
2495   { reuse GL_RG16 }
2496   { reuse GL_R16F }
2497   { reuse GL_R32F }
2498   { reuse GL_RG16F }
2499   { reuse GL_RG32F }
2500   { reuse GL_R8I }
2501   { reuse GL_R8UI }
2502   { reuse GL_R16I }
2503   { reuse GL_R16UI }
2504   { reuse GL_R32I }
2505   { reuse GL_R32UI }
2506   { reuse GL_RG8I }
2507   { reuse GL_RG8UI }
2508   { reuse GL_RG16I }
2509   { reuse GL_RG16UI }
2510   { reuse GL_RG32I }
2511   { reuse GL_RG32UI }
2512   { Reuse tokens from ARB_vertex_array_object }
2513   { reuse GL_VERTEX_ARRAY_BINDING }
2514 {$ifdef DGL_DEPRECATED}
2515   GL_CLAMP_VERTEX_COLOR = $891A;
2516   GL_CLAMP_FRAGMENT_COLOR = $891B;
2517   GL_ALPHA_INTEGER = $8D97;
2518   { Reuse tokens from ARB_framebuffer_object }
2519   { reuse GL_TEXTURE_LUMINANCE_TYPE }
2520   { reuse GL_TEXTURE_INTENSITY_TYPE }
2521 {$endif}
2522
2523   // GL_VERSION_3_1
2524   GL_SAMPLER_2D_RECT = $8B63;
2525   GL_SAMPLER_2D_RECT_SHADOW = $8B64;
2526   GL_SAMPLER_BUFFER = $8DC2;
2527   GL_INT_SAMPLER_2D_RECT = $8DCD;
2528   GL_INT_SAMPLER_BUFFER = $8DD0;
2529   GL_UNSIGNED_INT_SAMPLER_2D_RECT = $8DD5;
2530   GL_UNSIGNED_INT_SAMPLER_BUFFER = $8DD8;
2531   GL_TEXTURE_BUFFER = $8C2A;
2532   GL_MAX_TEXTURE_BUFFER_SIZE = $8C2B;
2533   GL_TEXTURE_BINDING_BUFFER = $8C2C;
2534   GL_TEXTURE_BUFFER_DATA_STORE_BINDING = $8C2D;
2535   GL_TEXTURE_BUFFER_FORMAT = $8C2E;
2536   GL_TEXTURE_RECTANGLE = $84F5;
2537   GL_TEXTURE_BINDING_RECTANGLE = $84F6;
2538   GL_PROXY_TEXTURE_RECTANGLE = $84F7;
2539   GL_MAX_RECTANGLE_TEXTURE_SIZE = $84F8;
2540   GL_RED_SNORM = $8F90;
2541   GL_RG_SNORM = $8F91;
2542   GL_RGB_SNORM = $8F92;
2543   GL_RGBA_SNORM = $8F93;
2544   GL_R8_SNORM = $8F94;
2545   GL_RG8_SNORM = $8F95;
2546   GL_RGB8_SNORM = $8F96;
2547   GL_RGBA8_SNORM = $8F97;
2548   GL_R16_SNORM = $8F98;
2549   GL_RG16_SNORM = $8F99;
2550   GL_RGB16_SNORM = $8F9A;
2551   GL_RGBA16_SNORM = $8F9B;
2552   GL_SIGNED_NORMALIZED = $8F9C;
2553   GL_PRIMITIVE_RESTART = $8F9D;
2554   GL_PRIMITIVE_RESTART_INDEX = $8F9E;
2555   { Reuse tokens from ARB_copy_buffer }
2556   { reuse GL_COPY_READ_BUFFER }
2557   { reuse GL_COPY_WRITE_BUFFER }
2558   { Reuse tokens from ARB_draw_instanced (none) }
2559   { Reuse tokens from ARB_uniform_buffer_object }
2560   { reuse GL_UNIFORM_BUFFER }
2561   { reuse GL_UNIFORM_BUFFER_BINDING }
2562   { reuse GL_UNIFORM_BUFFER_START }
2563   { reuse GL_UNIFORM_BUFFER_SIZE }
2564   { reuse GL_MAX_VERTEX_UNIFORM_BLOCKS }
2565   { reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS }
2566   { reuse GL_MAX_COMBINED_UNIFORM_BLOCKS }
2567   { reuse GL_MAX_UNIFORM_BUFFER_BINDINGS }
2568   { reuse GL_MAX_UNIFORM_BLOCK_SIZE }
2569   { reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS }
2570   { reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS }
2571   { reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT }
2572   { reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH }
2573   { reuse GL_ACTIVE_UNIFORM_BLOCKS }
2574   { reuse GL_UNIFORM_TYPE }
2575   { reuse GL_UNIFORM_SIZE }
2576   { reuse GL_UNIFORM_NAME_LENGTH }
2577   { reuse GL_UNIFORM_BLOCK_INDEX }
2578   { reuse GL_UNIFORM_OFFSET }
2579   { reuse GL_UNIFORM_ARRAY_STRIDE }
2580   { reuse GL_UNIFORM_MATRIX_STRIDE }
2581   { reuse GL_UNIFORM_IS_ROW_MAJOR }
2582   { reuse GL_UNIFORM_BLOCK_BINDING }
2583   { reuse GL_UNIFORM_BLOCK_DATA_SIZE }
2584   { reuse GL_UNIFORM_BLOCK_NAME_LENGTH }
2585   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS }
2586   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES }
2587   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER }
2588   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER }
2589   { reuse GL_INVALID_INDEX }
2590
2591   // GL_VERSION_3_2
2592   GL_CONTEXT_CORE_PROFILE_BIT = $00000001;
2593   GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = $00000002;
2594   GL_LINES_ADJACENCY = $000A;
2595   GL_LINE_STRIP_ADJACENCY = $000B;
2596   GL_TRIANGLES_ADJACENCY = $000C;
2597   GL_TRIANGLE_STRIP_ADJACENCY = $000D;
2598   GL_PROGRAM_POINT_SIZE = $8642;
2599   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = $8C29;
2600   GL_FRAMEBUFFER_ATTACHMENT_LAYERED = $8DA7;
2601   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = $8DA8;
2602   GL_GEOMETRY_SHADER = $8DD9;
2603   GL_GEOMETRY_VERTICES_OUT = $8916;
2604   GL_GEOMETRY_INPUT_TYPE = $8917;
2605   GL_GEOMETRY_OUTPUT_TYPE = $8918;
2606   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = $8DDF;
2607   GL_MAX_GEOMETRY_OUTPUT_VERTICES = $8DE0;
2608   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = $8DE1;
2609   GL_MAX_VERTEX_OUTPUT_COMPONENTS = $9122;
2610   GL_MAX_GEOMETRY_INPUT_COMPONENTS = $9123;
2611   GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = $9124;
2612   GL_MAX_FRAGMENT_INPUT_COMPONENTS = $9125;
2613   GL_CONTEXT_PROFILE_MASK = $9126;
2614   { reuse GL_MAX_VARYING_COMPONENTS }
2615   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2616   { Reuse tokens from ARB_depth_clamp }
2617   { reuse GL_DEPTH_CLAMP }
2618   { Reuse tokens from ARB_draw_elements_base_vertex (none) }
2619   { Reuse tokens from ARB_fragment_coord_conventions (none) }
2620   { Reuse tokens from ARB_provoking_vertex }
2621   { reuse GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION }
2622   { reuse GL_FIRST_VERTEX_CONVENTION }
2623   { reuse GL_LAST_VERTEX_CONVENTION }
2624   { reuse GL_PROVOKING_VERTEX }
2625   { Reuse tokens from ARB_seamless_cube_map }
2626   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
2627   { Reuse tokens from ARB_sync }
2628   { reuse GL_MAX_SERVER_WAIT_TIMEOUT }
2629   { reuse GL_OBJECT_TYPE }
2630   { reuse GL_SYNC_CONDITION }
2631   { reuse GL_SYNC_STATUS }
2632   { reuse GL_SYNC_FLAGS }
2633   { reuse GL_SYNC_FENCE }
2634   { reuse GL_SYNC_GPU_COMMANDS_COMPLETE }
2635   { reuse GL_UNSIGNALED }
2636   { reuse GL_SIGNALED }
2637   { reuse GL_ALREADY_SIGNALED }
2638   { reuse GL_TIMEOUT_EXPIRED }
2639   { reuse GL_CONDITION_SATISFIED }
2640   { reuse GL_WAIT_FAILED }
2641   { reuse GL_TIMEOUT_IGNORED }
2642   { reuse GL_SYNC_FLUSH_COMMANDS_BIT }
2643   { reuse GL_TIMEOUT_IGNORED }
2644   { Reuse tokens from ARB_texture_multisample }
2645   { reuse GL_SAMPLE_POSITION }
2646   { reuse GL_SAMPLE_MASK }
2647   { reuse GL_SAMPLE_MASK_VALUE }
2648   { reuse GL_MAX_SAMPLE_MASK_WORDS }
2649   { reuse GL_TEXTURE_2D_MULTISAMPLE }
2650   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE }
2651   { reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY }
2652   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY }
2653   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE }
2654   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY }
2655   { reuse GL_TEXTURE_SAMPLES }
2656   { reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS }
2657   { reuse GL_SAMPLER_2D_MULTISAMPLE }
2658   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE }
2659   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE }
2660   { reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY }
2661   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2662   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2663   { reuse GL_MAX_COLOR_TEXTURE_SAMPLES }
2664   { reuse GL_MAX_DEPTH_TEXTURE_SAMPLES }
2665   { reuse GL_MAX_INTEGER_SAMPLES }
2666   { Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core }
2667
2668   // GL_VERSION_3_3
2669   GL_VERTEX_ATTRIB_ARRAY_DIVISOR = $88FE;
2670   { Reuse tokens from ARB_blend_func_extended }
2671   { reuse GL_SRC1_COLOR }
2672   { reuse GL_ONE_MINUS_SRC1_COLOR }
2673   { reuse GL_ONE_MINUS_SRC1_ALPHA }
2674   { reuse GL_MAX_DUAL_SOURCE_DRAW_BUFFERS }
2675   { Reuse tokens from ARB_explicit_attrib_location (none) }
2676   { Reuse tokens from ARB_occlusion_query2 }
2677   { reuse GL_ANY_SAMPLES_PASSED }
2678   { Reuse tokens from ARB_sampler_objects }
2679   { reuse GL_SAMPLER_BINDING }
2680   { Reuse tokens from ARB_shader_bit_encoding (none) }
2681   { Reuse tokens from ARB_texture_rgb10_a2ui }
2682   { reuse GL_RGB10_A2UI }
2683   { Reuse tokens from ARB_texture_swizzle }
2684   { reuse GL_TEXTURE_SWIZZLE_R }
2685   { reuse GL_TEXTURE_SWIZZLE_G }
2686   { reuse GL_TEXTURE_SWIZZLE_B }
2687   { reuse GL_TEXTURE_SWIZZLE_A }
2688   { reuse GL_TEXTURE_SWIZZLE_RGBA }
2689   { Reuse tokens from ARB_timer_query }
2690   { reuse GL_TIME_ELAPSED }
2691   { reuse GL_TIMESTAMP }
2692   { Reuse tokens from ARB_vertex_type_2_10_10_10_rev }
2693   { reuse GL_INT_2_10_10_10_REV }
2694
2695   // GL_VERSION_4_0
2696   GL_SAMPLE_SHADING = $8C36;
2697   GL_MIN_SAMPLE_SHADING_VALUE = $8C37;
2698   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5E;
2699   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5F;
2700   GL_TEXTURE_CUBE_MAP_ARRAY = $9009;
2701   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = $900A;
2702   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = $900B;
2703   GL_SAMPLER_CUBE_MAP_ARRAY = $900C;
2704   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = $900D;
2705   GL_INT_SAMPLER_CUBE_MAP_ARRAY = $900E;
2706   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = $900F;
2707   { Reuse tokens from ARB_texture_query_lod (none) }
2708   { Reuse tokens from ARB_draw_buffers_blend (none) }
2709   { Reuse tokens from ARB_draw_indirect }
2710   { reuse GL_DRAW_INDIRECT_BUFFER }
2711   { reuse GL_DRAW_INDIRECT_BUFFER_BINDING }
2712   { Reuse tokens from ARB_gpu_shader5 }
2713   { reuse GL_GEOMETRY_SHADER_INVOCATIONS }
2714   { reuse GL_MAX_GEOMETRY_SHADER_INVOCATIONS }
2715   { reuse GL_MIN_FRAGMENT_INTERPOLATION_OFFSET }
2716   { reuse GL_MAX_FRAGMENT_INTERPOLATION_OFFSET }
2717   { reuse GL_FRAGMENT_INTERPOLATION_OFFSET_BITS }
2718   { reuse GL_MAX_VERTEX_STREAMS }
2719   { Reuse tokens from ARB_gpu_shader_fp64 }
2720   { reuse GL_DOUBLE_VEC2 }
2721   { reuse GL_DOUBLE_VEC3 }
2722   { reuse GL_DOUBLE_VEC4 }
2723   { reuse GL_DOUBLE_MAT2 }
2724   { reuse GL_DOUBLE_MAT3 }
2725   { reuse GL_DOUBLE_MAT4 }
2726   { reuse GL_DOUBLE_MAT2x3 }
2727   { reuse GL_DOUBLE_MAT2x4 }
2728   { reuse GL_DOUBLE_MAT3x2 }
2729   { reuse GL_DOUBLE_MAT3x4 }
2730   { reuse GL_DOUBLE_MAT4x2 }
2731   { reuse GL_DOUBLE_MAT4x3 }
2732   { Reuse tokens from ARB_shader_subroutine }
2733   { reuse GL_ACTIVE_SUBROUTINES }
2734   { reuse GL_ACTIVE_SUBROUTINE_UNIFORMS }
2735   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS }
2736   { reuse GL_ACTIVE_SUBROUTINE_MAX_LENGTH }
2737   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH }
2738   { reuse GL_MAX_SUBROUTINES }
2739   { reuse GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS }
2740   { reuse GL_NUM_COMPATIBLE_SUBROUTINES }
2741   { reuse GL_COMPATIBLE_SUBROUTINES }
2742   { Reuse tokens from ARB_tessellation_shader }
2743   { reuse GL_PATCHES }
2744   { reuse GL_PATCH_VERTICES }
2745   { reuse GL_PATCH_DEFAULT_INNER_LEVEL }
2746   { reuse GL_PATCH_DEFAULT_OUTER_LEVEL }
2747   { reuse GL_TESS_CONTROL_OUTPUT_VERTICES }
2748   { reuse GL_TESS_GEN_MODE }
2749   { reuse GL_TESS_GEN_SPACING }
2750   { reuse GL_TESS_GEN_VERTEX_ORDER }
2751   { reuse GL_TESS_GEN_POINT_MODE }
2752   { reuse GL_ISOLINES }
2753   { reuse GL_FRACTIONAL_ODD }
2754   { reuse GL_FRACTIONAL_EVEN }
2755   { reuse GL_MAX_PATCH_VERTICES }
2756   { reuse GL_MAX_TESS_GEN_LEVEL }
2757   { reuse GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS }
2758   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS }
2759   { reuse GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS }
2760   { reuse GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS }
2761   { reuse GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS }
2762   { reuse GL_MAX_TESS_PATCH_COMPONENTS }
2763   { reuse GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS }
2764   { reuse GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS }
2765   { reuse GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS }
2766   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS }
2767   { reuse GL_MAX_TESS_CONTROL_INPUT_COMPONENTS }
2768   { reuse GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS }
2769   { reuse GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS }
2770   { reuse GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS }
2771   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER }
2772   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER }
2773   { reuse GL_TESS_EVALUATION_SHADER }
2774   { reuse GL_TESS_CONTROL_SHADER }
2775   { Reuse tokens from ARB_texture_buffer_object_rgb32 (none) }
2776   { Reuse tokens from ARB_transform_feedback2 }
2777   { reuse GL_TRANSFORM_FEEDBACK }
2778   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED }
2779   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE }
2780   { reuse GL_TRANSFORM_FEEDBACK_BINDING }
2781   { Reuse tokens from ARB_transform_feedback3 }
2782   { reuse GL_MAX_TRANSFORM_FEEDBACK_BUFFERS }
2783   { reuse GL_MAX_VERTEX_STREAMS }
2784
2785   // GL_VERSION_4_1
2786   { Reuse tokens from ARB_ES2_compatibility }
2787   { reuse GL_FIXED }
2788   { reuse GL_IMPLEMENTATION_COLOR_READ_TYPE }
2789   { reuse GL_IMPLEMENTATION_COLOR_READ_FORMAT }
2790   { reuse GL_LOW_FLOAT }
2791   { reuse GL_MEDIUM_FLOAT }
2792   { reuse GL_HIGH_FLOAT }
2793   { reuse GL_LOW_INT }
2794   { reuse GL_MEDIUM_INT }
2795   { reuse GL_HIGH_INT }
2796   { reuse GL_SHADER_COMPILER }
2797   { reuse GL_NUM_SHADER_BINARY_FORMATS }
2798   { reuse GL_MAX_VERTEX_UNIFORM_VECTORS }
2799   { reuse GL_MAX_VARYING_VECTORS }
2800   { reuse GL_MAX_FRAGMENT_UNIFORM_VECTORS }
2801   { reuse GL_RGB565 }
2802   { Reuse tokens from ARB_get_program_binary }
2803   { reuse GL_PROGRAM_BINARY_RETRIEVABLE_HINT }
2804   { reuse GL_PROGRAM_BINARY_LENGTH }
2805   { reuse GL_NUM_PROGRAM_BINARY_FORMATS }
2806   { reuse GL_PROGRAM_BINARY_FORMATS }
2807   { Reuse tokens from ARB_separate_shader_objects }
2808   { reuse GL_VERTEX_SHADER_BIT }
2809   { reuse GL_FRAGMENT_SHADER_BIT }
2810   { reuse GL_GEOMETRY_SHADER_BIT }
2811   { reuse GL_TESS_CONTROL_SHADER_BIT }
2812   { reuse GL_TESS_EVALUATION_SHADER_BIT }
2813   { reuse GL_ALL_SHADER_BITS }
2814   { reuse GL_PROGRAM_SEPARABLE }
2815   { reuse GL_ACTIVE_PROGRAM }
2816   { reuse GL_PROGRAM_PIPELINE_BINDING }
2817   { Reuse tokens from ARB_shader_precision (none) }
2818   { Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already }
2819   { Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already }
2820   { reuse GL_MAX_VIEWPORTS }
2821   { reuse GL_VIEWPORT_SUBPIXEL_BITS }
2822   { reuse GL_VIEWPORT_BOUNDS_RANGE }
2823   { reuse GL_LAYER_PROVOKING_VERTEX }
2824   { reuse GL_VIEWPORT_INDEX_PROVOKING_VERTEX }
2825   { reuse GL_UNDEFINED_VERTEX }
2826
2827   // GL_VERSION_4_2
2828   { Reuse tokens from ARB_base_instance (none) }
2829   { Reuse tokens from ARB_shading_language_420pack (none) }
2830   { Reuse tokens from ARB_transform_feedback_instanced (none) }
2831   { Reuse tokens from ARB_compressed_texture_pixel_storage }
2832   { reuse GL_UNPACK_COMPRESSED_BLOCK_WIDTH }
2833   { reuse GL_UNPACK_COMPRESSED_BLOCK_HEIGHT }
2834   { reuse GL_UNPACK_COMPRESSED_BLOCK_DEPTH }
2835   { reuse GL_UNPACK_COMPRESSED_BLOCK_SIZE }
2836   { reuse GL_PACK_COMPRESSED_BLOCK_WIDTH }
2837   { reuse GL_PACK_COMPRESSED_BLOCK_HEIGHT }
2838   { reuse GL_PACK_COMPRESSED_BLOCK_DEPTH }
2839   { reuse GL_PACK_COMPRESSED_BLOCK_SIZE }
2840   { Reuse tokens from ARB_conservative_depth (none) }
2841   { Reuse tokens from ARB_internalformat_query }
2842   { reuse GL_NUM_SAMPLE_COUNTS }
2843   { Reuse tokens from ARB_map_buffer_alignment }
2844   { reuse GL_MIN_MAP_BUFFER_ALIGNMENT }
2845   { Reuse tokens from ARB_shader_atomic_counters }
2846   { reuse GL_ATOMIC_COUNTER_BUFFER }
2847   { reuse GL_ATOMIC_COUNTER_BUFFER_BINDING }
2848   { reuse GL_ATOMIC_COUNTER_BUFFER_START }
2849   { reuse GL_ATOMIC_COUNTER_BUFFER_SIZE }
2850   { reuse GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE }
2851   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS }
2852   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES }
2853   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER }
2854   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER }
2855   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER }
2856   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER }
2857   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER }
2858   { reuse GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS }
2859   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS }
2860   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS }
2861   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS }
2862   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS }
2863   { reuse GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS }
2864   { reuse GL_MAX_VERTEX_ATOMIC_COUNTERS }
2865   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS }
2866   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS }
2867   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTERS }
2868   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTERS }
2869   { reuse GL_MAX_COMBINED_ATOMIC_COUNTERS }
2870   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE }
2871   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS }
2872   { reuse GL_ACTIVE_ATOMIC_COUNTER_BUFFERS }
2873   { reuse GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX }
2874   { reuse GL_UNSIGNED_INT_ATOMIC_COUNTER }
2875   { Reuse tokens from ARB_shader_image_load_store }
2876   { reuse GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT }
2877   { reuse GL_ELEMENT_ARRAY_BARRIER_BIT }
2878   { reuse GL_UNIFORM_BARRIER_BIT }
2879   { reuse GL_TEXTURE_FETCH_BARRIER_BIT }
2880   { reuse GL_SHADER_IMAGE_ACCESS_BARRIER_BIT }
2881   { reuse GL_COMMAND_BARRIER_BIT }
2882   { reuse GL_PIXEL_BUFFER_BARRIER_BIT }
2883   { reuse GL_TEXTURE_UPDATE_BARRIER_BIT }
2884   { reuse GL_BUFFER_UPDATE_BARRIER_BIT }
2885   { reuse GL_FRAMEBUFFER_BARRIER_BIT }
2886   { reuse GL_TRANSFORM_FEEDBACK_BARRIER_BIT }
2887   { reuse GL_ATOMIC_COUNTER_BARRIER_BIT }
2888   { reuse GL_ALL_BARRIER_BITS }
2889   { reuse GL_MAX_IMAGE_UNITS }
2890   { reuse GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS }
2891   { reuse GL_IMAGE_BINDING_NAME }
2892   { reuse GL_IMAGE_BINDING_LEVEL }
2893   { reuse GL_IMAGE_BINDING_LAYERED }
2894   { reuse GL_IMAGE_BINDING_LAYER }
2895   { reuse GL_IMAGE_BINDING_ACCESS }
2896   { reuse GL_IMAGE_1D }
2897   { reuse GL_IMAGE_2D }
2898   { reuse GL_IMAGE_3D }
2899   { reuse GL_IMAGE_2D_RECT }
2900   { reuse GL_IMAGE_CUBE }
2901   { reuse GL_IMAGE_BUFFER }
2902   { reuse GL_IMAGE_1D_ARRAY }
2903   { reuse GL_IMAGE_2D_ARRAY }
2904   { reuse GL_IMAGE_CUBE_MAP_ARRAY }
2905   { reuse GL_IMAGE_2D_MULTISAMPLE }
2906   { reuse GL_IMAGE_2D_MULTISAMPLE_ARRAY }
2907   { reuse GL_INT_IMAGE_1D }
2908   { reuse GL_INT_IMAGE_2D }
2909   { reuse GL_INT_IMAGE_3D }
2910   { reuse GL_INT_IMAGE_2D_RECT }
2911   { reuse GL_INT_IMAGE_CUBE }
2912   { reuse GL_INT_IMAGE_BUFFER }
2913   { reuse GL_INT_IMAGE_1D_ARRAY }
2914   { reuse GL_INT_IMAGE_2D_ARRAY }
2915   { reuse GL_INT_IMAGE_CUBE_MAP_ARRAY }
2916   { reuse GL_INT_IMAGE_2D_MULTISAMPLE }
2917   { reuse GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2918   { reuse GL_UNSIGNED_INT_IMAGE_1D }
2919   { reuse GL_UNSIGNED_INT_IMAGE_2D }
2920   { reuse GL_UNSIGNED_INT_IMAGE_3D }
2921   { reuse GL_UNSIGNED_INT_IMAGE_2D_RECT }
2922   { reuse GL_UNSIGNED_INT_IMAGE_CUBE }
2923   { reuse GL_UNSIGNED_INT_IMAGE_BUFFER }
2924   { reuse GL_UNSIGNED_INT_IMAGE_1D_ARRAY }
2925   { reuse GL_UNSIGNED_INT_IMAGE_2D_ARRAY }
2926   { reuse GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY }
2927   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE }
2928   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2929   { reuse GL_MAX_IMAGE_SAMPLES }
2930   { reuse GL_IMAGE_BINDING_FORMAT }
2931   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_TYPE }
2932   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE }
2933   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS }
2934   { reuse GL_MAX_VERTEX_IMAGE_UNIFORMS }
2935   { reuse GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS }
2936   { reuse GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS }
2937   { reuse GL_MAX_GEOMETRY_IMAGE_UNIFORMS }
2938   { reuse GL_MAX_FRAGMENT_IMAGE_UNIFORMS }
2939   { reuse GL_MAX_COMBINED_IMAGE_UNIFORMS }
2940   { Reuse tokens from ARB_shading_language_packing (none) }
2941   { Reuse tokens from ARB_texture_storage }
2942   { reuse GL_TEXTURE_IMMUTABLE_FORMAT }
2943
2944   // GL_VERSION_4_3
2945   GL_NUM_SHADING_LANGUAGE_VERSIONS  = $82E9;
2946   GL_VERTEX_ATTRIB_ARRAY_LONG = $874E;
2947   { Reuse tokens from ARB_arrays_of_arrays (none, GLSL only) }
2948   { Reuse tokens from ARB_fragment_layer_viewport (none, GLSL only) }
2949   { Reuse tokens from ARB_shader_image_size (none, GLSL only) }
2950   { Reuse tokens from ARB_ES3_compatibility }
2951   { reuse GL_COMPRESSED_RGB8_ETC2 }
2952   { reuse GL_COMPRESSED_SRGB8_ETC2 }
2953   { reuse GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2954   { reuse GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2955   { reuse GL_COMPRESSED_RGBA8_ETC2_EAC }
2956   { reuse GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC }
2957   { reuse GL_COMPRESSED_R11_EAC }
2958   { reuse GL_COMPRESSED_SIGNED_R11_EAC }
2959   { reuse GL_COMPRESSED_RG11_EAC }
2960   { reuse GL_COMPRESSED_SIGNED_RG11_EAC }
2961   { reuse GL_PRIMITIVE_RESTART_FIXED_INDEX }
2962   { reuse GL_ANY_SAMPLES_PASSED_CONSERVATIVE }
2963   { reuse GL_MAX_ELEMENT_INDEX }
2964   { Reuse tokens from ARB_clear_buffer_object (none) }
2965   { Reuse tokens from ARB_compute_shader }
2966   { reuse GL_COMPUTE_SHADER }
2967   { reuse GL_MAX_COMPUTE_UNIFORM_BLOCKS }
2968   { reuse GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS }
2969   { reuse GL_MAX_COMPUTE_IMAGE_UNIFORMS }
2970   { reuse GL_MAX_COMPUTE_SHARED_MEMORY_SIZE }
2971   { reuse GL_MAX_COMPUTE_UNIFORM_COMPONENTS }
2972   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS }
2973   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTERS }
2974   { reuse GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS }
2975   { reuse GL_MAX_COMPUTE_LOCAL_INVOCATIONS }
2976   { reuse GL_MAX_COMPUTE_WORK_GROUP_COUNT }
2977   { reuse GL_MAX_COMPUTE_WORK_GROUP_SIZE }
2978   { reuse GL_COMPUTE_LOCAL_WORK_SIZE }
2979   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER }
2980   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER }
2981   { reuse GL_DISPATCH_INDIRECT_BUFFER }
2982   { reuse GL_DISPATCH_INDIRECT_BUFFER_BINDING }
2983   { Reuse tokens from ARB_copy_image (none) }
2984   { Reuse tokens from KHR_debug }
2985   { reuse GL_DEBUG_OUTPUT_SYNCHRONOUS }
2986   { reuse GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH }
2987   { reuse GL_DEBUG_CALLBACK_FUNCTION }
2988   { reuse GL_DEBUG_CALLBACK_USER_PARAM }
2989   { reuse GL_DEBUG_SOURCE_API }
2990   { reuse GL_DEBUG_SOURCE_WINDOW_SYSTEM }
2991   { reuse GL_DEBUG_SOURCE_SHADER_COMPILER }
2992   { reuse GL_DEBUG_SOURCE_THIRD_PARTY }
2993   { reuse GL_DEBUG_SOURCE_APPLICATION }
2994   { reuse GL_DEBUG_SOURCE_OTHER }
2995   { reuse GL_DEBUG_TYPE_ERROR }
2996   { reuse GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR }
2997   { reuse GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR }
2998   { reuse GL_DEBUG_TYPE_PORTABILITY }
2999   { reuse GL_DEBUG_TYPE_PERFORMANCE }
3000   { reuse GL_DEBUG_TYPE_OTHER }
3001   { reuse GL_MAX_DEBUG_MESSAGE_LENGTH }
3002   { reuse GL_MAX_DEBUG_LOGGED_MESSAGES }
3003   { reuse GL_DEBUG_LOGGED_MESSAGES }
3004   { reuse GL_DEBUG_SEVERITY_HIGH }
3005   { reuse GL_DEBUG_SEVERITY_MEDIUM }
3006   { reuse GL_DEBUG_SEVERITY_LOW }
3007   { reuse GL_DEBUG_TYPE_MARKER }
3008   { reuse GL_DEBUG_TYPE_PUSH_GROUP }
3009   { reuse GL_DEBUG_TYPE_POP_GROUP }
3010   { reuse GL_DEBUG_SEVERITY_NOTIFICATION }
3011   { reuse GL_MAX_DEBUG_GROUP_STACK_DEPTH }
3012   { reuse GL_DEBUG_GROUP_STACK_DEPTH }
3013   { reuse GL_BUFFER }
3014   { reuse GL_SHADER }
3015   { reuse GL_PROGRAM }
3016   { reuse GL_QUERY }
3017   { reuse GL_PROGRAM_PIPELINE }
3018   { reuse GL_SAMPLER }
3019   { reuse GL_DISPLAY_LIST }
3020   { reuse GL_MAX_LABEL_LENGTH }
3021   { reuse GL_DEBUG_OUTPUT }
3022   { reuse GL_CONTEXT_FLAG_DEBUG_BIT }
3023   { reuse GL_STACK_UNDERFLOW }
3024   { reuse GL_STACK_OVERFLOW }
3025   { Reuse tokens from ARB_explicit_uniform_location }
3026   { reuse GL_MAX_UNIFORM_LOCATIONS }
3027   { Reuse tokens from ARB_framebuffer_no_attachments }
3028   { reuse GL_FRAMEBUFFER_DEFAULT_WIDTH }
3029   { reuse GL_FRAMEBUFFER_DEFAULT_HEIGHT }
3030   { reuse GL_FRAMEBUFFER_DEFAULT_LAYERS }
3031   { reuse GL_FRAMEBUFFER_DEFAULT_SAMPLES }
3032   { reuse GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS }
3033   { reuse GL_MAX_FRAMEBUFFER_WIDTH }
3034   { reuse GL_MAX_FRAMEBUFFER_HEIGHT }
3035   { reuse GL_MAX_FRAMEBUFFER_LAYERS }
3036   { reuse GL_MAX_FRAMEBUFFER_SAMPLES }
3037   { Reuse tokens from ARB_internalformat_query2 }
3038   { reuse GL_INTERNALFORMAT_SUPPORTED }
3039   { reuse GL_INTERNALFORMAT_PREFERRED }
3040   { reuse GL_INTERNALFORMAT_RED_SIZE }
3041   { reuse GL_INTERNALFORMAT_GREEN_SIZE }
3042   { reuse GL_INTERNALFORMAT_BLUE_SIZE }
3043   { reuse GL_INTERNALFORMAT_ALPHA_SIZE }
3044   { reuse GL_INTERNALFORMAT_DEPTH_SIZE }
3045   { reuse GL_INTERNALFORMAT_STENCIL_SIZE }
3046   { reuse GL_INTERNALFORMAT_SHARED_SIZE }
3047   { reuse GL_INTERNALFORMAT_RED_TYPE }
3048   { reuse GL_INTERNALFORMAT_GREEN_TYPE }
3049   { reuse GL_INTERNALFORMAT_BLUE_TYPE }
3050   { reuse GL_INTERNALFORMAT_ALPHA_TYPE }
3051   { reuse GL_INTERNALFORMAT_DEPTH_TYPE }
3052   { reuse GL_INTERNALFORMAT_STENCIL_TYPE }
3053   { reuse GL_MAX_WIDTH }
3054   { reuse GL_MAX_HEIGHT }
3055   { reuse GL_MAX_DEPTH }
3056   { reuse GL_MAX_LAYERS }
3057   { reuse GL_MAX_COMBINED_DIMENSIONS }
3058   { reuse GL_COLOR_COMPONENTS }
3059   { reuse GL_DEPTH_COMPONENTS }
3060   { reuse GL_STENCIL_COMPONENTS }
3061   { reuse GL_COLOR_RENDERABLE }
3062   { reuse GL_DEPTH_RENDERABLE }
3063   { reuse GL_STENCIL_RENDERABLE }
3064   { reuse GL_FRAMEBUFFER_RENDERABLE }
3065   { reuse GL_FRAMEBUFFER_RENDERABLE_LAYERED }
3066   { reuse GL_FRAMEBUFFER_BLEND }
3067   { reuse GL_READ_PIXELS }
3068   { reuse GL_READ_PIXELS_FORMAT }
3069   { reuse GL_READ_PIXELS_TYPE }
3070   { reuse GL_TEXTURE_IMAGE_FORMAT }
3071   { reuse GL_TEXTURE_IMAGE_TYPE }
3072   { reuse GL_GET_TEXTURE_IMAGE_FORMAT }
3073   { reuse GL_GET_TEXTURE_IMAGE_TYPE }
3074   { reuse GL_MIPMAP }
3075   { reuse GL_MANUAL_GENERATE_MIPMAP }
3076   { reuse GL_AUTO_GENERATE_MIPMAP }
3077   { reuse GL_COLOR_ENCODING }
3078   { reuse GL_SRGB_READ }
3079   { reuse GL_SRGB_WRITE }
3080   { reuse GL_FILTER }
3081   { reuse GL_VERTEX_TEXTURE }
3082   { reuse GL_TESS_CONTROL_TEXTURE }
3083   { reuse GL_TESS_EVALUATION_TEXTURE }
3084   { reuse GL_GEOMETRY_TEXTURE }
3085   { reuse GL_FRAGMENT_TEXTURE }
3086   { reuse GL_COMPUTE_TEXTURE }
3087   { reuse GL_TEXTURE_SHADOW }
3088   { reuse GL_TEXTURE_GATHER }
3089   { reuse GL_TEXTURE_GATHER_SHADOW }
3090   { reuse GL_SHADER_IMAGE_LOAD }
3091   { reuse GL_SHADER_IMAGE_STORE }
3092   { reuse GL_SHADER_IMAGE_ATOMIC }
3093   { reuse GL_IMAGE_TEXEL_SIZE }
3094   { reuse GL_IMAGE_COMPATIBILITY_CLASS }
3095   { reuse GL_IMAGE_PIXEL_FORMAT }
3096   { reuse GL_IMAGE_PIXEL_TYPE }
3097   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST }
3098   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST }
3099   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE }
3100   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE }
3101   { reuse GL_TEXTURE_COMPRESSED_BLOCK_WIDTH }
3102   { reuse GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT }
3103   { reuse GL_TEXTURE_COMPRESSED_BLOCK_SIZE }
3104   { reuse GL_CLEAR_BUFFER }
3105   { reuse GL_TEXTURE_VIEW }
3106   { reuse GL_VIEW_COMPATIBILITY_CLASS }
3107   { reuse GL_FULL_SUPPORT }
3108   { reuse GL_CAVEAT_SUPPORT }
3109   { reuse GL_IMAGE_CLASS_4_X_32 }
3110   { reuse GL_IMAGE_CLASS_2_X_32 }
3111   { reuse GL_IMAGE_CLASS_1_X_32 }
3112   { reuse GL_IMAGE_CLASS_4_X_16 }
3113   { reuse GL_IMAGE_CLASS_2_X_16 }
3114   { reuse GL_IMAGE_CLASS_1_X_16 }
3115   { reuse GL_IMAGE_CLASS_4_X_8 }
3116   { reuse GL_IMAGE_CLASS_2_X_8 }
3117   { reuse GL_IMAGE_CLASS_1_X_8 }
3118   { reuse GL_IMAGE_CLASS_11_11_10 }
3119   { reuse GL_IMAGE_CLASS_10_10_10_2 }
3120   { reuse GL_VIEW_CLASS_128_BITS }
3121   { reuse GL_VIEW_CLASS_96_BITS }
3122   { reuse GL_VIEW_CLASS_64_BITS }
3123   { reuse GL_VIEW_CLASS_48_BITS }
3124   { reuse GL_VIEW_CLASS_32_BITS }
3125   { reuse GL_VIEW_CLASS_24_BITS }
3126   { reuse GL_VIEW_CLASS_16_BITS }
3127   { reuse GL_VIEW_CLASS_8_BITS }
3128   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGB }
3129   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGBA }
3130   { reuse GL_VIEW_CLASS_S3TC_DXT3_RGBA }
3131   { reuse GL_VIEW_CLASS_S3TC_DXT5_RGBA }
3132   { reuse GL_VIEW_CLASS_RGTC1_RED }
3133   { reuse GL_VIEW_CLASS_RGTC2_RG }
3134   { reuse GL_VIEW_CLASS_BPTC_UNORM }
3135   { reuse GL_VIEW_CLASS_BPTC_FLOAT }
3136   { Reuse tokens from ARB_invalidate_subdata (none) }
3137   { Reuse tokens from ARB_multi_draw_indirect (none) }
3138   { Reuse tokens from ARB_program_interface_query }
3139   { reuse GL_UNIFORM }
3140   { reuse GL_UNIFORM_BLOCK }
3141   { reuse GL_PROGRAM_INPUT }
3142   { reuse GL_PROGRAM_OUTPUT }
3143   { reuse GL_BUFFER_VARIABLE }
3144   { reuse GL_SHADER_STORAGE_BLOCK }
3145   { reuse GL_VERTEX_SUBROUTINE }
3146   { reuse GL_TESS_CONTROL_SUBROUTINE }
3147   { reuse GL_TESS_EVALUATION_SUBROUTINE }
3148   { reuse GL_GEOMETRY_SUBROUTINE }
3149   { reuse GL_FRAGMENT_SUBROUTINE }
3150   { reuse GL_COMPUTE_SUBROUTINE }
3151   { reuse GL_VERTEX_SUBROUTINE_UNIFORM }
3152   { reuse GL_TESS_CONTROL_SUBROUTINE_UNIFORM }
3153   { reuse GL_TESS_EVALUATION_SUBROUTINE_UNIFORM }
3154   { reuse GL_GEOMETRY_SUBROUTINE_UNIFORM }
3155   { reuse GL_FRAGMENT_SUBROUTINE_UNIFORM }
3156   { reuse GL_COMPUTE_SUBROUTINE_UNIFORM }
3157   { reuse GL_TRANSFORM_FEEDBACK_VARYING }
3158   { reuse GL_ACTIVE_RESOURCES }
3159   { reuse GL_MAX_NAME_LENGTH }
3160   { reuse GL_MAX_NUM_ACTIVE_VARIABLES }
3161   { reuse GL_MAX_NUM_COMPATIBLE_SUBROUTINES }
3162   { reuse GL_NAME_LENGTH }
3163   { reuse GL_TYPE }
3164   { reuse GL_ARRAY_SIZE }
3165   { reuse GL_OFFSET }
3166   { reuse GL_BLOCK_INDEX }
3167   { reuse GL_ARRAY_STRIDE }
3168   { reuse GL_MATRIX_STRIDE }
3169   { reuse GL_IS_ROW_MAJOR }
3170   { reuse GL_ATOMIC_COUNTER_BUFFER_INDEX }
3171   { reuse GL_BUFFER_BINDING }
3172   { reuse GL_BUFFER_DATA_SIZE }
3173   { reuse GL_NUM_ACTIVE_VARIABLES }
3174   { reuse GL_ACTIVE_VARIABLES }
3175   { reuse GL_REFERENCED_BY_VERTEX_SHADER }
3176   { reuse GL_REFERENCED_BY_TESS_CONTROL_SHADER }
3177   { reuse GL_REFERENCED_BY_TESS_EVALUATION_SHADER }
3178   { reuse GL_REFERENCED_BY_GEOMETRY_SHADER }
3179   { reuse GL_REFERENCED_BY_FRAGMENT_SHADER }
3180   { reuse GL_REFERENCED_BY_COMPUTE_SHADER }
3181   { reuse GL_TOP_LEVEL_ARRAY_SIZE }
3182   { reuse GL_TOP_LEVEL_ARRAY_STRIDE }
3183   { reuse GL_LOCATION }
3184   { reuse GL_LOCATION_INDEX }
3185   { reuse GL_IS_PER_PATCH }
3186   { Reuse tokens from ARB_robust_buffer_access_behavior (none) }
3187   { Reuse tokens from ARB_shader_storage_buffer_object }
3188   { reuse GL_SHADER_STORAGE_BUFFER }
3189   { reuse GL_SHADER_STORAGE_BUFFER_BINDING }
3190   { reuse GL_SHADER_STORAGE_BUFFER_START }
3191   { reuse GL_SHADER_STORAGE_BUFFER_SIZE }
3192   { reuse GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS }
3193   { reuse GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS }
3194   { reuse GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS }
3195   { reuse GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS }
3196   { reuse GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS }
3197   { reuse GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS }
3198   { reuse GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS }
3199   { reuse GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS }
3200   { reuse GL_MAX_SHADER_STORAGE_BLOCK_SIZE }
3201   { reuse GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT }
3202   { reuse GL_SHADER_STORAGE_BARRIER_BIT }
3203   { reuse GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES }
3204   { Reuse tokens from ARB_stencil_texturing }
3205   { reuse GL_DEPTH_STENCIL_TEXTURE_MODE }
3206   { Reuse tokens from ARB_texture_buffer_range }
3207   { reuse GL_TEXTURE_BUFFER_OFFSET }
3208   { reuse GL_TEXTURE_BUFFER_SIZE }
3209   { reuse GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT }
3210   { Reuse tokens from ARB_texture_query_levels (none) }
3211   { Reuse tokens from ARB_texture_storage_multisample (none) }
3212   { Reuse tokens from ARB_texture_view }
3213   { reuse GL_TEXTURE_VIEW_MIN_LEVEL }
3214   { reuse GL_TEXTURE_VIEW_NUM_LEVELS }
3215   { reuse GL_TEXTURE_VIEW_MIN_LAYER }
3216   { reuse GL_TEXTURE_VIEW_NUM_LAYERS }
3217   { reuse GL_TEXTURE_IMMUTABLE_LEVELS }
3218   { Reuse tokens from ARB_vertex_attrib_binding }
3219   { reuse GL_VERTEX_ATTRIB_BINDING }
3220   { reuse GL_VERTEX_ATTRIB_RELATIVE_OFFSET }
3221   { reuse GL_VERTEX_BINDING_DIVISOR }
3222   { reuse GL_VERTEX_BINDING_OFFSET }
3223   { reuse GL_VERTEX_BINDING_STRIDE }
3224   { reuse GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET }
3225   { reuse GL_MAX_VERTEX_ATTRIB_BINDINGS }
3226
3227
3228   // GL_3DFX_multisample
3229   GL_MULTISAMPLE_3DFX = $86B2;
3230   GL_SAMPLE_BUFFERS_3DFX = $86B3;
3231   GL_SAMPLES_3DFX = $86B4;
3232   GL_MULTISAMPLE_BIT_3DFX = $20000000;
3233
3234   // GL_3DFX_texture_compression_FXT1
3235   GL_COMPRESSED_RGB_FXT1_3DFX = $86B0;
3236   GL_COMPRESSED_RGBA_FXT1_3DFX = $86B1;
3237
3238   // GL_APPLE_client_storage
3239   GL_UNPACK_CLIENT_STORAGE_APPLE = $85B2;
3240
3241   // GL_APPLE_element_array
3242   GL_ELEMENT_ARRAY_APPLE = $8A0C;
3243   GL_ELEMENT_ARRAY_TYPE_APPLE = $8A0D;
3244   GL_ELEMENT_ARRAY_POINTER_APPLE = $8A0E;
3245
3246   // GL_APPLE_fence
3247   GL_DRAW_PIXELS_APPLE = $8A0A;
3248   GL_FENCE_APPLE = $8A0B;
3249
3250   // GL_APPLE_specular_vector
3251   GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = $85B0;
3252
3253   // GL_APPLE_transform_hint
3254   GL_TRANSFORM_HINT_APPLE = $85B1;
3255
3256   // GL_APPLE_vertex_array_object
3257   GL_VERTEX_ARRAY_BINDING_APPLE = $85B5;
3258
3259   // GL_APPLE_vertex_array_range
3260   GL_VERTEX_ARRAY_RANGE_APPLE = $851D;
3261   GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = $851E;
3262   GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = $851F;
3263   GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = $8521;
3264   GL_STORAGE_CLIENT_APPLE = $85B4;
3265   GL_STORAGE_CACHED_APPLE = $85BE;
3266   GL_STORAGE_SHARED_APPLE = $85BF;
3267
3268   // GL_APPLE_ycbcr_422
3269   GL_YCBCR_422_APPLE = $85B9;
3270   GL_UNSIGNED_SHORT_8_8_APPLE = $85BA;
3271   GL_UNSIGNED_SHORT_8_8_REV_APPLE = $85BB;
3272
3273   // GL_APPLE_texture_range
3274   GL_TEXTURE_RANGE_LENGTH_APPLE = $85B7;
3275   GL_TEXTURE_RANGE_POINTER_APPLE = $85B8;
3276   GL_TEXTURE_STORAGE_HINT_APPLE = $85BC;
3277   GL_STORAGE_PRIVATE_APPLE = $85BD;
3278   { reuse GL_STORAGE_CACHED_APPLE }
3279   { reuse GL_STORAGE_SHARED_APPLE }
3280
3281   // GL_APPLE_float_pixels
3282   GL_HALF_APPLE = $140B;
3283   GL_RGBA_FLOAT32_APPLE = $8814;
3284   GL_RGB_FLOAT32_APPLE = $8815;
3285   GL_ALPHA_FLOAT32_APPLE = $8816;
3286   GL_INTENSITY_FLOAT32_APPLE = $8817;
3287   GL_LUMINANCE_FLOAT32_APPLE = $8818;
3288   GL_LUMINANCE_ALPHA_FLOAT32_APPLE = $8819;
3289   GL_RGBA_FLOAT16_APPLE = $881A;
3290   GL_RGB_FLOAT16_APPLE = $881B;
3291   GL_ALPHA_FLOAT16_APPLE = $881C;
3292   GL_INTENSITY_FLOAT16_APPLE = $881D;
3293   GL_LUMINANCE_FLOAT16_APPLE = $881E;
3294   GL_LUMINANCE_ALPHA_FLOAT16_APPLE = $881F;
3295   GL_COLOR_FLOAT_APPLE = $8A0F;
3296
3297   // GL_APPLE_vertex_program_evaluators
3298   GL_VERTEX_ATTRIB_MAP1_APPLE = $8A00;
3299   GL_VERTEX_ATTRIB_MAP2_APPLE = $8A01;
3300   GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = $8A02;
3301   GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = $8A03;
3302   GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = $8A04;
3303   GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = $8A05;
3304   GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = $8A06;
3305   GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = $8A07;
3306   GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = $8A08;
3307   GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = $8A09;
3308
3309   // GL_APPLE_aux_depth_stencil
3310   GL_AUX_DEPTH_STENCIL_APPLE = $8A14;
3311
3312   // GL_APPLE_object_purgeable
3313   GL_BUFFER_OBJECT_APPLE = $85B3;
3314   GL_RELEASED_APPLE = $8A19;
3315   GL_VOLATILE_APPLE = $8A1A;
3316   GL_RETAINED_APPLE = $8A1B;
3317   GL_UNDEFINED_APPLE = $8A1C;
3318   GL_PURGEABLE_APPLE = $8A1D;
3319
3320   // GL_APPLE_row_bytes
3321   GL_PACK_ROW_BYTES_APPLE = $8A15;
3322   GL_UNPACK_ROW_BYTES_APPLE = $8A16;
3323   
3324   // GL_APPLE_rgb_422
3325   { reuse GL_UNSIGNED_SHORT_8_8_APPLE }
3326   { reuse GL_UNSIGNED_SHORT_8_8_REV_APPLE }  
3327   
3328   // GL_ARB_depth_texture
3329   GL_DEPTH_COMPONENT16_ARB = $81A5;
3330   GL_DEPTH_COMPONENT24_ARB = $81A6;
3331   GL_DEPTH_COMPONENT32_ARB = $81A7;
3332   GL_TEXTURE_DEPTH_SIZE_ARB = $884A;
3333   GL_DEPTH_TEXTURE_MODE_ARB = $884B;
3334
3335   // GL_ARB_fragment_program
3336   GL_FRAGMENT_PROGRAM_ARB = $8804;
3337   GL_PROGRAM_ALU_INSTRUCTIONS_ARB = $8805;
3338   GL_PROGRAM_TEX_INSTRUCTIONS_ARB = $8806;
3339   GL_PROGRAM_TEX_INDIRECTIONS_ARB = $8807;
3340   GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $8808;
3341   GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $8809;
3342   GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $880A;
3343   GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = $880B;
3344   GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = $880C;
3345   GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = $880D;
3346   GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $880E;
3347   GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $880F;
3348   GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $8810;
3349   GL_MAX_TEXTURE_COORDS_ARB = $8871;
3350   GL_MAX_TEXTURE_IMAGE_UNITS_ARB = $8872;
3351
3352   // GL_ARB_imaging
3353   GL_CONSTANT_COLOR_ARB = $8001;
3354   GL_CONSTANT_COLOR = $8001;
3355   GL_ONE_MINUS_CONSTANT_COLOR = $8002;
3356   GL_CONSTANT_ALPHA = $8003;
3357   GL_ONE_MINUS_CONSTANT_ALPHA = $8004;
3358   GL_BLEND_COLOR = $8005;
3359   GL_FUNC_ADD = $8006;
3360   GL_MIN = $8007;
3361   GL_MAX = $8008;
3362   GL_BLEND_EQUATION = $8009;
3363   GL_FUNC_SUBTRACT = $800A;
3364   GL_FUNC_REVERSE_SUBTRACT = $800B;
3365 {$ifdef DGL_DEPRECATED}
3366   GL_CONVOLUTION_1D = $8010;
3367   GL_CONVOLUTION_2D = $8011;
3368   GL_SEPARABLE_2D = $8012;
3369   GL_CONVOLUTION_BORDER_MODE = $8013;
3370   GL_CONVOLUTION_FILTER_SCALE = $8014;
3371   GL_CONVOLUTION_FILTER_BIAS = $8015;
3372   GL_REDUCE = $8016;
3373   GL_CONVOLUTION_FORMAT = $8017;
3374   GL_CONVOLUTION_WIDTH = $8018;
3375   GL_CONVOLUTION_HEIGHT = $8019;
3376   GL_MAX_CONVOLUTION_WIDTH = $801A;
3377   GL_MAX_CONVOLUTION_HEIGHT = $801B;
3378   GL_POST_CONVOLUTION_RED_SCALE = $801C;
3379   GL_POST_CONVOLUTION_GREEN_SCALE = $801D;
3380   GL_POST_CONVOLUTION_BLUE_SCALE = $801E;
3381   GL_POST_CONVOLUTION_ALPHA_SCALE = $801F;
3382   GL_POST_CONVOLUTION_RED_BIAS = $8020;
3383   GL_POST_CONVOLUTION_GREEN_BIAS = $8021;
3384   GL_POST_CONVOLUTION_BLUE_BIAS = $8022;
3385   GL_POST_CONVOLUTION_ALPHA_BIAS = $8023;
3386   GL_HISTOGRAM = $8024;
3387   GL_PROXY_HISTOGRAM = $8025;
3388   GL_HISTOGRAM_WIDTH = $8026;
3389   GL_HISTOGRAM_FORMAT = $8027;
3390   GL_HISTOGRAM_RED_SIZE = $8028;
3391   GL_HISTOGRAM_GREEN_SIZE = $8029;
3392   GL_HISTOGRAM_BLUE_SIZE = $802A;
3393   GL_HISTOGRAM_ALPHA_SIZE = $802B;
3394   GL_HISTOGRAM_LUMINANCE_SIZE = $802C;
3395   GL_HISTOGRAM_SINK = $802D;
3396   GL_MINMAX = $802E;
3397   GL_MINMAX_FORMAT = $802F;
3398   GL_MINMAX_SINK = $8030;
3399   GL_TABLE_TOO_LARGE = $8031;
3400   GL_COLOR_MATRIX = $80B1;
3401   GL_COLOR_MATRIX_STACK_DEPTH = $80B2;
3402   GL_MAX_COLOR_MATRIX_STACK_DEPTH = $80B3;
3403   GL_POST_COLOR_MATRIX_RED_SCALE = $80B4;
3404   GL_POST_COLOR_MATRIX_GREEN_SCALE = $80B5;
3405   GL_POST_COLOR_MATRIX_BLUE_SCALE = $80B6;
3406   GL_POST_COLOR_MATRIX_ALPHA_SCALE = $80B7;
3407   GL_POST_COLOR_MATRIX_RED_BIAS = $80B8;
3408   GL_POST_COLOR_MATRIX_GREEN_BIAS = $80B9;
3409   GL_POST_COLOR_MATRIX_BLUE_BIAS = $80BA;
3410   GL_POST_COLOR_MATRIX_ALPHA_BIAS = $80BB;
3411   GL_COLOR_TABLE = $80D0;
3412   GL_POST_CONVOLUTION_COLOR_TABLE = $80D1;
3413   GL_POST_COLOR_MATRIX_COLOR_TABLE = $80D2;
3414   GL_PROXY_COLOR_TABLE = $80D3;
3415   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = $80D4;
3416   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = $80D5;
3417   GL_COLOR_TABLE_SCALE = $80D6;
3418   GL_COLOR_TABLE_BIAS = $80D7;
3419   GL_COLOR_TABLE_FORMAT = $80D8;
3420   GL_COLOR_TABLE_WIDTH = $80D9;
3421   GL_COLOR_TABLE_RED_SIZE = $80DA;
3422   GL_COLOR_TABLE_GREEN_SIZE = $80DB;
3423   GL_COLOR_TABLE_BLUE_SIZE = $80DC;
3424   GL_COLOR_TABLE_ALPHA_SIZE = $80DD;
3425   GL_COLOR_TABLE_LUMINANCE_SIZE = $80DE;
3426   GL_COLOR_TABLE_INTENSITY_SIZE = $80DF;
3427   GL_CONSTANT_BORDER = $8151;
3428   GL_REPLICATE_BORDER = $8153;
3429   GL_CONVOLUTION_BORDER_COLOR = $8154;
3430 {$endif}
3431
3432   // GL_ARB_matrix_palette
3433   GL_MATRIX_PALETTE_ARB = $8840;
3434   GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = $8841;
3435   GL_MAX_PALETTE_MATRICES_ARB = $8842;
3436   GL_CURRENT_PALETTE_MATRIX_ARB = $8843;
3437   GL_MATRIX_INDEX_ARRAY_ARB = $8844;
3438   GL_CURRENT_MATRIX_INDEX_ARB = $8845;
3439   GL_MATRIX_INDEX_ARRAY_SIZE_ARB = $8846;
3440   GL_MATRIX_INDEX_ARRAY_TYPE_ARB = $8847;
3441   GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = $8848;
3442   GL_MATRIX_INDEX_ARRAY_POINTER_ARB = $8849;
3443
3444   // GL_ARB_multisample
3445   GL_MULTISAMPLE_ARB = $809D;
3446   GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = $809E;
3447   GL_SAMPLE_ALPHA_TO_ONE_ARB = $809F;
3448   GL_SAMPLE_COVERAGE_ARB = $80A0;
3449   GL_SAMPLE_BUFFERS_ARB = $80A8;
3450   GL_SAMPLES_ARB = $80A9;
3451   GL_SAMPLE_COVERAGE_VALUE_ARB = $80AA;
3452   GL_SAMPLE_COVERAGE_INVERT_ARB = $80AB;
3453   GL_MULTISAMPLE_BIT_ARB = $20000000;
3454
3455   // GL_ARB_multitexture
3456   GL_TEXTURE0_ARB = $84C0;
3457   GL_TEXTURE1_ARB = $84C1;
3458   GL_TEXTURE2_ARB = $84C2;
3459   GL_TEXTURE3_ARB = $84C3;
3460   GL_TEXTURE4_ARB = $84C4;
3461   GL_TEXTURE5_ARB = $84C5;
3462   GL_TEXTURE6_ARB = $84C6;
3463   GL_TEXTURE7_ARB = $84C7;
3464   GL_TEXTURE8_ARB = $84C8;
3465   GL_TEXTURE9_ARB = $84C9;
3466   GL_TEXTURE10_ARB = $84CA;
3467   GL_TEXTURE11_ARB = $84CB;
3468   GL_TEXTURE12_ARB = $84CC;
3469   GL_TEXTURE13_ARB = $84CD;
3470   GL_TEXTURE14_ARB = $84CE;
3471   GL_TEXTURE15_ARB = $84CF;
3472   GL_TEXTURE16_ARB = $84D0;
3473   GL_TEXTURE17_ARB = $84D1;
3474   GL_TEXTURE18_ARB = $84D2;
3475   GL_TEXTURE19_ARB = $84D3;
3476   GL_TEXTURE20_ARB = $84D4;
3477   GL_TEXTURE21_ARB = $84D5;
3478   GL_TEXTURE22_ARB = $84D6;
3479   GL_TEXTURE23_ARB = $84D7;
3480   GL_TEXTURE24_ARB = $84D8;
3481   GL_TEXTURE25_ARB = $84D9;
3482   GL_TEXTURE26_ARB = $84DA;
3483   GL_TEXTURE27_ARB = $84DB;
3484   GL_TEXTURE28_ARB = $84DC;
3485   GL_TEXTURE29_ARB = $84DD;
3486   GL_TEXTURE30_ARB = $84DE;
3487   GL_TEXTURE31_ARB = $84DF;
3488   GL_ACTIVE_TEXTURE_ARB = $84E0;
3489   GL_CLIENT_ACTIVE_TEXTURE_ARB = $84E1;
3490   GL_MAX_TEXTURE_UNITS_ARB = $84E2;
3491
3492   // GL_ARB_point_parameters
3493   GL_POINT_SIZE_MIN_ARB = $8126;
3494   GL_POINT_SIZE_MAX_ARB = $8127;
3495   GL_POINT_FADE_THRESHOLD_SIZE_ARB = $8128;
3496   GL_POINT_DISTANCE_ATTENUATION_ARB = $8129;
3497
3498   // GL_ARB_shadow
3499   GL_TEXTURE_COMPARE_MODE_ARB = $884C;
3500   GL_TEXTURE_COMPARE_FUNC_ARB = $884D;
3501   GL_COMPARE_R_TO_TEXTURE_ARB = $884E;
3502
3503   // GL_ARB_shadow_ambient
3504   GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = $80BF;
3505
3506   // GL_ARB_texture_border_clamp
3507   GL_CLAMP_TO_BORDER_ARB = $812D;
3508
3509   // GL_ARB_texture_compression
3510   GL_COMPRESSED_ALPHA_ARB = $84E9;
3511   GL_COMPRESSED_LUMINANCE_ARB = $84EA;
3512   GL_COMPRESSED_LUMINANCE_ALPHA_ARB = $84EB;
3513   GL_COMPRESSED_INTENSITY_ARB = $84EC;
3514   GL_COMPRESSED_RGB_ARB = $84ED;
3515   GL_COMPRESSED_RGBA_ARB = $84EE;
3516   GL_TEXTURE_COMPRESSION_HINT_ARB = $84EF;
3517   GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = $86A0;
3518   GL_TEXTURE_COMPRESSED_ARB = $86A1;
3519   GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = $86A2;
3520   GL_COMPRESSED_TEXTURE_FORMATS_ARB = $86A3;
3521
3522   // GL_ARB_texture_cube_map
3523   GL_NORMAL_MAP_ARB = $8511;
3524   GL_REFLECTION_MAP_ARB = $8512;
3525   GL_TEXTURE_CUBE_MAP_ARB = $8513;
3526   GL_TEXTURE_BINDING_CUBE_MAP_ARB = $8514;
3527   GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $8515;
3528   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $8516;
3529   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $8517;
3530   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $8518;
3531   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $8519;
3532   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $851A;
3533   GL_PROXY_TEXTURE_CUBE_MAP_ARB = $851B;
3534   GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = $851C;
3535
3536   // GL_ARB_texture_env_combine
3537   GL_COMBINE_ARB = $8570;
3538   GL_COMBINE_RGB_ARB = $8571;
3539   GL_COMBINE_ALPHA_ARB = $8572;
3540   GL_SOURCE0_RGB_ARB = $8580;
3541   GL_SOURCE1_RGB_ARB = $8581;
3542   GL_SOURCE2_RGB_ARB = $8582;
3543   GL_SOURCE0_ALPHA_ARB = $8588;
3544   GL_SOURCE1_ALPHA_ARB = $8589;
3545   GL_SOURCE2_ALPHA_ARB = $858A;
3546   GL_OPERAND0_RGB_ARB = $8590;
3547   GL_OPERAND1_RGB_ARB = $8591;
3548   GL_OPERAND2_RGB_ARB = $8592;
3549   GL_OPERAND0_ALPHA_ARB = $8598;
3550   GL_OPERAND1_ALPHA_ARB = $8599;
3551   GL_OPERAND2_ALPHA_ARB = $859A;
3552   GL_RGB_SCALE_ARB = $8573;
3553   GL_ADD_SIGNED_ARB = $8574;
3554   GL_INTERPOLATE_ARB = $8575;
3555   GL_SUBTRACT_ARB = $84E7;
3556   GL_CONSTANT_ARB = $8576;
3557   GL_PRIMARY_COLOR_ARB = $8577;
3558   GL_PREVIOUS_ARB = $8578;
3559
3560   // GL_ARB_texture_env_dot3
3561   GL_DOT3_RGB_ARB = $86AE;
3562   GL_DOT3_RGBA_ARB = $86AF;
3563
3564   // GL_ARB_texture_mirrored_repeat
3565   GL_MIRRORED_REPEAT_ARB = $8370;
3566
3567   // GL_ARB_transpose_matrix
3568   GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = $84E3;
3569   GL_TRANSPOSE_PROJECTION_MATRIX_ARB = $84E4;
3570   GL_TRANSPOSE_TEXTURE_MATRIX_ARB = $84E5;
3571   GL_TRANSPOSE_COLOR_MATRIX_ARB = $84E6;
3572
3573   // GL_ARB_vertex_blend
3574   GL_MAX_VERTEX_UNITS_ARB = $86A4;
3575   GL_ACTIVE_VERTEX_UNITS_ARB = $86A5;
3576   GL_WEIGHT_SUM_UNITY_ARB = $86A6;
3577   GL_VERTEX_BLEND_ARB = $86A7;
3578   GL_CURRENT_WEIGHT_ARB = $86A8;
3579   GL_WEIGHT_ARRAY_TYPE_ARB = $86A9;
3580   GL_WEIGHT_ARRAY_STRIDE_ARB = $86AA;
3581   GL_WEIGHT_ARRAY_SIZE_ARB = $86AB;
3582   GL_WEIGHT_ARRAY_POINTER_ARB = $86AC;
3583   GL_WEIGHT_ARRAY_ARB = $86AD;
3584   GL_MODELVIEW0_ARB = $1700;
3585   GL_MODELVIEW1_ARB = $850A;
3586   GL_MODELVIEW2_ARB = $8722;
3587   GL_MODELVIEW3_ARB = $8723;
3588   GL_MODELVIEW4_ARB = $8724;
3589   GL_MODELVIEW5_ARB = $8725;
3590   GL_MODELVIEW6_ARB = $8726;
3591   GL_MODELVIEW7_ARB = $8727;
3592   GL_MODELVIEW8_ARB = $8728;
3593   GL_MODELVIEW9_ARB = $8729;
3594   GL_MODELVIEW10_ARB = $872A;
3595   GL_MODELVIEW11_ARB = $872B;
3596   GL_MODELVIEW12_ARB = $872C;
3597   GL_MODELVIEW13_ARB = $872D;
3598   GL_MODELVIEW14_ARB = $872E;
3599   GL_MODELVIEW15_ARB = $872F;
3600   GL_MODELVIEW16_ARB = $8730;
3601   GL_MODELVIEW17_ARB = $8731;
3602   GL_MODELVIEW18_ARB = $8732;
3603   GL_MODELVIEW19_ARB = $8733;
3604   GL_MODELVIEW20_ARB = $8734;
3605   GL_MODELVIEW21_ARB = $8735;
3606   GL_MODELVIEW22_ARB = $8736;
3607   GL_MODELVIEW23_ARB = $8737;
3608   GL_MODELVIEW24_ARB = $8738;
3609   GL_MODELVIEW25_ARB = $8739;
3610   GL_MODELVIEW26_ARB = $873A;
3611   GL_MODELVIEW27_ARB = $873B;
3612   GL_MODELVIEW28_ARB = $873C;
3613   GL_MODELVIEW29_ARB = $873D;
3614   GL_MODELVIEW30_ARB = $873E;
3615   GL_MODELVIEW31_ARB = $873F;
3616
3617   // GL_ARB_vertex_buffer_object
3618   GL_BUFFER_SIZE_ARB = $8764;
3619   GL_BUFFER_USAGE_ARB = $8765;
3620   GL_ARRAY_BUFFER_ARB = $8892;
3621   GL_ELEMENT_ARRAY_BUFFER_ARB = $8893;
3622   GL_ARRAY_BUFFER_BINDING_ARB = $8894;
3623   GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = $8895;
3624   GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = $8896;
3625   GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = $8897;
3626   GL_COLOR_ARRAY_BUFFER_BINDING_ARB = $8898;
3627   GL_INDEX_ARRAY_BUFFER_BINDING_ARB = $8899;
3628   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = $889A;
3629   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = $889B;
3630   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = $889C;
3631   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = $889D;
3632   GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = $889E;
3633   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = $889F;
3634   GL_READ_ONLY_ARB = $88B8;
3635   GL_WRITE_ONLY_ARB = $88B9;
3636   GL_READ_WRITE_ARB = $88BA;
3637   GL_BUFFER_ACCESS_ARB = $88BB;
3638   GL_BUFFER_MAPPED_ARB = $88BC;
3639   GL_BUFFER_MAP_POINTER_ARB = $88BD;
3640   GL_STREAM_DRAW_ARB = $88E0;
3641   GL_STREAM_READ_ARB = $88E1;
3642   GL_STREAM_COPY_ARB = $88E2;
3643   GL_STATIC_DRAW_ARB = $88E4;
3644   GL_STATIC_READ_ARB = $88E5;
3645   GL_STATIC_COPY_ARB = $88E6;
3646   GL_DYNAMIC_DRAW_ARB = $88E8;
3647   GL_DYNAMIC_READ_ARB = $88E9;
3648   GL_DYNAMIC_COPY_ARB = $88EA;
3649
3650   // GL_ARB_vertex_program
3651   GL_COLOR_SUM_ARB = $8458;
3652   GL_VERTEX_PROGRAM_ARB = $8620;
3653   GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = $8622;
3654   GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = $8623;
3655   GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = $8624;
3656   GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = $8625;
3657   GL_CURRENT_VERTEX_ATTRIB_ARB = $8626;
3658   GL_PROGRAM_LENGTH_ARB = $8627;
3659   GL_PROGRAM_STRING_ARB = $8628;
3660   GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = $862E;
3661   GL_MAX_PROGRAM_MATRICES_ARB = $862F;
3662   GL_CURRENT_MATRIX_STACK_DEPTH_ARB = $8640;
3663   GL_CURRENT_MATRIX_ARB = $8641;
3664   GL_VERTEX_PROGRAM_POINT_SIZE_ARB = $8642;
3665   GL_VERTEX_PROGRAM_TWO_SIDE_ARB = $8643;
3666   GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = $8645;
3667   GL_PROGRAM_ERROR_POSITION_ARB = $864B;
3668   GL_PROGRAM_BINDING_ARB = $8677;
3669   GL_MAX_VERTEX_ATTRIBS_ARB = $8869;
3670   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = $886A;
3671   GL_PROGRAM_ERROR_STRING_ARB = $8874;
3672   GL_PROGRAM_FORMAT_ASCII_ARB = $8875;
3673   GL_PROGRAM_FORMAT_ARB = $8876;
3674   GL_PROGRAM_INSTRUCTIONS_ARB = $88A0;
3675   GL_MAX_PROGRAM_INSTRUCTIONS_ARB = $88A1;
3676   GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A2;
3677   GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A3;
3678   GL_PROGRAM_TEMPORARIES_ARB = $88A4;
3679   GL_MAX_PROGRAM_TEMPORARIES_ARB = $88A5;
3680   GL_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A6;
3681   GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A7;
3682   GL_PROGRAM_PARAMETERS_ARB = $88A8;
3683   GL_MAX_PROGRAM_PARAMETERS_ARB = $88A9;
3684   GL_PROGRAM_NATIVE_PARAMETERS_ARB = $88AA;
3685   GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = $88AB;
3686   GL_PROGRAM_ATTRIBS_ARB = $88AC;
3687   GL_MAX_PROGRAM_ATTRIBS_ARB = $88AD;
3688   GL_PROGRAM_NATIVE_ATTRIBS_ARB = $88AE;
3689   GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = $88AF;
3690   GL_PROGRAM_ADDRESS_REGISTERS_ARB = $88B0;
3691   GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = $88B1;
3692   GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B2;
3693   GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B3;
3694   GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = $88B4;
3695   GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = $88B5;
3696   GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = $88B6;
3697   GL_TRANSPOSE_CURRENT_MATRIX_ARB = $88B7;
3698   GL_MATRIX0_ARB = $88C0;
3699   GL_MATRIX1_ARB = $88C1;
3700   GL_MATRIX2_ARB = $88C2;
3701   GL_MATRIX3_ARB = $88C3;
3702   GL_MATRIX4_ARB = $88C4;
3703   GL_MATRIX5_ARB = $88C5;
3704   GL_MATRIX6_ARB = $88C6;
3705   GL_MATRIX7_ARB = $88C7;
3706   GL_MATRIX8_ARB = $88C8;
3707   GL_MATRIX9_ARB = $88C9;
3708   GL_MATRIX10_ARB = $88CA;
3709   GL_MATRIX11_ARB = $88CB;
3710   GL_MATRIX12_ARB = $88CC;
3711   GL_MATRIX13_ARB = $88CD;
3712   GL_MATRIX14_ARB = $88CE;
3713   GL_MATRIX15_ARB = $88CF;
3714   GL_MATRIX16_ARB = $88D0;
3715   GL_MATRIX17_ARB = $88D1;
3716   GL_MATRIX18_ARB = $88D2;
3717   GL_MATRIX19_ARB = $88D3;
3718   GL_MATRIX20_ARB = $88D4;
3719   GL_MATRIX21_ARB = $88D5;
3720   GL_MATRIX22_ARB = $88D6;
3721   GL_MATRIX23_ARB = $88D7;
3722   GL_MATRIX24_ARB = $88D8;
3723   GL_MATRIX25_ARB = $88D9;
3724   GL_MATRIX26_ARB = $88DA;
3725   GL_MATRIX27_ARB = $88DB;
3726   GL_MATRIX28_ARB = $88DC;
3727   GL_MATRIX29_ARB = $88DD;
3728   GL_MATRIX30_ARB = $88DE;
3729   GL_MATRIX31_ARB = $88DF;
3730
3731   // GL_ARB_draw_buffers
3732   GL_MAX_DRAW_BUFFERS_ARB = $8824;
3733   GL_DRAW_BUFFER0_ARB = $8825;
3734   GL_DRAW_BUFFER1_ARB = $8826;
3735   GL_DRAW_BUFFER2_ARB = $8827;
3736   GL_DRAW_BUFFER3_ARB = $8828;
3737   GL_DRAW_BUFFER4_ARB = $8829;
3738   GL_DRAW_BUFFER5_ARB = $882A;
3739   GL_DRAW_BUFFER6_ARB = $882B;
3740   GL_DRAW_BUFFER7_ARB = $882C;
3741   GL_DRAW_BUFFER8_ARB = $882D;
3742   GL_DRAW_BUFFER9_ARB = $882E;
3743   GL_DRAW_BUFFER10_ARB = $882F;
3744   GL_DRAW_BUFFER11_ARB = $8830;
3745   GL_DRAW_BUFFER12_ARB = $8831;
3746   GL_DRAW_BUFFER13_ARB = $8832;
3747   GL_DRAW_BUFFER14_ARB = $8833;
3748   GL_DRAW_BUFFER15_ARB = $8834;
3749
3750   // GL_ARB_texture_rectangle
3751   GL_TEXTURE_RECTANGLE_ARB = $84F5;
3752   GL_TEXTURE_BINDING_RECTANGLE_ARB = $84F6;
3753   GL_PROXY_TEXTURE_RECTANGLE_ARB = $84F7;
3754   GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = $84F8;
3755
3756   // GL_ARB_color_buffer_float
3757   GL_RGBA_FLOAT_MODE_ARB = $8820;
3758   GL_CLAMP_VERTEX_COLOR_ARB = $891A;
3759   GL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
3760   GL_CLAMP_READ_COLOR_ARB = $891C;
3761   GL_FIXED_ONLY_ARB = $891D;
3762   WGL_TYPE_RGBA_FLOAT_ARB = $21A0;
3763   GLX_RGBA_FLOAT_TYPE = $20B9;
3764   GLX_RGBA_FLOAT_BIT = $00000004;
3765
3766   // GL_ARB_half_float_pixel
3767   GL_HALF_FLOAT_ARB = $140B;
3768
3769   // GL_ARB_texture_float
3770   GL_TEXTURE_RED_TYPE_ARB = $8C10;
3771   GL_TEXTURE_GREEN_TYPE_ARB = $8C11;
3772   GL_TEXTURE_BLUE_TYPE_ARB = $8C12;
3773   GL_TEXTURE_ALPHA_TYPE_ARB = $8C13;
3774   GL_TEXTURE_LUMINANCE_TYPE_ARB = $8C14;
3775   GL_TEXTURE_INTENSITY_TYPE_ARB = $8C15;
3776   GL_TEXTURE_DEPTH_TYPE_ARB = $8C16;
3777   GL_UNSIGNED_NORMALIZED_ARB = $8C17;
3778   GL_RGBA32F_ARB = $8814;
3779   GL_RGB32F_ARB = $8815;
3780   GL_ALPHA32F_ARB = $8816;
3781   GL_INTENSITY32F_ARB = $8817;
3782   GL_LUMINANCE32F_ARB = $8818;
3783   GL_LUMINANCE_ALPHA32F_ARB = $8819;
3784   GL_RGBA16F_ARB = $881A;
3785   GL_RGB16F_ARB = $881B;
3786   GL_ALPHA16F_ARB = $881C;
3787   GL_INTENSITY16F_ARB = $881D;
3788   GL_LUMINANCE16F_ARB = $881E;
3789   GL_LUMINANCE_ALPHA16F_ARB = $881F;
3790
3791   // GL_ARB_pixel_buffer_object
3792   GL_PIXEL_PACK_BUFFER_ARB = $88EB;
3793   GL_PIXEL_UNPACK_BUFFER_ARB = $88EC;
3794   GL_PIXEL_PACK_BUFFER_BINDING_ARB = $88ED;
3795   GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = $88EF;
3796
3797   // GL_ARB_depth_buffer_float
3798   GL_DEPTH_COMPONENT32F = $8CAC;
3799   GL_DEPTH32F_STENCIL8 = $8CAD;
3800   GL_FLOAT_32_UNSIGNED_INT_24_8_REV = $8DAD;
3801
3802   // GL_ARB_framebuffer_object
3803   GL_INVALID_FRAMEBUFFER_OPERATION = $0506;
3804   GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = $8210;
3805   GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = $8211;
3806   GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = $8212;
3807   GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = $8213;
3808   GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = $8214;
3809   GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = $8215;
3810   GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = $8216;
3811   GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = $8217;
3812   GL_FRAMEBUFFER_DEFAULT = $8218;
3813   GL_FRAMEBUFFER_UNDEFINED = $8219;
3814   GL_DEPTH_STENCIL_ATTACHMENT = $821A;
3815   GL_MAX_RENDERBUFFER_SIZE = $84E8;
3816   GL_DEPTH_STENCIL = $84F9;
3817   GL_UNSIGNED_INT_24_8 = $84FA;
3818   GL_DEPTH24_STENCIL8 = $88F0;
3819   GL_TEXTURE_STENCIL_SIZE = $88F1;
3820   GL_TEXTURE_RED_TYPE = $8C10;
3821   GL_TEXTURE_GREEN_TYPE = $8C11;
3822   GL_TEXTURE_BLUE_TYPE = $8C12;
3823   GL_TEXTURE_ALPHA_TYPE = $8C13;
3824   GL_TEXTURE_DEPTH_TYPE = $8C16;
3825   GL_UNSIGNED_NORMALIZED = $8C17;
3826   GL_FRAMEBUFFER_BINDING = $8CA6;
3827   GL_DRAW_FRAMEBUFFER_BINDING = GL_FRAMEBUFFER_BINDING;
3828   GL_RENDERBUFFER_BINDING = $8CA7;
3829   GL_READ_FRAMEBUFFER = $8CA8;
3830   GL_DRAW_FRAMEBUFFER = $8CA9;
3831   GL_READ_FRAMEBUFFER_BINDING = $8CAA;
3832   GL_RENDERBUFFER_SAMPLES = $8CAB;
3833   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = $8CD0;
3834   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = $8CD1;
3835   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = $8CD2;
3836   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = $8CD3;
3837   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = $8CD4;
3838   GL_FRAMEBUFFER_COMPLETE = $8CD5;
3839   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = $8CD6;
3840   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = $8CD7;
3841   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = $8CDB;
3842   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = $8CDC;
3843   GL_FRAMEBUFFER_UNSUPPORTED = $8CDD;
3844   GL_MAX_COLOR_ATTACHMENTS = $8CDF;
3845   GL_COLOR_ATTACHMENT0 = $8CE0;
3846   GL_COLOR_ATTACHMENT1 = $8CE1;
3847   GL_COLOR_ATTACHMENT2 = $8CE2;
3848   GL_COLOR_ATTACHMENT3 = $8CE3;
3849   GL_COLOR_ATTACHMENT4 = $8CE4;
3850   GL_COLOR_ATTACHMENT5 = $8CE5;
3851   GL_COLOR_ATTACHMENT6 = $8CE6;
3852   GL_COLOR_ATTACHMENT7 = $8CE7;
3853   GL_COLOR_ATTACHMENT8 = $8CE8;
3854   GL_COLOR_ATTACHMENT9 = $8CE9;
3855   GL_COLOR_ATTACHMENT10 = $8CEA;
3856   GL_COLOR_ATTACHMENT11 = $8CEB;
3857   GL_COLOR_ATTACHMENT12 = $8CEC;
3858   GL_COLOR_ATTACHMENT13 = $8CED;
3859   GL_COLOR_ATTACHMENT14 = $8CEE;
3860   GL_COLOR_ATTACHMENT15 = $8CEF;
3861   GL_DEPTH_ATTACHMENT = $8D00;
3862   GL_STENCIL_ATTACHMENT = $8D20;
3863   GL_FRAMEBUFFER = $8D40;
3864   GL_RENDERBUFFER = $8D41;
3865   GL_RENDERBUFFER_WIDTH = $8D42;
3866   GL_RENDERBUFFER_HEIGHT = $8D43;
3867   GL_RENDERBUFFER_INTERNAL_FORMAT = $8D44;
3868   GL_STENCIL_INDEX1 = $8D46;
3869   GL_STENCIL_INDEX4 = $8D47;
3870   GL_STENCIL_INDEX8 = $8D48;
3871   GL_STENCIL_INDEX16 = $8D49;
3872   GL_RENDERBUFFER_RED_SIZE = $8D50;
3873   GL_RENDERBUFFER_GREEN_SIZE = $8D51;
3874   GL_RENDERBUFFER_BLUE_SIZE = $8D52;
3875   GL_RENDERBUFFER_ALPHA_SIZE = $8D53;
3876   GL_RENDERBUFFER_DEPTH_SIZE = $8D54;
3877   GL_RENDERBUFFER_STENCIL_SIZE = $8D55;
3878   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = $8D56;
3879   GL_MAX_SAMPLES = $8D57;
3880 {$ifdef DGL_DEPRECATED}
3881   GL_INDEX = $8222;
3882   GL_TEXTURE_LUMINANCE_TYPE = $8C14;
3883   GL_TEXTURE_INTENSITY_TYPE = $8C15;
3884 {$endif}
3885
3886   // GL_ARB_framebuffer_sRGB
3887   GL_FRAMEBUFFER_SRGB = $8DB9;
3888
3889   // GL_ARB_geometry_shader4
3890   GL_LINES_ADJACENCY_ARB = $000A;
3891   GL_LINE_STRIP_ADJACENCY_ARB = $000B;
3892   GL_TRIANGLES_ADJACENCY_ARB = $000C;
3893   GL_TRIANGLE_STRIP_ADJACENCY_ARB = $000D;
3894   GL_PROGRAM_POINT_SIZE_ARB = $8642;
3895   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = $8C29;
3896   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = $8DA7;
3897   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = $8DA8;
3898   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = $8DA9;
3899   GL_GEOMETRY_SHADER_ARB = $8DD9;
3900   GL_GEOMETRY_VERTICES_OUT_ARB = $8DDA;
3901   GL_GEOMETRY_INPUT_TYPE_ARB = $8DDB;
3902   GL_GEOMETRY_OUTPUT_TYPE_ARB = $8DDC;
3903   GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = $8DDD;
3904   GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = $8DDE;
3905   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = $8DDF;
3906   GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = $8DE0;
3907   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = $8DE1;
3908   { reuse GL_MAX_VARYING_COMPONENTS }
3909   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
3910
3911   // GL_ARB_half_float_vertex
3912   GL_HALF_FLOAT = $140B;
3913
3914   // GL_ARB_instanced_arrays
3915   GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = $88FE;
3916
3917   // GL_ARB_map_buffer_range
3918   GL_MAP_READ_BIT = $0001;
3919   GL_MAP_WRITE_BIT = $0002;
3920   GL_MAP_INVALIDATE_RANGE_BIT = $0004;
3921   GL_MAP_INVALIDATE_BUFFER_BIT = $0008;
3922   GL_MAP_FLUSH_EXPLICIT_BIT = $0010;
3923   GL_MAP_UNSYNCHRONIZED_BIT = $0020;
3924
3925   // GL_ARB_texture_buffer_object
3926   GL_TEXTURE_BUFFER_ARB = $8C2A;
3927   GL_MAX_TEXTURE_BUFFER_SIZE_ARB = $8C2B;
3928   GL_TEXTURE_BINDING_BUFFER_ARB = $8C2C;
3929   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = $8C2D;
3930   GL_TEXTURE_BUFFER_FORMAT_ARB = $8C2E;
3931
3932   // GL_ARB_texture_compression_rgtc
3933   GL_COMPRESSED_RED_RGTC1 = $8DBB;
3934   GL_COMPRESSED_SIGNED_RED_RGTC1 = $8DBC;
3935   GL_COMPRESSED_RG_RGTC2 = $8DBD;
3936   GL_COMPRESSED_SIGNED_RG_RGTC2 = $8DBE;
3937
3938   // GL_ARB_texture_rg
3939   GL_RG = $8227;
3940   GL_RG_INTEGER = $8228;
3941   GL_R8 = $8229;
3942   GL_R16 = $822A;
3943   GL_RG8 = $822B;
3944   GL_RG16 = $822C;
3945   GL_R16F = $822D;
3946   GL_R32F = $822E;
3947   GL_RG16F = $822F;
3948   GL_RG32F = $8230;
3949   GL_R8I = $8231;
3950   GL_R8UI = $8232;
3951   GL_R16I = $8233;
3952   GL_R16UI = $8234;
3953   GL_R32I = $8235;
3954   GL_R32UI = $8236;
3955   GL_RG8I = $8237;
3956   GL_RG8UI = $8238;
3957   GL_RG16I = $8239;
3958   GL_RG16UI = $823A;
3959   GL_RG32I = $823B;
3960   GL_RG32UI = $823C;
3961
3962   // GL_ARB_vertex_array_object
3963   GL_VERTEX_ARRAY_BINDING = $85B5;
3964
3965   // GL_ARB_uniform_buffer_object
3966   GL_UNIFORM_BUFFER = $8A11;
3967   GL_UNIFORM_BUFFER_BINDING = $8A28;
3968   GL_UNIFORM_BUFFER_START = $8A29;
3969   GL_UNIFORM_BUFFER_SIZE = $8A2A;
3970   GL_MAX_VERTEX_UNIFORM_BLOCKS = $8A2B;
3971   GL_MAX_GEOMETRY_UNIFORM_BLOCKS = $8A2C;
3972   GL_MAX_FRAGMENT_UNIFORM_BLOCKS = $8A2D;
3973   GL_MAX_COMBINED_UNIFORM_BLOCKS = $8A2E;
3974   GL_MAX_UNIFORM_BUFFER_BINDINGS = $8A2F;
3975   GL_MAX_UNIFORM_BLOCK_SIZE = $8A30;
3976   GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = $8A31;
3977   GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = $8A32;
3978   GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = $8A33;
3979   GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = $8A34;
3980   GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = $8A35;
3981   GL_ACTIVE_UNIFORM_BLOCKS = $8A36;
3982   GL_UNIFORM_TYPE = $8A37;
3983   GL_UNIFORM_SIZE = $8A38;
3984   GL_UNIFORM_NAME_LENGTH = $8A39;
3985   GL_UNIFORM_BLOCK_INDEX = $8A3A;
3986   GL_UNIFORM_OFFSET = $8A3B;
3987   GL_UNIFORM_ARRAY_STRIDE = $8A3C;
3988   GL_UNIFORM_MATRIX_STRIDE = $8A3D;
3989   GL_UNIFORM_IS_ROW_MAJOR = $8A3E;
3990   GL_UNIFORM_BLOCK_BINDING = $8A3F;
3991   GL_UNIFORM_BLOCK_DATA_SIZE = $8A40;
3992   GL_UNIFORM_BLOCK_NAME_LENGTH = $8A41;
3993   GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = $8A42;
3994   GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = $8A43;
3995   GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = $8A44;
3996   GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = $8A45;
3997   GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = $8A46;
3998   GL_INVALID_INDEX = $FFFFFFFF;
3999
4000   // GL_ARB_compatibility
4001   { ARB_compatibility just defines tokens from core 3.0 }
4002
4003   // GL_ARB_copy_buffer
4004   GL_COPY_READ_BUFFER_BINDING = $8F36;
4005   GL_COPY_READ_BUFFER = GL_COPY_READ_BUFFER_BINDING;
4006   GL_COPY_WRITE_BUFFER_BINDING = $8F37;
4007   GL_COPY_WRITE_BUFFER = GL_COPY_WRITE_BUFFER_BINDING;
4008
4009   // GL_ARB_depth_clamp
4010   GL_DEPTH_CLAMP = $864F;
4011
4012   // GL_ARB_provoking_vertex
4013   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = $8E4C;
4014   GL_FIRST_VERTEX_CONVENTION = $8E4D;
4015   GL_LAST_VERTEX_CONVENTION = $8E4E;
4016   GL_PROVOKING_VERTEX = $8E4F;
4017
4018   // GL_ARB_seamless_cube_map
4019   GL_TEXTURE_CUBE_MAP_SEAMLESS = $884F;
4020
4021   // GL_ARB_sync
4022   GL_MAX_SERVER_WAIT_TIMEOUT = $9111;
4023   GL_OBJECT_TYPE = $9112;
4024   GL_SYNC_CONDITION = $9113;
4025   GL_SYNC_STATUS = $9114;
4026   GL_SYNC_FLAGS = $9115;
4027   GL_SYNC_FENCE = $9116;
4028   GL_SYNC_GPU_COMMANDS_COMPLETE = $9117;
4029   GL_UNSIGNALED = $9118;
4030   GL_SIGNALED = $9119;
4031   GL_ALREADY_SIGNALED = $911A;
4032   GL_TIMEOUT_EXPIRED = $911B;
4033   GL_CONDITION_SATISFIED = $911C;
4034   GL_WAIT_FAILED = $911D;
4035   GL_SYNC_FLUSH_COMMANDS_BIT = $00000001;
4036   GL_TIMEOUT_IGNORED = $FFFFFFFFFFFFFFFF;
4037
4038   // GL_ARB_texture_multisample
4039   GL_SAMPLE_POSITION = $8E50;
4040   GL_SAMPLE_MASK = $8E51;
4041   GL_SAMPLE_MASK_VALUE = $8E52;
4042   GL_MAX_SAMPLE_MASK_WORDS = $8E59;
4043   GL_TEXTURE_2D_MULTISAMPLE = $9100;
4044   GL_PROXY_TEXTURE_2D_MULTISAMPLE = $9101;
4045   GL_TEXTURE_2D_MULTISAMPLE_ARRAY = $9102;
4046   GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = $9103;
4047   GL_TEXTURE_BINDING_2D_MULTISAMPLE = $9104;
4048   GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = $9105;
4049   GL_TEXTURE_SAMPLES = $9106;
4050   GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = $9107;
4051   GL_SAMPLER_2D_MULTISAMPLE = $9108;
4052   GL_INT_SAMPLER_2D_MULTISAMPLE = $9109;
4053   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = $910A;
4054   GL_SAMPLER_2D_MULTISAMPLE_ARRAY = $910B;
4055   GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910C;
4056   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910D;
4057   GL_MAX_COLOR_TEXTURE_SAMPLES = $910E;
4058   GL_MAX_DEPTH_TEXTURE_SAMPLES = $910F;
4059   GL_MAX_INTEGER_SAMPLES = $9110;
4060
4061   // GL_ARB_vertex_array_bgra
4062   { reuse GL_BGRA }
4063
4064   // GL_ARB_sample_shading
4065   GL_SAMPLE_SHADING_ARB = $8C36;
4066   GL_MIN_SAMPLE_SHADING_VALUE_ARB = $8C37;
4067
4068   // GL_ARB_texture_cube_map_array
4069   GL_TEXTURE_CUBE_MAP_ARRAY_ARB = $9009;
4070   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = $900A;
4071   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = $900B;
4072   GL_SAMPLER_CUBE_MAP_ARRAY_ARB = $900C;
4073   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = $900D;
4074   GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900E;
4075   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900F;
4076
4077   // GL_ARB_texture_gather
4078   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5E;
4079   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5F;
4080
4081   // GL_ARB_shading_language_include
4082   GL_SHADER_INCLUDE_ARB = $8DAE;
4083   GL_NAMED_STRING_LENGTH_ARB = $8DE9;
4084   GL_NAMED_STRING_TYPE_ARB = $8DEA;
4085
4086   // GL_ARB_texture_compression_bptc
4087   GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = $8E8C;
4088   GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = $8E8D;
4089   GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = $8E8E;
4090   GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = $8E8F;
4091
4092   // GL_ARB_blend_func_extended
4093   GL_SRC1_COLOR = $88F9;
4094   { reuse GL_SRC1_ALPHA }
4095   GL_ONE_MINUS_SRC1_COLOR = $88FA;
4096   GL_ONE_MINUS_SRC1_ALPHA = $88FB;
4097   GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = $88FC;
4098
4099   // GL_ARB_occlusion_query2
4100   GL_ANY_SAMPLES_PASSED = $8C2F;
4101
4102   // GL_ARB_sampler_objects
4103   GL_SAMPLER_BINDING = $8919;
4104
4105   // GL_ARB_texture_rgb10_a2ui
4106   GL_RGB10_A2UI = $906F;
4107
4108   // GL_ARB_texture_swizzle
4109   GL_TEXTURE_SWIZZLE_R = $8E42;
4110   GL_TEXTURE_SWIZZLE_G = $8E43;
4111   GL_TEXTURE_SWIZZLE_B = $8E44;
4112   GL_TEXTURE_SWIZZLE_A = $8E45;
4113   GL_TEXTURE_SWIZZLE_RGBA = $8E46;
4114
4115   // GL_ARB_timer_query
4116   GL_TIME_ELAPSED = $88BF;
4117   GL_TIMESTAMP = $8E28;
4118
4119   // GL_ARB_vertex_type_2_10_10_10_rev
4120   { reuse GL_UNSIGNED_INT_2_10_10_10_REV }
4121   GL_INT_2_10_10_10_REV = $8D9F;
4122
4123   // GL_ARB_draw_indirect
4124   GL_DRAW_INDIRECT_BUFFER = $8F3F;
4125   GL_DRAW_INDIRECT_BUFFER_BINDING = $8F43;
4126
4127   // GL_ARB_gpu_shader5
4128   GL_GEOMETRY_SHADER_INVOCATIONS = $887F;
4129   GL_MAX_GEOMETRY_SHADER_INVOCATIONS = $8E5A;
4130   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = $8E5B;
4131   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = $8E5C;
4132   GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = $8E5D;
4133   { reuse GL_MAX_VERTEX_STREAMS }
4134
4135   // GL_ARB_gpu_shader_fp64
4136   { reuse GL_DOUBLE }
4137   GL_DOUBLE_VEC2 = $8FFC;
4138   GL_DOUBLE_VEC3 = $8FFD;
4139   GL_DOUBLE_VEC4 = $8FFE;
4140   GL_DOUBLE_MAT2 = $8F46;
4141   GL_DOUBLE_MAT3 = $8F47;
4142   GL_DOUBLE_MAT4 = $8F48;
4143   GL_DOUBLE_MAT2x3 = $8F49;
4144   GL_DOUBLE_MAT2x4 = $8F4A;
4145   GL_DOUBLE_MAT3x2 = $8F4B;
4146   GL_DOUBLE_MAT3x4 = $8F4C;
4147   GL_DOUBLE_MAT4x2 = $8F4D;
4148   GL_DOUBLE_MAT4x3 = $8F4E;
4149
4150   // GL_ARB_shader_subroutine
4151   GL_ACTIVE_SUBROUTINES = $8DE5;
4152   GL_ACTIVE_SUBROUTINE_UNIFORMS = $8DE6;
4153   GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = $8E47;
4154   GL_ACTIVE_SUBROUTINE_MAX_LENGTH = $8E48;
4155   GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = $8E49;
4156   GL_MAX_SUBROUTINES = $8DE7;
4157   GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = $8DE8;
4158   GL_NUM_COMPATIBLE_SUBROUTINES = $8E4A;
4159   GL_COMPATIBLE_SUBROUTINES = $8E4B;
4160   { reuse GL_UNIFORM_SIZE }
4161   { reuse GL_UNIFORM_NAME_LENGTH }
4162
4163   // GL_ARB_tessellation_shader
4164   GL_PATCHES = $000E;
4165   GL_PATCH_VERTICES = $8E72;
4166   GL_PATCH_DEFAULT_INNER_LEVEL = $8E73;
4167   GL_PATCH_DEFAULT_OUTER_LEVEL = $8E74;
4168   GL_TESS_CONTROL_OUTPUT_VERTICES = $8E75;
4169   GL_TESS_GEN_MODE = $8E76;
4170   GL_TESS_GEN_SPACING = $8E77;
4171   GL_TESS_GEN_VERTEX_ORDER = $8E78;
4172   GL_TESS_GEN_POINT_MODE = $8E79;
4173   { reuse GL_TRIANGLES }
4174   { reuse GL_QUADS }
4175   GL_ISOLINES = $8E7A;
4176   { reuse GL_EQUAL }
4177   GL_FRACTIONAL_ODD = $8E7B;
4178   GL_FRACTIONAL_EVEN = $8E7C;
4179   { reuse GL_CCW }
4180   { reuse GL_CW }
4181   GL_MAX_PATCH_VERTICES = $8E7D;
4182   GL_MAX_TESS_GEN_LEVEL = $8E7E;
4183   GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = $8E7F;
4184   GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E80;
4185   GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = $8E81;
4186   GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = $8E82;
4187   GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = $8E83;
4188   GL_MAX_TESS_PATCH_COMPONENTS = $8E84;
4189   GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = $8E85;
4190   GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = $8E86;
4191   GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = $8E89;
4192   GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = $8E8A;
4193   GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = $886C;
4194   GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = $886D;
4195   GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = $8E1E;
4196   GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E1F;
4197   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = $84F0;
4198   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = $84F1;
4199   GL_TESS_EVALUATION_SHADER = $8E87;
4200   GL_TESS_CONTROL_SHADER = $8E88;
4201
4202   // GL_ARB_texture_buffer_object_rgb32
4203   { reuse GL_RGB32F }
4204   { reuse GL_RGB32UI }
4205   { reuse GL_RGB32I }
4206
4207   // GL_ARB_transform_feedback2
4208   GL_TRANSFORM_FEEDBACK = $8E22;
4209   GL_TRANSFORM_FEEDBACK_PAUSED = $8E23;
4210   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = GL_TRANSFORM_FEEDBACK_PAUSED;
4211   GL_TRANSFORM_FEEDBACK_ACTIVE = $8E24;
4212   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = GL_TRANSFORM_FEEDBACK_ACTIVE;
4213   GL_TRANSFORM_FEEDBACK_BINDING = $8E25;
4214
4215   // GL_ARB_transform_feedback3
4216   GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = $8E70;
4217   GL_MAX_VERTEX_STREAMS = $8E71;
4218
4219   // GL_ARB_ES2_compatibility
4220   GL_FIXED = $140C;
4221   GL_IMPLEMENTATION_COLOR_READ_TYPE = $8B9A;
4222   GL_IMPLEMENTATION_COLOR_READ_FORMAT = $8B9B;
4223   GL_LOW_FLOAT = $8DF0;
4224   GL_MEDIUM_FLOAT = $8DF1;
4225   GL_HIGH_FLOAT = $8DF2;
4226   GL_LOW_INT = $8DF3;
4227   GL_MEDIUM_INT = $8DF4;
4228   GL_HIGH_INT = $8DF5;
4229   GL_SHADER_COMPILER = $8DFA;
4230   GL_NUM_SHADER_BINARY_FORMATS = $8DF9;
4231   GL_MAX_VERTEX_UNIFORM_VECTORS = $8DFB;
4232   GL_MAX_VARYING_VECTORS = $8DFC;
4233   GL_MAX_FRAGMENT_UNIFORM_VECTORS = $8DFD;
4234   GL_RGB565 = $8D62;
4235
4236   // GL_ARB_get_program_binary
4237   GL_PROGRAM_BINARY_RETRIEVABLE_HINT = $8257;
4238   GL_PROGRAM_BINARY_LENGTH = $8741;
4239   GL_NUM_PROGRAM_BINARY_FORMATS = $87FE;
4240   GL_PROGRAM_BINARY_FORMATS = $87FF;
4241
4242   // GL_ARB_separate_shader_objects
4243   GL_VERTEX_SHADER_BIT = $00000001;
4244   GL_FRAGMENT_SHADER_BIT = $00000002;
4245   GL_GEOMETRY_SHADER_BIT = $00000004;
4246   GL_TESS_CONTROL_SHADER_BIT = $00000008;
4247   GL_TESS_EVALUATION_SHADER_BIT = $00000010;
4248   GL_ALL_SHADER_BITS = $FFFFFFFF;
4249   GL_PROGRAM_SEPARABLE = $8258;
4250   GL_ACTIVE_PROGRAM = $8259;
4251   GL_PROGRAM_PIPELINE_BINDING = $825A;
4252
4253   // GL_ARB_vertex_attrib_64bit
4254   { reuse GL_RGB32I }
4255   { reuse GL_DOUBLE_VEC2 }
4256   { reuse GL_DOUBLE_VEC3 }
4257   { reuse GL_DOUBLE_VEC4 }
4258   { reuse GL_DOUBLE_MAT2 }
4259   { reuse GL_DOUBLE_MAT3 }
4260   { reuse GL_DOUBLE_MAT4 }
4261   { reuse GL_DOUBLE_MAT2x3 }
4262   { reuse GL_DOUBLE_MAT2x4 }
4263   { reuse GL_DOUBLE_MAT3x2 }
4264   { reuse GL_DOUBLE_MAT3x4 }
4265   { reuse GL_DOUBLE_MAT4x2 }
4266   { reuse GL_DOUBLE_MAT4x3 }
4267
4268   // GL_ARB_viewport_array
4269   { reuse GL_SCISSOR_BOX }
4270   { reuse GL_VIEWPORT }
4271   { reuse GL_DEPTH_RANGE }
4272   { reuse GL_SCISSOR_TEST }
4273   GL_MAX_VIEWPORTS = $825B;
4274   GL_VIEWPORT_SUBPIXEL_BITS = $825C;
4275   GL_VIEWPORT_BOUNDS_RANGE = $825D;
4276   GL_LAYER_PROVOKING_VERTEX = $825E;
4277   GL_VIEWPORT_INDEX_PROVOKING_VERTEX = $825F;
4278   GL_UNDEFINED_VERTEX = $8260;
4279   { reuse GL_FIRST_VERTEX_CONVENTION }
4280   { reuse GL_LAST_VERTEX_CONVENTION }
4281   { reuse GL_PROVOKING_VERTEX }
4282
4283   // GL_ARB_cl_event
4284   GL_SYNC_CL_EVENT_ARB = $8240;
4285   GL_SYNC_CL_EVENT_COMPLETE_ARB = $8241;
4286
4287   // GL_ARB_debug_output
4288   GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = $8242;
4289   GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = $8243;
4290   GL_DEBUG_CALLBACK_FUNCTION_ARB = $8244;
4291   GL_DEBUG_CALLBACK_USER_PARAM_ARB = $8245;
4292   GL_DEBUG_SOURCE_API_ARB = $8246;
4293   GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = $8247;
4294   GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = $8248;
4295   GL_DEBUG_SOURCE_THIRD_PARTY_ARB = $8249;
4296   GL_DEBUG_SOURCE_APPLICATION_ARB = $824A;
4297   GL_DEBUG_SOURCE_OTHER_ARB = $824B;
4298   GL_DEBUG_TYPE_ERROR_ARB = $824C;
4299   GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = $824D;
4300   GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = $824E;
4301   GL_DEBUG_TYPE_PORTABILITY_ARB = $824F;
4302   GL_DEBUG_TYPE_PERFORMANCE_ARB = $8250;
4303   GL_DEBUG_TYPE_OTHER_ARB = $8251;
4304   GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = $9143;
4305   GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = $9144;
4306   GL_DEBUG_LOGGED_MESSAGES_ARB = $9145;
4307   GL_DEBUG_SEVERITY_HIGH_ARB = $9146;
4308   GL_DEBUG_SEVERITY_MEDIUM_ARB = $9147;
4309   GL_DEBUG_SEVERITY_LOW_ARB = $9148;
4310
4311   // GL_ARB_robustness
4312   { reuse GL_NO_ERROR }
4313   GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = $00000004;
4314   GL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
4315   GL_GUILTY_CONTEXT_RESET_ARB = $8253;
4316   GL_INNOCENT_CONTEXT_RESET_ARB = $8254;
4317   GL_UNKNOWN_CONTEXT_RESET_ARB = $8255;
4318   GL_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
4319   GL_NO_RESET_NOTIFICATION_ARB = $8261;
4320
4321   //  GL_ARB_compressed_texture_pixel_storage
4322   GL_UNPACK_COMPRESSED_BLOCK_WIDTH  = $09127;
4323   GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = $09128;
4324   GL_UNPACK_COMPRESSED_BLOCK_DEPTH  = $09129;
4325   GL_UNPACK_COMPRESSED_BLOCK_SIZE   = $0912A;
4326   GL_PACK_COMPRESSED_BLOCK_WIDTH    = $0912B;
4327   GL_PACK_COMPRESSED_BLOCK_HEIGHT   = $0912C;
4328   GL_PACK_COMPRESSED_BLOCK_DEPTH    = $0912D;
4329   GL_PACK_COMPRESSED_BLOCK_SIZE     = $0912E;
4330
4331   // GL_ARB_internalformat_query
4332   GL_NUM_SAMPLE_COUNTS              = $09380;
4333
4334   // GL_ARB_map_buffer_alignment
4335   GL_MIN_MAP_BUFFER_ALIGNMENT       = $090BC;
4336
4337   // GL_ARB_shader_atomic_counters
4338   GL_ATOMIC_COUNTER_BUFFER          = $92C0;
4339   GL_ATOMIC_COUNTER_BUFFER_BINDING  = $92C1;
4340   GL_ATOMIC_COUNTER_BUFFER_START    = $92C2;
4341   GL_ATOMIC_COUNTER_BUFFER_SIZE     = $92C3;
4342   GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = $92C4;
4343   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = $92C5;
4344   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = $92C6;
4345   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = $92C7;
4346   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = $92C8;
4347   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = $92C9;
4348   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = $92CA;
4349   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = $92CB;
4350   GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = $92CC;
4351   GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = $92CD;
4352   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = $92CE;
4353   GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = $92CF;
4354   GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = $92D0;
4355   GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = $92D1;
4356   GL_MAX_VERTEX_ATOMIC_COUNTERS     = $92D2;
4357   GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = $92D3;
4358   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = $92D4;
4359   GL_MAX_GEOMETRY_ATOMIC_COUNTERS   = $92D5;
4360   GL_MAX_FRAGMENT_ATOMIC_COUNTERS   = $92D6;
4361   GL_MAX_COMBINED_ATOMIC_COUNTERS   = $92D7;
4362   GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = $92D8;
4363   GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = $92DC;
4364   GL_ACTIVE_ATOMIC_COUNTER_BUFFERS  = $92D9;
4365   GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = $92DA;
4366   GL_UNSIGNED_INT_ATOMIC_COUNTER    = $92DB;
4367
4368   // GL_ARB_shader_image_load_store
4369   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = $00000001;
4370   GL_ELEMENT_ARRAY_BARRIER_BIT      = $00000002;
4371   GL_UNIFORM_BARRIER_BIT            = $00000004;
4372   GL_TEXTURE_FETCH_BARRIER_BIT      = $00000008;
4373   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = $00000020;
4374   GL_COMMAND_BARRIER_BIT            = $00000040;
4375   GL_PIXEL_BUFFER_BARRIER_BIT       = $00000080;
4376   GL_TEXTURE_UPDATE_BARRIER_BIT     = $00000100;
4377   GL_BUFFER_UPDATE_BARRIER_BIT      = $00000200;
4378   GL_FRAMEBUFFER_BARRIER_BIT        = $00000400;
4379   GL_TRANSFORM_FEEDBACK_BARRIER_BIT = $00000800;
4380   GL_ATOMIC_COUNTER_BARRIER_BIT     = $00001000;
4381   GL_ALL_BARRIER_BITS               = $FFFFFFFF;
4382   GL_MAX_IMAGE_UNITS                = $8F38;
4383   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = $8F39;
4384   GL_IMAGE_BINDING_NAME             = $8F3A;
4385   GL_IMAGE_BINDING_LEVEL            = $8F3B;
4386   GL_IMAGE_BINDING_LAYERED          = $8F3C;
4387   GL_IMAGE_BINDING_LAYER            = $8F3D;
4388   GL_IMAGE_BINDING_ACCESS           = $8F3E;
4389   GL_IMAGE_1D                       = $904C;
4390   GL_IMAGE_2D                       = $904D;
4391   GL_IMAGE_3D                       = $904E;
4392   GL_IMAGE_2D_RECT                  = $904F;
4393   GL_IMAGE_CUBE                     = $9050;
4394   GL_IMAGE_BUFFER                   = $9051;
4395   GL_IMAGE_1D_ARRAY                 = $9052;
4396   GL_IMAGE_2D_ARRAY                 = $9053;
4397   GL_IMAGE_CUBE_MAP_ARRAY           = $9054;
4398   GL_IMAGE_2D_MULTISAMPLE           = $9055;
4399   GL_IMAGE_2D_MULTISAMPLE_ARRAY     = $9056;
4400   GL_INT_IMAGE_1D                   = $9057;
4401   GL_INT_IMAGE_2D                   = $9058;
4402   GL_INT_IMAGE_3D                   = $9059;
4403   GL_INT_IMAGE_2D_RECT              = $905A;
4404   GL_INT_IMAGE_CUBE                 = $905B;
4405   GL_INT_IMAGE_BUFFER               = $905C;
4406   GL_INT_IMAGE_1D_ARRAY             = $905D;
4407   GL_INT_IMAGE_2D_ARRAY             = $905E;
4408   GL_INT_IMAGE_CUBE_MAP_ARRAY       = $905F;
4409   GL_INT_IMAGE_2D_MULTISAMPLE       = $9060;
4410   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $9061;
4411   GL_UNSIGNED_INT_IMAGE_1D          = $9062;
4412   GL_UNSIGNED_INT_IMAGE_2D          = $9063;
4413   GL_UNSIGNED_INT_IMAGE_3D          = $9064;
4414   GL_UNSIGNED_INT_IMAGE_2D_RECT     = $9065;
4415   GL_UNSIGNED_INT_IMAGE_CUBE        = $9066;
4416   GL_UNSIGNED_INT_IMAGE_BUFFER      = $9067;
4417   GL_UNSIGNED_INT_IMAGE_1D_ARRAY    = $9068;
4418   GL_UNSIGNED_INT_IMAGE_2D_ARRAY    = $9069;
4419   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = $906A;
4420   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = $906B;
4421   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $906C;
4422   GL_MAX_IMAGE_SAMPLES              = $906D;
4423   GL_IMAGE_BINDING_FORMAT           = $906E;
4424   GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = $90C7;
4425   GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = $90C8;
4426   GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = $90C9;
4427   GL_MAX_VERTEX_IMAGE_UNIFORMS      = $90CA;
4428   GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = $90CB;
4429   GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = $90CC;
4430   GL_MAX_GEOMETRY_IMAGE_UNIFORMS    = $90CD;
4431   GL_MAX_FRAGMENT_IMAGE_UNIFORMS    = $90CE;
4432   GL_MAX_COMBINED_IMAGE_UNIFORMS    = $90CF;
4433
4434   // GL_ARB_texture_storage
4435   GL_TEXTURE_IMMUTABLE_FORMAT       = $912F;
4436
4437   // 4.3
4438     GL_COMPRESSED_RGBA_ASTC_4x4_KHR = $93B0;
4439     GL_COMPRESSED_RGBA_ASTC_5x4_KHR = $93B1;
4440     GL_COMPRESSED_RGBA_ASTC_5x5_KHR = $93B2;
4441     GL_COMPRESSED_RGBA_ASTC_6x5_KHR = $93B3;
4442     GL_COMPRESSED_RGBA_ASTC_6x6_KHR = $93B4;
4443     GL_COMPRESSED_RGBA_ASTC_8x5_KHR = $93B5;
4444     GL_COMPRESSED_RGBA_ASTC_8x6_KHR = $93B6;
4445     GL_COMPRESSED_RGBA_ASTC_8x8_KHR = $93B7;
4446     GL_COMPRESSED_RGBA_ASTC_105_KHR = $93B8;
4447     GL_COMPRESSED_RGBA_ASTC_106_KHR = $93B9;
4448     GL_COMPRESSED_RGBA_ASTC_108_KHR = $93BA;
4449     GL_COMPRESSED_RGBA_ASTC_110_KHR = $93BB;
4450     GL_COMPRESSED_RGBA_ASTC_12x10_KHR = $93BC;
4451     GL_COMPRESSED_RGBA_ASTC_12x12_KHR = $93BD;
4452     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = $93D0;
4453     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = $93D1;
4454     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = $93D2;
4455     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = $93D3;
4456     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = $93D4;
4457     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = $93D5;
4458     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = $93D6;
4459     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = $93D7;
4460     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = $93D8;
4461     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = $93D9;
4462     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = $93DA;
4463     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = $93DB;
4464     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = $93DC;
4465     GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = $93DD;
4466     // (4.3) GL_KHR_debug
4467     GL_DEBUG_OUTPUT_SYNCHRONOUS       = $8242;
4468     GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = $8243;
4469     GL_DEBUG_CALLBACK_FUNCTION        = $8244;
4470     GL_DEBUG_CALLBACK_USER_PARAM      = $8245;
4471     GL_DEBUG_SOURCE_API               = $8246;
4472     GL_DEBUG_SOURCE_WINDOW_SYSTEM     = $8247;
4473     GL_DEBUG_SOURCE_SHADER_COMPILER   = $8248;
4474     GL_DEBUG_SOURCE_THIRD_PARTY       = $8249;
4475     GL_DEBUG_SOURCE_APPLICATION       = $824A;
4476     GL_DEBUG_SOURCE_OTHER             = $824B;
4477     GL_DEBUG_TYPE_ERROR               = $824C;
4478     GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = $824D;
4479     GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR  = $824E;
4480     GL_DEBUG_TYPE_PORTABILITY         = $824F;
4481     GL_DEBUG_TYPE_PERFORMANCE         = $8250;
4482     GL_DEBUG_TYPE_OTHER               = $8251;
4483     GL_DEBUG_TYPE_MARKER              = $8268;
4484     GL_DEBUG_TYPE_PUSH_GROUP          = $8269;
4485     GL_DEBUG_TYPE_POP_GROUP           = $826A;
4486     GL_DEBUG_SEVERITY_NOTIFICATION    = $826B;
4487     GL_MAX_DEBUG_GROUP_STACK_DEPTH    = $826C;
4488     GL_DEBUG_GROUP_STACK_DEPTH        = $826D;
4489     GL_BUFFER                         = $82E0;
4490     GL_SHADER                         = $82E1;
4491     GL_PROGRAM                        = $82E2;
4492     GL_QUERY                          = $82E3;
4493     GL_PROGRAM_PIPELINE               = $82E4;
4494     GL_SAMPLER                        = $82E6;
4495     GL_DISPLAY_LIST                   = $82E7;
4496     GL_MAX_LABEL_LENGTH               = $82E8;
4497     GL_MAX_DEBUG_MESSAGE_LENGTH       = $9143;
4498     GL_MAX_DEBUG_LOGGED_MESSAGES      = $9144;
4499     GL_DEBUG_LOGGED_MESSAGES          = $9145;
4500     GL_DEBUG_SEVERITY_HIGH            = $9146;
4501     GL_DEBUG_SEVERITY_MEDIUM          = $9147;
4502     GL_DEBUG_SEVERITY_LOW             = $9148;
4503     GL_DEBUG_OUTPUT                   = $92E0;
4504     GL_CONTEXT_FLAG_DEBUG_BIT         = $00000002;
4505     GL_COMPUTE_SHADER                 = $91B9;
4506     GL_MAX_COMPUTE_UNIFORM_BLOCKS     = $91BB;
4507     GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = $91BC;
4508     GL_MAX_COMPUTE_IMAGE_UNIFORMS     = $91BD;
4509     GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = $8262;
4510     GL_MAX_COMPUTE_UNIFORM_COMPONENTS = $8263;
4511     GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = $8264;
4512     GL_MAX_COMPUTE_ATOMIC_COUNTERS    = $8265;
4513     GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = $8266;
4514     GL_MAX_COMPUTE_LOCAL_INVOCATIONS  = $90EB;
4515     GL_MAX_COMPUTE_WORK_GROUP_COUNT   = $91BE;
4516     GL_MAX_COMPUTE_WORK_GROUP_SIZE    = $91BF;
4517     GL_COMPUTE_LOCAL_WORK_SIZE        = $8267;
4518     GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = $90EC;
4519     GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = $90ED;
4520     GL_DISPATCH_INDIRECT_BUFFER       = $90EE;
4521     GL_DISPATCH_INDIRECT_BUFFER_BINDING = $90EF;
4522     GL_COMPUTE_SHADER_BIT             = $00000020;
4523     GL_COMPRESSED_RGB8_ETC2           = $9274;
4524     GL_COMPRESSED_SRGB8_ETC2          = $9275;
4525     GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9276;
4526     GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9277;
4527     GL_COMPRESSED_RGBA8_ETC2_EAC      = $9278;
4528     GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = $9279;
4529     GL_COMPRESSED_R11_EAC             = $9270;
4530     GL_COMPRESSED_SIGNED_R11_EAC      = $9271;
4531     GL_COMPRESSED_RG11_EAC            = $9272;
4532     GL_COMPRESSED_SIGNED_RG11_EAC     = $9273;
4533     GL_PRIMITIVE_RESTART_FIXED_INDEX  = $8D69;
4534     GL_ANY_SAMPLES_PASSED_CONSERVATIVE = $8D6A;
4535     GL_MAX_ELEMENT_INDEX              = $8D6B;
4536         GL_MAX_UNIFORM_LOCATIONS          = $826E;
4537     GL_FRAMEBUFFER_DEFAULT_WIDTH      = $9310;
4538     GL_FRAMEBUFFER_DEFAULT_HEIGHT     = $9311;
4539     GL_FRAMEBUFFER_DEFAULT_LAYERS     = $9312;
4540     GL_FRAMEBUFFER_DEFAULT_SAMPLES    = $9313;
4541     GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = $9314;
4542     GL_MAX_FRAMEBUFFER_WIDTH          = $9315;
4543     GL_MAX_FRAMEBUFFER_HEIGHT         = $9316;
4544     GL_MAX_FRAMEBUFFER_LAYERS         = $9317;
4545     GL_MAX_FRAMEBUFFER_SAMPLES        = $9318;
4546           GL_INTERNALFORMAT_SUPPORTED       = $826F;
4547     GL_INTERNALFORMAT_PREFERRED       = $8270;
4548     GL_INTERNALFORMAT_RED_SIZE        = $8271;
4549     GL_INTERNALFORMAT_GREEN_SIZE      = $8272;
4550     GL_INTERNALFORMAT_BLUE_SIZE       = $8273;
4551     GL_INTERNALFORMAT_ALPHA_SIZE      = $8274;
4552     GL_INTERNALFORMAT_DEPTH_SIZE      = $8275;
4553     GL_INTERNALFORMAT_STENCIL_SIZE    = $8276;
4554     GL_INTERNALFORMAT_SHARED_SIZE     = $8277;
4555     GL_INTERNALFORMAT_RED_TYPE        = $8278;
4556     GL_INTERNALFORMAT_GREEN_TYPE      = $8279;
4557     GL_INTERNALFORMAT_BLUE_TYPE       = $827A;
4558     GL_INTERNALFORMAT_ALPHA_TYPE      = $827B;
4559     GL_INTERNALFORMAT_DEPTH_TYPE      = $827C;
4560     GL_INTERNALFORMAT_STENCIL_TYPE    = $827D;
4561     GL_MAX_WIDTH                      = $827E;
4562     GL_MAX_HEIGHT                     = $827F;
4563     GL_MAX_DEPTH                      = $8280;
4564     GL_MAX_LAYERS                     = $8281;
4565     GL_MAX_COMBINED_DIMENSIONS        = $8282;
4566     GL_COLOR_COMPONENTS               = $8283;
4567     GL_DEPTH_COMPONENTS               = $8284;
4568     GL_STENCIL_COMPONENTS             = $8285;
4569     GL_COLOR_RENDERABLE               = $8286;
4570     GL_DEPTH_RENDERABLE               = $8287;
4571     GL_STENCIL_RENDERABLE             = $8288;
4572     GL_FRAMEBUFFER_RENDERABLE         = $8289;
4573     GL_FRAMEBUFFER_RENDERABLE_LAYERED = $828A;
4574     GL_FRAMEBUFFER_BLEND              = $828B;
4575     GL_READ_PIXELS                    = $828C;
4576     GL_READ_PIXELS_FORMAT             = $828D;
4577     GL_READ_PIXELS_TYPE               = $828E;
4578     GL_TEXTURE_IMAGE_FORMAT           = $828F;
4579     GL_TEXTURE_IMAGE_TYPE             = $8290;
4580     GL_GET_TEXTURE_IMAGE_FORMAT       = $8291;
4581     GL_GET_TEXTURE_IMAGE_TYPE         = $8292;
4582     GL_MIPMAP                         = $8293;
4583     GL_MANUAL_GENERATE_MIPMAP         = $8294;
4584     GL_AUTO_GENERATE_MIPMAP           = $8295;
4585     GL_COLOR_ENCODING                 = $8296;
4586     GL_SRGB_READ                      = $8297;
4587     GL_SRGB_WRITE                     = $8298;
4588     GL_SRGB_DECODE_ARB                = $8299;
4589     GL_FILTER                         = $829A;
4590     GL_VERTEX_TEXTURE                 = $829B;
4591     GL_TESS_CONTROL_TEXTURE           = $829C;
4592     GL_TESS_EVALUATION_TEXTURE        = $829D;
4593     GL_GEOMETRY_TEXTURE               = $829E;
4594     GL_FRAGMENT_TEXTURE               = $829F;
4595     GL_COMPUTE_TEXTURE                = $82A0;
4596     GL_TEXTURE_SHADOW                 = $82A1;
4597     GL_TEXTURE_GATHER                 = $82A2;
4598     GL_TEXTURE_GATHER_SHADOW          = $82A3;
4599     GL_SHADER_IMAGE_LOAD              = $82A4;
4600     GL_SHADER_IMAGE_STORE             = $82A5;
4601     GL_SHADER_IMAGE_ATOMIC            = $82A6;
4602     GL_IMAGE_TEXEL_SIZE               = $82A7;
4603     GL_IMAGE_COMPATIBILITY_CLASS      = $82A8;
4604     GL_IMAGE_PIXEL_FORMAT             = $82A9;
4605     GL_IMAGE_PIXEL_TYPE               = $82AA;
4606     GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = $82AC;
4607     GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = $82AD;
4608     GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = $82AE;
4609     GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = $82AF;
4610     GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = $82B1;
4611     GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = $82B2;
4612     GL_TEXTURE_COMPRESSED_BLOCK_SIZE  = $82B3;
4613     GL_CLEAR_BUFFER                   = $82B4;
4614     GL_TEXTURE_VIEW                   = $82B5;
4615     GL_VIEW_COMPATIBILITY_CLASS       = $82B6;
4616     GL_FULL_SUPPORT                   = $82B7;
4617     GL_CAVEAT_SUPPORT                 = $82B8;
4618     GL_IMAGE_CLASS_4_X_32             = $82B9;
4619     GL_IMAGE_CLASS_2_X_32             = $82BA;
4620     GL_IMAGE_CLASS_1_X_32             = $82BB;
4621     GL_IMAGE_CLASS_4_X_16             = $82BC;
4622     GL_IMAGE_CLASS_2_X_16             = $82BD;
4623     GL_IMAGE_CLASS_1_X_16             = $82BE;
4624     GL_IMAGE_CLASS_4_X_8              = $82BF;
4625     GL_IMAGE_CLASS_2_X_8              = $82C0;
4626     GL_IMAGE_CLASS_1_X_8              = $82C1;
4627     GL_IMAGE_CLASS_11_11_10           = $82C2;
4628     GL_IMAGE_CLASS_10_10_10_2         = $82C3;
4629     GL_VIEW_CLASS_128_BITS            = $82C4;
4630     GL_VIEW_CLASS_96_BITS             = $82C5;
4631     GL_VIEW_CLASS_64_BITS             = $82C6;
4632     GL_VIEW_CLASS_48_BITS             = $82C7;
4633     GL_VIEW_CLASS_32_BITS             = $82C8;
4634     GL_VIEW_CLASS_24_BITS             = $82C9;
4635     GL_VIEW_CLASS_16_BITS             = $82CA;
4636     GL_VIEW_CLASS_8_BITS              = $82CB;
4637     GL_VIEW_CLASS_S3TC_DXT1_RGB       = $82CC;
4638     GL_VIEW_CLASS_S3TC_DXT1_RGBA      = $82CD;
4639     GL_VIEW_CLASS_S3TC_DXT3_RGBA      = $82CE;
4640     GL_VIEW_CLASS_S3TC_DXT5_RGBA      = $82CF;
4641     GL_VIEW_CLASS_RGTC1_RED           = $82D0;
4642     GL_VIEW_CLASS_RGTC2_RG            = $82D1;
4643     GL_VIEW_CLASS_BPTC_UNORM          = $82D2;
4644     GL_VIEW_CLASS_BPTC_FLOAT          = $82D3;
4645     GL_UNIFORM                        = $92E1;
4646     GL_UNIFORM_BLOCK                  = $92E2;
4647     GL_PROGRAM_INPUT                  = $92E3;
4648     GL_PROGRAM_OUTPUT                 = $92E4;
4649     GL_BUFFER_VARIABLE                = $92E5;
4650     GL_SHADER_STORAGE_BLOCK           = $92E6;
4651     GL_VERTEX_SUBROUTINE              = $92E8;
4652     GL_TESS_CONTROL_SUBROUTINE        = $92E9;
4653     GL_TESS_EVALUATION_SUBROUTINE     = $92EA;
4654     GL_GEOMETRY_SUBROUTINE            = $92EB;
4655     GL_FRAGMENT_SUBROUTINE            = $92EC;
4656     GL_COMPUTE_SUBROUTINE             = $92ED;
4657     GL_VERTEX_SUBROUTINE_UNIFORM      = $92EE;
4658     GL_TESS_CONTROL_SUBROUTINE_UNIFORM = $92EF;
4659     GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = $92F0;
4660     GL_GEOMETRY_SUBROUTINE_UNIFORM    = $92F1;
4661     GL_FRAGMENT_SUBROUTINE_UNIFORM    = $92F2;
4662     GL_COMPUTE_SUBROUTINE_UNIFORM     = $92F3;
4663     GL_TRANSFORM_FEEDBACK_VARYING     = $92F4;
4664     GL_ACTIVE_RESOURCES               = $92F5;
4665     GL_MAX_NAME_LENGTH                = $92F6;
4666     GL_MAX_NUM_ACTIVE_VARIABLES       = $92F7;
4667     GL_MAX_NUM_COMPATIBLE_SUBROUTINES = $92F8;
4668     GL_NAME_LENGTH                    = $92F9;
4669     GL_TYPE                           = $92FA;
4670     GL_ARRAY_SIZE                     = $92FB;
4671     GL_OFFSET                         = $92FC;
4672     GL_BLOCK_INDEX                    = $92FD;
4673     GL_ARRAY_STRIDE                   = $92FE;
4674     GL_MATRIX_STRIDE                  = $92FF;
4675     GL_IS_ROW_MAJOR                   = $9300;
4676     GL_ATOMIC_COUNTER_BUFFER_INDEX    = $9301;
4677     GL_BUFFER_BINDING                 = $9302;
4678     GL_BUFFER_DATA_SIZE               = $9303;
4679     GL_NUM_ACTIVE_VARIABLES           = $9304;
4680     GL_ACTIVE_VARIABLES               = $9305;
4681     GL_REFERENCED_BY_VERTEX_SHADER    = $9306;
4682     GL_REFERENCED_BY_TESS_CONTROL_SHADER = $9307;
4683     GL_REFERENCED_BY_TESS_EVALUATION_SHADER = $9308;
4684     GL_REFERENCED_BY_GEOMETRY_SHADER  = $9309;
4685     GL_REFERENCED_BY_FRAGMENT_SHADER  = $930A;
4686     GL_REFERENCED_BY_COMPUTE_SHADER   = $930B;
4687     GL_TOP_LEVEL_ARRAY_SIZE           = $930C;
4688     GL_TOP_LEVEL_ARRAY_STRIDE         = $930D;
4689     GL_LOCATION                       = $930E;
4690     GL_LOCATION_INDEX                 = $930F;
4691     GL_IS_PER_PATCH                   = $92E7;
4692     GL_SHADER_STORAGE_BUFFER          = $90D2;
4693     GL_SHADER_STORAGE_BUFFER_BINDING  = $90D3;
4694     GL_SHADER_STORAGE_BUFFER_START    = $90D4;
4695     GL_SHADER_STORAGE_BUFFER_SIZE     = $90D5;
4696     GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = $90D6;
4697     GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = $90D7;
4698     GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = $90D8;
4699     GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = $90D9;
4700     GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = $90DA;
4701     GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = $90DB;
4702     GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = $90DC;
4703     GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = $90DD;
4704     GL_MAX_SHADER_STORAGE_BLOCK_SIZE  = $90DE;
4705     GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = $90DF;
4706     GL_SHADER_STORAGE_BARRIER_BIT     = $2000;
4707     GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS;
4708     GL_DEPTH_STENCIL_TEXTURE_MODE     = $90EA;
4709     GL_TEXTURE_BUFFER_OFFSET          = $919D;
4710     GL_TEXTURE_BUFFER_SIZE            = $919E;
4711     GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = $919F;
4712     GL_TEXTURE_VIEW_MIN_LEVEL         = $82DB;
4713     GL_TEXTURE_VIEW_NUM_LEVELS        = $82DC;
4714     GL_TEXTURE_VIEW_MIN_LAYER         = $82DD;
4715     GL_TEXTURE_VIEW_NUM_LAYERS        = $82DE;
4716     GL_TEXTURE_IMMUTABLE_LEVELS       = $82DF;
4717     GL_VERTEX_ATTRIB_BINDING          = $82D4;
4718     GL_VERTEX_ATTRIB_RELATIVE_OFFSET  = $82D5;
4719     GL_VERTEX_BINDING_DIVISOR         = $82D6;
4720     GL_VERTEX_BINDING_OFFSET          = $82D7;
4721     GL_VERTEX_BINDING_STRIDE          = $82D8;
4722     GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D9;
4723     GL_MAX_VERTEX_ATTRIB_BINDINGS     = $82DA;
4724         // END 4.3
4725
4726   // GL 4.4
4727     GL_MAX_VERTEX_ATTRIB_STRIDE         = $82E5;
4728     GL_MAP_PERSISTENT_BIT               = $0040;
4729     GL_MAP_COHERENT_BIT                 = $0080;
4730     GL_DYNAMIC_STORAGE_BIT              = $0100;
4731     GL_CLIENT_STORAGE_BIT               = $0200;
4732     GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = $00004000;
4733     GL_BUFFER_IMMUTABLE_STORAGE         = $821F;
4734     GL_BUFFER_STORAGE_FLAGS             = $8220;
4735     GL_CLEAR_TEXTURE                    = $9365;
4736     GL_LOCATION_COMPONENT               = $934A;
4737     GL_TRANSFORM_FEEDBACK_BUFFER_INDEX  = $934B;
4738     GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = $934C;
4739     GL_QUERY_BUFFER                     = $9192;
4740     GL_QUERY_BUFFER_BARRIER_BIT         = $00008000;
4741     GL_QUERY_BUFFER_BINDING             = $9193;
4742     GL_QUERY_RESULT_NO_WAIT             = $9194;
4743     GL_MIRROR_CLAMP_TO_EDGE             = $8743;
4744   // END GL 4.4
4745
4746   // GL_ATI_draw_buffers
4747   GL_MAX_DRAW_BUFFERS_ATI = $8824;
4748   GL_DRAW_BUFFER0_ATI = $8825;
4749   GL_DRAW_BUFFER1_ATI = $8826;
4750   GL_DRAW_BUFFER2_ATI = $8827;
4751   GL_DRAW_BUFFER3_ATI = $8828;
4752   GL_DRAW_BUFFER4_ATI = $8829;
4753   GL_DRAW_BUFFER5_ATI = $882A;
4754   GL_DRAW_BUFFER6_ATI = $882B;
4755   GL_DRAW_BUFFER7_ATI = $882C;
4756   GL_DRAW_BUFFER8_ATI = $882D;
4757   GL_DRAW_BUFFER9_ATI = $882E;
4758   GL_DRAW_BUFFER10_ATI = $882F;
4759   GL_DRAW_BUFFER11_ATI = $8830;
4760   GL_DRAW_BUFFER12_ATI = $8831;
4761   GL_DRAW_BUFFER13_ATI = $8832;
4762   GL_DRAW_BUFFER14_ATI = $8833;
4763   GL_DRAW_BUFFER15_ATI = $8834;
4764
4765   // GL_ATI_element_array
4766   GL_ELEMENT_ARRAY_ATI = $8768;
4767   GL_ELEMENT_ARRAY_TYPE_ATI = $8769;
4768   GL_ELEMENT_ARRAY_POINTER_ATI = $876A;
4769
4770   // GL_ATI_envmap_bumpmap
4771   GL_BUMP_ROT_MATRIX_ATI = $8775;
4772   GL_BUMP_ROT_MATRIX_SIZE_ATI = $8776;
4773   GL_BUMP_NUM_TEX_UNITS_ATI = $8777;
4774   GL_BUMP_TEX_UNITS_ATI = $8778;
4775   GL_DUDV_ATI = $8779;
4776   GL_DU8DV8_ATI = $877A;
4777   GL_BUMP_ENVMAP_ATI = $877B;
4778   GL_BUMP_TARGET_ATI = $877C;
4779
4780   // GL_ATI_fragment_shader
4781   GL_FRAGMENT_SHADER_ATI = $8920;
4782   GL_REG_0_ATI = $8921;
4783   GL_REG_1_ATI = $8922;
4784   GL_REG_2_ATI = $8923;
4785   GL_REG_3_ATI = $8924;
4786   GL_REG_4_ATI = $8925;
4787   GL_REG_5_ATI = $8926;
4788   GL_REG_6_ATI = $8927;
4789   GL_REG_7_ATI = $8928;
4790   GL_REG_8_ATI = $8929;
4791   GL_REG_9_ATI = $892A;
4792   GL_REG_10_ATI = $892B;
4793   GL_REG_11_ATI = $892C;
4794   GL_REG_12_ATI = $892D;
4795   GL_REG_13_ATI = $892E;
4796   GL_REG_14_ATI = $892F;
4797   GL_REG_15_ATI = $8930;
4798   GL_REG_16_ATI = $8931;
4799   GL_REG_17_ATI = $8932;
4800   GL_REG_18_ATI = $8933;
4801   GL_REG_19_ATI = $8934;
4802   GL_REG_20_ATI = $8935;
4803   GL_REG_21_ATI = $8936;
4804   GL_REG_22_ATI = $8937;
4805   GL_REG_23_ATI = $8938;
4806   GL_REG_24_ATI = $8939;
4807   GL_REG_25_ATI = $893A;
4808   GL_REG_26_ATI = $893B;
4809   GL_REG_27_ATI = $893C;
4810   GL_REG_28_ATI = $893D;
4811   GL_REG_29_ATI = $893E;
4812   GL_REG_30_ATI = $893F;
4813   GL_REG_31_ATI = $8940;
4814   GL_CON_0_ATI = $8941;
4815   GL_CON_1_ATI = $8942;
4816   GL_CON_2_ATI = $8943;
4817   GL_CON_3_ATI = $8944;
4818   GL_CON_4_ATI = $8945;
4819   GL_CON_5_ATI = $8946;
4820   GL_CON_6_ATI = $8947;
4821   GL_CON_7_ATI = $8948;
4822   GL_CON_8_ATI = $8949;
4823   GL_CON_9_ATI = $894A;
4824   GL_CON_10_ATI = $894B;
4825   GL_CON_11_ATI = $894C;
4826   GL_CON_12_ATI = $894D;
4827   GL_CON_13_ATI = $894E;
4828   GL_CON_14_ATI = $894F;
4829   GL_CON_15_ATI = $8950;
4830   GL_CON_16_ATI = $8951;
4831   GL_CON_17_ATI = $8952;
4832   GL_CON_18_ATI = $8953;
4833   GL_CON_19_ATI = $8954;
4834   GL_CON_20_ATI = $8955;
4835   GL_CON_21_ATI = $8956;
4836   GL_CON_22_ATI = $8957;
4837   GL_CON_23_ATI = $8958;
4838   GL_CON_24_ATI = $8959;
4839   GL_CON_25_ATI = $895A;
4840   GL_CON_26_ATI = $895B;
4841   GL_CON_27_ATI = $895C;
4842   GL_CON_28_ATI = $895D;
4843   GL_CON_29_ATI = $895E;
4844   GL_CON_30_ATI = $895F;
4845   GL_CON_31_ATI = $8960;
4846   GL_MOV_ATI = $8961;
4847   GL_ADD_ATI = $8963;
4848   GL_MUL_ATI = $8964;
4849   GL_SUB_ATI = $8965;
4850   GL_DOT3_ATI = $8966;
4851   GL_DOT4_ATI = $8967;
4852   GL_MAD_ATI = $8968;
4853   GL_LERP_ATI = $8969;
4854   GL_CND_ATI = $896A;
4855   GL_CND0_ATI = $896B;
4856   GL_DOT2_ADD_ATI = $896C;
4857   GL_SECONDARY_INTERPOLATOR_ATI = $896D;
4858   GL_NUM_FRAGMENT_REGISTERS_ATI = $896E;
4859   GL_NUM_FRAGMENT_CONSTANTS_ATI = $896F;
4860   GL_NUM_PASSES_ATI = $8970;
4861   GL_NUM_INSTRUCTIONS_PER_PASS_ATI = $8971;
4862   GL_NUM_INSTRUCTIONS_TOTAL_ATI = $8972;
4863   GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = $8973;
4864   GL_NUM_LOOPBACK_COMPONENTS_ATI = $8974;
4865   GL_COLOR_ALPHA_PAIRING_ATI = $8975;
4866   GL_SWIZZLE_STR_ATI = $8976;
4867   GL_SWIZZLE_STQ_ATI = $8977;
4868   GL_SWIZZLE_STR_DR_ATI = $8978;
4869   GL_SWIZZLE_STQ_DQ_ATI = $8979;
4870   GL_SWIZZLE_STRQ_ATI = $897A;
4871   GL_SWIZZLE_STRQ_DQ_ATI = $897B;
4872   GL_RED_BIT_ATI = $00000001;
4873   GL_GREEN_BIT_ATI = $00000002;
4874   GL_BLUE_BIT_ATI = $00000004;
4875   GL_2X_BIT_ATI = $00000001;
4876   GL_4X_BIT_ATI = $00000002;
4877   GL_8X_BIT_ATI = $00000004;
4878   GL_HALF_BIT_ATI = $00000008;
4879   GL_QUARTER_BIT_ATI = $00000010;
4880   GL_EIGHTH_BIT_ATI = $00000020;
4881   GL_SATURATE_BIT_ATI = $00000040;
4882   GL_COMP_BIT_ATI = $00000002;
4883   GL_NEGATE_BIT_ATI = $00000004;
4884   GL_BIAS_BIT_ATI = $00000008;
4885
4886   // GL_ATI_pn_triangles
4887   GL_PN_TRIANGLES_ATI = $87F0;
4888   GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F1;
4889   GL_PN_TRIANGLES_POINT_MODE_ATI = $87F2;
4890   GL_PN_TRIANGLES_NORMAL_MODE_ATI = $87F3;
4891   GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F4;
4892   GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = $87F5;
4893   GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = $87F6;
4894   GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = $87F7;
4895   GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = $87F8;
4896
4897   // GL_ATI_separate_stencil
4898   GL_STENCIL_BACK_FUNC_ATI = $8800;
4899   GL_STENCIL_BACK_FAIL_ATI = $8801;
4900   GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = $8802;
4901   GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = $8803;
4902
4903   // GL_ATI_text_fragment_shader
4904   GL_TEXT_FRAGMENT_SHADER_ATI = $8200;
4905
4906   // GL_ATI_texture_env_combine3
4907   GL_MODULATE_ADD_ATI = $8744;
4908   GL_MODULATE_SIGNED_ADD_ATI = $8745;
4909   GL_MODULATE_SUBTRACT_ATI = $8746;
4910
4911   // GL_ATI_texture_float
4912   GL_RGBA_FLOAT32_ATI = $8814;
4913   GL_RGB_FLOAT32_ATI = $8815;
4914   GL_ALPHA_FLOAT32_ATI = $8816;
4915   GL_INTENSITY_FLOAT32_ATI = $8817;
4916   GL_LUMINANCE_FLOAT32_ATI = $8818;
4917   GL_LUMINANCE_ALPHA_FLOAT32_ATI = $8819;
4918   GL_RGBA_FLOAT16_ATI = $881A;
4919   GL_RGB_FLOAT16_ATI = $881B;
4920   GL_ALPHA_FLOAT16_ATI = $881C;
4921   GL_INTENSITY_FLOAT16_ATI = $881D;
4922   GL_LUMINANCE_FLOAT16_ATI = $881E;
4923   GL_LUMINANCE_ALPHA_FLOAT16_ATI = $881F;
4924
4925   // GL_ATI_texture_mirror_once
4926   GL_MIRROR_CLAMP_ATI = $8742;
4927   GL_MIRROR_CLAMP_TO_EDGE_ATI = $8743;
4928
4929   // GL_ATI_vertex_array_object
4930   GL_STATIC_ATI = $8760;
4931   GL_DYNAMIC_ATI = $8761;
4932   GL_PRESERVE_ATI = $8762;
4933   GL_DISCARD_ATI = $8763;
4934   GL_OBJECT_BUFFER_SIZE_ATI = $8764;
4935   GL_OBJECT_BUFFER_USAGE_ATI = $8765;
4936   GL_ARRAY_OBJECT_BUFFER_ATI = $8766;
4937   GL_ARRAY_OBJECT_OFFSET_ATI = $8767;
4938
4939   // GL_ATI_vertex_streams
4940   GL_MAX_VERTEX_STREAMS_ATI = $876B;
4941   GL_VERTEX_STREAM0_ATI = $876C;
4942   GL_VERTEX_STREAM1_ATI = $876D;
4943   GL_VERTEX_STREAM2_ATI = $876E;
4944   GL_VERTEX_STREAM3_ATI = $876F;
4945   GL_VERTEX_STREAM4_ATI = $8770;
4946   GL_VERTEX_STREAM5_ATI = $8771;
4947   GL_VERTEX_STREAM6_ATI = $8772;
4948   GL_VERTEX_STREAM7_ATI = $8773;
4949   GL_VERTEX_SOURCE_ATI = $8774;
4950
4951   // GL_ATI_meminfo
4952   GL_VBO_FREE_MEMORY_ATI = $87FB;
4953   GL_TEXTURE_FREE_MEMORY_ATI = $87FC;
4954   GL_RENDERBUFFER_FREE_MEMORY_ATI = $87FD;
4955
4956   // GL_AMD_performance_monitor
4957   GL_COUNTER_TYPE_AMD = $8BC0;
4958   GL_COUNTER_RANGE_AMD = $8BC1;
4959   GL_UNSIGNED_INT64_AMD = $8BC2;
4960   GL_PERCENTAGE_AMD = $8BC3;
4961   GL_PERFMON_RESULT_AVAILABLE_AMD = $8BC4;
4962   GL_PERFMON_RESULT_SIZE_AMD = $8BC5;
4963   GL_PERFMON_RESULT_AMD = $8BC6;
4964   
4965   // GL_AMD_vertex_shader_tesselator
4966   GL_SAMPLER_BUFFER_AMD = $9001;
4967   GL_INT_SAMPLER_BUFFER_AMD = $9002;
4968   GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = $9003;
4969   GL_TESSELLATION_MODE_AMD = $9004;
4970   GL_TESSELLATION_FACTOR_AMD = $9005;
4971   GL_DISCRETE_AMD = $9006;
4972   GL_CONTINUOUS_AMD = $9007;
4973
4974   // GL_AMD_seamless_cubemap_per_texture
4975   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
4976
4977   // GL_AMD_name_gen_delete
4978   GL_DATA_BUFFER_AMD = $9151;
4979   GL_PERFORMANCE_MONITOR_AMD = $9152;
4980   GL_QUERY_OBJECT_AMD = $9153;
4981   GL_VERTEX_ARRAY_OBJECT_AMD = $9154;
4982   GL_SAMPLER_OBJECT_AMD = $9155;
4983
4984   // GL_AMD_debug_output
4985   GL_MAX_DEBUG_LOGGED_MESSAGES_AMD = $9144;
4986   GL_DEBUG_LOGGED_MESSAGES_AMD = $9145;
4987   GL_DEBUG_SEVERITY_HIGH_AMD = $9146;
4988   GL_DEBUG_SEVERITY_MEDIUM_AMD = $9147;
4989   GL_DEBUG_SEVERITY_LOW_AMD = $9148;
4990   GL_DEBUG_CATEGORY_API_ERROR_AMD = $9149;
4991   GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = $914A;
4992   GL_DEBUG_CATEGORY_DEPRECATION_AMD = $914B;
4993   GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = $914C;
4994   GL_DEBUG_CATEGORY_PERFORMANCE_AMD = $914D;
4995   GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD = $914E;
4996   GL_DEBUG_CATEGORY_APPLICATION_AMD = $914F;
4997   GL_DEBUG_CATEGORY_OTHER_AMD = $9150;
4998
4999   // GL_AMD_depth_clamp_separate
5000   GL_DEPTH_CLAMP_NEAR_AMD = $901E;
5001   GL_DEPTH_CLAMP_FAR_AMD = $901F;
5002
5003   // GL_EXT_422_pixels
5004   GL_422_EXT = $80CC;
5005   GL_422_REV_EXT = $80CD;
5006   GL_422_AVERAGE_EXT = $80CE;
5007   GL_422_REV_AVERAGE_EXT = $80CF;
5008
5009   // GL_EXT_abgr
5010   GL_ABGR_EXT = $8000;
5011
5012   // GL_EXT_bgra
5013   GL_BGR_EXT = $80E0;
5014   GL_BGRA_EXT = $80E1;
5015
5016   // GL_EXT_blend_color
5017   GL_CONSTANT_COLOR_EXT = $8001;
5018   GL_ONE_MINUS_CONSTANT_COLOR_EXT = $8002;
5019   GL_CONSTANT_ALPHA_EXT = $8003;
5020   GL_ONE_MINUS_CONSTANT_ALPHA_EXT = $8004;
5021   GL_BLEND_COLOR_EXT = $8005;
5022
5023   // GL_EXT_blend_func_separate
5024   GL_BLEND_DST_RGB_EXT = $80C8;
5025   GL_BLEND_SRC_RGB_EXT = $80C9;
5026   GL_BLEND_DST_ALPHA_EXT = $80CA;
5027   GL_BLEND_SRC_ALPHA_EXT = $80CB;
5028
5029   // GL_EXT_blend_minmax
5030   GL_FUNC_ADD_EXT = $8006;
5031   GL_MIN_EXT = $8007;
5032   GL_MAX_EXT = $8008;
5033   GL_BLEND_EQUATION_EXT = $8009;
5034
5035   // GL_EXT_blend_subtract
5036   GL_FUNC_SUBTRACT_EXT = $800A;
5037   GL_FUNC_REVERSE_SUBTRACT_EXT = $800B;
5038
5039   // GL_EXT_clip_volume_hint
5040   GL_CLIP_VOLUME_CLIPPING_HINT_EXT = $80F0;
5041
5042   // GL_EXT_cmyka
5043   GL_CMYK_EXT = $800C;
5044   GL_CMYKA_EXT = $800D;
5045   GL_PACK_CMYK_HINT_EXT = $800E;
5046   GL_UNPACK_CMYK_HINT_EXT = $800F;
5047
5048   // GL_EXT_compiled_vertex_array
5049   GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = $81A8;
5050   GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = $81A9;
5051
5052   // GL_EXT_convolution
5053   GL_CONVOLUTION_1D_EXT = $8010;
5054   GL_CONVOLUTION_2D_EXT = $8011;
5055   GL_SEPARABLE_2D_EXT = $8012;
5056   GL_CONVOLUTION_BORDER_MODE_EXT = $8013;
5057   GL_CONVOLUTION_FILTER_SCALE_EXT = $8014;
5058   GL_CONVOLUTION_FILTER_BIAS_EXT = $8015;
5059   GL_REDUCE_EXT = $8016;
5060   GL_CONVOLUTION_FORMAT_EXT = $8017;
5061   GL_CONVOLUTION_WIDTH_EXT = $8018;
5062   GL_CONVOLUTION_HEIGHT_EXT = $8019;
5063   GL_MAX_CONVOLUTION_WIDTH_EXT = $801A;
5064   GL_MAX_CONVOLUTION_HEIGHT_EXT = $801B;
5065   GL_POST_CONVOLUTION_RED_SCALE_EXT = $801C;
5066   GL_POST_CONVOLUTION_GREEN_SCALE_EXT = $801D;
5067   GL_POST_CONVOLUTION_BLUE_SCALE_EXT = $801E;
5068   GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = $801F;
5069   GL_POST_CONVOLUTION_RED_BIAS_EXT = $8020;
5070   GL_POST_CONVOLUTION_GREEN_BIAS_EXT = $8021;
5071   GL_POST_CONVOLUTION_BLUE_BIAS_EXT = $8022;
5072   GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = $8023;
5073
5074   // GL_EXT_coordinate_frame
5075   GL_TANGENT_ARRAY_EXT = $8439;
5076   GL_BINORMAL_ARRAY_EXT = $843A;
5077   GL_CURRENT_TANGENT_EXT = $843B;
5078   GL_CURRENT_BINORMAL_EXT = $843C;
5079   GL_TANGENT_ARRAY_TYPE_EXT = $843E;
5080   GL_TANGENT_ARRAY_STRIDE_EXT = $843F;
5081   GL_BINORMAL_ARRAY_TYPE_EXT = $8440;
5082   GL_BINORMAL_ARRAY_STRIDE_EXT = $8441;
5083   GL_TANGENT_ARRAY_POINTER_EXT = $8442;
5084   GL_BINORMAL_ARRAY_POINTER_EXT = $8443;
5085   GL_MAP1_TANGENT_EXT = $8444;
5086   GL_MAP2_TANGENT_EXT = $8445;
5087   GL_MAP1_BINORMAL_EXT = $8446;
5088   GL_MAP2_BINORMAL_EXT = $8447;
5089
5090   // GL_EXT_cull_vertex
5091   GL_CULL_VERTEX_EXT = $81AA;
5092   GL_CULL_VERTEX_EYE_POSITION_EXT = $81AB;
5093   GL_CULL_VERTEX_OBJECT_POSITION_EXT = $81AC;
5094
5095   // GL_EXT_draw_range_elements
5096   GL_MAX_ELEMENTS_VERTICES_EXT = $80E8;
5097   GL_MAX_ELEMENTS_INDICES_EXT = $80E9;
5098
5099   // GL_EXT_fog_coord
5100   GL_FOG_COORDINATE_SOURCE_EXT = $8450;
5101   GL_FOG_COORDINATE_EXT = $8451;
5102   GL_FRAGMENT_DEPTH_EXT = $8452;
5103   GL_CURRENT_FOG_COORDINATE_EXT = $8453;
5104   GL_FOG_COORDINATE_ARRAY_TYPE_EXT = $8454;
5105   GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = $8455;
5106   GL_FOG_COORDINATE_ARRAY_POINTER_EXT = $8456;
5107   GL_FOG_COORDINATE_ARRAY_EXT = $8457;
5108
5109   // GL_EXT_framebuffer_object
5110   GL_FRAMEBUFFER_EXT = $8D40;
5111   GL_RENDERBUFFER_EXT = $8D41;
5112   GL_STENCIL_INDEX_EXT = $8D45;
5113   GL_STENCIL_INDEX1_EXT = $8D46;
5114   GL_STENCIL_INDEX4_EXT = $8D47;
5115   GL_STENCIL_INDEX8_EXT = $8D48;
5116   GL_STENCIL_INDEX16_EXT = $8D49;
5117   GL_RENDERBUFFER_WIDTH_EXT = $8D42;
5118   GL_RENDERBUFFER_HEIGHT_EXT = $8D43;
5119   GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = $8D44;
5120   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = $8CD0;
5121   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = $8CD1;
5122   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = $8CD2;
5123   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = $8CD3;
5124   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = $8CD4;
5125   GL_COLOR_ATTACHMENT0_EXT = $8CE0;
5126   GL_COLOR_ATTACHMENT1_EXT = $8CE1;
5127   GL_COLOR_ATTACHMENT2_EXT = $8CE2;
5128   GL_COLOR_ATTACHMENT3_EXT = $8CE3;
5129   GL_COLOR_ATTACHMENT4_EXT = $8CE4;
5130   GL_COLOR_ATTACHMENT5_EXT = $8CE5;
5131   GL_COLOR_ATTACHMENT6_EXT = $8CE6;
5132   GL_COLOR_ATTACHMENT7_EXT = $8CE7;
5133   GL_COLOR_ATTACHMENT8_EXT = $8CE8;
5134   GL_COLOR_ATTACHMENT9_EXT = $8CE9;
5135   GL_COLOR_ATTACHMENT10_EXT = $8CEA;
5136   GL_COLOR_ATTACHMENT11_EXT = $8CEB;
5137   GL_COLOR_ATTACHMENT12_EXT = $8CEC;
5138   GL_COLOR_ATTACHMENT13_EXT = $8CED;
5139   GL_COLOR_ATTACHMENT14_EXT = $8CEE;
5140   GL_COLOR_ATTACHMENT15_EXT = $8CEF;
5141   GL_DEPTH_ATTACHMENT_EXT = $8D00;
5142   GL_STENCIL_ATTACHMENT_EXT = $8D20;
5143   GL_FRAMEBUFFER_COMPLETE_EXT = $8CD5;
5144   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = $8CD6;
5145   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = $8CD7;
5146   GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = $8CD8;
5147   GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = $8CD9;
5148   GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = $8CDA;
5149   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = $8CDB;
5150   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = $8CDC;
5151   GL_FRAMEBUFFER_UNSUPPORTED_EXT = $8CDD;
5152   GL_FRAMEBUFFER_STATUS_ERROR_EXT = $8CDE;
5153   GL_FRAMEBUFFER_BINDING_EXT = $8CA6;
5154   GL_RENDERBUFFER_BINDING_EXT = $8CA7;
5155   GL_MAX_COLOR_ATTACHMENTS_EXT = $8CDF;
5156   GL_MAX_RENDERBUFFER_SIZE_EXT = $84E8;
5157   GL_INVALID_FRAMEBUFFER_OPERATION_EXT = $0506;
5158
5159   // GL_EXT_histogram
5160   GL_HISTOGRAM_EXT = $8024;
5161   GL_PROXY_HISTOGRAM_EXT = $8025;
5162   GL_HISTOGRAM_WIDTH_EXT = $8026;
5163   GL_HISTOGRAM_FORMAT_EXT = $8027;
5164   GL_HISTOGRAM_RED_SIZE_EXT = $8028;
5165   GL_HISTOGRAM_GREEN_SIZE_EXT = $8029;
5166   GL_HISTOGRAM_BLUE_SIZE_EXT = $802A;
5167   GL_HISTOGRAM_ALPHA_SIZE_EXT = $802B;
5168   GL_HISTOGRAM_LUMINANCE_SIZE_EXT = $802C;
5169   GL_HISTOGRAM_SINK_EXT = $802D;
5170   GL_MINMAX_EXT = $802E;
5171   GL_MINMAX_FORMAT_EXT = $802F;
5172   GL_MINMAX_SINK_EXT = $8030;
5173   GL_TABLE_TOO_LARGE_EXT = $8031;
5174
5175   // GL_EXT_index_array_formats
5176   GL_IUI_V2F_EXT = $81AD;
5177   GL_IUI_V3F_EXT = $81AE;
5178   GL_IUI_N3F_V2F_EXT = $81AF;
5179   GL_IUI_N3F_V3F_EXT = $81B0;
5180   GL_T2F_IUI_V2F_EXT = $81B1;
5181   GL_T2F_IUI_V3F_EXT = $81B2;
5182   GL_T2F_IUI_N3F_V2F_EXT = $81B3;
5183   GL_T2F_IUI_N3F_V3F_EXT = $81B4;
5184
5185   // GL_EXT_index_func
5186   GL_INDEX_TEST_EXT = $81B5;
5187   GL_INDEX_TEST_FUNC_EXT = $81B6;
5188   GL_INDEX_TEST_REF_EXT = $81B7;
5189
5190   // GL_EXT_index_material
5191   GL_INDEX_MATERIAL_EXT = $81B8;
5192   GL_INDEX_MATERIAL_PARAMETER_EXT = $81B9;
5193   GL_INDEX_MATERIAL_FACE_EXT = $81BA;
5194
5195   // GL_EXT_light_texture
5196   GL_FRAGMENT_MATERIAL_EXT = $8349;
5197   GL_FRAGMENT_NORMAL_EXT = $834A;
5198   GL_FRAGMENT_COLOR_EXT = $834C;
5199   GL_ATTENUATION_EXT = $834D;
5200   GL_SHADOW_ATTENUATION_EXT = $834E;
5201   GL_TEXTURE_APPLICATION_MODE_EXT = $834F;
5202   GL_TEXTURE_LIGHT_EXT = $8350;
5203   GL_TEXTURE_MATERIAL_FACE_EXT = $8351;
5204   GL_TEXTURE_MATERIAL_PARAMETER_EXT = $8352;
5205
5206   // GL_EXT_multisample
5207   GL_MULTISAMPLE_EXT = $809D;
5208   GL_SAMPLE_ALPHA_TO_MASK_EXT = $809E;
5209   GL_SAMPLE_ALPHA_TO_ONE_EXT = $809F;
5210   GL_SAMPLE_MASK_EXT = $80A0;
5211   GL_1PASS_EXT = $80A1;
5212   GL_2PASS_0_EXT = $80A2;
5213   GL_2PASS_1_EXT = $80A3;
5214   GL_4PASS_0_EXT = $80A4;
5215   GL_4PASS_1_EXT = $80A5;
5216   GL_4PASS_2_EXT = $80A6;
5217   GL_4PASS_3_EXT = $80A7;
5218   GL_SAMPLE_BUFFERS_EXT = $80A8;
5219   GL_SAMPLES_EXT = $80A9;
5220   GL_SAMPLE_MASK_VALUE_EXT = $80AA;
5221   GL_SAMPLE_MASK_INVERT_EXT = $80AB;
5222   GL_SAMPLE_PATTERN_EXT = $80AC;
5223   GL_MULTISAMPLE_BIT_EXT = $20000000;
5224
5225   // GL_EXT_packed_pixels
5226   GL_UNSIGNED_BYTE_3_3_2_EXT = $8032;
5227   GL_UNSIGNED_SHORT_4_4_4_4_EXT = $8033;
5228   GL_UNSIGNED_SHORT_5_5_5_1_EXT = $8034;
5229   GL_UNSIGNED_INT_8_8_8_8_EXT = $8035;
5230   GL_UNSIGNED_INT_10_10_10_2_EXT = $8036;
5231
5232   // GL_EXT_paletted_texture
5233   GL_COLOR_INDEX1_EXT = $80E2;
5234   GL_COLOR_INDEX2_EXT = $80E3;
5235   GL_COLOR_INDEX4_EXT = $80E4;
5236   GL_COLOR_INDEX8_EXT = $80E5;
5237   GL_COLOR_INDEX12_EXT = $80E6;
5238   GL_COLOR_INDEX16_EXT = $80E7;
5239   GL_TEXTURE_INDEX_SIZE_EXT = $80ED;
5240
5241   // GL_EXT_pixel_transform
5242   GL_PIXEL_TRANSFORM_2D_EXT = $8330;
5243   GL_PIXEL_MAG_FILTER_EXT = $8331;
5244   GL_PIXEL_MIN_FILTER_EXT = $8332;
5245   GL_PIXEL_CUBIC_WEIGHT_EXT = $8333;
5246   GL_CUBIC_EXT = $8334;
5247   GL_AVERAGE_EXT = $8335;
5248   GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8336;
5249   GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8337;
5250   GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = $8338;
5251
5252   // GL_EXT_point_parameters
5253   GL_POINT_SIZE_MIN_EXT = $8126;
5254   GL_POINT_SIZE_MAX_EXT = $8127;
5255   GL_POINT_FADE_THRESHOLD_SIZE_EXT = $8128;
5256   GL_DISTANCE_ATTENUATION_EXT = $8129;
5257
5258   // GL_EXT_polygon_offset
5259   GL_POLYGON_OFFSET_EXT = $8037;
5260   GL_POLYGON_OFFSET_FACTOR_EXT = $8038;
5261   GL_POLYGON_OFFSET_BIAS_EXT = $8039;
5262
5263   // GL_EXT_rescale_normal
5264   GL_RESCALE_NORMAL_EXT = $803A;
5265
5266   // GL_EXT_secondary_color
5267   GL_COLOR_SUM_EXT = $8458;
5268   GL_CURRENT_SECONDARY_COLOR_EXT = $8459;
5269   GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = $845A;
5270   GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = $845B;
5271   GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = $845C;
5272   GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = $845D;
5273   GL_SECONDARY_COLOR_ARRAY_EXT = $845E;
5274
5275   // GL_EXT_separate_specular_color
5276   GL_LIGHT_MODEL_COLOR_CONTROL_EXT = $81F8;
5277   GL_SINGLE_COLOR_EXT = $81F9;
5278   GL_SEPARATE_SPECULAR_COLOR_EXT = $81FA;
5279
5280   // GL_EXT_shared_texture_palette
5281   GL_SHARED_TEXTURE_PALETTE_EXT = $81FB;
5282
5283   // GL_EXT_stencil_two_side
5284   GL_STENCIL_TEST_TWO_SIDE_EXT = $8910;
5285   GL_ACTIVE_STENCIL_FACE_EXT = $8911;
5286
5287   // GL_EXT_stencil_wrap
5288   GL_INCR_WRAP_EXT = $8507;
5289   GL_DECR_WRAP_EXT = $8508;
5290
5291   // GL_EXT_texture
5292   GL_ALPHA4_EXT = $803B;
5293   GL_ALPHA8_EXT = $803C;
5294   GL_ALPHA12_EXT = $803D;
5295   GL_ALPHA16_EXT = $803E;
5296   GL_LUMINANCE4_EXT = $803F;
5297   GL_LUMINANCE8_EXT = $8040;
5298   GL_LUMINANCE12_EXT = $8041;
5299   GL_LUMINANCE16_EXT = $8042;
5300   GL_LUMINANCE4_ALPHA4_EXT = $8043;
5301   GL_LUMINANCE6_ALPHA2_EXT = $8044;
5302   GL_LUMINANCE8_ALPHA8_EXT = $8045;
5303   GL_LUMINANCE12_ALPHA4_EXT = $8046;
5304   GL_LUMINANCE12_ALPHA12_EXT = $8047;
5305   GL_LUMINANCE16_ALPHA16_EXT = $8048;
5306   GL_INTENSITY_EXT = $8049;
5307   GL_INTENSITY4_EXT = $804A;
5308   GL_INTENSITY8_EXT = $804B;
5309   GL_INTENSITY12_EXT = $804C;
5310   GL_INTENSITY16_EXT = $804D;
5311   GL_RGB2_EXT = $804E;
5312   GL_RGB4_EXT = $804F;
5313   GL_RGB5_EXT = $8050;
5314   GL_RGB8_EXT = $8051;
5315   GL_RGB10_EXT = $8052;
5316   GL_RGB12_EXT = $8053;
5317   GL_RGB16_EXT = $8054;
5318   GL_RGBA2_EXT = $8055;
5319   GL_RGBA4_EXT = $8056;
5320   GL_RGB5_A1_EXT = $8057;
5321   GL_RGBA8_EXT = $8058;
5322   GL_RGB10_A2_EXT = $8059;
5323   GL_RGBA12_EXT = $805A;
5324   GL_RGBA16_EXT = $805B;
5325   GL_TEXTURE_RED_SIZE_EXT = $805C;
5326   GL_TEXTURE_GREEN_SIZE_EXT = $805D;
5327   GL_TEXTURE_BLUE_SIZE_EXT = $805E;
5328   GL_TEXTURE_ALPHA_SIZE_EXT = $805F;
5329   GL_TEXTURE_LUMINANCE_SIZE_EXT = $8060;
5330   GL_TEXTURE_INTENSITY_SIZE_EXT = $8061;
5331   GL_REPLACE_EXT = $8062;
5332   GL_PROXY_TEXTURE_1D_EXT = $8063;
5333   GL_PROXY_TEXTURE_2D_EXT = $8064;
5334   GL_TEXTURE_TOO_LARGE_EXT = $8065;
5335
5336   // GL_EXT_texture3D
5337   GL_PACK_SKIP_IMAGES_EXT = $806B;
5338   GL_PACK_IMAGE_HEIGHT_EXT = $806C;
5339   GL_UNPACK_SKIP_IMAGES_EXT = $806D;
5340   GL_UNPACK_IMAGE_HEIGHT_EXT = $806E;
5341   GL_TEXTURE_3D_EXT = $806F;
5342   GL_PROXY_TEXTURE_3D_EXT = $8070;
5343   GL_TEXTURE_DEPTH_EXT = $8071;
5344   GL_TEXTURE_WRAP_R_EXT = $8072;
5345   GL_MAX_3D_TEXTURE_SIZE_EXT = $8073;
5346
5347   // GL_EXT_texture_compression_s3tc
5348   GL_COMPRESSED_RGB_S3TC_DXT1_EXT = $83F0;
5349   GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = $83F1;
5350   GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = $83F2;
5351   GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = $83F3;
5352
5353   // GL_EXT_texture_cube_map
5354   GL_NORMAL_MAP_EXT = $8511;
5355   GL_REFLECTION_MAP_EXT = $8512;
5356   GL_TEXTURE_CUBE_MAP_EXT = $8513;
5357   GL_TEXTURE_BINDING_CUBE_MAP_EXT = $8514;
5358   GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = $8515;
5359   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = $8516;
5360   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = $8517;
5361   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = $8518;
5362   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = $8519;
5363   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = $851A;
5364   GL_PROXY_TEXTURE_CUBE_MAP_EXT = $851B;
5365   GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = $851C;
5366
5367   // GL_EXT_texture_edge_clamp
5368   GL_CLAMP_TO_EDGE_EXT = $812F;
5369
5370   // GL_EXT_texture_env_combine
5371   GL_COMBINE_EXT = $8570;
5372   GL_COMBINE_RGB_EXT = $8571;
5373   GL_COMBINE_ALPHA_EXT = $8572;
5374   GL_RGB_SCALE_EXT = $8573;
5375   GL_ADD_SIGNED_EXT = $8574;
5376   GL_INTERPOLATE_EXT = $8575;
5377   GL_CONSTANT_EXT = $8576;
5378   GL_PRIMARY_COLOR_EXT = $8577;
5379   GL_PREVIOUS_EXT = $8578;
5380   GL_SOURCE0_RGB_EXT = $8580;
5381   GL_SOURCE1_RGB_EXT = $8581;
5382   GL_SOURCE2_RGB_EXT = $8582;
5383   GL_SOURCE0_ALPHA_EXT = $8588;
5384   GL_SOURCE1_ALPHA_EXT = $8589;
5385   GL_SOURCE2_ALPHA_EXT = $858A;
5386   GL_OPERAND0_RGB_EXT = $8590;
5387   GL_OPERAND1_RGB_EXT = $8591;
5388   GL_OPERAND2_RGB_EXT = $8592;
5389   GL_OPERAND0_ALPHA_EXT = $8598;
5390   GL_OPERAND1_ALPHA_EXT = $8599;
5391   GL_OPERAND2_ALPHA_EXT = $859A;
5392
5393   // GL_EXT_texture_env_dot3
5394   GL_DOT3_RGB_EXT = $8740;
5395   GL_DOT3_RGBA_EXT = $8741;
5396
5397   // GL_EXT_texture_filter_anisotropic
5398   GL_TEXTURE_MAX_ANISOTROPY_EXT = $84FE;
5399   GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF;
5400
5401   // GL_EXT_texture_lod_bias
5402   GL_MAX_TEXTURE_LOD_BIAS_EXT = $84FD;
5403   GL_TEXTURE_FILTER_CONTROL_EXT = $8500;
5404   GL_TEXTURE_LOD_BIAS_EXT = $8501;
5405
5406   // GL_EXT_texture_object
5407   GL_TEXTURE_PRIORITY_EXT = $8066;
5408   GL_TEXTURE_RESIDENT_EXT = $8067;
5409   GL_TEXTURE_1D_BINDING_EXT = $8068;
5410   GL_TEXTURE_2D_BINDING_EXT = $8069;
5411   GL_TEXTURE_3D_BINDING_EXT = $806A;
5412
5413   // GL_EXT_texture_perturb_normal
5414   GL_PERTURB_EXT = $85AE;
5415   GL_TEXTURE_NORMAL_EXT = $85AF;
5416
5417   // GL_EXT_texture_rectangle
5418   GL_TEXTURE_RECTANGLE_EXT = $84F5;
5419   GL_TEXTURE_BINDING_RECTANGLE_EXT = $84F6;
5420   GL_PROXY_TEXTURE_RECTANGLE_EXT = $84F7;
5421   GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT = $84F8;
5422
5423   // GL_EXT_vertex_array
5424   GL_VERTEX_ARRAY_EXT = $8074;
5425   GL_NORMAL_ARRAY_EXT = $8075;
5426   GL_COLOR_ARRAY_EXT = $8076;
5427   GL_INDEX_ARRAY_EXT = $8077;
5428   GL_TEXTURE_COORD_ARRAY_EXT = $8078;
5429   GL_EDGE_FLAG_ARRAY_EXT = $8079;
5430   GL_VERTEX_ARRAY_SIZE_EXT = $807A;
5431   GL_VERTEX_ARRAY_TYPE_EXT = $807B;
5432   GL_VERTEX_ARRAY_STRIDE_EXT = $807C;
5433   GL_VERTEX_ARRAY_COUNT_EXT = $807D;
5434   GL_NORMAL_ARRAY_TYPE_EXT = $807E;
5435   GL_NORMAL_ARRAY_STRIDE_EXT = $807F;
5436   GL_NORMAL_ARRAY_COUNT_EXT = $8080;
5437   GL_COLOR_ARRAY_SIZE_EXT = $8081;
5438   GL_COLOR_ARRAY_TYPE_EXT = $8082;
5439   GL_COLOR_ARRAY_STRIDE_EXT = $8083;
5440   GL_COLOR_ARRAY_COUNT_EXT = $8084;
5441   GL_INDEX_ARRAY_TYPE_EXT = $8085;
5442   GL_INDEX_ARRAY_STRIDE_EXT = $8086;
5443   GL_INDEX_ARRAY_COUNT_EXT = $8087;
5444   GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088;
5445   GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089;
5446   GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
5447   GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B;
5448   GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C;
5449   GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D;
5450   GL_VERTEX_ARRAY_POINTER_EXT = $808E;
5451   GL_NORMAL_ARRAY_POINTER_EXT = $808F;
5452   GL_COLOR_ARRAY_POINTER_EXT = $8090;
5453   GL_INDEX_ARRAY_POINTER_EXT = $8091;
5454   GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
5455   GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093;
5456
5457   // GL_EXT_vertex_shader
5458   GL_VERTEX_SHADER_EXT = $8780;
5459   GL_VERTEX_SHADER_BINDING_EXT = $8781;
5460   GL_OP_INDEX_EXT = $8782;
5461   GL_OP_NEGATE_EXT = $8783;
5462   GL_OP_DOT3_EXT = $8784;
5463   GL_OP_DOT4_EXT = $8785;
5464   GL_OP_MUL_EXT = $8786;
5465   GL_OP_ADD_EXT = $8787;
5466   GL_OP_MADD_EXT = $8788;
5467   GL_OP_FRAC_EXT = $8789;
5468   GL_OP_MAX_EXT = $878A;
5469   GL_OP_MIN_EXT = $878B;
5470   GL_OP_SET_GE_EXT = $878C;
5471   GL_OP_SET_LT_EXT = $878D;
5472   GL_OP_CLAMP_EXT = $878E;
5473   GL_OP_FLOOR_EXT = $878F;
5474   GL_OP_ROUND_EXT = $8790;
5475   GL_OP_EXP_BASE_2_EXT = $8791;
5476   GL_OP_LOG_BASE_2_EXT = $8792;
5477   GL_OP_POWER_EXT = $8793;
5478   GL_OP_RECIP_EXT = $8794;
5479   GL_OP_RECIP_SQRT_EXT = $8795;
5480   GL_OP_SUB_EXT = $8796;
5481   GL_OP_CROSS_PRODUCT_EXT = $8797;
5482   GL_OP_MULTIPLY_MATRIX_EXT = $8798;
5483   GL_OP_MOV_EXT = $8799;
5484   GL_OUTPUT_VERTEX_EXT = $879A;
5485   GL_OUTPUT_COLOR0_EXT = $879B;
5486   GL_OUTPUT_COLOR1_EXT = $879C;
5487   GL_OUTPUT_TEXTURE_COORD0_EXT = $879D;
5488   GL_OUTPUT_TEXTURE_COORD1_EXT = $879E;
5489   GL_OUTPUT_TEXTURE_COORD2_EXT = $879F;
5490   GL_OUTPUT_TEXTURE_COORD3_EXT = $87A0;
5491   GL_OUTPUT_TEXTURE_COORD4_EXT = $87A1;
5492   GL_OUTPUT_TEXTURE_COORD5_EXT = $87A2;
5493   GL_OUTPUT_TEXTURE_COORD6_EXT = $87A3;
5494   GL_OUTPUT_TEXTURE_COORD7_EXT = $87A4;
5495   GL_OUTPUT_TEXTURE_COORD8_EXT = $87A5;
5496   GL_OUTPUT_TEXTURE_COORD9_EXT = $87A6;
5497   GL_OUTPUT_TEXTURE_COORD10_EXT = $87A7;
5498   GL_OUTPUT_TEXTURE_COORD11_EXT = $87A8;
5499   GL_OUTPUT_TEXTURE_COORD12_EXT = $87A9;
5500   GL_OUTPUT_TEXTURE_COORD13_EXT = $87AA;
5501   GL_OUTPUT_TEXTURE_COORD14_EXT = $87AB;
5502   GL_OUTPUT_TEXTURE_COORD15_EXT = $87AC;
5503   GL_OUTPUT_TEXTURE_COORD16_EXT = $87AD;
5504   GL_OUTPUT_TEXTURE_COORD17_EXT = $87AE;
5505   GL_OUTPUT_TEXTURE_COORD18_EXT = $87AF;
5506   GL_OUTPUT_TEXTURE_COORD19_EXT = $87B0;
5507   GL_OUTPUT_TEXTURE_COORD20_EXT = $87B1;
5508   GL_OUTPUT_TEXTURE_COORD21_EXT = $87B2;
5509   GL_OUTPUT_TEXTURE_COORD22_EXT = $87B3;
5510   GL_OUTPUT_TEXTURE_COORD23_EXT = $87B4;
5511   GL_OUTPUT_TEXTURE_COORD24_EXT = $87B5;
5512   GL_OUTPUT_TEXTURE_COORD25_EXT = $87B6;
5513   GL_OUTPUT_TEXTURE_COORD26_EXT = $87B7;
5514   GL_OUTPUT_TEXTURE_COORD27_EXT = $87B8;
5515   GL_OUTPUT_TEXTURE_COORD28_EXT = $87B9;
5516   GL_OUTPUT_TEXTURE_COORD29_EXT = $87BA;
5517   GL_OUTPUT_TEXTURE_COORD30_EXT = $87BB;
5518   GL_OUTPUT_TEXTURE_COORD31_EXT = $87BC;
5519   GL_OUTPUT_FOG_EXT = $87BD;
5520   GL_SCALAR_EXT = $87BE;
5521   GL_VECTOR_EXT = $87BF;
5522   GL_MATRIX_EXT = $87C0;
5523   GL_VARIANT_EXT = $87C1;
5524   GL_INVARIANT_EXT = $87C2;
5525   GL_LOCAL_CONSTANT_EXT = $87C3;
5526   GL_LOCAL_EXT = $87C4;
5527   GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = $87C5;
5528   GL_MAX_VERTEX_SHADER_VARIANTS_EXT = $87C6;
5529   GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = $87C7;
5530   GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87C8;
5531   GL_MAX_VERTEX_SHADER_LOCALS_EXT = $87C9;
5532   GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CA;
5533   GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = $87CB;
5534   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87CC;
5535   GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = $87CD;
5536   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = $87CE;
5537   GL_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CF;
5538   GL_VERTEX_SHADER_VARIANTS_EXT = $87D0;
5539   GL_VERTEX_SHADER_INVARIANTS_EXT = $87D1;
5540   GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87D2;
5541   GL_VERTEX_SHADER_LOCALS_EXT = $87D3;
5542   GL_VERTEX_SHADER_OPTIMIZED_EXT = $87D4;
5543   GL_X_EXT = $87D5;
5544   GL_Y_EXT = $87D6;
5545   GL_Z_EXT = $87D7;
5546   GL_W_EXT = $87D8;
5547   GL_NEGATIVE_X_EXT = $87D9;
5548   GL_NEGATIVE_Y_EXT = $87DA;
5549   GL_NEGATIVE_Z_EXT = $87DB;
5550   GL_NEGATIVE_W_EXT = $87DC;
5551   GL_ZERO_EXT = $87DD;
5552   GL_ONE_EXT = $87DE;
5553   GL_NEGATIVE_ONE_EXT = $87DF;
5554   GL_NORMALIZED_RANGE_EXT = $87E0;
5555   GL_FULL_RANGE_EXT = $87E1;
5556   GL_CURRENT_VERTEX_EXT = $87E2;
5557   GL_MVP_MATRIX_EXT = $87E3;
5558   GL_VARIANT_VALUE_EXT = $87E4;
5559   GL_VARIANT_DATATYPE_EXT = $87E5;
5560   GL_VARIANT_ARRAY_STRIDE_EXT = $87E6;
5561   GL_VARIANT_ARRAY_TYPE_EXT = $87E7;
5562   GL_VARIANT_ARRAY_EXT = $87E8;
5563   GL_VARIANT_ARRAY_POINTER_EXT = $87E9;
5564   GL_INVARIANT_VALUE_EXT = $87EA;
5565   GL_INVARIANT_DATATYPE_EXT = $87EB;
5566   GL_LOCAL_CONSTANT_VALUE_EXT = $87EC;
5567   GL_LOCAL_CONSTANT_DATATYPE_EXT = $87ED;
5568
5569   // GL_EXT_vertex_weighting
5570   GL_MODELVIEW0_STACK_DEPTH_EXT = $0BA3;
5571   GL_MODELVIEW1_STACK_DEPTH_EXT = $8502;
5572   GL_MODELVIEW0_MATRIX_EXT = $0BA6;
5573   GL_MODELVIEW1_MATRIX_EXT = $8506;
5574   GL_VERTEX_WEIGHTING_EXT = $8509;
5575   GL_MODELVIEW0_EXT = $1700;
5576   GL_MODELVIEW1_EXT = $850A;
5577   GL_CURRENT_VERTEX_WEIGHT_EXT = $850B;
5578   GL_VERTEX_WEIGHT_ARRAY_EXT = $850C;
5579   GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = $850D;
5580   GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = $850E;
5581   GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = $850F;
5582   GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = $8510;
5583
5584   // GL_EXT_depth_bounds_test
5585   GL_DEPTH_BOUNDS_TEST_EXT = $8890;
5586   GL_DEPTH_BOUNDS_EXT = $8891;
5587
5588   // GL_EXT_texture_mirror_clamp
5589   GL_MIRROR_CLAMP_EXT = $8742;
5590   GL_MIRROR_CLAMP_TO_EDGE_EXT = $8743;
5591   GL_MIRROR_CLAMP_TO_BORDER_EXT = $8912;
5592
5593   // GL_EXT_blend_equation_separate
5594   GL_BLEND_EQUATION_RGB_EXT = $8009; 
5595   GL_BLEND_EQUATION_ALPHA_EXT = $883D;
5596
5597   // GL_EXT_pixel_buffer_object
5598   GL_PIXEL_PACK_BUFFER_EXT = $88EB;
5599   GL_PIXEL_UNPACK_BUFFER_EXT = $88EC;
5600   GL_PIXEL_PACK_BUFFER_BINDING_EXT = $88ED;
5601   GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = $88EF;
5602
5603   // GL_EXT_stencil_clear_tag
5604   GL_STENCIL_TAG_BITS_EXT = $88F2;
5605   GL_STENCIL_CLEAR_TAG_VALUE_EXT = $88F3;
5606
5607   // GL_EXT_packed_depth_stencil
5608   GL_DEPTH_STENCIL_EXT = $84F9;
5609   GL_UNSIGNED_INT_24_8_EXT = $84FA;
5610   GL_DEPTH24_STENCIL8_EXT = $88F0;
5611   GL_TEXTURE_STENCIL_SIZE_EXT = $88F1;
5612
5613   // GL_EXT_texture_sRGB
5614   GL_SRGB_EXT = $8C40;
5615   GL_SRGB8_EXT = $8C41;
5616   GL_SRGB_ALPHA_EXT = $8C42;
5617   GL_SRGB8_ALPHA8_EXT = $8C43;
5618   GL_SLUMINANCE_ALPHA_EXT = $8C44;
5619   GL_SLUMINANCE8_ALPHA8_EXT = $8C45;
5620   GL_SLUMINANCE_EXT = $8C46;
5621   GL_SLUMINANCE8_EXT = $8C47;
5622   GL_COMPRESSED_SRGB_EXT = $8C48;
5623   GL_COMPRESSED_SRGB_ALPHA_EXT = $8C49;
5624   GL_COMPRESSED_SLUMINANCE_EXT = $8C4A;
5625   GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = $8C4B;
5626   GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = $8C4C;
5627   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = $8C4D;
5628   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = $8C4E;
5629   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = $8C4F;
5630
5631   // GL_EXT_framebuffer_blit
5632   GL_READ_FRAMEBUFFER_EXT = $8CA8;
5633   GL_DRAW_FRAMEBUFFER_EXT = $8CA9;
5634   GL_READ_FRAMEBUFFER_BINDING_EXT = GL_FRAMEBUFFER_BINDING_EXT;
5635   GL_DRAW_FRAMEBUFFER_BINDING_EXT = $8CAA;
5636
5637   // GL_EXT_framebuffer_multisample
5638   GL_RENDERBUFFER_SAMPLES_EXT = $8CAB;
5639   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = $8D56;
5640   GL_MAX_SAMPLES_EXT = $8D57;
5641
5642   // GL_EXT_timer_query
5643   GL_TIME_ELAPSED_EXT = $88BF;
5644
5645   // GL_EXT_bindable_uniform
5646   GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = $8DE2;
5647   GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = $8DE3;
5648   GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = $8DE4;
5649   GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = $8DED;
5650   GL_UNIFORM_BUFFER_EXT = $8DEE;
5651   GL_UNIFORM_BUFFER_BINDING_EXT = $8DEF;
5652
5653   // GL_EXT_framebuffer_sRGB
5654   GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
5655   WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20A9;
5656   GL_FRAMEBUFFER_SRGB_EXT = $8DB9;
5657   GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $8DBA;
5658
5659   // GL_EXT_geometry_shader4
5660   GL_GEOMETRY_SHADER_EXT = $8DD9;
5661   GL_GEOMETRY_VERTICES_OUT_EXT = $8DDA;
5662   GL_GEOMETRY_INPUT_TYPE_EXT = $8DDB;
5663   GL_GEOMETRY_OUTPUT_TYPE_EXT = $8DDC;
5664   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = $8C29;
5665   GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = $8DDD;
5666   GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = $8DDE;
5667   GL_MAX_VARYING_COMPONENTS_EXT = $8B4B;
5668   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = $8DDF;
5669   GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = $8DE0;
5670   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = $8DE1;
5671   GL_LINES_ADJACENCY_EXT = $A;
5672   GL_LINE_STRIP_ADJACENCY_EXT = $B;
5673   GL_TRIANGLES_ADJACENCY_EXT = $C;
5674   GL_TRIANGLE_STRIP_ADJACENCY_EXT = $D;
5675   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = $8DA8;
5676   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = $8DA9;
5677   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = $8DA7;
5678   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = $8CD4;
5679   GL_PROGRAM_POINT_SIZE_EXT = $8642;
5680
5681   // GL_EXT_gpu_shader4
5682   GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = $88FD;
5683   GL_SAMPLER_1D_ARRAY_EXT = $8DC0;
5684   GL_SAMPLER_2D_ARRAY_EXT = $8DC1;
5685   GL_SAMPLER_BUFFER_EXT = $8DC2;
5686   GL_SAMPLER_1D_ARRAY_SHADOW_EXT = $8DC3;
5687   GL_SAMPLER_2D_ARRAY_SHADOW_EXT = $8DC4;
5688   GL_SAMPLER_CUBE_SHADOW_EXT = $8DC5;
5689   GL_UNSIGNED_INT_VEC2_EXT = $8DC6;
5690   GL_UNSIGNED_INT_VEC3_EXT = $8DC7;
5691   GL_UNSIGNED_INT_VEC4_EXT = $8DC8;
5692   GL_INT_SAMPLER_1D_EXT = $8DC9;
5693   GL_INT_SAMPLER_2D_EXT = $8DCA;
5694   GL_INT_SAMPLER_3D_EXT = $8DCB;
5695   GL_INT_SAMPLER_CUBE_EXT = $8DCC;
5696   GL_INT_SAMPLER_2D_RECT_EXT = $8DCD;
5697   GL_INT_SAMPLER_1D_ARRAY_EXT = $8DCE;
5698   GL_INT_SAMPLER_2D_ARRAY_EXT = $8DCF;
5699   GL_INT_SAMPLER_BUFFER_EXT = $8DD0;
5700   GL_UNSIGNED_INT_SAMPLER_1D_EXT = $8DD1;
5701   GL_UNSIGNED_INT_SAMPLER_2D_EXT = $8DD2;
5702   GL_UNSIGNED_INT_SAMPLER_3D_EXT = $8DD3;
5703   GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = $8DD4;
5704   GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = $8DD5;
5705   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = $8DD6;
5706   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = $8DD7;
5707   GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = $8DD8;
5708   GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = $8904;
5709   GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = $8905;
5710
5711   // GL_EXT_packed_float
5712   GL_R11F_G11F_B10F_EXT = $8C3A;
5713   GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = $8C3B;
5714   RGBA_SIGNED_COMPONENTS_EXT = $8C3C;
5715   WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT = $20A8;
5716   GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
5717   GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
5718
5719   // GL_EXT_texture_array
5720   GL_TEXTURE_1D_ARRAY_EXT = $8C18;
5721   GL_TEXTURE_2D_ARRAY_EXT = $8C1A;
5722   GL_PROXY_TEXTURE_2D_ARRAY_EXT = $8C1B;
5723   GL_PROXY_TEXTURE_1D_ARRAY_EXT = $8C19;
5724   GL_TEXTURE_BINDING_1D_ARRAY_EXT = $8C1C;
5725   GL_TEXTURE_BINDING_2D_ARRAY_EXT = $8C1D;
5726   GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = $88FF;
5727   GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = $884E;
5728
5729   // GL_EXT_texture_buffer_object
5730   GL_TEXTURE_BUFFER_EXT = $8C2A;
5731   GL_MAX_TEXTURE_BUFFER_SIZE_EXT = $8C2B;
5732   GL_TEXTURE_BINDING_BUFFER_EXT = $8C2C;
5733   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = $8C2D;
5734   GL_TEXTURE_BUFFER_FORMAT_EXT = $8C2E;
5735
5736   // GL_EXT_texture_compression_latc
5737   GL_COMPRESSED_LUMINANCE_LATC1_EXT = $8C70;
5738   GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = $8C71;
5739   GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = $8C72;
5740   GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = $8C73;
5741
5742   // GL_EXT_texture_compression_rgtc
5743   GL_COMPRESSED_RED_RGTC1_EXT = $8DBB;
5744   GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = $8DBC;
5745   GL_COMPRESSED_RED_GREEN_RGTC2_EXT = $8DBD;
5746   GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = $8DBE;
5747
5748   // GL_EXT_texture_integer
5749   GL_RGBA_INTEGER_MODE_EXT = $8D9E;
5750   GL_RGBA32UI_EXT = $8D70;
5751   GL_RGB32UI_EXT = $8D71;
5752   GL_ALPHA32UI_EXT = $8D72;
5753   GL_INTENSITY32UI_EXT = $8D73;
5754   GL_LUMINANCE32UI_EXT = $8D74;
5755   GL_LUMINANCE_ALPHA32UI_EXT = $8D75;
5756   GL_RGBA16UI_EXT = $8D76;
5757   GL_RGB16UI_EXT = $8D77;
5758   GL_ALPHA16UI_EXT = $8D78;
5759   GL_INTENSITY16UI_EXT = $8D79;
5760   GL_LUMINANCE16UI_EXT = $8D7A;
5761   GL_LUMINANCE_ALPHA16UI_EXT = $8D7B;
5762   GL_RGBA8UI_EXT = $8D7C;
5763   GL_RGB8UI_EXT = $8D7D;
5764   GL_ALPHA8UI_EXT = $8D7E;
5765   GL_INTENSITY8UI_EXT = $8D7F;
5766   GL_LUMINANCE8UI_EXT = $8D80;
5767   GL_LUMINANCE_ALPHA8UI_EXT = $8D81;
5768   GL_RGBA32I_EXT = $8D82;
5769   GL_RGB32I_EXT = $8D83;
5770   GL_ALPHA32I_EXT = $8D84;
5771   GL_INTENSITY32I_EXT = $8D85;
5772   GL_LUMINANCE32I_EXT = $8D86;
5773   GL_LUMINANCE_ALPHA32I_EXT = $8D87;
5774   GL_RGBA16I_EXT = $8D88;
5775   GL_RGB16I_EXT = $8D89;
5776   GL_ALPHA16I_EXT = $8D8A;
5777   GL_INTENSITY16I_EXT = $8D8B;
5778   GL_LUMINANCE16I_EXT = $8D8C;
5779   GL_LUMINANCE_ALPHA16I_EXT = $8D8D;
5780   GL_RGBA8I_EXT = $8D8E;
5781   GL_RGB8I_EXT = $8D8F;
5782   GL_ALPHA8I_EXT = $8D90;
5783   GL_INTENSITY8I_EXT = $8D91;
5784   GL_LUMINANCE8I_EXT = $8D92;
5785   GL_LUMINANCE_ALPHA8I_EXT = $8D93;
5786   GL_RED_INTEGER_EXT = $8D94;
5787   GL_GREEN_INTEGER_EXT = $8D95;
5788   GL_BLUE_INTEGER_EXT = $8D96;
5789   GL_ALPHA_INTEGER_EXT = $8D97;
5790   GL_RGB_INTEGER_EXT = $8D98;
5791   GL_RGBA_INTEGER_EXT = $8D99;
5792   GL_BGR_INTEGER_EXT = $8D9A;
5793   GL_BGRA_INTEGER_EXT = $8D9B;
5794   GL_LUMINANCE_INTEGER_EXT = $8D9C;
5795   GL_LUMINANCE_ALPHA_INTEGER_EXT = $8D9D;
5796
5797   // GL_EXT_texture_shared_exponent
5798   GL_RGB9_E5_EXT = $8C3D;
5799   GL_UNSIGNED_INT_5_9_9_9_REV_EXT = $8C3E;
5800   GL_TEXTURE_SHARED_SIZE_EXT = $8C3F;
5801
5802   // GL_EXT_transform_feedback
5803   GL_TRANSFORM_FEEDBACK_BUFFER_EXT = $8C8E;
5804   GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = $8C84;
5805   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = $8C85;
5806   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = $8C8F;
5807   GL_INTERLEAVED_ATTRIBS_EXT = $8C8C;
5808   GL_SEPARATE_ATTRIBS_EXT = $8C8D;
5809   GL_PRIMITIVES_GENERATED_EXT = $8C87;
5810   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = $8C88;
5811   GL_RASTERIZER_DISCARD_EXT = $8C89;
5812   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = $8C8A;
5813   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = $8C8B;
5814   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = $8C80;
5815   GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = $8C83;
5816   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = $8C7F;
5817   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = $8C76;
5818
5819   // GL_EXT_direct_state_access
5820   GL_PROGRAM_MATRIX_EXT = $8E2D;
5821   GL_TRANSPOSE_PROGRAM_MATRIX_EXT = $8E2E;
5822   GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = $8E2F;
5823
5824   // GL_EXT_texture_swizzle
5825   GL_TEXTURE_SWIZZLE_R_EXT = $8E42;
5826   GL_TEXTURE_SWIZZLE_G_EXT = $8E43;
5827   GL_TEXTURE_SWIZZLE_B_EXT = $8E44;
5828   GL_TEXTURE_SWIZZLE_A_EXT = $8E45;
5829   GL_TEXTURE_SWIZZLE_RGBA_EXT = $8E46;
5830
5831   // GL_EXT_provoking_vertex
5832   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = $8E4C;
5833   GL_FIRST_VERTEX_CONVENTION_EXT = $8E4D;
5834   GL_LAST_VERTEX_CONVENTION_EXT = $8E4E;
5835   GL_PROVOKING_VERTEX_EXT = $8E4F;
5836   
5837   // GL_EXT_texture_snorm
5838   GL_ALPHA_SNORM = $9010;
5839   GL_LUMINANCE_SNORM = $9011;
5840   GL_LUMINANCE_ALPHA_SNORM = $9012;
5841   GL_INTENSITY_SNORM = $9013;
5842   GL_ALPHA8_SNORM = $9014;
5843   GL_LUMINANCE8_SNORM = $9015;
5844   GL_LUMINANCE8_ALPHA8_SNORM = $9016;
5845   GL_INTENSITY8_SNORM = $9017;
5846   GL_ALPHA16_SNORM = $9018;
5847   GL_LUMINANCE16_SNORM = $9019;
5848   GL_LUMINANCE16_ALPHA16_SNORM = $901A;
5849   GL_INTENSITY16_SNORM = $901B;
5850   { reuse GL_RED_SNORM }
5851   { reuse GL_RG_SNORM }
5852   { reuse GL_RGB_SNORM }
5853   { reuse GL_RGBA_SNORM }
5854   { reuse GL_R8_SNORM }
5855   { reuse GL_RG8_SNORM }
5856   { reuse GL_RGB8_SNORM }
5857   { reuse GL_RGBA8_SNORM }
5858   { reuse GL_R16_SNORM }
5859   { reuse GL_RG16_SNORM }
5860   { reuse GL_RGB16_SNORM }
5861   { reuse GL_RGBA16_SNORM }
5862   { reuse GL_SIGNED_NORMALIZED }
5863   
5864   // GL_EXT_separate_shader_objects
5865   GL_ACTIVE_PROGRAM_EXT = $8B8D;
5866   
5867   // GL_EXT_shader_image_load_store
5868   GL_MAX_IMAGE_UNITS_EXT = $8F38;
5869   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = $8F39;
5870   GL_IMAGE_BINDING_NAME_EXT = $8F3A;
5871   GL_IMAGE_BINDING_LEVEL_EXT = $8F3B;
5872   GL_IMAGE_BINDING_LAYERED_EXT = $8F3C;
5873   GL_IMAGE_BINDING_LAYER_EXT = $8F3D;
5874   GL_IMAGE_BINDING_ACCESS_EXT = $8F3E;
5875   GL_IMAGE_1D_EXT = $904C;
5876   GL_IMAGE_2D_EXT = $904D;
5877   GL_IMAGE_3D_EXT = $904E;
5878   GL_IMAGE_2D_RECT_EXT = $904F;
5879   GL_IMAGE_CUBE_EXT = $9050;
5880   GL_IMAGE_BUFFER_EXT = $9051;
5881   GL_IMAGE_1D_ARRAY_EXT = $9052;
5882   GL_IMAGE_2D_ARRAY_EXT = $9053;
5883   GL_IMAGE_CUBE_MAP_ARRAY_EXT = $9054;
5884   GL_IMAGE_2D_MULTISAMPLE_EXT = $9055;
5885   GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9056;
5886   GL_INT_IMAGE_1D_EXT = $9057;
5887   GL_INT_IMAGE_2D_EXT = $9058;
5888   GL_INT_IMAGE_3D_EXT = $9059;
5889   GL_INT_IMAGE_2D_RECT_EXT = $905A;
5890   GL_INT_IMAGE_CUBE_EXT = $905B;
5891   GL_INT_IMAGE_BUFFER_EXT = $905C;
5892   GL_INT_IMAGE_1D_ARRAY_EXT = $905D;
5893   GL_INT_IMAGE_2D_ARRAY_EXT = $905E;
5894   GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $905F;
5895   GL_INT_IMAGE_2D_MULTISAMPLE_EXT = $9060;
5896   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9061;
5897   GL_UNSIGNED_INT_IMAGE_1D_EXT = $9062;
5898   GL_UNSIGNED_INT_IMAGE_2D_EXT = $9063;
5899   GL_UNSIGNED_INT_IMAGE_3D_EXT = $9064;
5900   GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT = $9065;
5901   GL_UNSIGNED_INT_IMAGE_CUBE_EXT = $9066;
5902   GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = $9067;
5903   GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = $9068;
5904   GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = $9069;
5905   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $906A;
5906   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = $906B;
5907   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $906C;
5908   GL_MAX_IMAGE_SAMPLES_EXT = $906D;
5909   GL_IMAGE_BINDING_FORMAT_EXT = $906E;
5910   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = $00000001;
5911   GL_ELEMENT_ARRAY_BARRIER_BIT_EXT = $00000002;
5912   GL_UNIFORM_BARRIER_BIT_EXT = $00000004;
5913   GL_TEXTURE_FETCH_BARRIER_BIT_EXT = $00000008;
5914   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = $00000020;
5915   GL_COMMAND_BARRIER_BIT_EXT = $00000040;
5916   GL_PIXEL_BUFFER_BARRIER_BIT_EXT = $00000080;
5917   GL_TEXTURE_UPDATE_BARRIER_BIT_EXT = $00000100;
5918   GL_BUFFER_UPDATE_BARRIER_BIT_EXT = $00000200;
5919   GL_FRAMEBUFFER_BARRIER_BIT_EXT = $00000400;
5920   GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = $00000800;
5921   GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = $00001000;
5922   GL_ALL_BARRIER_BITS_EXT = $FFFFFFFF;
5923   
5924   // GL_EXT_vertex_attrib_64bit
5925   { reuse GL_DOUBLE }
5926   GL_DOUBLE_VEC2_EXT = $8FFC;
5927   GL_DOUBLE_VEC3_EXT = $8FFD;
5928   GL_DOUBLE_VEC4_EXT = $8FFE;
5929   GL_DOUBLE_MAT2_EXT = $8F46;
5930   GL_DOUBLE_MAT3_EXT = $8F47;
5931   GL_DOUBLE_MAT4_EXT = $8F48;
5932   GL_DOUBLE_MAT2x3_EXT = $8F49;
5933   GL_DOUBLE_MAT2x4_EXT = $8F4A;
5934   GL_DOUBLE_MAT3x2_EXT = $8F4B;
5935   GL_DOUBLE_MAT3x4_EXT = $8F4C;
5936   GL_DOUBLE_MAT4x2_EXT = $8F4D;
5937   GL_DOUBLE_MAT4x3_EXT = $8F4E;
5938
5939   // GL_EXT_texture_sRGB_decode
5940   GL_TEXTURE_SRGB_DECODE_EXT = $8A48;
5941   GL_DECODE_EXT = $8A49;
5942   GL_SKIP_DECODE_EXT = $8A4A;
5943
5944   // GL_NV_texture_multisample 
5945   GL_TEXTURE_COVERAGE_SAMPLES_NV    = $9045;
5946   GL_TEXTURE_COLOR_SAMPLES_NV       = $9046;
5947
5948   // GL_AMD_blend_minmax_factor
5949   GL_FACTOR_MIN_AMD                 = $901C;
5950   GL_FACTOR_MAX_AMD                 = $901D;
5951
5952   // GL_AMD_sample_positions
5953   GL_SUBSAMPLE_DISTANCE_AMD         = $883F;
5954
5955   // GL_EXT_x11_sync_object
5956   GL_SYNC_X11_FENCE_EXT             = $90E1;
5957
5958   // GL_EXT_framebuffer_multisample_blit_scaled
5959   GL_SCALED_RESOLVE_FASTEST_EXT     = $90BA;
5960   GL_SCALED_RESOLVE_NICEST_EXT      = $90BB;
5961
5962   // (4.3) GL_NV_path_rendering
5963         GL_PATH_FORMAT_SVG_NV            = $9070;
5964         GL_PATH_FORMAT_PS_NV             = $9071;
5965         GL_STANDARD_FONT_NAME_NV         = $9072;
5966         GL_SYSTEM_FONT_NAME_NV           = $9073;
5967         GL_FILE_NAME_NV                  = $9074;
5968         GL_PATH_STROKE_WIDTH_NV          = $9075;
5969         GL_PATH_END_CAPS_NV              = $9076;
5970         GL_PATH_INITIAL_END_CAP_NV       = $9077;
5971         GL_PATH_TERMINAL_END_CAP_NV      = $9078;
5972         GL_PATH_JOIN_STYLE_NV            = $9079;
5973         GL_PATH_MITER_LIMIT_NV           = $907A;
5974         GL_PATH_DASH_CAPS_NV             = $907B;
5975         GL_PATH_INITIAL_DASH_CAP_NV      = $907C;
5976         GL_PATH_TERMINAL_DASH_CAP_NV     = $907D;
5977         GL_PATH_DASH_OFFSET_NV           = $907E;
5978         GL_PATH_CLIENT_LENGTH_NV         = $907F;
5979         GL_PATH_FILL_MODE_NV             = $9080;
5980         GL_PATH_FILL_MASK_NV             = $9081;
5981         GL_PATH_FILL_COVER_MODE_NV       = $9082;
5982         GL_PATH_STROKE_COVER_MODE_NV     = $9083;
5983         GL_PATH_STROKE_MASK_NV           = $9084;
5984         GL_PATH_SAMPLE_QUALITY_NV        = $9085;
5985         GL_PATH_STROKE_BOUND_NV          = $9086;
5986         GL_PATH_STROKE_OVERSAMPLE_COUNT_NV= $9087;
5987         GL_COUNT_UP_NV                   = $9088;
5988         GL_COUNT_DOWN_NV                 = $9089;
5989         GL_PATH_OBJECT_BOUNDING_BOX_NV   = $908A;
5990         GL_CONVEX_HULL_NV                = $908B;
5991         GL_MULTI_HULLS_NV                = $908C;
5992         GL_BOUNDING_BOX_NV               = $908D;
5993         GL_TRANSLATE_X_NV                = $908E;
5994         GL_TRANSLATE_Y_NV                = $908F;
5995         GL_TRANSLATE_2D_NV               = $9090;
5996         GL_TRANSLATE_3D_NV               = $9091;
5997         GL_AFFINE_2D_NV                  = $9092;
5998         GL_PROJECTIVE_2D_NV              = $9093;
5999         GL_AFFINE_3D_NV                  = $9094;
6000         GL_PROJECTIVE_3D_NV              = $9095;
6001         GL_TRANSPOSE_AFFINE_2D_NV        = $9096;
6002         GL_TRANSPOSE_PROJECTIVE_2D_NV    = $9097;
6003         GL_TRANSPOSE_AFFINE_3D_NV        = $9098;
6004         GL_TRANSPOSE_PROJECTIVE_3D_NV    = $9099;
6005         GL_UTF8_NV                       = $909A;
6006         GL_UTF16_NV                      = $909B;
6007         GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV= $909C;
6008         GL_PATH_COMMAND_COUNT_NV         = $909D;
6009         GL_PATH_COORD_COUNT_NV           = $909E;
6010   GL_PATH_DASH_ARRAY_COUNT_NV      = $909F;
6011   GL_PATH_COMPUTED_LENGTH_NV       = $90A0;
6012   GL_PATH_FILL_BOUNDING_BOX_NV     = $90A1;
6013   GL_PATH_STROKE_BOUNDING_BOX_NV   = $90A2;
6014   GL_SQUARE_NV                     = $90A3;
6015   GL_ROUND_NV                      = $90A4;
6016   GL_TRIANGULAR_NV                 = $90A5;
6017   GL_BEVEL_NV                      = $90A6;
6018   GL_MITER_REVERT_NV               = $90A7;
6019   GL_MITER_TRUNCATE_NV             = $90A8;
6020   GL_SKIP_MISSING_GLYPH_NV         = $90A9;
6021   GL_USE_MISSING_GLYPH_NV          = $90AA;
6022   GL_PATH_ERROR_POSITION_NV        = $90AB;
6023   GL_PATH_FOG_GEN_MODE_NV          = $90AC;
6024   GL_ACCUM_ADJACENT_PAIRS_NV       = $90AD;
6025   GL_ADJACENT_PAIRS_NV             = $90AE;
6026   GL_FIRST_TO_REST_NV              = $90AF;
6027   GL_PATH_GEN_MODE_NV              = $90B0;
6028   GL_PATH_GEN_COEFF_NV             = $90B1;
6029   GL_PATH_GEN_COLOR_FORMAT_NV      = $90B2;
6030   GL_PATH_GEN_COMPONENTS_NV        = $90B3;
6031   GL_PATH_STENCIL_FUNC_NV          = $90B7;
6032   GL_PATH_STENCIL_REF_NV           = $90B8;
6033   GL_PATH_STENCIL_VALUE_MASK_NV    = $90B9;
6034   GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV= $90BD;
6035   GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV= $90BE;
6036   GL_PATH_COVER_DEPTH_FUNC_NV      = $90BF;
6037   GL_PATH_DASH_OFFSET_RESET_NV     = $90B4;
6038   GL_MOVE_TO_RESETS_NV             = $90B5;
6039   GL_MOVE_TO_CONTINUES_NV          = $90B6;
6040   GL_CLOSE_PATH_NV                 = $00;
6041   GL_MOVE_TO_NV                    = $02;
6042   GL_RELATIVE_MOVE_TO_NV           = $03;
6043   GL_LINE_TO_NV                    = $04;
6044   GL_RELATIVE_LINE_TO_NV           = $05;
6045   GL_HORIZONTAL_LINE_TO_NV         = $06;
6046   GL_RELATIVE_HORIZONTAL_LINE_TO_NV= $07;
6047   GL_VERTICAL_LINE_TO_NV           = $08;
6048   GL_RELATIVE_VERTICAL_LINE_TO_NV  = $09;
6049   GL_QUADRATIC_CURVE_TO_NV         = $0A;
6050   GL_RELATIVE_QUADRATIC_CURVE_TO_NV= $0B;
6051   GL_CUBIC_CURVE_TO_NV             = $0C;
6052   GL_RELATIVE_CUBIC_CURVE_TO_NV    = $0D;
6053   GL_SMOOTH_QUADRATIC_CURVE_TO_NV  = $0E;
6054   GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV= $0F;
6055   GL_SMOOTH_CUBIC_CURVE_TO_NV      = $10;
6056   GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV= $11;
6057   GL_SMALL_CCW_ARC_TO_NV           = $12;
6058   GL_RELATIVE_SMALL_CCW_ARC_TO_NV  = $13;
6059   GL_SMALL_CW_ARC_TO_NV            = $14;
6060   GL_RELATIVE_SMALL_CW_ARC_TO_NV   = $15;
6061   GL_LARGE_CCW_ARC_TO_NV           = $16;
6062   GL_RELATIVE_LARGE_CCW_ARC_TO_NV  = $17;
6063   GL_LARGE_CW_ARC_TO_NV            = $18;
6064   GL_RELATIVE_LARGE_CW_ARC_TO_NV   = $19;
6065   GL_RESTART_PATH_NV               = $F0;
6066   GL_DUP_FIRST_CUBIC_CURVE_TO_NV   = $F2;
6067   GL_DUP_LAST_CUBIC_CURVE_TO_NV    = $F4;
6068   GL_RECT_NV                       = $F6;
6069   GL_CIRCULAR_CCW_ARC_TO_NV        = $F8;
6070   GL_CIRCULAR_CW_ARC_TO_NV         = $FA;
6071   GL_CIRCULAR_TANGENT_ARC_TO_NV    = $FC;
6072   GL_ARC_TO_NV                     = $FE;
6073   GL_RELATIVE_ARC_TO_NV            = $FF;
6074   GL_BOLD_BIT_NV                   = $01;
6075   GL_ITALIC_BIT_NV                 = $02;
6076   GL_GLYPH_WIDTH_BIT_NV            = $01;
6077   GL_GLYPH_HEIGHT_BIT_NV           = $02;
6078   GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV= $04;
6079   GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV= $08;
6080   GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV= $10;
6081   GL_GLYPH_VERTICAL_BEARING_X_BIT_NV= $20;
6082   GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV= $40;
6083   GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV= $80;
6084   GL_GLYPH_HAS_KERNING_NV          = $100;
6085   GL_FONT_X_MIN_BOUNDS_NV          = $00010000;
6086   GL_FONT_Y_MIN_BOUNDS_NV          = $00020000;
6087   GL_FONT_X_MAX_BOUNDS_NV          = $00040000;
6088   GL_FONT_Y_MAX_BOUNDS_NV          = $00080000;
6089   GL_FONT_UNITS_PER_EM_NV          = $00100000;
6090   GL_FONT_ASCENDER_NV              = $00200000;
6091   GL_FONT_DESCENDER_NV             = $00400000;
6092   GL_FONT_HEIGHT_NV                = $00800000;
6093   GL_FONT_MAX_ADVANCE_WIDTH_NV     = $01000000;
6094   GL_FONT_MAX_ADVANCE_HEIGHT_NV    = $02000000;
6095   GL_FONT_UNDERLINE_POSITION_NV    = $04000000;
6096   GL_FONT_UNDERLINE_THICKNESS_NV   = $08000000;
6097   GL_FONT_HAS_KERNING_NV           = $10000000;
6098
6099   // (4.3) GL_AMD_pinned_memory
6100   GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD= $9160;
6101
6102   // (4.3) GL_AMD_stencil_operation_extended
6103   GL_SET_AMD                       = $874A;
6104   GL_REPLACE_VALUE_AMD             = $874B;
6105   GL_STENCIL_OP_VALUE_AMD          = $874C;
6106   GL_STENCIL_BACK_OP_VALUE_AMD     = $874D;
6107
6108   // (4.3) GL_AMD_vertex_shader_viewport_index
6109
6110   // (4.3) GL_AMD_vertex_shader_layer
6111
6112   // (4.3) GL_NV_bindless_texture
6113
6114   // (4.3) GL_NV_shader_atomic_float
6115
6116   // (4.3) GL_AMD_query_buffer_object
6117   GL_QUERY_BUFFER_AMD              = $9192;
6118   GL_QUERY_BUFFER_BINDING_AMD      = $9193;
6119   GL_QUERY_RESULT_NO_WAIT_AMD      = $9194;
6120
6121   // GL_FfdMaskSGIX
6122   GL_TEXTURE_DEFORMATION_BIT_SGIX = $00000001;
6123   GL_GEOMETRY_DEFORMATION_BIT_SGIX = $00000002;
6124
6125   // GL_HP_convolution_border_modes
6126   GL_IGNORE_BORDER_HP = $8150;
6127   GL_CONSTANT_BORDER_HP = $8151;
6128   GL_REPLICATE_BORDER_HP = $8153;
6129   GL_CONVOLUTION_BORDER_COLOR_HP = $8154;
6130
6131   // GL_HP_image_transform
6132   GL_IMAGE_SCALE_X_HP = $8155;
6133   GL_IMAGE_SCALE_Y_HP = $8156;
6134   GL_IMAGE_TRANSLATE_X_HP = $8157;
6135   GL_IMAGE_TRANSLATE_Y_HP = $8158;
6136   GL_IMAGE_ROTATE_ANGLE_HP = $8159;
6137   GL_IMAGE_ROTATE_ORIGIN_X_HP = $815A;
6138   GL_IMAGE_ROTATE_ORIGIN_Y_HP = $815B;
6139   GL_IMAGE_MAG_FILTER_HP = $815C;
6140   GL_IMAGE_MIN_FILTER_HP = $815D;
6141   GL_IMAGE_CUBIC_WEIGHT_HP = $815E;
6142   GL_CUBIC_HP = $815F;
6143   GL_AVERAGE_HP = $8160;
6144   GL_IMAGE_TRANSFORM_2D_HP = $8161;
6145   GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8162;
6146   GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8163;
6147
6148   // GL_HP_occlusion_test
6149   GL_OCCLUSION_TEST_HP = $8165;
6150   GL_OCCLUSION_TEST_RESULT_HP = $8166;
6151
6152   // GL_HP_texture_lighting
6153   GL_TEXTURE_LIGHTING_MODE_HP = $8167;
6154   GL_TEXTURE_POST_SPECULAR_HP = $8168;
6155   GL_TEXTURE_PRE_SPECULAR_HP = $8169;
6156
6157   // GL_IBM_cull_vertex
6158   GL_CULL_VERTEX_IBM = 103050;
6159
6160   // GL_IBM_rasterpos_clip
6161   GL_RASTER_POSITION_UNCLIPPED_IBM = $19262;
6162
6163   // GL_IBM_texture_mirrored_repeat
6164   GL_MIRRORED_REPEAT_IBM = $8370;
6165
6166   // GL_IBM_vertex_array_lists
6167   GL_VERTEX_ARRAY_LIST_IBM = 103070;
6168   GL_NORMAL_ARRAY_LIST_IBM = 103071;
6169   GL_COLOR_ARRAY_LIST_IBM = 103072;
6170   GL_INDEX_ARRAY_LIST_IBM = 103073;
6171   GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074;
6172   GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075;
6173   GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076;
6174   GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077;
6175   GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080;
6176   GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081;
6177   GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082;
6178   GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083;
6179   GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084;
6180   GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085;
6181   GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086;
6182   GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087;
6183
6184   // GL_INGR_color_clamp
6185   GL_RED_MIN_CLAMP_INGR = $8560;
6186   GL_GREEN_MIN_CLAMP_INGR = $8561;
6187   GL_BLUE_MIN_CLAMP_INGR = $8562;
6188   GL_ALPHA_MIN_CLAMP_INGR = $8563;
6189   GL_RED_MAX_CLAMP_INGR = $8564;
6190   GL_GREEN_MAX_CLAMP_INGR = $8565;
6191   GL_BLUE_MAX_CLAMP_INGR = $8566;
6192   GL_ALPHA_MAX_CLAMP_INGR = $8567;
6193
6194   // GL_INGR_interlace_read
6195   GL_INTERLACE_READ_INGR = $8568;
6196
6197   // GL_INTEL_parallel_arrays
6198   GL_PARALLEL_ARRAYS_INTEL = $83F4;
6199   GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = $83F5;
6200   GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = $83F6;
6201   GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = $83F7;
6202   GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = $83F8;
6203
6204   // GL_NV_copy_depth_to_color
6205   GL_DEPTH_STENCIL_TO_RGBA_NV = $886E;
6206   GL_DEPTH_STENCIL_TO_BGRA_NV = $886F;
6207
6208   // GL_NV_depth_clamp
6209   GL_DEPTH_CLAMP_NV = $864F;
6210
6211   // GL_NV_evaluators
6212   GL_EVAL_2D_NV = $86C0;
6213   GL_EVAL_TRIANGULAR_2D_NV = $86C1;
6214   GL_MAP_TESSELLATION_NV = $86C2;
6215   GL_MAP_ATTRIB_U_ORDER_NV = $86C3;
6216   GL_MAP_ATTRIB_V_ORDER_NV = $86C4;
6217   GL_EVAL_FRACTIONAL_TESSELLATION_NV = $86C5;
6218   GL_EVAL_VERTEX_ATTRIB0_NV = $86C6;
6219   GL_EVAL_VERTEX_ATTRIB1_NV = $86C7;
6220   GL_EVAL_VERTEX_ATTRIB2_NV = $86C8;
6221   GL_EVAL_VERTEX_ATTRIB3_NV = $86C9;
6222   GL_EVAL_VERTEX_ATTRIB4_NV = $86CA;
6223   GL_EVAL_VERTEX_ATTRIB5_NV = $86CB;
6224   GL_EVAL_VERTEX_ATTRIB6_NV = $86CC;
6225   GL_EVAL_VERTEX_ATTRIB7_NV = $86CD;
6226   GL_EVAL_VERTEX_ATTRIB8_NV = $86CE;
6227   GL_EVAL_VERTEX_ATTRIB9_NV = $86CF;
6228   GL_EVAL_VERTEX_ATTRIB10_NV = $86D0;
6229   GL_EVAL_VERTEX_ATTRIB11_NV = $86D1;
6230   GL_EVAL_VERTEX_ATTRIB12_NV = $86D2;
6231   GL_EVAL_VERTEX_ATTRIB13_NV = $86D3;
6232   GL_EVAL_VERTEX_ATTRIB14_NV = $86D4;
6233   GL_EVAL_VERTEX_ATTRIB15_NV = $86D5;
6234   GL_MAX_MAP_TESSELLATION_NV = $86D6;
6235   GL_MAX_RATIONAL_EVAL_ORDER_NV = $86D7;
6236
6237   // GL_NV_fence
6238   GL_ALL_COMPLETED_NV = $84F2;
6239   GL_FENCE_STATUS_NV = $84F3;
6240   GL_FENCE_CONDITION_NV = $84F4;
6241
6242   // GL_NV_float_buffer
6243   GL_FLOAT_R_NV = $8880;
6244   GL_FLOAT_RG_NV = $8881;
6245   GL_FLOAT_RGB_NV = $8882;
6246   GL_FLOAT_RGBA_NV = $8883;
6247   GL_FLOAT_R16_NV = $8884;
6248   GL_FLOAT_R32_NV = $8885;
6249   GL_FLOAT_RG16_NV = $8886;
6250   GL_FLOAT_RG32_NV = $8887;
6251   GL_FLOAT_RGB16_NV = $8888;
6252   GL_FLOAT_RGB32_NV = $8889;
6253   GL_FLOAT_RGBA16_NV = $888A;
6254   GL_FLOAT_RGBA32_NV = $888B;
6255   GL_TEXTURE_FLOAT_COMPONENTS_NV = $888C;
6256   GL_FLOAT_CLEAR_COLOR_VALUE_NV = $888D;
6257   GL_FLOAT_RGBA_MODE_NV = $888E;
6258
6259   // GL_NV_fog_distance
6260   GL_FOG_DISTANCE_MODE_NV = $855A;
6261   GL_EYE_RADIAL_NV = $855B;
6262   GL_EYE_PLANE_ABSOLUTE_NV = $855C;
6263
6264   // GL_NV_fragment_program
6265   GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = $8868;
6266   GL_FRAGMENT_PROGRAM_NV = $8870;
6267   GL_MAX_TEXTURE_COORDS_NV = $8871;
6268   GL_MAX_TEXTURE_IMAGE_UNITS_NV = $8872;
6269   GL_FRAGMENT_PROGRAM_BINDING_NV = $8873;
6270   GL_PROGRAM_ERROR_STRING_NV = $8874;
6271
6272   // GL_NV_half_float
6273   GL_HALF_FLOAT_NV = $140B;
6274
6275   // GL_NV_light_max_exponent
6276   GL_MAX_SHININESS_NV = $8504;
6277   GL_MAX_SPOT_EXPONENT_NV = $8505;
6278
6279   // GL_NV_multisample_filter_hint
6280   GL_MULTISAMPLE_FILTER_HINT_NV = $8534;
6281
6282   // GL_NV_occlusion_query
6283   GL_PIXEL_COUNTER_BITS_NV = $8864;
6284   GL_CURRENT_OCCLUSION_QUERY_ID_NV = $8865;
6285   GL_PIXEL_COUNT_NV = $8866;
6286   GL_PIXEL_COUNT_AVAILABLE_NV = $8867;
6287
6288   // GL_NV_packed_depth_stencil
6289   GL_DEPTH_STENCIL_NV = $84F9;
6290   GL_UNSIGNED_INT_24_8_NV = $84FA;
6291
6292   // GL_NV_pixel_data_range
6293   GL_WRITE_PIXEL_DATA_RANGE_NV = $8878;
6294   GL_READ_PIXEL_DATA_RANGE_NV = $8879;
6295   GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = $887A;
6296   GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = $887B;
6297   GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = $887C;
6298   GL_READ_PIXEL_DATA_RANGE_POINTER_NV = $887D;
6299
6300   // GL_NV_point_sprite
6301   GL_POINT_SPRITE_NV = $8861;
6302   GL_COORD_REPLACE_NV = $8862;
6303   GL_POINT_SPRITE_R_MODE_NV = $8863;
6304
6305   // GL_NV_primitive_restart
6306   GL_PRIMITIVE_RESTART_NV = $8558;
6307   GL_PRIMITIVE_RESTART_INDEX_NV = $8559;
6308
6309   // GL_NV_register_combiners
6310   GL_REGISTER_COMBINERS_NV = $8522;
6311   GL_VARIABLE_A_NV = $8523;
6312   GL_VARIABLE_B_NV = $8524;
6313   GL_VARIABLE_C_NV = $8525;
6314   GL_VARIABLE_D_NV = $8526;
6315   GL_VARIABLE_E_NV = $8527;
6316   GL_VARIABLE_F_NV = $8528;
6317   GL_VARIABLE_G_NV = $8529;
6318   GL_CONSTANT_COLOR0_NV = $852A;
6319   GL_CONSTANT_COLOR1_NV = $852B;
6320   GL_PRIMARY_COLOR_NV = $852C;
6321   GL_SECONDARY_COLOR_NV = $852D;
6322   GL_SPARE0_NV = $852E;
6323   GL_SPARE1_NV = $852F;
6324   GL_DISCARD_NV = $8530;
6325   GL_E_TIMES_F_NV = $8531;
6326   GL_SPARE0_PLUS_SECONDARY_COLOR_NV = $8532;
6327   GL_UNSIGNED_IDENTITY_NV = $8536;
6328   GL_UNSIGNED_INVERT_NV = $8537;
6329   GL_EXPAND_NORMAL_NV = $8538;
6330   GL_EXPAND_NEGATE_NV = $8539;
6331   GL_HALF_BIAS_NORMAL_NV = $853A;
6332   GL_HALF_BIAS_NEGATE_NV = $853B;
6333   GL_SIGNED_IDENTITY_NV = $853C;
6334   GL_SIGNED_NEGATE_NV = $853D;
6335   GL_SCALE_BY_TWO_NV = $853E;
6336   GL_SCALE_BY_FOUR_NV = $853F;
6337   GL_SCALE_BY_ONE_HALF_NV = $8540;
6338   GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = $8541;
6339   GL_COMBINER_INPUT_NV = $8542;
6340   GL_COMBINER_MAPPING_NV = $8543;
6341   GL_COMBINER_COMPONENT_USAGE_NV = $8544;
6342   GL_COMBINER_AB_DOT_PRODUCT_NV = $8545;
6343   GL_COMBINER_CD_DOT_PRODUCT_NV = $8546;
6344   GL_COMBINER_MUX_SUM_NV = $8547;
6345   GL_COMBINER_SCALE_NV = $8548;
6346   GL_COMBINER_BIAS_NV = $8549;
6347   GL_COMBINER_AB_OUTPUT_NV = $854A;
6348   GL_COMBINER_CD_OUTPUT_NV = $854B;
6349   GL_COMBINER_SUM_OUTPUT_NV = $854C;
6350   GL_MAX_GENERAL_COMBINERS_NV = $854D;
6351   GL_NUM_GENERAL_COMBINERS_NV = $854E;
6352   GL_COLOR_SUM_CLAMP_NV = $854F;
6353   GL_COMBINER0_NV = $8550;
6354   GL_COMBINER1_NV = $8551;
6355   GL_COMBINER2_NV = $8552;
6356   GL_COMBINER3_NV = $8553;
6357   GL_COMBINER4_NV = $8554;
6358   GL_COMBINER5_NV = $8555;
6359   GL_COMBINER6_NV = $8556;
6360   GL_COMBINER7_NV = $8557;
6361
6362   // GL_NV_register_combiners2
6363   GL_PER_STAGE_CONSTANTS_NV = $8535;
6364
6365   // GL_NV_texgen_emboss
6366   GL_EMBOSS_LIGHT_NV = $855D;
6367   GL_EMBOSS_CONSTANT_NV = $855E;
6368   GL_EMBOSS_MAP_NV = $855F;
6369
6370   // GL_NV_texgen_reflection
6371   GL_NORMAL_MAP_NV = $8511;
6372   GL_REFLECTION_MAP_NV = $8512;
6373
6374   // GL_NV_texture_env_combine4
6375   GL_COMBINE4_NV = $8503;
6376   GL_SOURCE3_RGB_NV = $8583;
6377   GL_SOURCE3_ALPHA_NV = $858B;
6378   GL_OPERAND3_RGB_NV = $8593;
6379   GL_OPERAND3_ALPHA_NV = $859B;
6380
6381   // GL_NV_texture_expand_normal
6382   GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = $888F;
6383
6384   // GL_NV_texture_rectangle
6385   GL_TEXTURE_RECTANGLE_NV = $84F5;
6386   GL_TEXTURE_BINDING_RECTANGLE_NV = $84F6;
6387   GL_PROXY_TEXTURE_RECTANGLE_NV = $84F7;
6388   GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = $84F8;
6389
6390   // GL_NV_texture_shader
6391   GL_OFFSET_TEXTURE_RECTANGLE_NV = $864C;
6392   GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = $864D;
6393   GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = $864E;
6394   GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = $86D9;
6395   GL_UNSIGNED_INT_S8_S8_8_8_NV = $86DA;
6396   GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = $86DB;
6397   GL_DSDT_MAG_INTENSITY_NV = $86DC;
6398   GL_SHADER_CONSISTENT_NV = $86DD;
6399   GL_TEXTURE_SHADER_NV = $86DE;
6400   GL_SHADER_OPERATION_NV = $86DF;
6401   GL_CULL_MODES_NV = $86E0;
6402   GL_OFFSET_TEXTURE_MATRIX_NV = $86E1;
6403   GL_OFFSET_TEXTURE_SCALE_NV = $86E2;
6404   GL_OFFSET_TEXTURE_BIAS_NV = $86E3;
6405   GL_OFFSET_TEXTURE_2D_MATRIX_NV = GL_OFFSET_TEXTURE_MATRIX_NV;
6406   GL_OFFSET_TEXTURE_2D_SCALE_NV = GL_OFFSET_TEXTURE_SCALE_NV;
6407   GL_OFFSET_TEXTURE_2D_BIAS_NV = GL_OFFSET_TEXTURE_BIAS_NV;
6408   GL_PREVIOUS_TEXTURE_INPUT_NV = $86E4;
6409   GL_CONST_EYE_NV = $86E5;
6410   GL_PASS_THROUGH_NV = $86E6;
6411   GL_CULL_FRAGMENT_NV = $86E7;
6412   GL_OFFSET_TEXTURE_2D_NV = $86E8;
6413   GL_DEPENDENT_AR_TEXTURE_2D_NV = $86E9;
6414   GL_DEPENDENT_GB_TEXTURE_2D_NV = $86EA;
6415   GL_DOT_PRODUCT_NV = $86EC;
6416   GL_DOT_PRODUCT_DEPTH_REPLACE_NV = $86ED;
6417   GL_DOT_PRODUCT_TEXTURE_2D_NV = $86EE;
6418   GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = $86F0;
6419   GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = $86F1;
6420   GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = $86F2;
6421   GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = $86F3;
6422   GL_HILO_NV = $86F4;
6423   GL_DSDT_NV = $86F5;
6424   GL_DSDT_MAG_NV = $86F6;
6425   GL_DSDT_MAG_VIB_NV = $86F7;
6426   GL_HILO16_NV = $86F8;
6427   GL_SIGNED_HILO_NV = $86F9;
6428   GL_SIGNED_HILO16_NV = $86FA;
6429   GL_SIGNED_RGBA_NV = $86FB;
6430   GL_SIGNED_RGBA8_NV = $86FC;
6431   GL_SIGNED_RGB_NV = $86FE;
6432   GL_SIGNED_RGB8_NV = $86FF;
6433   GL_SIGNED_LUMINANCE_NV = $8701;
6434   GL_SIGNED_LUMINANCE8_NV = $8702;
6435   GL_SIGNED_LUMINANCE_ALPHA_NV = $8703;
6436   GL_SIGNED_LUMINANCE8_ALPHA8_NV = $8704;
6437   GL_SIGNED_ALPHA_NV = $8705;
6438   GL_SIGNED_ALPHA8_NV = $8706;
6439   GL_SIGNED_INTENSITY_NV = $8707;
6440   GL_SIGNED_INTENSITY8_NV = $8708;
6441   GL_DSDT8_NV = $8709;
6442   GL_DSDT8_MAG8_NV = $870A;
6443   GL_DSDT8_MAG8_INTENSITY8_NV = $870B;
6444   GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = $870C;
6445   GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = $870D;
6446   GL_HI_SCALE_NV = $870E;
6447   GL_LO_SCALE_NV = $870F;
6448   GL_DS_SCALE_NV = $8710;
6449   GL_DT_SCALE_NV = $8711;
6450   GL_MAGNITUDE_SCALE_NV = $8712;
6451   GL_VIBRANCE_SCALE_NV = $8713;
6452   GL_HI_BIAS_NV = $8714;
6453   GL_LO_BIAS_NV = $8715;
6454   GL_DS_BIAS_NV = $8716;
6455   GL_DT_BIAS_NV = $8717;
6456   GL_MAGNITUDE_BIAS_NV = $8718;
6457   GL_VIBRANCE_BIAS_NV = $8719;
6458   GL_TEXTURE_BORDER_VALUES_NV = $871A;
6459   GL_TEXTURE_HI_SIZE_NV = $871B;
6460   GL_TEXTURE_LO_SIZE_NV = $871C;
6461   GL_TEXTURE_DS_SIZE_NV = $871D;
6462   GL_TEXTURE_DT_SIZE_NV = $871E;
6463   GL_TEXTURE_MAG_SIZE_NV = $871F;
6464
6465   // GL_NV_texture_shader2
6466   GL_DOT_PRODUCT_TEXTURE_3D_NV = $86EF;
6467
6468   // GL_NV_texture_shader3
6469   GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = $8850;
6470   GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = $8851;
6471   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8852;
6472   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = $8853;
6473   GL_OFFSET_HILO_TEXTURE_2D_NV = $8854;
6474   GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = $8855;
6475   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = $8856;
6476   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8857;
6477   GL_DEPENDENT_HILO_TEXTURE_2D_NV = $8858;
6478   GL_DEPENDENT_RGB_TEXTURE_3D_NV = $8859;
6479   GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = $885A;
6480   GL_DOT_PRODUCT_PASS_THROUGH_NV = $885B;
6481   GL_DOT_PRODUCT_TEXTURE_1D_NV = $885C;
6482   GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = $885D;
6483   GL_HILO8_NV = $885E;
6484   GL_SIGNED_HILO8_NV = $885F;
6485   GL_FORCE_BLUE_TO_ONE_NV = $8860;
6486
6487   // GL_NV_vertex_array_range
6488   GL_VERTEX_ARRAY_RANGE_NV = $851D;
6489   GL_VERTEX_ARRAY_RANGE_LENGTH_NV = $851E;
6490   GL_VERTEX_ARRAY_RANGE_VALID_NV = $851F;
6491   GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = $8520;
6492   GL_VERTEX_ARRAY_RANGE_POINTER_NV = $8521;
6493
6494   // GL_NV_vertex_array_range2
6495   GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = $8533;
6496
6497   // GL_NV_vertex_program
6498   GL_VERTEX_PROGRAM_NV = $8620;
6499   GL_VERTEX_STATE_PROGRAM_NV = $8621;
6500   GL_ATTRIB_ARRAY_SIZE_NV = $8623;
6501   GL_ATTRIB_ARRAY_STRIDE_NV = $8624;
6502   GL_ATTRIB_ARRAY_TYPE_NV = $8625;
6503   GL_CURRENT_ATTRIB_NV = $8626;
6504   GL_PROGRAM_LENGTH_NV = $8627;
6505   GL_PROGRAM_STRING_NV = $8628;
6506   GL_MODELVIEW_PROJECTION_NV = $8629;
6507   GL_IDENTITY_NV = $862A;
6508   GL_INVERSE_NV = $862B;
6509   GL_TRANSPOSE_NV = $862C;
6510   GL_INVERSE_TRANSPOSE_NV = $862D;
6511   GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = $862E;
6512   GL_MAX_TRACK_MATRICES_NV = $862F;
6513   GL_MATRIX0_NV = $8630;
6514   GL_MATRIX1_NV = $8631;
6515   GL_MATRIX2_NV = $8632;
6516   GL_MATRIX3_NV = $8633;
6517   GL_MATRIX4_NV = $8634;
6518   GL_MATRIX5_NV = $8635;
6519   GL_MATRIX6_NV = $8636;
6520   GL_MATRIX7_NV = $8637;
6521   GL_CURRENT_MATRIX_STACK_DEPTH_NV = $8640;
6522   GL_CURRENT_MATRIX_NV = $8641;
6523   GL_VERTEX_PROGRAM_POINT_SIZE_NV = $8642;
6524   GL_VERTEX_PROGRAM_TWO_SIDE_NV = $8643;
6525   GL_PROGRAM_PARAMETER_NV = $8644;
6526   GL_ATTRIB_ARRAY_POINTER_NV = $8645;
6527   GL_PROGRAM_TARGET_NV = $8646;
6528   GL_PROGRAM_RESIDENT_NV = $8647;
6529   GL_TRACK_MATRIX_NV = $8648;
6530   GL_TRACK_MATRIX_TRANSFORM_NV = $8649;
6531   GL_VERTEX_PROGRAM_BINDING_NV = $864A;
6532   GL_PROGRAM_ERROR_POSITION_NV = $864B;
6533   GL_VERTEX_ATTRIB_ARRAY0_NV = $8650;
6534   GL_VERTEX_ATTRIB_ARRAY1_NV = $8651;
6535   GL_VERTEX_ATTRIB_ARRAY2_NV = $8652;
6536   GL_VERTEX_ATTRIB_ARRAY3_NV = $8653;
6537   GL_VERTEX_ATTRIB_ARRAY4_NV = $8654;
6538   GL_VERTEX_ATTRIB_ARRAY5_NV = $8655;
6539   GL_VERTEX_ATTRIB_ARRAY6_NV = $8656;
6540   GL_VERTEX_ATTRIB_ARRAY7_NV = $8657;
6541   GL_VERTEX_ATTRIB_ARRAY8_NV = $8658;
6542   GL_VERTEX_ATTRIB_ARRAY9_NV = $8659;
6543   GL_VERTEX_ATTRIB_ARRAY10_NV = $865A;
6544   GL_VERTEX_ATTRIB_ARRAY11_NV = $865B;
6545   GL_VERTEX_ATTRIB_ARRAY12_NV = $865C;
6546   GL_VERTEX_ATTRIB_ARRAY13_NV = $865D;
6547   GL_VERTEX_ATTRIB_ARRAY14_NV = $865E;
6548   GL_VERTEX_ATTRIB_ARRAY15_NV = $865F;
6549   GL_MAP1_VERTEX_ATTRIB0_4_NV = $8660;
6550   GL_MAP1_VERTEX_ATTRIB1_4_NV = $8661;
6551   GL_MAP1_VERTEX_ATTRIB2_4_NV = $8662;
6552   GL_MAP1_VERTEX_ATTRIB3_4_NV = $8663;
6553   GL_MAP1_VERTEX_ATTRIB4_4_NV = $8664;
6554   GL_MAP1_VERTEX_ATTRIB5_4_NV = $8665;
6555   GL_MAP1_VERTEX_ATTRIB6_4_NV = $8666;
6556   GL_MAP1_VERTEX_ATTRIB7_4_NV = $8667;
6557   GL_MAP1_VERTEX_ATTRIB8_4_NV = $8668;
6558   GL_MAP1_VERTEX_ATTRIB9_4_NV = $8669;
6559   GL_MAP1_VERTEX_ATTRIB10_4_NV = $866A;
6560   GL_MAP1_VERTEX_ATTRIB11_4_NV = $866B;
6561   GL_MAP1_VERTEX_ATTRIB12_4_NV = $866C;
6562   GL_MAP1_VERTEX_ATTRIB13_4_NV = $866D;
6563   GL_MAP1_VERTEX_ATTRIB14_4_NV = $866E;
6564   GL_MAP1_VERTEX_ATTRIB15_4_NV = $866F;
6565   GL_MAP2_VERTEX_ATTRIB0_4_NV = $8670;
6566   GL_MAP2_VERTEX_ATTRIB1_4_NV = $8671;
6567   GL_MAP2_VERTEX_ATTRIB2_4_NV = $8672;
6568   GL_MAP2_VERTEX_ATTRIB3_4_NV = $8673;
6569   GL_MAP2_VERTEX_ATTRIB4_4_NV = $8674;
6570   GL_MAP2_VERTEX_ATTRIB5_4_NV = $8675;
6571   GL_MAP2_VERTEX_ATTRIB6_4_NV = $8676;
6572   GL_MAP2_VERTEX_ATTRIB7_4_NV = $8677;
6573   GL_MAP2_VERTEX_ATTRIB8_4_NV = $8678;
6574   GL_MAP2_VERTEX_ATTRIB9_4_NV = $8679;
6575   GL_MAP2_VERTEX_ATTRIB10_4_NV = $867A;
6576   GL_MAP2_VERTEX_ATTRIB11_4_NV = $867B;
6577   GL_MAP2_VERTEX_ATTRIB12_4_NV = $867C;
6578   GL_MAP2_VERTEX_ATTRIB13_4_NV = $867D;
6579   GL_MAP2_VERTEX_ATTRIB14_4_NV = $867E;
6580   GL_MAP2_VERTEX_ATTRIB15_4_NV = $867F;
6581
6582   // GL_NV_fragment_program2 and GL_NV_vertex_program2_option
6583   GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = $88F4;
6584   GL_MAX_PROGRAM_CALL_DEPTH_NV = $88F5;
6585
6586   // GL_NV_fragment_program2
6587   GL_MAX_PROGRAM_IF_DEPTH_NV = $88F6;
6588   GL_MAX_PROGRAM_LOOP_DEPTH_NV = $88F7;
6589   GL_MAX_PROGRAM_LOOP_COUNT_NV = $88F8;
6590
6591   // GL_NV_vertex_program3
6592   MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
6593
6594   // GL_NV_depth_buffer_float
6595   GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = $8DAD;
6596   GL_DEPTH_BUFFER_FLOAT_MODE_NV = $8DAF;
6597
6598   // GL_NV_framebuffer_multisample_coverage
6599   GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = $8CAB;
6600   GL_RENDERBUFFER_COLOR_SAMPLES_NV = $8E10;
6601
6602   // GL_NV_geometry_program4
6603   GL_GEOMETRY_PROGRAM_NV = $8C26;
6604   GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = $8C27;
6605   GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = $8C28;
6606
6607   // GL_NV_gpu_program4
6608   GL_PROGRAM_ATTRIB_COMPONENTS_NV = $8906;
6609   GL_PROGRAM_RESULT_COMPONENTS_NV = $8907;
6610   GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = $8908;
6611   GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = $8909;
6612   GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = $8DA5;
6613   GL_MAX_PROGRAM_GENERIC_RESULTS_NV = $8DA6;
6614
6615   // GL_NV_parameter_buffer_object
6616   GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = $8DA0;
6617   GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = $8DA1;
6618   GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = $8DA2;
6619   GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = $8DA3;
6620   GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = $8DA4;
6621
6622   // GL_NV_transform_feedback
6623   GL_TRANSFORM_FEEDBACK_BUFFER_NV = $8C8E;
6624   GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = $8C84;
6625   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = $8C85;
6626   GL_TRANSFORM_FEEDBACK_RECORD_NV = $8C86;
6627   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = $8C8F;
6628   GL_INTERLEAVED_ATTRIBS_NV = $8C8C;
6629   GL_SEPARATE_ATTRIBS_NV = $8C8D;
6630   GL_PRIMITIVES_GENERATED_NV = $8C87;
6631   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = $8C88;
6632   GL_RASTERIZER_DISCARD_NV = $8C89;
6633   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = $8C8A;
6634   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = $8C8B;
6635   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = $8C80;
6636   GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = $8C7E;
6637   GL_ACTIVE_VARYINGS_NV = $8C81;
6638   GL_ACTIVE_VARYING_MAX_LENGTH_NV = $8C82;
6639   GL_TRANSFORM_FEEDBACK_VARYINGS_NV = $8C83;
6640   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = $8C7F;
6641   GL_BACK_PRIMARY_COLOR_NV = $8C77;
6642   GL_BACK_SECONDARY_COLOR_NV = $8C78;
6643   GL_TEXTURE_COORD_NV = $8C79;
6644   GL_CLIP_DISTANCE_NV = $8C7A;
6645   GL_VERTEX_ID_NV = $8C7B;
6646   GL_PRIMITIVE_ID_NV = $8C7C;
6647   GL_GENERIC_ATTRIB_NV = $8C7D;
6648   GL_LAYER_NV = $8DAA;
6649   GL_NEXT_BUFFER_NV = -2;
6650   GL_SKIP_COMPONENTS4_NV = -3;
6651   GL_SKIP_COMPONENTS3_NV = -4;
6652   GL_SKIP_COMPONENTS2_NV = -5;
6653   GL_SKIP_COMPONENTS1_NV = -6;
6654
6655   // GL_NV_conditional_render
6656   GL_QUERY_WAIT_NV = $8E13;
6657   GL_QUERY_NO_WAIT_NV = $8E14;
6658   GL_QUERY_BY_REGION_WAIT_NV = $8E15;
6659   GL_QUERY_BY_REGION_NO_WAIT_NV = $8E16;
6660
6661   // GL_NV_present_video
6662   GL_FRAME_NV = $8E26;
6663   GL_FIELDS_NV = $8E27;
6664   GL_CURRENT_TIME_NV = $8E28;
6665   GL_NUM_FILL_STREAMS_NV = $8E29;
6666   GL_PRESENT_TIME_NV = $8E2A;
6667   GL_PRESENT_DURATION_NV = $8E2B;
6668
6669   // GL_NV_explicit_multisample
6670   GL_SAMPLE_POSITION_NV = $8E50;
6671   GL_SAMPLE_MASK_NV = $8E51;
6672   GL_SAMPLE_MASK_VALUE_NV = $8E52;
6673   GL_TEXTURE_BINDING_RENDERBUFFER_NV = $8E53;
6674   GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = $8E54;
6675   GL_TEXTURE_RENDERBUFFER_NV = $8E55;
6676   GL_SAMPLER_RENDERBUFFER_NV = $8E56;
6677   GL_INT_SAMPLER_RENDERBUFFER_NV = $8E57;
6678   GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = $8E58;
6679   GL_MAX_SAMPLE_MASK_WORDS_NV = $8E59;
6680
6681   // GL_NV_transform_feedback2
6682   GL_TRANSFORM_FEEDBACK_NV = $8E22;
6683   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = $8E23;
6684   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = $8E24;
6685   GL_TRANSFORM_FEEDBACK_BINDING_NV = $8E25;
6686   
6687   // GL_NV_video_capture
6688   GL_VIDEO_BUFFER_NV = $9020;
6689   GL_VIDEO_BUFFER_BINDING_NV = $9021;
6690   GL_FIELD_UPPER_NV = $9022;
6691   GL_FIELD_LOWER_NV = $9023;
6692   GL_NUM_VIDEO_CAPTURE_STREAMS_NV = $9024;
6693   GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = $9025;
6694   GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = $9026;
6695   GL_LAST_VIDEO_CAPTURE_STATUS_NV = $9027;
6696   GL_VIDEO_BUFFER_PITCH_NV = $9028;
6697   GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = $9029;
6698   GL_VIDEO_COLOR_CONVERSION_MAX_NV = $902A;
6699   GL_VIDEO_COLOR_CONVERSION_MIN_NV = $902B;
6700   GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = $902C;
6701   GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = $902D;
6702   GL_PARTIAL_SUCCESS_NV = $902E;
6703   GL_SUCCESS_NV = $902F;
6704   GL_FAILURE_NV = $9030;
6705   GL_YCBYCR8_422_NV = $9031;
6706   GL_YCBAYCR8A_4224_NV = $9032;
6707   GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = $9033;
6708   GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = $9034;
6709   GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = $9035;
6710   GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = $9036;
6711   GL_Z4Y12Z4CB12Z4CR12_444_NV = $9037;
6712   GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = $9038;
6713   GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = $9039;
6714   GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = $903A;
6715   GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = $903B;
6716   GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = $903C;
6717   
6718   // GL_NV_shader_buffer_load
6719   GL_BUFFER_GPU_ADDRESS_NV = $8F1D;
6720   GL_GPU_ADDRESS_NV = $8F34;
6721   GL_MAX_SHADER_BUFFER_ADDRESS_NV = $8F35;
6722
6723   // GL_NV_vertex_buffer_unified_memory
6724   GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = $8F1E;
6725   GL_ELEMENT_ARRAY_UNIFIED_NV = $8F1F;
6726   GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = $8F20;
6727   GL_VERTEX_ARRAY_ADDRESS_NV = $8F21;
6728   GL_NORMAL_ARRAY_ADDRESS_NV = $8F22;
6729   GL_COLOR_ARRAY_ADDRESS_NV = $8F23;
6730   GL_INDEX_ARRAY_ADDRESS_NV = $8F24;
6731   GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = $8F25;
6732   GL_EDGE_FLAG_ARRAY_ADDRESS_NV = $8F26;
6733   GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = $8F27;
6734   GL_FOG_COORD_ARRAY_ADDRESS_NV = $8F28;
6735   GL_ELEMENT_ARRAY_ADDRESS_NV = $8F29;
6736   GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = $8F2A;
6737   GL_VERTEX_ARRAY_LENGTH_NV = $8F2B;
6738   GL_NORMAL_ARRAY_LENGTH_NV = $8F2C;
6739   GL_COLOR_ARRAY_LENGTH_NV = $8F2D;
6740   GL_INDEX_ARRAY_LENGTH_NV = $8F2E;
6741   GL_TEXTURE_COORD_ARRAY_LENGTH_NV = $8F2F;
6742   GL_EDGE_FLAG_ARRAY_LENGTH_NV = $8F30;
6743   GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = $8F31;
6744   GL_FOG_COORD_ARRAY_LENGTH_NV = $8F32;
6745   GL_ELEMENT_ARRAY_LENGTH_NV = $8F33;
6746   GL_DRAW_INDIRECT_UNIFIED_NV = $8F40;
6747   GL_DRAW_INDIRECT_ADDRESS_NV = $8F41;
6748   GL_DRAW_INDIRECT_LENGTH_NV = $8F42;
6749
6750   // GL_NV_gpu_program5
6751   GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = $8E5A;
6752   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5B;
6753   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5C;
6754   GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = $8E5D;
6755   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5E;
6756   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5F;
6757   GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = $8F44;
6758   GL_MAX_PROGRAM_SUBROUTINE_NUM_NV = $8F45;
6759
6760   // GL_NV_gpu_shader5
6761   GL_INT64_NV = $140E;
6762   GL_UNSIGNED_INT64_NV = $140F;
6763   GL_INT8_NV = $8FE0;
6764   GL_INT8_VEC2_NV = $8FE1;
6765   GL_INT8_VEC3_NV = $8FE2;
6766   GL_INT8_VEC4_NV = $8FE3;
6767   GL_INT16_NV = $8FE4;
6768   GL_INT16_VEC2_NV = $8FE5;
6769   GL_INT16_VEC3_NV = $8FE6;
6770   GL_INT16_VEC4_NV = $8FE7;
6771   GL_INT64_VEC2_NV = $8FE9;
6772   GL_INT64_VEC3_NV = $8FEA;
6773   GL_INT64_VEC4_NV = $8FEB;
6774   GL_UNSIGNED_INT8_NV = $8FEC;
6775   GL_UNSIGNED_INT8_VEC2_NV = $8FED;
6776   GL_UNSIGNED_INT8_VEC3_NV = $8FEE;
6777   GL_UNSIGNED_INT8_VEC4_NV = $8FEF;
6778   GL_UNSIGNED_INT16_NV = $8FF0;
6779   GL_UNSIGNED_INT16_VEC2_NV = $8FF1;
6780   GL_UNSIGNED_INT16_VEC3_NV = $8FF2;
6781   GL_UNSIGNED_INT16_VEC4_NV = $8FF3;
6782   GL_UNSIGNED_INT64_VEC2_NV = $8FF5;
6783   GL_UNSIGNED_INT64_VEC3_NV = $8FF6;
6784   GL_UNSIGNED_INT64_VEC4_NV = $8FF7;
6785   GL_FLOAT16_NV = $8FF8;
6786   GL_FLOAT16_VEC2_NV = $8FF9;
6787   GL_FLOAT16_VEC3_NV = $8FFA;
6788   GL_FLOAT16_VEC4_NV = $8FFB;
6789   { reuse GL_PATCHES }
6790
6791   // GL_NV_shader_buffer_store
6792   GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = $00000010;
6793   { reuse GL_READ_WRITE }
6794   { reuse GL_WRITE_ONLY }
6795
6796   // GL_NV_tessellation_program5
6797   GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = $86D8;
6798   GL_TESS_CONTROL_PROGRAM_NV = $891E;
6799   GL_TESS_EVALUATION_PROGRAM_NV = $891F;
6800   GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = $8C74;
6801   GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = $8C75;
6802
6803   // GL_NV_vertex_attrib_integer_64bit
6804   { reuse GL_INT64_NV }
6805   { reuse GL_UNSIGNED_INT64_NV }
6806
6807   // GL_NV_multisample_coverage
6808   GL_COVERAGE_SAMPLES_NV = $80A9;
6809   GL_COLOR_SAMPLES_NV = $8E20;
6810
6811   // GL_NV_vdpau_interop
6812   GL_SURFACE_STATE_NV = $86EB;
6813   GL_SURFACE_REGISTERED_NV = $86FD;
6814   GL_SURFACE_MAPPED_NV = $8700;
6815   GL_WRITE_DISCARD_NV = $88BE;
6816
6817   // GL_OML_interlace
6818   GL_INTERLACE_OML = $8980;
6819   GL_INTERLACE_READ_OML = $8981;
6820
6821   // GL_OML_resample
6822   GL_PACK_RESAMPLE_OML = $8984;
6823   GL_UNPACK_RESAMPLE_OML = $8985;
6824   GL_RESAMPLE_REPLICATE_OML = $8986;
6825   GL_RESAMPLE_ZERO_FILL_OML = $8987;
6826   GL_RESAMPLE_AVERAGE_OML = $8988;
6827   GL_RESAMPLE_DECIMATE_OML = $8989;
6828
6829   // GL_OML_subsample
6830   GL_FORMAT_SUBSAMPLE_24_24_OML = $8982;
6831   GL_FORMAT_SUBSAMPLE_244_244_OML = $8983;
6832
6833   // GL_PGI_misc_hints
6834   GL_PREFER_DOUBLEBUFFER_HINT_PGI = $1A1F8;
6835   GL_CONSERVE_MEMORY_HINT_PGI = $1A1FD;
6836   GL_RECLAIM_MEMORY_HINT_PGI = $1A1FE;
6837   GL_NATIVE_GRAPHICS_HANDLE_PGI = $1A202;
6838   GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = $1A203;
6839   GL_NATIVE_GRAPHICS_END_HINT_PGI = $1A204;
6840   GL_ALWAYS_FAST_HINT_PGI = $1A20C;
6841   GL_ALWAYS_SOFT_HINT_PGI = $1A20D;
6842   GL_ALLOW_DRAW_OBJ_HINT_PGI = $1A20E;
6843   GL_ALLOW_DRAW_WIN_HINT_PGI = $1A20F;
6844   GL_ALLOW_DRAW_FRG_HINT_PGI = $1A210;
6845   GL_ALLOW_DRAW_MEM_HINT_PGI = $1A211;
6846   GL_STRICT_DEPTHFUNC_HINT_PGI = $1A216;
6847   GL_STRICT_LIGHTING_HINT_PGI = $1A217;
6848   GL_STRICT_SCISSOR_HINT_PGI = $1A218;
6849   GL_FULL_STIPPLE_HINT_PGI = $1A219;
6850   GL_CLIP_NEAR_HINT_PGI = $1A220;
6851   GL_CLIP_FAR_HINT_PGI = $1A221;
6852   GL_WIDE_LINE_HINT_PGI = $1A222;
6853   GL_BACK_NORMALS_HINT_PGI = $1A223;
6854
6855   // GL_PGI_vertex_hints
6856   GL_VERTEX_DATA_HINT_PGI = $1A22A;
6857   GL_VERTEX_CONSISTENT_HINT_PGI = $1A22B;
6858   GL_MATERIAL_SIDE_HINT_PGI = $1A22C;
6859   GL_MAX_VERTEX_HINT_PGI = $1A22D;
6860   GL_COLOR3_BIT_PGI = $00010000;
6861   GL_COLOR4_BIT_PGI = $00020000;
6862   GL_EDGEFLAG_BIT_PGI = $00040000;
6863   GL_INDEX_BIT_PGI = $00080000;
6864   GL_MAT_AMBIENT_BIT_PGI = $00100000;
6865   GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = $00200000;
6866   GL_MAT_DIFFUSE_BIT_PGI = $00400000;
6867   GL_MAT_EMISSION_BIT_PGI = $00800000;
6868   GL_MAT_COLOR_INDEXES_BIT_PGI = $01000000;
6869   GL_MAT_SHININESS_BIT_PGI = $02000000;
6870   GL_MAT_SPECULAR_BIT_PGI = $04000000;
6871   GL_NORMAL_BIT_PGI = $08000000;
6872   GL_TEXCOORD1_BIT_PGI = $10000000;
6873   GL_TEXCOORD2_BIT_PGI = $20000000;
6874   GL_TEXCOORD3_BIT_PGI = $40000000;
6875   GL_TEXCOORD4_BIT_PGI = $80000000;
6876   GL_VERTEX23_BIT_PGI = $00000004;
6877   GL_VERTEX4_BIT_PGI = $00000008;
6878
6879   // GL_REND_screen_coordinates
6880   GL_SCREEN_COORDINATES_REND = $8490;
6881   GL_INVERTED_SCREEN_W_REND = $8491;
6882
6883   // GL_S3_s3tc
6884   GL_RGB_S3TC = $83A0;
6885   GL_RGB4_S3TC = $83A1;
6886   GL_RGBA_S3TC = $83A2;
6887   GL_RGBA4_S3TC = $83A3;
6888
6889   // GL_SGIS_detail_texture
6890   GL_DETAIL_TEXTURE_2D_SGIS = $8095;
6891   GL_DETAIL_TEXTURE_2D_BINDING_SGIS = $8096;
6892   GL_LINEAR_DETAIL_SGIS = $8097;
6893   GL_LINEAR_DETAIL_ALPHA_SGIS = $8098;
6894   GL_LINEAR_DETAIL_COLOR_SGIS = $8099;
6895   GL_DETAIL_TEXTURE_LEVEL_SGIS = $809A;
6896   GL_DETAIL_TEXTURE_MODE_SGIS = $809B;
6897   GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = $809C;
6898
6899   // GL_SGIS_fog_function
6900   GL_FOG_FUNC_SGIS = $812A;
6901   GL_FOG_FUNC_POINTS_SGIS = $812B;
6902   GL_MAX_FOG_FUNC_POINTS_SGIS = $812C;
6903
6904   // GL_SGIS_generate_mipmap
6905   GL_GENERATE_MIPMAP_SGIS = $8191;
6906   GL_GENERATE_MIPMAP_HINT_SGIS = $8192;
6907
6908   // GL_SGIS_multisample
6909   GL_MULTISAMPLE_SGIS = $809D;
6910   GL_SAMPLE_ALPHA_TO_MASK_SGIS = $809E;
6911   GL_SAMPLE_ALPHA_TO_ONE_SGIS = $809F;
6912   GL_SAMPLE_MASK_SGIS = $80A0;
6913   GL_1PASS_SGIS = $80A1;
6914   GL_2PASS_0_SGIS = $80A2;
6915   GL_2PASS_1_SGIS = $80A3;
6916   GL_4PASS_0_SGIS = $80A4;
6917   GL_4PASS_1_SGIS = $80A5;
6918   GL_4PASS_2_SGIS = $80A6;
6919   GL_4PASS_3_SGIS = $80A7;
6920   GL_SAMPLE_BUFFERS_SGIS = $80A8;
6921   GL_SAMPLES_SGIS = $80A9;
6922   GL_SAMPLE_MASK_VALUE_SGIS = $80AA;
6923   GL_SAMPLE_MASK_INVERT_SGIS = $80AB;
6924   GL_SAMPLE_PATTERN_SGIS = $80AC;
6925
6926   // GL_SGIS_pixel_texture
6927   GL_PIXEL_TEXTURE_SGIS = $8353;
6928   GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = $8354;
6929   GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = $8355;
6930   GL_PIXEL_GROUP_COLOR_SGIS = $8356;
6931
6932   // GL_SGIS_point_line_texgen
6933   GL_EYE_DISTANCE_TO_POINT_SGIS = $81F0;
6934   GL_OBJECT_DISTANCE_TO_POINT_SGIS = $81F1;
6935   GL_EYE_DISTANCE_TO_LINE_SGIS = $81F2;
6936   GL_OBJECT_DISTANCE_TO_LINE_SGIS = $81F3;
6937   GL_EYE_POINT_SGIS = $81F4;
6938   GL_OBJECT_POINT_SGIS = $81F5;
6939   GL_EYE_LINE_SGIS = $81F6;
6940   GL_OBJECT_LINE_SGIS = $81F7;
6941
6942   // GL_SGIS_point_parameters
6943   GL_POINT_SIZE_MIN_SGIS = $8126;
6944   GL_POINT_SIZE_MAX_SGIS = $8127;
6945   GL_POINT_FADE_THRESHOLD_SIZE_SGIS = $8128;
6946   GL_DISTANCE_ATTENUATION_SGIS = $8129;
6947
6948   // GL_SGIS_sharpen_texture
6949   GL_LINEAR_SHARPEN_SGIS = $80AD;
6950   GL_LINEAR_SHARPEN_ALPHA_SGIS = $80AE;
6951   GL_LINEAR_SHARPEN_COLOR_SGIS = $80AF;
6952   GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = $80B0;
6953
6954   // GL_SGIS_texture4D
6955   GL_PACK_SKIP_VOLUMES_SGIS = $8130;
6956   GL_PACK_IMAGE_DEPTH_SGIS = $8131;
6957   GL_UNPACK_SKIP_VOLUMES_SGIS = $8132;
6958   GL_UNPACK_IMAGE_DEPTH_SGIS = $8133;
6959   GL_TEXTURE_4D_SGIS = $8134;
6960   GL_PROXY_TEXTURE_4D_SGIS = $8135;
6961   GL_TEXTURE_4DSIZE_SGIS = $8136;
6962   GL_TEXTURE_WRAP_Q_SGIS = $8137;
6963   GL_MAX_4D_TEXTURE_SIZE_SGIS = $8138;
6964   GL_TEXTURE_4D_BINDING_SGIS = $814F;
6965
6966   // GL_SGIS_texture_color_mask
6967   GL_TEXTURE_COLOR_WRITEMASK_SGIS = $81EF;
6968
6969   // GL_SGIS_texture_edge_clamp
6970   GL_CLAMP_TO_EDGE_SGIS = $812F;
6971
6972   // GL_SGIS_texture_filter4
6973   GL_FILTER4_SGIS = $8146;
6974   GL_TEXTURE_FILTER4_SIZE_SGIS = $8147;
6975
6976   // GL_SGIS_texture_lod
6977   GL_TEXTURE_MIN_LOD_SGIS = $813A;
6978   GL_TEXTURE_MAX_LOD_SGIS = $813B;
6979   GL_TEXTURE_BASE_LEVEL_SGIS = $813C;
6980   GL_TEXTURE_MAX_LEVEL_SGIS = $813D;
6981
6982   // GL_SGIS_texture_select
6983   GL_DUAL_ALPHA4_SGIS = $8110;
6984   GL_DUAL_ALPHA8_SGIS = $8111;
6985   GL_DUAL_ALPHA12_SGIS = $8112;
6986   GL_DUAL_ALPHA16_SGIS = $8113;
6987   GL_DUAL_LUMINANCE4_SGIS = $8114;
6988   GL_DUAL_LUMINANCE8_SGIS = $8115;
6989   GL_DUAL_LUMINANCE12_SGIS = $8116;
6990   GL_DUAL_LUMINANCE16_SGIS = $8117;
6991   GL_DUAL_INTENSITY4_SGIS = $8118;
6992   GL_DUAL_INTENSITY8_SGIS = $8119;
6993   GL_DUAL_INTENSITY12_SGIS = $811A;
6994   GL_DUAL_INTENSITY16_SGIS = $811B;
6995   GL_DUAL_LUMINANCE_ALPHA4_SGIS = $811C;
6996   GL_DUAL_LUMINANCE_ALPHA8_SGIS = $811D;
6997   GL_QUAD_ALPHA4_SGIS = $811E;
6998   GL_QUAD_ALPHA8_SGIS = $811F;
6999   GL_QUAD_LUMINANCE4_SGIS = $8120;
7000   GL_QUAD_LUMINANCE8_SGIS = $8121;
7001   GL_QUAD_INTENSITY4_SGIS = $8122;
7002   GL_QUAD_INTENSITY8_SGIS = $8123;
7003   GL_DUAL_TEXTURE_SELECT_SGIS = $8124;
7004   GL_QUAD_TEXTURE_SELECT_SGIS = $8125;
7005
7006   // GL_SGIX_async
7007   GL_ASYNC_MARKER_SGIX = $8329;
7008
7009   // GL_SGIX_async_histogram
7010   GL_ASYNC_HISTOGRAM_SGIX = $832C;
7011   GL_MAX_ASYNC_HISTOGRAM_SGIX = $832D;
7012
7013   // GL_SGIX_async_pixel
7014   GL_ASYNC_TEX_IMAGE_SGIX = $835C;
7015   GL_ASYNC_DRAW_PIXELS_SGIX = $835D;
7016   GL_ASYNC_READ_PIXELS_SGIX = $835E;
7017   GL_MAX_ASYNC_TEX_IMAGE_SGIX = $835F;
7018   GL_MAX_ASYNC_DRAW_PIXELS_SGIX = $8360;
7019   GL_MAX_ASYNC_READ_PIXELS_SGIX = $8361;
7020
7021   // GL_SGIX_blend_alpha_minmax
7022   GL_ALPHA_MIN_SGIX = $8320;
7023   GL_ALPHA_MAX_SGIX = $8321;
7024
7025   // GL_SGIX_calligraphic_fragment
7026   GL_CALLIGRAPHIC_FRAGMENT_SGIX = $8183;
7027
7028   // GL_SGIX_clipmap
7029   GL_LINEAR_CLIPMAP_LINEAR_SGIX = $8170;
7030   GL_TEXTURE_CLIPMAP_CENTER_SGIX = $8171;
7031   GL_TEXTURE_CLIPMAP_FRAME_SGIX = $8172;
7032   GL_TEXTURE_CLIPMAP_OFFSET_SGIX = $8173;
7033   GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8174;
7034   GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = $8175;
7035   GL_TEXTURE_CLIPMAP_DEPTH_SGIX = $8176;
7036   GL_MAX_CLIPMAP_DEPTH_SGIX = $8177;
7037   GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8178;
7038   GL_NEAREST_CLIPMAP_NEAREST_SGIX = $844D;
7039   GL_NEAREST_CLIPMAP_LINEAR_SGIX = $844E;
7040   GL_LINEAR_CLIPMAP_NEAREST_SGIX = $844F;
7041
7042   // GL_SGIX_convolution_accuracy
7043   GL_CONVOLUTION_HINT_SGIX = $8316;
7044
7045   // GL_SGIX_depth_texture
7046   GL_DEPTH_COMPONENT16_SGIX = $81A5;
7047   GL_DEPTH_COMPONENT24_SGIX = $81A6;
7048   GL_DEPTH_COMPONENT32_SGIX = $81A7;
7049
7050   // GL_SGIX_fog_offset
7051   GL_FOG_OFFSET_SGIX = $8198;
7052   GL_FOG_OFFSET_VALUE_SGIX = $8199;
7053
7054   // GL_SGIX_fog_scale
7055   GL_FOG_SCALE_SGIX = $81FC;
7056   GL_FOG_SCALE_VALUE_SGIX = $81FD;
7057
7058   // GL_SGIX_fragment_lighting
7059   GL_FRAGMENT_LIGHTING_SGIX = $8400;
7060   GL_FRAGMENT_COLOR_MATERIAL_SGIX = $8401;
7061   GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = $8402;
7062   GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = $8403;
7063   GL_MAX_FRAGMENT_LIGHTS_SGIX = $8404;
7064   GL_MAX_ACTIVE_LIGHTS_SGIX = $8405;
7065   GL_CURRENT_RASTER_NORMAL_SGIX = $8406;
7066   GL_LIGHT_ENV_MODE_SGIX = $8407;
7067   GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = $8408;
7068   GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = $8409;
7069   GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = $840A;
7070   GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = $840B;
7071   GL_FRAGMENT_LIGHT0_SGIX = $840C;
7072   GL_FRAGMENT_LIGHT1_SGIX = $840D;
7073   GL_FRAGMENT_LIGHT2_SGIX = $840E;
7074   GL_FRAGMENT_LIGHT3_SGIX = $840F;
7075   GL_FRAGMENT_LIGHT4_SGIX = $8410;
7076   GL_FRAGMENT_LIGHT5_SGIX = $8411;
7077   GL_FRAGMENT_LIGHT6_SGIX = $8412;
7078   GL_FRAGMENT_LIGHT7_SGIX = $8413;
7079
7080   // GL_SGIX_framezoom
7081   GL_FRAMEZOOM_SGIX = $818B;
7082   GL_FRAMEZOOM_FACTOR_SGIX = $818C;
7083   GL_MAX_FRAMEZOOM_FACTOR_SGIX = $818D;
7084
7085   // GL_SGIX_impact_pixel_texture
7086   GL_PIXEL_TEX_GEN_Q_CEILING_SGIX = $8184;
7087   GL_PIXEL_TEX_GEN_Q_ROUND_SGIX = $8185;
7088   GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX = $8186;
7089   GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = $8187;
7090   GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = $8188;
7091   GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX = $8189;
7092   GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX = $818A;
7093
7094   // GL_SGIX_instruments
7095   GL_INSTRUMENT_BUFFER_POINTER_SGIX = $8180;
7096   GL_INSTRUMENT_MEASUREMENTS_SGIX = $8181;
7097
7098   // GL_SGIX_interlace
7099   GL_INTERLACE_SGIX = $8094;
7100
7101   // GL_SGIX_ir_instrument1
7102   GL_IR_INSTRUMENT1_SGIX = $817F;
7103
7104   // GL_SGIX_list_priority
7105   GL_LIST_PRIORITY_SGIX = $8182;
7106
7107   // GL_SGIX_pixel_texture
7108   GL_PIXEL_TEX_GEN_SGIX = $8139;
7109   GL_PIXEL_TEX_GEN_MODE_SGIX = $832B;
7110
7111   // GL_SGIX_pixel_tiles
7112   GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = $813E;
7113   GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = $813F;
7114   GL_PIXEL_TILE_WIDTH_SGIX = $8140;
7115   GL_PIXEL_TILE_HEIGHT_SGIX = $8141;
7116   GL_PIXEL_TILE_GRID_WIDTH_SGIX = $8142;
7117   GL_PIXEL_TILE_GRID_HEIGHT_SGIX = $8143;
7118   GL_PIXEL_TILE_GRID_DEPTH_SGIX = $8144;
7119   GL_PIXEL_TILE_CACHE_SIZE_SGIX = $8145;
7120
7121   // GL_SGIX_polynomial_ffd
7122   GL_GEOMETRY_DEFORMATION_SGIX = $8194;
7123   GL_TEXTURE_DEFORMATION_SGIX = $8195;
7124   GL_DEFORMATIONS_MASK_SGIX = $8196;
7125   GL_MAX_DEFORMATION_ORDER_SGIX = $8197;
7126
7127   // GL_SGIX_reference_plane
7128   GL_REFERENCE_PLANE_SGIX = $817D;
7129   GL_REFERENCE_PLANE_EQUATION_SGIX = $817E;
7130
7131   // GL_SGIX_resample
7132   GL_PACK_RESAMPLE_SGIX = $842C;
7133   GL_UNPACK_RESAMPLE_SGIX = $842D;
7134   GL_RESAMPLE_REPLICATE_SGIX = $842E;
7135   GL_RESAMPLE_ZERO_FILL_SGIX = $842F;
7136   GL_RESAMPLE_DECIMATE_SGIX = $8430;
7137
7138   // GL_SGIX_scalebias_hint
7139   GL_SCALEBIAS_HINT_SGIX = $8322;
7140
7141   // GL_SGIX_shadow
7142   GL_TEXTURE_COMPARE_SGIX = $819A;
7143   GL_TEXTURE_COMPARE_OPERATOR_SGIX = $819B;
7144   GL_TEXTURE_LEQUAL_R_SGIX = $819C;
7145   GL_TEXTURE_GEQUAL_R_SGIX = $819D;
7146
7147   // GL_SGIX_shadow_ambient
7148   GL_SHADOW_AMBIENT_SGIX = $80BF;
7149
7150   // GL_SGIX_sprite
7151   GL_SPRITE_SGIX = $8148;
7152   GL_SPRITE_MODE_SGIX = $8149;
7153   GL_SPRITE_AXIS_SGIX = $814A;
7154   GL_SPRITE_TRANSLATION_SGIX = $814B;
7155   GL_SPRITE_AXIAL_SGIX = $814C;
7156   GL_SPRITE_OBJECT_ALIGNED_SGIX = $814D;
7157   GL_SPRITE_EYE_ALIGNED_SGIX = $814E;
7158
7159   // GL_SGIX_subsample
7160   GL_PACK_SUBSAMPLE_RATE_SGIX = $85A0;
7161   GL_UNPACK_SUBSAMPLE_RATE_SGIX = $85A1;
7162   GL_PIXEL_SUBSAMPLE_4444_SGIX = $85A2;
7163   GL_PIXEL_SUBSAMPLE_2424_SGIX = $85A3;
7164   GL_PIXEL_SUBSAMPLE_4242_SGIX = $85A4;
7165
7166   // GL_SGIX_texture_add_env
7167   GL_TEXTURE_ENV_BIAS_SGIX = $80BE;
7168
7169   // GL_SGIX_texture_coordinate_clamp
7170   GL_TEXTURE_MAX_CLAMP_S_SGIX = $8369;
7171   GL_TEXTURE_MAX_CLAMP_T_SGIX = $836A;
7172   GL_TEXTURE_MAX_CLAMP_R_SGIX = $836B;
7173
7174   // GL_SGIX_texture_lod_bias
7175   GL_TEXTURE_LOD_BIAS_S_SGIX = $818E;
7176   GL_TEXTURE_LOD_BIAS_T_SGIX = $818F;
7177   GL_TEXTURE_LOD_BIAS_R_SGIX = $8190;
7178
7179   // GL_SGIX_texture_multi_buffer
7180   GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = $812E;
7181
7182   // GL_SGIX_texture_scale_bias
7183   GL_POST_TEXTURE_FILTER_BIAS_SGIX = $8179;
7184   GL_POST_TEXTURE_FILTER_SCALE_SGIX = $817A;
7185   GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = $817B;
7186   GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = $817C;
7187
7188   // GL_SGIX_vertex_preclip
7189   GL_VERTEX_PRECLIP_SGIX = $83EE;
7190   GL_VERTEX_PRECLIP_HINT_SGIX = $83EF;
7191
7192   // GL_SGIX_ycrcb
7193   GL_YCRCB_422_SGIX = $81BB;
7194   GL_YCRCB_444_SGIX = $81BC;
7195
7196   // GL_SGIX_ycrcba
7197   GL_YCRCB_SGIX = $8318;
7198   GL_YCRCBA_SGIX = $8319;
7199
7200   // GL_SGI_color_matrix
7201   GL_COLOR_MATRIX_SGI = $80B1;
7202   GL_COLOR_MATRIX_STACK_DEPTH_SGI = $80B2;
7203   GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = $80B3;
7204   GL_POST_COLOR_MATRIX_RED_SCALE_SGI = $80B4;
7205   GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = $80B5;
7206   GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = $80B6;
7207   GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = $80B7;
7208   GL_POST_COLOR_MATRIX_RED_BIAS_SGI = $80B8;
7209   GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = $80B9;
7210   GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = $80BA;
7211   GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = $80BB;
7212
7213   // GL_SGI_color_table
7214   GL_COLOR_TABLE_SGI = $80D0;
7215   GL_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D1;
7216   GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D2;
7217   GL_PROXY_COLOR_TABLE_SGI = $80D3;
7218   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D4;
7219   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D5;
7220   GL_COLOR_TABLE_SCALE_SGI = $80D6;
7221   GL_COLOR_TABLE_BIAS_SGI = $80D7;
7222   GL_COLOR_TABLE_FORMAT_SGI = $80D8;
7223   GL_COLOR_TABLE_WIDTH_SGI = $80D9;
7224   GL_COLOR_TABLE_RED_SIZE_SGI = $80DA;
7225   GL_COLOR_TABLE_GREEN_SIZE_SGI = $80DB;
7226   GL_COLOR_TABLE_BLUE_SIZE_SGI = $80DC;
7227   GL_COLOR_TABLE_ALPHA_SIZE_SGI = $80DD;
7228   GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = $80DE;
7229   GL_COLOR_TABLE_INTENSITY_SIZE_SGI = $80DF;
7230
7231   // GL_SGI_depth_pass_instrument
7232   GL_DEPTH_PASS_INSTRUMENT_SGIX = $8310;
7233   GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = $8311;
7234   GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX = $8312;
7235
7236   // GL_SGI_texture_color_table
7237   GL_TEXTURE_COLOR_TABLE_SGI = $80BC;
7238   GL_PROXY_TEXTURE_COLOR_TABLE_SGI = $80BD;
7239
7240   // GL_SUNX_constant_data
7241   GL_UNPACK_CONSTANT_DATA_SUNX = $81D5;
7242   GL_TEXTURE_CONSTANT_DATA_SUNX = $81D6;
7243
7244   // GL_SUN_convolution_border_modes
7245   GL_WRAP_BORDER_SUN = $81D4;
7246
7247   // GL_SUN_global_alpha
7248   GL_GLOBAL_ALPHA_SUN = $81D9;
7249   GL_GLOBAL_ALPHA_FACTOR_SUN = $81DA;
7250
7251   // GL_SUN_mesh_array
7252   GL_QUAD_MESH_SUN = $8614;
7253   GL_TRIANGLE_MESH_SUN = $8615;
7254
7255   // GL_SUN_slice_accum
7256   GL_SLICE_ACCUM_SUN = $85CC;
7257
7258   // GL_SUN_triangle_list
7259   GL_RESTART_SUN = $0001;
7260   GL_REPLACE_MIDDLE_SUN = $0002;
7261   GL_REPLACE_OLDEST_SUN = $0003;
7262   GL_TRIANGLE_LIST_SUN = $81D7;
7263   GL_REPLACEMENT_CODE_SUN = $81D8;
7264   GL_REPLACEMENT_CODE_ARRAY_SUN = $85C0;
7265   GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = $85C1;
7266   GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = $85C2;
7267   GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = $85C3;
7268   GL_R1UI_V3F_SUN = $85C4;
7269   GL_R1UI_C4UB_V3F_SUN = $85C5;
7270   GL_R1UI_C3F_V3F_SUN = $85C6;
7271   GL_R1UI_N3F_V3F_SUN = $85C7;
7272   GL_R1UI_C4F_N3F_V3F_SUN = $85C8;
7273   GL_R1UI_T2F_V3F_SUN = $85C9;
7274   GL_R1UI_T2F_N3F_V3F_SUN = $85CA;
7275   GL_R1UI_T2F_C4F_N3F_V3F_SUN = $85CB;
7276
7277   // GL_WIN_phong_shading
7278   GL_PHONG_WIN = $80EA;
7279   GL_PHONG_HINT_WIN = $80EB;
7280
7281   // GL_WIN_specular_fog
7282   GL_FOG_SPECULAR_TEXTURE_WIN = $80EC;
7283
7284    // GL_ARB_vertex_shader
7285   GL_VERTEX_SHADER_ARB = $8B31;
7286   GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = $8B4A;
7287   GL_MAX_VARYING_FLOATS_ARB = $8B4B;
7288   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
7289   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = $8B4D;
7290   GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = $8B89;
7291   GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = $8B8A;
7292
7293   // GL_ARB_fragment_shader
7294   GL_FRAGMENT_SHADER_ARB = $8B30;
7295   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = $8B49; // 1.4
7296   GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = $8B8B; // 1.4
7297
7298   // GL_ARB_occlusion_query
7299   GL_SAMPLES_PASSED_ARB = $8914;
7300   GL_QUERY_COUNTER_BITS_ARB = $8864;
7301   GL_CURRENT_QUERY_ARB = $8865;
7302   GL_QUERY_RESULT_ARB = $8866;
7303   GL_QUERY_RESULT_AVAILABLE_ARB = $8867;
7304
7305   // GL_ARB_point_sprite
7306   GL_POINT_SPRITE_ARB = $8861;
7307   GL_COORD_REPLACE_ARB = $8862;
7308
7309   // GL_ARB_shading_language_100
7310   GL_SHADING_LANGUAGE_VERSION_ARB = $8B8C; // 1.4
7311
7312   // GL_ARB_shader_objects
7313   GL_PROGRAM_OBJECT_ARB = $8B40;
7314
7315   GL_OBJECT_TYPE_ARB = $8B4E;
7316   GL_OBJECT_SUBTYPE_ARB = $8B4F;
7317   GL_OBJECT_DELETE_STATUS_ARB = $8B80;
7318   GL_OBJECT_COMPILE_STATUS_ARB = $8B81;
7319   GL_OBJECT_LINK_STATUS_ARB = $8B82;
7320   GL_OBJECT_VALIDATE_STATUS_ARB = $8B83;
7321   GL_OBJECT_INFO_LOG_LENGTH_ARB = $8B84;
7322   GL_OBJECT_ATTACHED_OBJECTS_ARB = $8B85;
7323   GL_OBJECT_ACTIVE_UNIFORMS_ARB = $8B86;
7324   GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = $8B87;
7325   GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = $8B88;
7326
7327   GL_SHADER_OBJECT_ARB = $8B48;
7328
7329   GL_FLOAT_VEC2_ARB = $8B50;
7330   GL_FLOAT_VEC3_ARB = $8B51;
7331   GL_FLOAT_VEC4_ARB = $8B52;
7332   GL_INT_VEC2_ARB = $8B53;
7333   GL_INT_VEC3_ARB = $8B54;
7334   GL_INT_VEC4_ARB = $8B55;
7335   GL_BOOL_ARB = $8B56;
7336   GL_BOOL_VEC2_ARB = $8B57;
7337   GL_BOOL_VEC3_ARB = $8B58;
7338   GL_BOOL_VEC4_ARB = $8B59;
7339   GL_FLOAT_MAT2_ARB = $8B5A;
7340   GL_FLOAT_MAT3_ARB = $8B5B;
7341   GL_FLOAT_MAT4_ARB = $8B5C;
7342   GL_SAMPLER_1D_ARB = $8B5D;
7343   GL_SAMPLER_2D_ARB = $8B5E;
7344   GL_SAMPLER_3D_ARB = $8B5F;
7345   GL_SAMPLER_CUBE_ARB = $8B60;
7346   GL_SAMPLER_1D_SHADOW_ARB = $8B61;
7347   GL_SAMPLER_2D_SHADOW_ARB = $8B62;
7348   GL_SAMPLER_2D_RECT_ARB = $8B63;
7349   GL_SAMPLER_2D_RECT_SHADOW_ARB = $8B64;
7350
7351   // WGL_3DFX_multisample
7352   WGL_SAMPLE_BUFFERS_3DFX = $2060;
7353   WGL_SAMPLES_3DFX = $2061;
7354
7355   // WGL_ARB_buffer_region
7356   WGL_FRONT_COLOR_BUFFER_BIT_ARB = $00000001;
7357   WGL_BACK_COLOR_BUFFER_BIT_ARB = $00000002;
7358   WGL_DEPTH_BUFFER_BIT_ARB = $00000004;
7359   WGL_STENCIL_BUFFER_BIT_ARB = $00000008;
7360
7361   // WGL_ARB_make_current_read
7362   ERROR_INVALID_PIXEL_TYPE_ARB = $2043;
7363   ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB = $2054;
7364
7365   // WGL_ARB_multisample
7366   WGL_SAMPLE_BUFFERS_ARB = $2041;
7367   WGL_SAMPLES_ARB = $2042;
7368
7369   // WGL_ARB_pbuffer
7370   WGL_DRAW_TO_PBUFFER_ARB = $202D;
7371   WGL_MAX_PBUFFER_PIXELS_ARB = $202E;
7372   WGL_MAX_PBUFFER_WIDTH_ARB = $202F;
7373   WGL_MAX_PBUFFER_HEIGHT_ARB = $2030;
7374   WGL_PBUFFER_LARGEST_ARB = $2033;
7375   WGL_PBUFFER_WIDTH_ARB = $2034;
7376   WGL_PBUFFER_HEIGHT_ARB = $2035;
7377   WGL_PBUFFER_LOST_ARB = $2036;
7378
7379   // WGL_ARB_pixel_format
7380   WGL_NUMBER_PIXEL_FORMATS_ARB = $2000;
7381   WGL_DRAW_TO_WINDOW_ARB = $2001;
7382   WGL_DRAW_TO_BITMAP_ARB = $2002;
7383   WGL_ACCELERATION_ARB = $2003;
7384   WGL_NEED_PALETTE_ARB = $2004;
7385   WGL_NEED_SYSTEM_PALETTE_ARB = $2005;
7386   WGL_SWAP_LAYER_BUFFERS_ARB = $2006;
7387   WGL_SWAP_METHOD_ARB = $2007;
7388   WGL_NUMBER_OVERLAYS_ARB = $2008;
7389   WGL_NUMBER_UNDERLAYS_ARB = $2009;
7390   WGL_TRANSPARENT_ARB = $200A;
7391   WGL_TRANSPARENT_RED_VALUE_ARB = $2037;
7392   WGL_TRANSPARENT_GREEN_VALUE_ARB = $2038;
7393   WGL_TRANSPARENT_BLUE_VALUE_ARB = $2039;
7394   WGL_TRANSPARENT_ALPHA_VALUE_ARB = $203A;
7395   WGL_TRANSPARENT_INDEX_VALUE_ARB = $203B;
7396   WGL_SHARE_DEPTH_ARB = $200C;
7397   WGL_SHARE_STENCIL_ARB = $200D;
7398   WGL_SHARE_ACCUM_ARB = $200E;
7399   WGL_SUPPORT_GDI_ARB = $200F;
7400   WGL_SUPPORT_OPENGL_ARB = $2010;
7401   WGL_DOUBLE_BUFFER_ARB = $2011;
7402   WGL_STEREO_ARB = $2012;
7403   WGL_PIXEL_TYPE_ARB = $2013;
7404   WGL_COLOR_BITS_ARB = $2014;
7405   WGL_RED_BITS_ARB = $2015;
7406   WGL_RED_SHIFT_ARB = $2016;
7407   WGL_GREEN_BITS_ARB = $2017;
7408   WGL_GREEN_SHIFT_ARB = $2018;
7409   WGL_BLUE_BITS_ARB = $2019;
7410   WGL_BLUE_SHIFT_ARB = $201A;
7411   WGL_ALPHA_BITS_ARB = $201B;
7412   WGL_ALPHA_SHIFT_ARB = $201C;
7413   WGL_ACCUM_BITS_ARB = $201D;
7414   WGL_ACCUM_RED_BITS_ARB = $201E;
7415   WGL_ACCUM_GREEN_BITS_ARB = $201F;
7416   WGL_ACCUM_BLUE_BITS_ARB = $2020;
7417   WGL_ACCUM_ALPHA_BITS_ARB = $2021;
7418   WGL_DEPTH_BITS_ARB = $2022;
7419   WGL_STENCIL_BITS_ARB = $2023;
7420   WGL_AUX_BUFFERS_ARB = $2024;
7421   WGL_NO_ACCELERATION_ARB = $2025;
7422   WGL_GENERIC_ACCELERATION_ARB = $2026;
7423   WGL_FULL_ACCELERATION_ARB = $2027;
7424   WGL_SWAP_EXCHANGE_ARB = $2028;
7425   WGL_SWAP_COPY_ARB = $2029;
7426   WGL_SWAP_UNDEFINED_ARB = $202A;
7427   WGL_TYPE_RGBA_ARB = $202B;
7428   WGL_TYPE_COLORINDEX_ARB = $202C;
7429
7430   // WGL_ARB_pixel_format_float
7431   WGL_RGBA_FLOAT_MODE_ARB = $8820;
7432   WGL_CLAMP_VERTEX_COLOR_ARB = $891A;
7433   WGL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
7434   WGL_CLAMP_READ_COLOR_ARB = $891C;
7435   WGL_FIXED_ONLY_ARB = $891D;
7436
7437   // WGL_ARB_render_texture
7438   WGL_BIND_TO_TEXTURE_RGB_ARB = $2070;
7439   WGL_BIND_TO_TEXTURE_RGBA_ARB = $2071;
7440   WGL_TEXTURE_FORMAT_ARB = $2072;
7441   WGL_TEXTURE_TARGET_ARB = $2073;
7442   WGL_MIPMAP_TEXTURE_ARB = $2074;
7443   WGL_TEXTURE_RGB_ARB = $2075;
7444   WGL_TEXTURE_RGBA_ARB = $2076;
7445   WGL_NO_TEXTURE_ARB = $2077;
7446   WGL_TEXTURE_CUBE_MAP_ARB = $2078;
7447   WGL_TEXTURE_1D_ARB = $2079;
7448   WGL_TEXTURE_2D_ARB = $207A;
7449   WGL_MIPMAP_LEVEL_ARB = $207B;
7450   WGL_CUBE_MAP_FACE_ARB = $207C;
7451   WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $207D;
7452   WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $207E;
7453   WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $207F;
7454   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $2080;
7455   WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $2081;
7456   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $2082;
7457   WGL_FRONT_LEFT_ARB = $2083;
7458   WGL_FRONT_RIGHT_ARB = $2084;
7459   WGL_BACK_LEFT_ARB = $2085;
7460   WGL_BACK_RIGHT_ARB = $2086;
7461   WGL_AUX0_ARB = $2087;
7462   WGL_AUX1_ARB = $2088;
7463   WGL_AUX2_ARB = $2089;
7464   WGL_AUX3_ARB = $208A;
7465   WGL_AUX4_ARB = $208B;
7466   WGL_AUX5_ARB = $208C;
7467   WGL_AUX6_ARB = $208D;
7468   WGL_AUX7_ARB = $208E;
7469   WGL_AUX8_ARB = $208F;
7470   WGL_AUX9_ARB = $2090;
7471
7472   // WGL_ARB_create_context
7473   WGL_CONTEXT_DEBUG_BIT_ARB = $00000001;
7474   WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7475   WGL_CONTEXT_MAJOR_VERSION_ARB = $2091;
7476   WGL_CONTEXT_MINOR_VERSION_ARB = $2092;
7477   WGL_CONTEXT_LAYER_PLANE_ARB = $2093;
7478   WGL_CONTEXT_FLAGS_ARB = $2094;
7479   ERROR_INVALID_VERSION_ARB = $2095;
7480
7481   // WGL_ARB_create_context_profile
7482   WGL_CONTEXT_PROFILE_MASK_ARB = $9126;
7483   WGL_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7484   WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7485   ERROR_INVALID_PROFILE_ARB = $2096;
7486
7487   // WGL_ARB_framebuffer_sRGB
7488   WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20A9;
7489
7490   // WGL_ARB_create_context_robustness
7491   WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7492   WGL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7493   WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7494   WGL_NO_RESET_NOTIFICATION_ARB = $8261;
7495
7496   // WGL_ATI_pixel_format_float
7497   WGL_TYPE_RGBA_FLOAT_ATI = $21A0;
7498   GL_TYPE_RGBA_FLOAT_ATI = $8820;
7499   GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = $8835;
7500
7501   // WGL_AMD_gpu_association
7502   WGL_GPU_VENDOR_AMD = $1F00;
7503   WGL_GPU_RENDERER_STRING_AMD = $1F01;
7504   WGL_GPU_OPENGL_VERSION_STRING_AMD = $1F02;
7505   WGL_GPU_FASTEST_TARGET_GPUS_AMD = $21A2;
7506   WGL_GPU_RAM_AMD = $21A3;
7507   WGL_GPU_CLOCK_AMD = $21A4;
7508   WGL_GPU_NUM_PIPES_AMD = $21A5;
7509   WGL_GPU_NUM_SIMD_AMD = $21A6;
7510   WGL_GPU_NUM_RB_AMD = $21A7;
7511   WGL_GPU_NUM_SPI_AMD = $21A8;
7512
7513   // WGL_EXT_depth_float
7514   WGL_DEPTH_FLOAT_EXT = $2040;
7515
7516   // WGL_EXT_make_current_read
7517   ERROR_INVALID_PIXEL_TYPE_EXT = $2043;
7518
7519   // WGL_EXT_multisample
7520   WGL_SAMPLE_BUFFERS_EXT = $2041;
7521   WGL_SAMPLES_EXT = $2042;
7522
7523   // WGL_EXT_pbuffer
7524   WGL_DRAW_TO_PBUFFER_EXT = $202D;
7525   WGL_MAX_PBUFFER_PIXELS_EXT = $202E;
7526   WGL_MAX_PBUFFER_WIDTH_EXT = $202F;
7527   WGL_MAX_PBUFFER_HEIGHT_EXT = $2030;
7528   WGL_OPTIMAL_PBUFFER_WIDTH_EXT = $2031;
7529   WGL_OPTIMAL_PBUFFER_HEIGHT_EXT = $2032;
7530   WGL_PBUFFER_LARGEST_EXT = $2033;
7531   WGL_PBUFFER_WIDTH_EXT = $2034;
7532   WGL_PBUFFER_HEIGHT_EXT = $2035;
7533
7534   // WGL_EXT_pixel_format
7535   WGL_NUMBER_PIXEL_FORMATS_EXT = $2000;
7536   WGL_DRAW_TO_WINDOW_EXT = $2001;
7537   WGL_DRAW_TO_BITMAP_EXT = $2002;
7538   WGL_ACCELERATION_EXT = $2003;
7539   WGL_NEED_PALETTE_EXT = $2004;
7540   WGL_NEED_SYSTEM_PALETTE_EXT = $2005;
7541   WGL_SWAP_LAYER_BUFFERS_EXT = $2006;
7542   WGL_SWAP_METHOD_EXT = $2007;
7543   WGL_NUMBER_OVERLAYS_EXT = $2008;
7544   WGL_NUMBER_UNDERLAYS_EXT = $2009;
7545   WGL_TRANSPARENT_EXT = $200A;
7546   WGL_TRANSPARENT_VALUE_EXT = $200B;
7547   WGL_SHARE_DEPTH_EXT = $200C;
7548   WGL_SHARE_STENCIL_EXT = $200D;
7549   WGL_SHARE_ACCUM_EXT = $200E;
7550   WGL_SUPPORT_GDI_EXT = $200F;
7551   WGL_SUPPORT_OPENGL_EXT = $2010;
7552   WGL_DOUBLE_BUFFER_EXT = $2011;
7553   WGL_STEREO_EXT = $2012;
7554   WGL_PIXEL_TYPE_EXT = $2013;
7555   WGL_COLOR_BITS_EXT = $2014;
7556   WGL_RED_BITS_EXT = $2015;
7557   WGL_RED_SHIFT_EXT = $2016;
7558   WGL_GREEN_BITS_EXT = $2017;
7559   WGL_GREEN_SHIFT_EXT = $2018;
7560   WGL_BLUE_BITS_EXT = $2019;
7561   WGL_BLUE_SHIFT_EXT = $201A;
7562   WGL_ALPHA_BITS_EXT = $201B;
7563   WGL_ALPHA_SHIFT_EXT = $201C;
7564   WGL_ACCUM_BITS_EXT = $201D;
7565   WGL_ACCUM_RED_BITS_EXT = $201E;
7566   WGL_ACCUM_GREEN_BITS_EXT = $201F;
7567   WGL_ACCUM_BLUE_BITS_EXT = $2020;
7568   WGL_ACCUM_ALPHA_BITS_EXT = $2021;
7569   WGL_DEPTH_BITS_EXT = $2022;
7570   WGL_STENCIL_BITS_EXT = $2023;
7571   WGL_AUX_BUFFERS_EXT = $2024;
7572   WGL_NO_ACCELERATION_EXT = $2025;
7573   WGL_GENERIC_ACCELERATION_EXT = $2026;
7574   WGL_FULL_ACCELERATION_EXT = $2027;
7575   WGL_SWAP_EXCHANGE_EXT = $2028;
7576   WGL_SWAP_COPY_EXT = $2029;
7577   WGL_SWAP_UNDEFINED_EXT = $202A;
7578   WGL_TYPE_RGBA_EXT = $202B;
7579   WGL_TYPE_COLORINDEX_EXT = $202C;
7580
7581   // WGL_I3D_digital_video_control
7582   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D = $2050;
7583   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D = $2051;
7584   WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D = $2052;
7585   WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D = $2053;
7586
7587   // WGL_I3D_gamma
7588   WGL_GAMMA_TABLE_SIZE_I3D = $204E;
7589   WGL_GAMMA_EXCLUDE_DESKTOP_I3D = $204F;
7590
7591   // WGL_I3D_genlock
7592   WGL_GENLOCK_SOURCE_MULTIVIEW_I3D = $2044;
7593   WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D = $2045;
7594   WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D = $2046;
7595   WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D = $2047;
7596   WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D = $2048;
7597   WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D = $2049;
7598   WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D = $204A;
7599   WGL_GENLOCK_SOURCE_EDGE_RISING_I3D = $204B;
7600   WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D = $204C;
7601
7602   // WGL_I3D_image_buffer
7603   WGL_IMAGE_BUFFER_MIN_ACCESS_I3D = $00000001;
7604   WGL_IMAGE_BUFFER_LOCK_I3D = $00000002;
7605
7606   // WGL_NV_float_buffer
7607   WGL_FLOAT_COMPONENTS_NV = $20B0;
7608   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV = $20B1;
7609   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV = $20B2;
7610   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV = $20B3;
7611   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV = $20B4;
7612   WGL_TEXTURE_FLOAT_R_NV = $20B5;
7613   WGL_TEXTURE_FLOAT_RG_NV = $20B6;
7614   WGL_TEXTURE_FLOAT_RGB_NV = $20B7;
7615   WGL_TEXTURE_FLOAT_RGBA_NV = $20B8;
7616
7617   // WGL_NV_render_depth_texture
7618   WGL_BIND_TO_TEXTURE_DEPTH_NV = $20A3;
7619   WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV = $20A4;
7620   WGL_DEPTH_TEXTURE_FORMAT_NV = $20A5;
7621   WGL_TEXTURE_DEPTH_COMPONENT_NV = $20A6;
7622   WGL_DEPTH_COMPONENT_NV = $20A7;
7623
7624   // WGL_NV_render_texture_rectangle
7625   WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV = $20A0;
7626   WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV = $20A1;
7627   WGL_TEXTURE_RECTANGLE_NV = $20A2;
7628
7629   // WGL_NV_present_video
7630   WGL_NUM_VIDEO_SLOTS_NV = $20F0;
7631   
7632   // WGL_NV_video_output
7633   WGL_BIND_TO_VIDEO_RGB_NV = $20C0;
7634   WGL_BIND_TO_VIDEO_RGBA_NV = $20C1;
7635   WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV = $20C2;
7636   WGL_VIDEO_OUT_COLOR_NV = $20C3;
7637   WGL_VIDEO_OUT_ALPHA_NV = $20C4;
7638   WGL_VIDEO_OUT_DEPTH_NV = $20C5;
7639   WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV = $20C6;
7640   WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV = $20C7;
7641   WGL_VIDEO_OUT_FRAME = $20C8;
7642   WGL_VIDEO_OUT_FIELD_1 = $20C9;
7643   WGL_VIDEO_OUT_FIELD_2 = $20CA;
7644   WGL_VIDEO_OUT_STACKED_FIELDS_1_2 = $20CB;
7645   WGL_VIDEO_OUT_STACKED_FIELDS_2_1 = $20CC;
7646
7647   // WGL_NV_gpu_affinity
7648   WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV = $20D0;
7649   WGL_ERROR_MISSING_AFFINITY_MASK_NV = $20D1;
7650
7651   // WGL_NV_video_capture
7652   WGL_UNIQUE_ID_NV = $20CE;
7653   WGL_NUM_VIDEO_CAPTURE_SLOTS_NV = $20CF;
7654   
7655   // WGL_NV_multisample_coverage
7656   WGL_COVERAGE_SAMPLES_NV = $2042;
7657   WGL_COLOR_SAMPLES_NV = $20B9;
7658
7659   // WGL_EXT_create_context_es2_profile
7660   WGL_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7661
7662   // WGL_NV_DX_interop
7663   WGL_ACCESS_READ_ONLY_NV        = $00000000;
7664   WGL_ACCESS_READ_WRITE_NV       = $00000001;
7665   WGL_ACCESS_WRITE_DISCARD_NV    = $00000002;
7666
7667   // WIN_draw_range_elements
7668   GL_MAX_ELEMENTS_VERTICES_WIN = $80E8;
7669   GL_MAX_ELEMENTS_INDICES_WIN = $80E9;
7670
7671   // GLX 1.1 and later:
7672   GLX_VENDOR = 1;
7673   GLX_VERSION = 2;
7674   GLX_EXTENSIONS = 3;
7675
7676   GLX_USE_GL = 1;
7677   GLX_BUFFER_SIZE = 2;
7678   GLX_LEVEL = 3;
7679   GLX_RGBA = 4;
7680   GLX_DOUBLEBUFFER = 5;
7681   GLX_STEREO = 6;
7682   GLX_AUX_BUFFERS = 7;
7683   GLX_RED_SIZE = 8;
7684   GLX_GREEN_SIZE = 9;
7685   GLX_BLUE_SIZE = 10;
7686   GLX_ALPHA_SIZE = 11;
7687   GLX_DEPTH_SIZE = 12;
7688   GLX_STENCIL_SIZE = 13;
7689   GLX_ACCUM_RED_SIZE = 14;
7690   GLX_ACCUM_GREEN_SIZE = 15;
7691   GLX_ACCUM_BLUE_SIZE = 16;
7692   GLX_ACCUM_ALPHA_SIZE = 17;
7693
7694   // GLX_VERSION_1_3
7695   GLX_WINDOW_BIT = $00000001;
7696   GLX_PIXMAP_BIT = $00000002;
7697   GLX_PBUFFER_BIT = $00000004;
7698   GLX_RGBA_BIT = $00000001;
7699   GLX_COLOR_INDEX_BIT = $00000002;
7700   GLX_PBUFFER_CLOBBER_MASK = $08000000;
7701   GLX_FRONT_LEFT_BUFFER_BIT = $00000001;
7702   GLX_FRONT_RIGHT_BUFFER_BIT = $00000002;
7703   GLX_BACK_LEFT_BUFFER_BIT = $00000004;
7704   GLX_BACK_RIGHT_BUFFER_BIT = $00000008;
7705   GLX_AUX_BUFFERS_BIT = $00000010;
7706   GLX_DEPTH_BUFFER_BIT = $00000020;
7707   GLX_STENCIL_BUFFER_BIT = $00000040;
7708   GLX_ACCUM_BUFFER_BIT = $00000080;
7709   GLX_CONFIG_CAVEAT = $20;
7710   GLX_X_VISUAL_TYPE = $22;
7711   GLX_TRANSPARENT_TYPE = $23;
7712   GLX_TRANSPARENT_INDEX_VALUE = $24;
7713   GLX_TRANSPARENT_RED_VALUE = $25;
7714   GLX_TRANSPARENT_GREEN_VALUE = $26;
7715   GLX_TRANSPARENT_BLUE_VALUE = $27;
7716   GLX_TRANSPARENT_ALPHA_VALUE = $28;
7717   GLX_DONT_CARE = $FFFFFFFF;
7718   GLX_NONE = $8000;
7719   GLX_SLOW_CONFIG = $8001;
7720   GLX_TRUE_COLOR = $8002;
7721   GLX_DIRECT_COLOR = $8003;
7722   GLX_PSEUDO_COLOR = $8004;
7723   GLX_STATIC_COLOR = $8005;
7724   GLX_GRAY_SCALE = $8006;
7725   GLX_STATIC_GRAY = $8007;
7726   GLX_TRANSPARENT_RGB = $8008;
7727   GLX_TRANSPARENT_INDEX = $8009;
7728   GLX_VISUAL_ID = $800B;
7729   GLX_SCREEN = $800C;
7730   GLX_NON_CONFORMANT_CONFIG = $800D;
7731   GLX_DRAWABLE_TYPE = $8010;
7732   GLX_RENDER_TYPE = $8011;
7733   GLX_X_RENDERABLE = $8012;
7734   GLX_FBCONFIG_ID = $8013;
7735   GLX_RGBA_TYPE = $8014;
7736   GLX_COLOR_INDEX_TYPE = $8015;
7737   GLX_MAX_PBUFFER_WIDTH = $8016;
7738   GLX_MAX_PBUFFER_HEIGHT = $8017;
7739   GLX_MAX_PBUFFER_PIXELS = $8018;
7740   GLX_PRESERVED_CONTENTS = $801B;
7741   GLX_LARGEST_PBUFFER = $801C;
7742   GLX_WIDTH = $801D;
7743   GLX_HEIGHT = $801E;
7744   GLX_EVENT_MASK = $801F;
7745   GLX_DAMAGED = $8020;
7746   GLX_SAVED = $8021;
7747   GLX_WINDOW = $8022;
7748   GLX_PBUFFER = $8023;
7749   GLX_PBUFFER_HEIGHT = $8040;
7750   GLX_PBUFFER_WIDTH = $8041;
7751
7752   // GLX_VERSION_1_4
7753   GLX_SAMPLE_BUFFERS = 100000;
7754   GLX_SAMPLES = 100001;
7755
7756   // GLX_ARB_multisample
7757   GLX_SAMPLE_BUFFERS_ARB = 100000;
7758   GLX_SAMPLES_ARB = 100001;
7759
7760   // GLX_ARB_fbconfig_float
7761   GLX_RGBA_FLOAT_TYPE_ARB = $20B9;
7762   GLX_RGBA_FLOAT_BIT_ARB = $00000004;
7763
7764   // GLX_ARB_create_context
7765   GLX_CONTEXT_DEBUG_BIT_ARB = $00000001;
7766   GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7767   GLX_CONTEXT_MAJOR_VERSION_ARB = $2091;
7768   GLX_CONTEXT_MINOR_VERSION_ARB = $2092;
7769   GLX_CONTEXT_FLAGS_ARB = $2094;
7770
7771   // GLX_ARB_create_context_profile
7772   GLX_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7773   GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7774   GLX_CONTEXT_PROFILE_MASK_ARB = $9126;
7775
7776   // GLX_ARB_vertex_buffer_object
7777   GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB = $2095;
7778
7779   // GLX_ARB_framebuffer_sRGB
7780   GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20B2;
7781
7782   // GLX_ARB_create_context_robustness
7783   GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7784   GLX_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7785   GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7786   GLX_NO_RESET_NOTIFICATION_ARB = $8261;
7787
7788   // GLX_EXT_visual_info
7789   GLX_X_VISUAL_TYPE_EXT = $22;
7790   GLX_TRANSPARENT_TYPE_EXT = $23;
7791   GLX_TRANSPARENT_INDEX_VALUE_EXT = $24;
7792   GLX_TRANSPARENT_RED_VALUE_EXT = $25;
7793   GLX_TRANSPARENT_GREEN_VALUE_EXT = $26;
7794   GLX_TRANSPARENT_BLUE_VALUE_EXT = $27;
7795   GLX_TRANSPARENT_ALPHA_VALUE_EXT = $28;
7796   GLX_NONE_EXT = $8000;
7797   GLX_TRUE_COLOR_EXT = $8002;
7798   GLX_DIRECT_COLOR_EXT = $8003;
7799   GLX_PSEUDO_COLOR_EXT = $8004;
7800   GLX_STATIC_COLOR_EXT = $8005;
7801   GLX_GRAY_SCALE_EXT = $8006;
7802   GLX_STATIC_GRAY_EXT = $8007;
7803   GLX_TRANSPARENT_RGB_EXT = $8008;
7804   GLX_TRANSPARENT_INDEX_EXT = $8009;
7805   
7806   // GLX_EXT_visual_rating
7807   GLX_VISUAL_CAVEAT_EXT = $20;
7808   GLX_SLOW_VISUAL_EXT = $8001;
7809   GLX_NON_CONFORMANT_VISUAL_EXT = $800D;
7810   (* reuse GLX_NONE_EXT *)
7811   
7812   // GLX_EXT_import_context
7813   GLX_SHARE_CONTEXT_EXT = $800A;
7814   GLX_VISUAL_ID_EXT = $800B;
7815   GLX_SCREEN_EXT = $800C;
7816
7817   // GLX_EXT_fbconfig_packed_float
7818 //  GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
7819 //  GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
7820
7821   // GLX_EXT_framebuffer_sRGB
7822 //  GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
7823
7824   // GLX_EXT_texture_from_pixmap
7825   GLX_TEXTURE_1D_BIT_EXT = $00000001;
7826   GLX_TEXTURE_2D_BIT_EXT = $00000002;
7827   GLX_TEXTURE_RECTANGLE_BIT_EXT = $00000004;
7828   GLX_BIND_TO_TEXTURE_RGB_EXT = $20D0;
7829   GLX_BIND_TO_TEXTURE_RGBA_EXT = $20D1;
7830   GLX_BIND_TO_MIPMAP_TEXTURE_EXT = $20D2;
7831   GLX_BIND_TO_TEXTURE_TARGETS_EXT = $20D3;
7832   GLX_Y_INVERTED_EXT = $20D4;
7833   GLX_TEXTURE_FORMAT_EXT = $20D5;
7834   GLX_TEXTURE_TARGET_EXT = $20D6;
7835   GLX_MIPMAP_TEXTURE_EXT = $20D7;
7836   GLX_TEXTURE_FORMAT_NONE_EXT = $20D8;
7837   GLX_TEXTURE_FORMAT_RGB_EXT = $20D9;
7838   GLX_TEXTURE_FORMAT_RGBA_EXT = $20DA;
7839   GLX_TEXTURE_1D_EXT = $20DB;
7840   GLX_TEXTURE_2D_EXT = $20DC;
7841   GLX_TEXTURE_RECTANGLE_EXT = $20DD;
7842   GLX_FRONT_LEFT_EXT = $20DE;
7843   GLX_FRONT_RIGHT_EXT = $20DF;
7844   GLX_BACK_LEFT_EXT = $20E0;
7845   GLX_BACK_RIGHT_EXT = $20E1;
7846   GLX_FRONT_EXT = GLX_FRONT_LEFT_EXT;
7847   GLX_BACK_EXT = GLX_BACK_LEFT_EXT;
7848   GLX_AUX0_EXT = $20E2;
7849   GLX_AUX1_EXT = $20E3;
7850   GLX_AUX2_EXT = $20E4;
7851   GLX_AUX3_EXT = $20E5;
7852   GLX_AUX4_EXT = $20E6;
7853   GLX_AUX5_EXT = $20E7;
7854   GLX_AUX6_EXT = $20E8;
7855   GLX_AUX7_EXT = $20E9;
7856   GLX_AUX8_EXT = $20EA;
7857   GLX_AUX9_EXT = $20EB;
7858
7859   // GLX_EXT_swap_control
7860   GLX_SWAP_INTERVAL_EXT = $20F1;
7861   GLX_MAX_SWAP_INTERVAL_EXT = $20F2;
7862
7863   // GLX_EXT_create_context_es2_profile
7864   GLX_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7865
7866   // GL_EXT_Late_Swaps
7867   GLX_LATE_SWAPS_TEAR_EXT         = $20F3;
7868
7869   // GLU
7870   GLU_INVALID_ENUM = 100900;
7871   GLU_INVALID_VALUE = 100901;
7872   GLU_OUT_OF_MEMORY = 100902;
7873   GLU_INCOMPATIBLE_GL_VERSION = 100903;
7874   GLU_VERSION = 100800;
7875   GLU_EXTENSIONS = 100801;
7876   GLU_TRUE = GL_TRUE;
7877   GLU_FALSE = GL_FALSE;
7878   GLU_SMOOTH = 100000;
7879   GLU_FLAT = 100001;
7880   GLU_NONE = 100002;
7881   GLU_POINT = 100010;
7882   GLU_LINE = 100011;
7883   GLU_FILL = 100012;
7884   GLU_SILHOUETTE = 100013;
7885   GLU_OUTSIDE = 100020;
7886   GLU_INSIDE = 100021;
7887   GLU_TESS_MAX_COORD = 1.0E150;
7888   GLU_TESS_WINDING_RULE = 100140;
7889   GLU_TESS_BOUNDARY_ONLY = 100141;
7890   GLU_TESS_TOLERANCE = 100142;
7891   GLU_TESS_WINDING_ODD = 100130;
7892   GLU_TESS_WINDING_NONZERO = 100131;
7893   GLU_TESS_WINDING_POSITIVE = 100132;
7894   GLU_TESS_WINDING_NEGATIVE = 100133;
7895   GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
7896   GLU_TESS_BEGIN = 100100; // TGLUTessBeginProc
7897   GLU_TESS_VERTEX = 100101; // TGLUTessVertexProc
7898   GLU_TESS_END = 100102; // TGLUTessEndProc
7899   GLU_TESS_ERROR = 100103; // TGLUTessErrorProc
7900   GLU_TESS_EDGE_FLAG = 100104; // TGLUTessEdgeFlagProc
7901   GLU_TESS_COMBINE = 100105; // TGLUTessCombineProc
7902   GLU_TESS_BEGIN_DATA = 100106; // TGLUTessBeginDataProc
7903   GLU_TESS_VERTEX_DATA = 100107; // TGLUTessVertexDataProc
7904   GLU_TESS_END_DATA = 100108; // TGLUTessEndDataProc
7905   GLU_TESS_ERROR_DATA = 100109; // TGLUTessErrorDataProc
7906   GLU_TESS_EDGE_FLAG_DATA = 100110; // TGLUTessEdgeFlagDataProc
7907   GLU_TESS_COMBINE_DATA = 100111; // TGLUTessCombineDataProc
7908   GLU_TESS_ERROR1 = 100151;
7909   GLU_TESS_ERROR2 = 100152;
7910   GLU_TESS_ERROR3 = 100153;
7911   GLU_TESS_ERROR4 = 100154;
7912   GLU_TESS_ERROR5 = 100155;
7913   GLU_TESS_ERROR6 = 100156;
7914   GLU_TESS_ERROR7 = 100157;
7915   GLU_TESS_ERROR8 = 100158;
7916   GLU_TESS_MISSING_BEGIN_POLYGON = GLU_TESS_ERROR1;
7917   GLU_TESS_MISSING_BEGIN_CONTOUR = GLU_TESS_ERROR2;
7918   GLU_TESS_MISSING_END_POLYGON = GLU_TESS_ERROR3;
7919   GLU_TESS_MISSING_END_CONTOUR = GLU_TESS_ERROR4;
7920   GLU_TESS_COORD_TOO_LARGE = GLU_TESS_ERROR5;
7921   GLU_TESS_NEED_COMBINE_CALLBACK = GLU_TESS_ERROR6;
7922   GLU_AUTO_LOAD_MATRIX = 100200;
7923   GLU_CULLING = 100201;
7924   GLU_SAMPLING_TOLERANCE = 100203;
7925   GLU_DISPLAY_MODE = 100204;
7926   GLU_PARAMETRIC_TOLERANCE = 100202;
7927   GLU_SAMPLING_METHOD = 100205;
7928   GLU_U_STEP = 100206;
7929   GLU_V_STEP = 100207;
7930   GLU_PATH_LENGTH = 100215;
7931   GLU_PARAMETRIC_ERROR = 100216;
7932   GLU_DOMAIN_DISTANCE = 100217;
7933   GLU_MAP1_TRIM_2 = 100210;
7934   GLU_MAP1_TRIM_3 = 100211;
7935   GLU_OUTLINE_POLYGON = 100240;
7936   GLU_OUTLINE_PATCH = 100241;
7937   GLU_NURBS_ERROR1 = 100251;
7938   GLU_NURBS_ERROR2 = 100252;
7939   GLU_NURBS_ERROR3 = 100253;
7940   GLU_NURBS_ERROR4 = 100254;
7941   GLU_NURBS_ERROR5 = 100255;
7942   GLU_NURBS_ERROR6 = 100256;
7943   GLU_NURBS_ERROR7 = 100257;
7944   GLU_NURBS_ERROR8 = 100258;
7945   GLU_NURBS_ERROR9 = 100259;
7946   GLU_NURBS_ERROR10 = 100260;
7947   GLU_NURBS_ERROR11 = 100261;
7948   GLU_NURBS_ERROR12 = 100262;
7949   GLU_NURBS_ERROR13 = 100263;
7950   GLU_NURBS_ERROR14 = 100264;
7951   GLU_NURBS_ERROR15 = 100265;
7952   GLU_NURBS_ERROR16 = 100266;
7953   GLU_NURBS_ERROR17 = 100267;
7954   GLU_NURBS_ERROR18 = 100268;
7955   GLU_NURBS_ERROR19 = 100269;
7956   GLU_NURBS_ERROR20 = 100270;
7957   GLU_NURBS_ERROR21 = 100271;
7958   GLU_NURBS_ERROR22 = 100272;
7959   GLU_NURBS_ERROR23 = 100273;
7960   GLU_NURBS_ERROR24 = 100274;
7961   GLU_NURBS_ERROR25 = 100275;
7962   GLU_NURBS_ERROR26 = 100276;
7963   GLU_NURBS_ERROR27 = 100277;
7964   GLU_NURBS_ERROR28 = 100278;
7965   GLU_NURBS_ERROR29 = 100279;
7966   GLU_NURBS_ERROR30 = 100280;
7967   GLU_NURBS_ERROR31 = 100281;
7968   GLU_NURBS_ERROR32 = 100282;
7969   GLU_NURBS_ERROR33 = 100283;
7970   GLU_NURBS_ERROR34 = 100284;
7971   GLU_NURBS_ERROR35 = 100285;
7972   GLU_NURBS_ERROR36 = 100286;
7973   GLU_NURBS_ERROR37 = 100287;
7974   GLU_CW = 100120;
7975   GLU_CCW = 100121;
7976   GLU_INTERIOR = 100122;
7977   GLU_EXTERIOR = 100123;
7978   GLU_UNKNOWN = 100124;
7979   GLU_BEGIN = GLU_TESS_BEGIN;
7980   GLU_VERTEX = GLU_TESS_VERTEX;
7981   GLU_END = GLU_TESS_END;
7982   GLU_ERROR = GLU_TESS_ERROR;
7983   GLU_EDGE_FLAG = GLU_TESS_EDGE_FLAG;
7984
7985 type
7986   // GL_VERSION_1_0
7987   TglCullFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7988   TglFrontFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7989   TglHint = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7990   TglLineWidth = procedure(width: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7991   TglPointSize = procedure(size: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7992   TglPolygonMode = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7993   TglScissor = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7994   TglTexParameterf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7995   TglTexParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7996   TglTexParameteri = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7997   TglTexParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7998   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}
7999   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}
8000   TglDrawBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8001   TglClear = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8002   TglClearColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8003   TglClearStencil = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8004   TglClearDepth = procedure(depth: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8005   TglStencilMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8006   TglColorMask = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8007   TglDepthMask = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8008   TglDisable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8009   TglEnable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8010   TglFinish = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8011   TglFlush = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8012   TglBlendFunc = procedure(sfactor: GLenum; dfactor: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8013   TglLogicOp = procedure(opcode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8014   TglStencilFunc = procedure(func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8015   TglStencilOp = procedure(fail: GLenum; zfail: GLenum; zpass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8016   TglDepthFunc = procedure(func: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8017   TglPixelStoref = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8018   TglPixelStorei = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8019   TglReadBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8020   TglReadPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8021   TglGetBooleanv = procedure(pname: GLenum; params: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8022   TglGetDoublev = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8023   TglGetError = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8024   TglGetFloatv = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8025   TglGetIntegerv = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8026   TglGetString = function(name: GLenum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8027   TglGetTexImage = procedure(target: GLenum; level: GLint; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8028   TglGetTexParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8029   TglGetTexParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8030   TglGetTexLevelParameterfv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8031   TglGetTexLevelParameteriv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8032   TglIsEnabled = function(cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8033   TglDepthRange = procedure(zNear: GLclampd; zFar: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8034   TglViewport = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8035
8036   // GL_VERSION_1_1
8037   TglDrawArrays = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8038   TglDrawElements = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8039   TglGetPointerv = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8040   TglPolygonOffset = procedure(factor: GLfloat; units: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8041   TglCopyTexImage1D = procedure(target: GLenum; level: GLint; internalFormat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8042   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}
8043   TglCopyTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8044   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}
8045   TglTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8046   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}
8047   TglBindTexture = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8048   TglDeleteTextures = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8049   TglGenTextures = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8050   
8051 {$ifdef DGL_DEPRECATED}
8052   TglAccum = procedure(op: GLenum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8053   TglAlphaFunc = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8054   TglAreTexturesResident = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8055   TglArrayElement = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8056   TglBegin = procedure(mode: GLenum); {$IFNDEF CLR}{$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}{$ENDIF}
8057   TglBitmap = procedure(width: GLsizei; height: GLsizei; xorig: GLfloat; yorig: GLfloat; xmove: GLfloat; ymove: GLfloat; const bitmap: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8058   TglCallList = procedure(list: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8059   TglCallLists = procedure(n: GLsizei; _type: GLenum; const lists: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8060   TglClearAccum = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8061   TglClearIndex = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8062   TglClipPlane = procedure(plane: GLenum; const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8063   TglColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8064   TglColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8065   TglColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8066   TglColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8067   TglColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8068   TglColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8069   TglColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8070   TglColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8071   TglColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8072   TglColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8073   TglColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8074   TglColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8075   TglColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8076   TglColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8077   TglColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8078   TglColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8079   TglColor4b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte; alpha: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8080   TglColor4bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8081   TglColor4d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble; alpha: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8082   TglColor4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8083   TglColor4f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8084   TglColor4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8085   TglColor4i = procedure(red: GLint; green: GLint; blue: GLint; alpha: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8086   TglColor4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8087   TglColor4s = procedure(red: GLshort; green: GLshort; blue: GLshort; alpha: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8088   TglColor4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8089   TglColor4ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte; alpha: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8090   TglColor4ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8091   TglColor4ui = procedure(red: GLuint; green: GLuint; blue: GLuint; alpha: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8092   TglColor4uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8093   TglColor4us = procedure(red: GLushort; green: GLushort; blue: GLushort; alpha: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8094   TglColor4usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8095   TglColorMaterial = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8096   TglColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8097   TglCopyPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; _type: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8098   TglDeleteLists = procedure(list: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8099   TglDisableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8100   TglDrawPixels = procedure(width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8101   TglEdgeFlag = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8102   TglEdgeFlagPointer = procedure(stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8103   TglEdgeFlagv = procedure(const flag: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8104   TglEnableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8105   TglEnd = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8106   TglEndList = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8107   TglEvalCoord1d = procedure(u: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8108   TglEvalCoord1dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8109   TglEvalCoord1f = procedure(u: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8110   TglEvalCoord1fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8111   TglEvalCoord2d = procedure(u: GLdouble; v: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8112   TglEvalCoord2dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8113   TglEvalCoord2f = procedure(u: GLfloat; v: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8114   TglEvalCoord2fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8115   TglEvalMesh1 = procedure(mode: GLenum; i1: GLint; i2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8116   TglEvalMesh2 = procedure(mode: GLenum; i1: GLint; i2: GLint; j1: GLint; j2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8117   TglEvalPoint1 = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8118   TglEvalPoint2 = procedure(i: GLint; j: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8119   TglFeedbackBuffer = procedure(size: GLsizei; _type: GLenum; buffer: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8120   TglFogf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8121   TglFogfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8122   TglFogi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8123   TglFogiv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8124   TglFrustum = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8125   TglGenLists = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8126   TglGetClipPlane = procedure(plane: GLenum; equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8127   TglGetLightfv = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8128   TglGetLightiv = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8129   TglGetMapdv = procedure(target: GLenum; query: GLenum; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8130   TglGetMapfv = procedure(target: GLenum; query: GLenum; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8131   TglGetMapiv = procedure(target: GLenum; query: GLenum; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8132   TglGetMaterialfv = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8133   TglGetMaterialiv = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8134   TglGetPixelMapfv = procedure(map: GLenum; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8135   TglGetPixelMapuiv = procedure(map: GLenum; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8136   TglGetPixelMapusv = procedure(map: GLenum; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8137   TglGetPolygonStipple = procedure(mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8138   TglGetTexEnvfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8139   TglGetTexEnviv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8140   TglGetTexGendv = procedure(coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8141   TglGetTexGenfv = procedure(coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8142   TglGetTexGeniv = procedure(coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8143   TglIndexMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8144   TglIndexPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8145   TglIndexd = procedure(c: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8146   TglIndexdv = procedure(const c: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8147   TglIndexf = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8148   TglIndexfv = procedure(const c: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8149   TglIndexi = procedure(c: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8150   TglIndexiv = procedure(const c: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8151   TglIndexs = procedure(c: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8152   TglIndexsv = procedure(const c: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8153   TglIndexub = procedure(c: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8154   TglIndexubv = procedure(const c: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8155   TglInitNames = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8156   TglInterleavedArrays = procedure(format: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8157   TglIsList = function(list: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8158   TglIsTexture = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8159   TglLightModelf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8160   TglLightModelfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8161   TglLightModeli = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8162   TglLightModeliv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8163   TglLightf = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8164   TglLightfv = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8165   TglLighti = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8166   TglLightiv = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8167   TglLineStipple = procedure(factor: GLint; pattern: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8168   TglListBase = procedure(base: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8169   TglLoadIdentity = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8170   TglLoadMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8171   TglLoadMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8172   TglLoadName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8173   TglMap1d = procedure(target: GLenum; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8174   TglMap1f = procedure(target: GLenum; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8175   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}
8176   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}
8177   TglMapGrid1d = procedure(un: GLint; u1: GLdouble; u2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8178   TglMapGrid1f = procedure(un: GLint; u1: GLfloat; u2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8179   TglMapGrid2d = procedure(un: GLint; u1: GLdouble; u2: GLdouble; vn: GLint; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8180   TglMapGrid2f = procedure(un: GLint; u1: GLfloat; u2: GLfloat; vn: GLint; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8181   TglMaterialf = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8182   TglMaterialfv = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8183   TglMateriali = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8184   TglMaterialiv = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8185   TglMatrixMode = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8186   TglMultMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8187   TglMultMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8188   TglNewList = procedure(list: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8189   TglNormal3b = procedure(nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8190   TglNormal3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8191   TglNormal3d = procedure(nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8192   TglNormal3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8193   TglNormal3f = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8194   TglNormal3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8195   TglNormal3i = procedure(nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8196   TglNormal3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8197   TglNormal3s = procedure(nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8198   TglNormal3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8199   TglNormalPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8200   TglOrtho = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8201   TglPassThrough = procedure(token: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8202   TglPixelMapfv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8203   TglPixelMapuiv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8204   TglPixelMapusv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8205   TglPixelTransferf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8206   TglPixelTransferi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8207   TglPixelZoom = procedure(xfactor: GLfloat; yfactor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8208   TglPolygonStipple = procedure(const mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8209   TglPopAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8210   TglPopClientAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8211   TglPopMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8212   TglPopName = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8213   TglPrioritizeTextures = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8214   TglPushAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8215   TglPushClientAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8216   TglPushMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8217   TglPushName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8218   TglRasterPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8219   TglRasterPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8220   TglRasterPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8221   TglRasterPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8222   TglRasterPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8223   TglRasterPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8224   TglRasterPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8225   TglRasterPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8226   TglRasterPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8227   TglRasterPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8228   TglRasterPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8229   TglRasterPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8230   TglRasterPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8231   TglRasterPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8232   TglRasterPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8233   TglRasterPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8234   TglRasterPos4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8235   TglRasterPos4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8236   TglRasterPos4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8237   TglRasterPos4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8238   TglRasterPos4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8239   TglRasterPos4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8240   TglRasterPos4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8241   TglRasterPos4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8242   TglRectd = procedure(x1: GLdouble; y1: GLdouble; x2: GLdouble; y2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8243   TglRectdv = procedure(const v1: PGLdouble; const v2: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8244   TglRectf = procedure(x1: GLfloat; y1: GLfloat; x2: GLfloat; y2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8245   TglRectfv = procedure(const v1: PGLfloat; const v2: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8246   TglRecti = procedure(x1: GLint; y1: GLint; x2: GLint; y2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8247   TglRectiv = procedure(const v1: PGLint; const v2: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8248   TglRects = procedure(x1: GLshort; y1: GLshort; x2: GLshort; y2: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8249   TglRectsv = procedure(const v1: PGLshort; const v2: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8250   TglRenderMode = function(mode: GLenum): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8251   TglRotated = procedure(angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8252   TglRotatef = procedure(angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8253   TglScaled = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8254   TglScalef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8255   TglSelectBuffer = procedure(size: GLsizei; buffer: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8256   TglShadeModel = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8257   TglTexCoord1d = procedure(s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8258   TglTexCoord1dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8259   TglTexCoord1f = procedure(s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8260   TglTexCoord1fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8261   TglTexCoord1i = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8262   TglTexCoord1iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8263   TglTexCoord1s = procedure(s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8264   TglTexCoord1sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8265   TglTexCoord2d = procedure(s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8266   TglTexCoord2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8267   TglTexCoord2f = procedure(s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8268   TglTexCoord2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8269   TglTexCoord2i = procedure(s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8270   TglTexCoord2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8271   TglTexCoord2s = procedure(s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8272   TglTexCoord2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8273   TglTexCoord3d = procedure(s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8274   TglTexCoord3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8275   TglTexCoord3f = procedure(s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8276   TglTexCoord3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8277   TglTexCoord3i = procedure(s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8278   TglTexCoord3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8279   TglTexCoord3s = procedure(s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8280   TglTexCoord3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8281   TglTexCoord4d = procedure(s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8282   TglTexCoord4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8283   TglTexCoord4f = procedure(s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8284   TglTexCoord4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8285   TglTexCoord4i = procedure(s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8286   TglTexCoord4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8287   TglTexCoord4s = procedure(s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8288   TglTexCoord4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8289   TglTexCoordPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8290   TglTexEnvf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8291   TglTexEnvfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8292   TglTexEnvi = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8293   TglTexEnviv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8294   TglTexGend = procedure(coord: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8295   TglTexGendv = procedure(coord: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8296   TglTexGenf = procedure(coord: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8297   TglTexGenfv = procedure(coord: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8298   TglTexGeni = procedure(coord: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8299   TglTexGeniv = procedure(coord: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8300
8301
8302   TglTranslated = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8303   TglTranslatef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8304   TglVertex2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8305   TglVertex2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8306   TglVertex2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8307   TglVertex2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8308   TglVertex2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8309   TglVertex2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8310   TglVertex2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8311   TglVertex2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8312   TglVertex3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8313   TglVertex3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8314   TglVertex3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8315   TglVertex3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8316   TglVertex3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8317   TglVertex3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8318   TglVertex3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8319   TglVertex3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8320   TglVertex4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8321   TglVertex4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8322   TglVertex4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8323   TglVertex4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8324   TglVertex4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8325   TglVertex4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8326   TglVertex4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8327   TglVertex4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8328   TglVertexPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8329 {$endif}
8330
8331   // GL_VERSION_1_2
8332   TglBlendColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8333   TglBlendEquation = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8334   TglDrawRangeElements = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8335   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}
8336   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}
8337   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}
8338 {$ifdef DGL_DEPRECATED}
8339   TglColorTable = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8340   TglColorTableParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8341   TglColorTableParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8342   TglCopyColorTable = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8343   TglGetColorTable = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8344   TglGetColorTableParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8345   TglGetColorTableParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8346   TglColorSubTable = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8347   TglCopyColorSubTable = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8348   TglConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8349   TglConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8350   TglConvolutionParameterf = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8351   TglConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8352   TglConvolutionParameteri = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8353   TglConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8354   TglCopyConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8355   TglCopyConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8356   TglGetConvolutionFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8357   TglGetConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8358   TglGetConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8359   TglGetSeparableFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8360   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}
8361   TglGetHistogram = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8362   TglGetHistogramParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8363   TglGetHistogramParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8364   TglGetMinmax = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8365   TglGetMinmaxParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8366   TglGetMinmaxParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8367   TglHistogram = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8368   TglMinmax = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8369   TglResetHistogram = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8370   TglResetMinmax = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8371 {$endif}
8372
8373   // GL_VERSION_1_3
8374   TglActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8375   TglSampleCoverage = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8376   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}
8377   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}
8378   TglCompressedTexImage1D = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8379   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}
8380   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}
8381   TglCompressedTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8382   TglGetCompressedTexImage = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8383 {$ifdef DGL_DEPRECATED}
8384   TglClientActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8385   TglMultiTexCoord1d = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8386   TglMultiTexCoord1dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8387   TglMultiTexCoord1f = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8388   TglMultiTexCoord1fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8389   TglMultiTexCoord1i = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8390   TglMultiTexCoord1iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8391   TglMultiTexCoord1s = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8392   TglMultiTexCoord1sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8393   TglMultiTexCoord2d = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8394   TglMultiTexCoord2dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8395   TglMultiTexCoord2f = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8396   TglMultiTexCoord2fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8397   TglMultiTexCoord2i = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8398   TglMultiTexCoord2iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8399   TglMultiTexCoord2s = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8400   TglMultiTexCoord2sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8401   TglMultiTexCoord3d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8402   TglMultiTexCoord3dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8403   TglMultiTexCoord3f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8404   TglMultiTexCoord3fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8405   TglMultiTexCoord3i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8406   TglMultiTexCoord3iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8407   TglMultiTexCoord3s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8408   TglMultiTexCoord3sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8409   TglMultiTexCoord4d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8410   TglMultiTexCoord4dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8411   TglMultiTexCoord4f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8412   TglMultiTexCoord4fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8413   TglMultiTexCoord4i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8414   TglMultiTexCoord4iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8415   TglMultiTexCoord4s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8416   TglMultiTexCoord4sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8417   TglLoadTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8418   TglLoadTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8419   TglMultTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8420   TglMultTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8421 {$endif}
8422
8423   // GL_VERSION_1_4
8424   TglBlendFuncSeparate = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8425   TglMultiDrawArrays = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8426   TglMultiDrawElements = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8427   TglPointParameterf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8428   TglPointParameterfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8429   TglPointParameteri = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8430   TglPointParameteriv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8431 {$ifdef DGL_DEPRECATED}
8432   TglFogCoordf = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8433   TglFogCoordfv = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8434   TglFogCoordd = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8435   TglFogCoorddv = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8436   TglFogCoordPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8437   TglSecondaryColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8438   TglSecondaryColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8439   TglSecondaryColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8440   TglSecondaryColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8441   TglSecondaryColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8442   TglSecondaryColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8443   TglSecondaryColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8444   TglSecondaryColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8445   TglSecondaryColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8446   TglSecondaryColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8447   TglSecondaryColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8448   TglSecondaryColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8449   TglSecondaryColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8450   TglSecondaryColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8451   TglSecondaryColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8452   TglSecondaryColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8453   TglSecondaryColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8454   TglWindowPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8455   TglWindowPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8456   TglWindowPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8457   TglWindowPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8458   TglWindowPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8459   TglWindowPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8460   TglWindowPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8461   TglWindowPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8462   TglWindowPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8463   TglWindowPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8464   TglWindowPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8465   TglWindowPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8466   TglWindowPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8467   TglWindowPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8468   TglWindowPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8469   TglWindowPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8470 {$endif}
8471
8472   // GL_VERSION_1_5
8473   TglGenQueries = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8474   TglDeleteQueries = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8475   TglIsQuery = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8476   TglBeginQuery = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8477   TglEndQuery = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8478   TglGetQueryiv = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8479   TglGetQueryObjectiv = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8480   TglGetQueryObjectuiv = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8481   TglBindBuffer = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8482   TglDeleteBuffers = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8483   TglGenBuffers = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8484   TglIsBuffer = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8485   TglBufferData = procedure(target: GLenum; size: GLsizeiptr; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8486   TglBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8487   TglGetBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8488   TglMapBuffer = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8489   TglUnmapBuffer = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8490   TglGetBufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8491   TglGetBufferPointerv = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8492
8493   // GL_VERSION_2_0
8494   TglBlendEquationSeparate = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8495   TglDrawBuffers = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8496   TglStencilOpSeparate = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8497   TglStencilFuncSeparate = procedure(face: GLenum; func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8498   TglStencilMaskSeparate = procedure(face: GLenum; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8499   TglAttachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8500   TglBindAttribLocation = procedure(programObj: GLhandle; index: GLuint; name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8501   TglCompileShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8502   TglCreateProgram = function: GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8503   TglCreateShader = function(shaderType: GLenum): GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8504   TglDeleteProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8505   TglDeleteShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8506   TglDetachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8507   TglDisableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8508   TglEnableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8509   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}
8510   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}
8511   TglGetAttachedShaders = procedure(programObj: GLhandle; MaxCount: GLsizei; var Count: GLint; shaders: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8512   TglGetAttribLocation = function(programObj: GLhandle; char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8513   TglGetProgramiv = procedure(programObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8514   TglGetProgramInfoLog = procedure(programObj: GLHandle; maxLength: glsizei; var length: GLint; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8515   TglGetShaderiv = procedure(shaderObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8516   TglGetShaderInfoLog = procedure(shaderObj: GLHandle; maxLength: glsizei; var length: glint; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8517   TglGetShaderSource = procedure(shaderObj: GLhandle; maxlength: GLsizei; var length: GLsizei; source: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8518   TglGetUniformLocation = function(programObj: GLhandle; const char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8519   TglGetUniformfv = procedure(programObj: GLhandle; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8520   TglGetUniformiv = procedure(programObj: GLhandle; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8521   TglGetVertexAttribfv = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8522   TglGetVertexAttribiv = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8523   TglGetVertexAttribPointerv = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8524   TglIsProgram = function(programObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8525   TglIsShader = function(shaderObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8526   TglLinkProgram = procedure(programObj: GLHandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8527   TglShaderSource = procedure(shaderObj: GLHandle; count: glsizei; const _string: PPGLChar; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8528   TglUseProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8529   TglUniform1f = procedure(location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8530   TglUniform2f = procedure(location: GLint; v0, v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8531   TglUniform3f = procedure(location: GLint; v0, v1, v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8532   TglUniform4f = procedure(location: GLint; v0, v1, v2, v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8533   TglUniform1i = procedure(location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8534   TglUniform2i = procedure(location: GLint; v0, v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8535   TglUniform3i = procedure(location: GLint; v0, v1, v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8536   TglUniform4i = procedure(location: GLint; v0, v1, v2, v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8537   TglUniform1fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8538   TglUniform2fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8539   TglUniform3fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8540   TglUniform4fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8541   TglUniform1iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8542   TglUniform2iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8543   TglUniform3iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8544   TglUniform4iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8545   TglUniformMatrix2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8546   TglUniformMatrix3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8547   TglUniformMatrix4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8548   TglValidateProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8549   TglVertexAttrib1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8550   TglVertexAttrib1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8551   TglVertexAttrib1f = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8552   TglVertexAttrib1fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8553   TglVertexAttrib1s = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8554   TglVertexAttrib1sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8555   TglVertexAttrib2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8556   TglVertexAttrib2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8557   TglVertexAttrib2f = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8558   TglVertexAttrib2fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8559   TglVertexAttrib2s = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8560   TglVertexAttrib2sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8561   TglVertexAttrib3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8562   TglVertexAttrib3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8563   TglVertexAttrib3f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8564   TglVertexAttrib3fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8565   TglVertexAttrib3s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8566   TglVertexAttrib3sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8567   TglVertexAttrib4Nbv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8568   TglVertexAttrib4Niv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8569   TglVertexAttrib4Nsv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8570   TglVertexAttrib4Nub = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8571   TglVertexAttrib4Nubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8572   TglVertexAttrib4Nuiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8573   TglVertexAttrib4Nusv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8574   TglVertexAttrib4bv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8575   TglVertexAttrib4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8576   TglVertexAttrib4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8577   TglVertexAttrib4f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8578   TglVertexAttrib4fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8579   TglVertexAttrib4iv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8580   TglVertexAttrib4s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8581   TglVertexAttrib4sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8582   TglVertexAttrib4ubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8583   TglVertexAttrib4uiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8584   TglVertexAttrib4usv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8585   TglVertexAttribPointer = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8586
8587   // GL_VERSION_2_1
8588   TglUniformMatrix2x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8589   TglUniformMatrix3x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8590   TglUniformMatrix2x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8591   TglUniformMatrix4x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8592   TglUniformMatrix3x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8593   TglUniformMatrix4x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8594
8595   // GL_VERSION_3_0
8596   { OpenGL 3.0 also reuses entry points from these extensions: }
8597   { ARB_framebuffer_object }
8598   { ARB_map_buffer_range }
8599   { ARB_vertex_array_object }
8600   TglColorMaski = procedure(index_: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8601   TglGetBooleani_v = procedure(target: GLenum; index_: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8602   TglGetIntegeri_v = procedure(target: GLenum; index_: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8603   TglEnablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8604   TglDisablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8605   TglIsEnabledi = function(target: GLenum; index_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8606   TglBeginTransformFeedback = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8607   TglEndTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8608   TglBindBufferRange = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8609   TglBindBufferBase = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8610   TglTransformFeedbackVaryings = procedure(program_: GLuint; count: GLsizei; const varyings: PPGLchar; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8611   TglGetTransformFeedbackVarying = procedure(program_: GLuint; index_: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; type_: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8612   TglClampColor = procedure(targe: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8613   TglBeginConditionalRender = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8614   TglEndConditionalRender = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8615   TglVertexAttribIPointer = procedure(index_: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8616   TglGetVertexAttribIiv = procedure(index_: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8617   TglGetVertexAttribIuiv = procedure(index_: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8618   TglVertexAttribI1i = procedure(index_: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8619   TglVertexAttribI2i = procedure(index_: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8620   TglVertexAttribI3i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8621   TglVertexAttribI4i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8622   TglVertexAttribI1ui = procedure(index_: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8623   TglVertexAttribI2ui = procedure(index_: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8624   TglVertexAttribI3ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8625   TglVertexAttribI4ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8626   TglVertexAttribI1iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8627   TglVertexAttribI2iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8628   TglVertexAttribI3iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8629   TglVertexAttribI4iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8630   TglVertexAttribI1uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8631   TglVertexAttribI2uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8632   TglVertexAttribI3uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8633   TglVertexAttribI4uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8634   TglVertexAttribI4bv = procedure(index_: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8635   TglVertexAttribI4sv = procedure(index_: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8636   TglVertexAttribI4ubv = procedure(index_: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8637   TglVertexAttribI4usv = procedure(index_: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8638   TglGetUniformuiv = procedure(program_: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8639   TglBindFragDataLocation = procedure(program_: GLuint; color: GLuint; const name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8640   TglGetFragDataLocation = function(program_: GLuint; const name: PGLChar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8641   TglUniform1ui = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8642   TglUniform2ui = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8643   TglUniform3ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8644   TglUniform4ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8645   TglUniform1uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8646   TglUniform2uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8647   TglUniform3uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8648   TglUniform4uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8649   TglTexParameterIiv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8650   TglTexParameterIuiv = procedure(target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8651   TglGetTexParameterIiv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8652   TglGetTexParameterIuiv = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8653   TglClearBufferiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8654   TglClearBufferuiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8655   TglClearBufferfv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8656   TglClearBufferfi = procedure(buffer: GLenum; drawbuffer: GLint; depth: GLfloat; stencil: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8657   TglGetStringi = function(name: GLenum; index: GLuint): PGLubyte; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8658
8659   // GL_VERSION_2_1
8660   TglEnableVertexArrayEXT = procedure(vaobj: GLuint; array_: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8661   TglEnableVertexArrayAttribEXT = procedure(vaobj: GLuint; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8662   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}
8663
8664   // GL_VERSION_3_1
8665   { OpenGL 3.1 also reuses entry points from these extensions: }
8666   { ARB_copy_buffer }
8667   { ARB_uniform_buffer_object }
8668   TglDrawArraysInstanced = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8669   TglDrawElementsInstanced = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8670   TglTexBuffer = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8671   TglPrimitiveRestartIndex = procedure(index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8672
8673   // GL_VERSION_3_2
8674   { OpenGL 3.2 also reuses entry points from these extensions: }
8675   { ARB_draw_elements_base_vertex }
8676   { ARB_provoking_vertex }
8677   { ARB_sync }
8678   { ARB_texture_multisample }
8679   TglGetInteger64i_v = procedure(target: GLenum; index_: GLuint; data: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8680   TglGetBufferParameteri64v = procedure(target: GLenum; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8681   TglFramebufferTexture = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8682 //  TglFramebufferTextureFace = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8683
8684   // GL_VERSION_3_3
8685   { OpenGL 3.3 also reuses entry points from these extensions: }
8686   { ARB_blend_func_extended }
8687   { ARB_sampler_objects }
8688   { ARB_explicit_attrib_location, but it has none }
8689   { ARB_occlusion_query2 (no entry points) }
8690   { ARB_shader_bit_encoding (no entry points) }
8691   { ARB_texture_rgb10_a2ui (no entry points) }
8692   { ARB_texture_swizzle (no entry points) }
8693   { ARB_timer_query }
8694   { ARB_vertex_type_2_10_10_10_rev }
8695   TglVertexAttribDivisor = procedure(index: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8696   
8697   // GL_VERSION_4_0
8698   { OpenGL 4.0 also reuses entry points from these extensions: }
8699   { ARB_texture_query_lod (no entry points) }
8700   { ARB_draw_indirect }
8701   { ARB_gpu_shader5 (no entry points) }
8702   { ARB_gpu_shader_fp64 }
8703   { ARB_shader_subroutine }
8704   { ARB_tessellation_shader }
8705   { ARB_texture_buffer_object_rgb32 (no entry points) }
8706   { ARB_texture_cube_map_array (no entry points) }
8707   { ARB_texture_gather (no entry points) }
8708   { ARB_transform_feedback2 }
8709   { ARB_transform_feedback3 }
8710   TglMinSampleShading = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8711   TglBlendEquationi = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8712   TglBlendEquationSeparatei = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8713   TglBlendFunci = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8714   TglBlendFuncSeparatei = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8715
8716   // GL_VERSION_4_1
8717   { OpenGL 4.1 also reuses entry points from these extensions: }
8718   { ARB_ES2_compatibility }
8719   { ARB_get_program_binary }
8720   { ARB_separate_shader_objects }
8721   { ARB_shader_precision (no entry points) }
8722   { ARB_vertex_attrib_64bit }
8723   { ARB_viewport_array }
8724
8725   // GL_3DFX_tbuffer
8726   TglTbufferMask3DFX = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8727
8728   // GL_APPLE_element_array
8729   TglElementPointerAPPLE = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8730   TglDrawElementArrayAPPLE = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8731   TglDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8732   TglMultiDrawElementArrayAPPLE = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8733   TglMultiDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8734
8735   // GL_APPLE_fence
8736   TglGenFencesAPPLE = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8737   TglDeleteFencesAPPLE = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8738   TglSetFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8739   TglIsFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8740   TglTestFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8741   TglFinishFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8742   TglTestObjectAPPLE = function(_object: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8743   TglFinishObjectAPPLE = procedure(_object: GLenum; name: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8744
8745   // GL_APPLE_vertex_array_object
8746   TglBindVertexArrayAPPLE = procedure(_array: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8747   TglDeleteVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8748   TglGenVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8749   TglIsVertexArrayAPPLE = function(_array: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8750
8751   // GL_APPLE_vertex_array_range
8752   TglVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8753   TglFlushVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8754   TglVertexArrayParameteriAPPLE = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8755
8756   // GL_APPLE_texture_range
8757   TglTextureRangeAPPLE = procedure(target: GLenum; length: GLsizei; const Pointer_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8758   TglGetTexParameterPointervAPPLE = procedure(target: GLenum; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8759
8760   // GL_APPLE_vertex_program_evaluators
8761   TglEnableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8762   TglDisableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8763   TglIsVertexAttribEnabledAPPLE = function(index_: GLuint; pname: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8764   TglMapVertexAttrib1dAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8765   TglMapVertexAttrib1fAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8766   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}
8767   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}
8768
8769   // GL_APPLE_object_purgeable
8770   TglObjectPurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8771   TglObjectUnpurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8772   TglGetObjectParameterivAPPLE = procedure(objectType: GLenum; name: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8773
8774   // GL_ARB_matrix_palette
8775   TglCurrentPaletteMatrixARB = procedure(index: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8776   TglMatrixIndexubvARB = procedure(size: GLint; const indices: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8777   TglMatrixIndexusvARB = procedure(size: GLint; const indices: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8778   TglMatrixIndexuivARB = procedure(size: GLint; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8779   TglMatrixIndexPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8780
8781   // GL_ARB_multisample
8782   TglSampleCoverageARB = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8783
8784   // GL_ARB_multitexture
8785   TglActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8786   TglClientActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8787   TglMultiTexCoord1dARB = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8788   TglMultiTexCoord1dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8789   TglMultiTexCoord1fARB = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8790   TglMultiTexCoord1fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8791   TglMultiTexCoord1iARB = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8792   TglMultiTexCoord1ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8793   TglMultiTexCoord1sARB = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8794   TglMultiTexCoord1svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8795   TglMultiTexCoord2dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8796   TglMultiTexCoord2dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8797   TglMultiTexCoord2fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8798   TglMultiTexCoord2fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8799   TglMultiTexCoord2iARB = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8800   TglMultiTexCoord2ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8801   TglMultiTexCoord2sARB = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8802   TglMultiTexCoord2svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8803   TglMultiTexCoord3dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8804   TglMultiTexCoord3dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8805   TglMultiTexCoord3fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8806   TglMultiTexCoord3fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8807   TglMultiTexCoord3iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8808   TglMultiTexCoord3ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8809   TglMultiTexCoord3sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8810   TglMultiTexCoord3svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8811   TglMultiTexCoord4dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8812   TglMultiTexCoord4dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8813   TglMultiTexCoord4fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8814   TglMultiTexCoord4fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8815   TglMultiTexCoord4iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8816   TglMultiTexCoord4ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8817   TglMultiTexCoord4sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8818   TglMultiTexCoord4svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8819
8820   // GL_ARB_point_parameters
8821   TglPointParameterfARB = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8822   TglPointParameterfvARB = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8823
8824   // GL_ARB_texture_compression
8825   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}
8826   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}
8827   TglCompressedTexImage1DARB = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8828   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}
8829   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}
8830   TglCompressedTexSubImage1DARB = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8831   TglGetCompressedTexImageARB = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8832
8833   // GL_ARB_transpose_matrix
8834   TglLoadTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8835   TglLoadTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8836   TglMultTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8837   TglMultTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8838
8839   // GL_ARB_vertex_blend
8840   TglWeightbvARB = procedure(size: GLint; const weights: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8841   TglWeightsvARB = procedure(size: GLint; const weights: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8842   TglWeightivARB = procedure(size: GLint; const weights: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8843   TglWeightfvARB = procedure(size: GLint; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8844   TglWeightdvARB = procedure(size: GLint; const weights: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8845   TglWeightubvARB = procedure(size: GLint; const weights: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8846   TglWeightusvARB = procedure(size: GLint; const weights: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8847   TglWeightuivARB = procedure(size: GLint; const weights: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8848   TglWeightPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8849   TglVertexBlendARB = procedure(count: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8850
8851   // GL_ARB_vertex_buffer_object
8852   TglBindBufferARB = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8853   TglDeleteBuffersARB = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8854   TglGenBuffersARB = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8855   TglIsBufferARB = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8856   TglBufferDataARB = procedure(target: GLenum; size: GLsizeiptrARB; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8857   TglBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8858   TglGetBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8859   TglMapBufferARB = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8860   TglUnmapBufferARB = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8861   TglGetBufferParameterivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8862   TglGetBufferPointervARB = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8863
8864   // GL_ARB_vertex_program
8865   TglVertexAttrib1dARB = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8866   TglVertexAttrib1dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8867   TglVertexAttrib1fARB = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8868   TglVertexAttrib1fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8869   TglVertexAttrib1sARB = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8870   TglVertexAttrib1svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8871   TglVertexAttrib2dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8872   TglVertexAttrib2dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8873   TglVertexAttrib2fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8874   TglVertexAttrib2fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8875   TglVertexAttrib2sARB = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8876   TglVertexAttrib2svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8877   TglVertexAttrib3dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8878   TglVertexAttrib3dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8879   TglVertexAttrib3fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8880   TglVertexAttrib3fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8881   TglVertexAttrib3sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8882   TglVertexAttrib3svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8883   TglVertexAttrib4NbvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8884   TglVertexAttrib4NivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8885   TglVertexAttrib4NsvARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8886   TglVertexAttrib4NubARB = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8887   TglVertexAttrib4NubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8888   TglVertexAttrib4NuivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8889   TglVertexAttrib4NusvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8890   TglVertexAttrib4bvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8891   TglVertexAttrib4dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8892   TglVertexAttrib4dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8893   TglVertexAttrib4fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8894   TglVertexAttrib4fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8895   TglVertexAttrib4ivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8896   TglVertexAttrib4sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8897   TglVertexAttrib4svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8898   TglVertexAttrib4ubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8899   TglVertexAttrib4uivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8900   TglVertexAttrib4usvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8901   TglVertexAttribPointerARB = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8902   TglEnableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8903   TglDisableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8904   TglProgramStringARB = procedure(target: GLenum; format: GLenum; len: GLsizei; const _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8905   TglBindProgramARB = procedure(target: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8906   TglDeleteProgramsARB = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8907   TglGenProgramsARB = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8908   TglProgramEnvParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8909   TglProgramEnvParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8910   TglProgramEnvParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8911   TglProgramEnvParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8912   TglProgramLocalParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8913   TglProgramLocalParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8914   TglProgramLocalParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8915   TglProgramLocalParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8916   TglGetProgramEnvParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8917   TglGetProgramEnvParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8918   TglGetProgramLocalParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8919   TglGetProgramLocalParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8920   TglGetProgramivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8921   TglGetProgramStringARB = procedure(target: GLenum; pname: GLenum; _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8922   TglGetVertexAttribdvARB = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8923   TglGetVertexAttribfvARB = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8924   TglGetVertexAttribivARB = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8925   TglGetVertexAttribPointervARB = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8926   TglIsProgramARB = function(_program: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8927
8928   // GL_ARB_window_pos
8929   TglWindowPos2dARB = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8930   TglWindowPos2dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8931   TglWindowPos2fARB = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8932   TglWindowPos2fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8933   TglWindowPos2iARB = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8934   TglWindowPos2ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8935   TglWindowPos2sARB = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8936   TglWindowPos2svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8937   TglWindowPos3dARB = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8938   TglWindowPos3dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8939   TglWindowPos3fARB = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8940   TglWindowPos3fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8941   TglWindowPos3iARB = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8942   TglWindowPos3ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8943   TglWindowPos3sARB = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8944   TglWindowPos3svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8945
8946   // GL_ARB_draw_buffers
8947   TglDrawBuffersARB = procedure(n: GLsizei; bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8948
8949   // GL_ARB_color_buffer_float
8950   TglClampColorARB = procedure(target: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8951
8952   // GL_ARB_vertex_shader
8953   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}
8954   TglGetAttribLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8955   TglBindAttribLocationARB = procedure(programObj: GLhandleARB; index: GLuint; const name: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8956
8957   // GL_ARB_shader_objects
8958   TglDeleteObjectARB = procedure(Obj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8959   TglGetHandleARB = function(pname: GlEnum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8960   TglDetachObjectARB = procedure(container, attached: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8961   TglCreateShaderObjectARB = function(shaderType: glenum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8962   TglShaderSourceARB = procedure(shaderObj: GLHandleARB; count: glsizei; const _string: PPGLCharARB; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8963   TglCompileShaderARB = procedure(shaderObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8964   TglCreateProgramObjectARB = function: GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8965   TglAttachObjectARB = procedure(programObj, shaderObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8966   TglLinkProgramARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8967   TglUseProgramObjectARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8968   TglValidateProgramARB = procedure(programObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8969   TglUniform1fARB = procedure(location: glint; v0: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8970   TglUniform2fARB = procedure(location: glint; v0, v1: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8971   TglUniform3fARB = procedure(location: glint; v0, v1, v2: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8972   TglUniform4fARB = procedure(location: glint; v0, v1, v2, v3: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8973   TglUniform1iARB = procedure(location: glint; v0: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8974   TglUniform2iARB = procedure(location: glint; v0, v1: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8975   TglUniform3iARB = procedure(location: glint; v0, v1, v2: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8976   TglUniform4iARB = procedure(location: glint; v0, v1, v2, v3: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8977   TglUniform1fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8978   TglUniform2fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8979   TglUniform3fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8980   TglUniform4fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8981   TglUniform1ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8982   TglUniform2ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8983   TglUniform3ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8984   TglUniform4ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8985   TglUniformMatrix2fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8986   TglUniformMatrix3fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8987   TglUniformMatrix4fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8988   TglGetObjectParameterfvARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8989   TglGetObjectParameterivARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8990   TglGetInfoLogARB = procedure(shaderObj: GLHandleARB; maxLength: glsizei; var length: glint; infoLog: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8991   TglGetAttachedObjectsARB = procedure(programobj: GLhandleARB; maxCount: GLsizei; var count: GLsizei; objects: PGLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8992   TglGetUniformLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8993   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}
8994   TglGetUniformfvARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8995   TglGetUniformivARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8996   TglGetShaderSourceARB = procedure(shader: GLhandleARB; maxLength: GLsizei; var length: GLsizei; source: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8997
8998   // GL_ARB_Occlusion_Query
8999   TglGenQueriesARB = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9000   TglDeleteQueriesARB = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9001   TglIsQueryARB = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9002   TglBeginQueryARB = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9003   TglEndQueryARB = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9004   TglGetQueryivARB = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9005   TglGetQueryObjectivARB = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9006   TglGetQueryObjectuivARB = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9007
9008   // GL_ARB_draw_instanced
9009   TglDrawArraysInstancedARB = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9010   TglDrawElementsInstancedARB = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9011
9012   // GL_ARB_framebuffer_object
9013   TglIsRenderbuffer = function(renderbuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9014   TglBindRenderbuffer = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9015   TglDeleteRenderbuffers = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9016   TglGenRenderbuffers = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9017   TglRenderbufferStorage = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9018   TglGetRenderbufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9019   TglIsFramebuffer = function(framebuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9020   TglBindFramebuffer = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9021   TglDeleteFramebuffers = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9022   TglGenFramebuffers = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9023   TglCheckFramebufferStatus = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9024   TglFramebufferTexture1D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9025   TglFramebufferTexture2D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9026   TglFramebufferTexture3D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9027   TglFramebufferRenderbuffer = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9028   TglGetFramebufferAttachmentParameteriv = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9029   TglGenerateMipmap = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9030   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}
9031   TglRenderbufferStorageMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9032   TglFramebufferTextureLayer = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9033
9034   // GL_ARB_geometry_shader4
9035   TglProgramParameteriARB = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9036   TglFramebufferTextureARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9037   TglFramebufferTextureLayerARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9038   TglFramebufferTextureFaceARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9039
9040   // GL_ARB_instanced_arrays
9041   TglVertexAttribDivisorARB = procedure(index_: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9042
9043   // GL_ARB_map_buffer_range
9044   TglMapBufferRange = function(target: GLenum; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9045   TglFlushMappedBufferRange = procedure(target: GLenum; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9046
9047   // GL_ARB_texture_buffer_object
9048   TglTexBufferARB = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9049
9050   // GL_ARB_vertex_array_object
9051   TglBindVertexArray = procedure(array_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9052   TglDeleteVertexArrays = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9053   TglGenVertexArrays = procedure(n: GLsizei; arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9054   TglIsVertexArray = function(array_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9055
9056   // GL_ARB_uniform_buffer_object
9057   TglGetUniformIndices = procedure(program_: GLuint; uniformCount: GLsizei; const uniformNames: PPGLchar; uniformIndices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9058   TglGetActiveUniformsiv = procedure(program_: GLuint; uniformCount: GLsizei; const uniformIndices: PGLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9059   TglGetActiveUniformName = procedure(program_: GLuint; uniformIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9060   TglGetUniformBlockIndex = function(program_: GLuint; const uniformBlockName: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9061   TglGetActiveUniformBlockiv = procedure(program_: GLuint; uniformBlockIndex: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9062   TglGetActiveUniformBlockName = procedure(program_: GLuint; uniformBlockIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformBlockName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9063   TglUniformBlockBinding = procedure(program_: GLuint; uniformBlockIndex: GLuint; uniformBlockBinding: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9064
9065   // GL_ARB_copy_buffer
9066   TglCopyBufferSubData = procedure(readTarget: GLenum; writeTarget: GLenum; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9067
9068   // GL_ARB_draw_elements_base_vertex
9069   TglDrawElementsBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9070   TglDrawRangeElementsBaseVertex = procedure(mode: GLenum; start: GLuint; end_: GLuint; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9071   TglDrawElementsInstancedBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9072   TglMultiDrawElementsBaseVertex = procedure(mode: GLenum; const count: PGLsizei; type_: GLenum; const indices: PPGLvoid; primcount: GLsizei; const basevertex: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9073
9074   // GL_ARB_provoking_vertex
9075   TglProvokingVertex = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9076
9077   // GL_ARB_sync
9078   TglFenceSync = function(condition: GLenum; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9079   TglIsSync = function(sync: GLsync): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9080   TglDeleteSync = procedure(sync: GLsync); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9081   TglClientWaitSync = function(sync: GLsync; flags: GLbitfield; timeout: GLuint64): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9082   TglWaitSync = procedure(sync: GLsync; flags: GLbitfield; timeout: GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9083   TglGetInteger64v = procedure(pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9084   TglGetSynciv = procedure(sync: GLsync; pname: GLenum; butSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9085
9086   // GL_ARB_texture_multisample
9087   TglTexImage2DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9088   TglTexImage3DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9089   TglGetMultisamplefv = procedure(pname: GLenum; index_: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9090   TglSampleMaski = procedure(index_: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9091
9092   // GL_ARB_draw_buffers_blend
9093   TglBlendEquationiARB = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9094   TglBlendEquationSeparateiARB = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9095   TglBlendFunciARB = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9096   TglBlendFuncSeparateiARB = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9097
9098   // GL_ARB_sample_shading
9099   TglMinSampleShadingARB = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9100
9101   // GL_ARB_shading_language_include
9102   TglNamedStringARB = procedure(type_: GLenum; namelen: GLint; const name: PGLchar; stringlen: GLint; const string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9103   TglDeleteNamedStringARB = procedure(namelen: GLint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9104   TglCompileShaderIncludeARB = procedure (shader: GLuint; count: GLsizei; const path: PPGLchar; const length: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9105   TglIsNamedStringARB = function(namelen: GLint; const name: PGLchar): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9106   TglGetNamedStringARB = procedure(namelen: GLint; const name: PGLchar; bufSize: GLsizei; stringlen: GLint; string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9107   TglGetNamedStringivARB = procedure(namelen: GLint; const name: PGLchar; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9108
9109   // GL_ARB_blend_func_extended
9110   TglBindFragDataLocationIndexed = procedure(program_: GLuint; colorNumber: GLuint; index: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9111   TglGetFragDataIndex = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9112
9113   // GL_ARB_sampler_objects
9114   TglGenSamplers = procedure(count: GLsizei; samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9115   TglDeleteSamplers = procedure(count: GLsizei; const samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9116   TglIsSampler = function(sampler: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9117   TglBindSampler = procedure(unit_: GLuint; sampler: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9118   TglSamplerParameteri = procedure(sampler: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9119   TglSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9120   TglSamplerParameterf = procedure(sampler: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9121   TglSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9122   TglSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9123   TglSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9124   TglGetSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9125   TglGetSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9126   TglGetSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9127   TglGetSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9128
9129   // GL_ARB_timer_query
9130   TglQueryCounter = procedure(id: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9131   TglGetQueryObjecti64v = procedure(id: GLuint; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9132   TglGetQueryObjectui64v = procedure(id: GLuint; pname: GLenum; params: PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9133
9134   // GL_ARB_vertex_type_2_10_10_10_rev
9135   TglVertexP2ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9136   TglVertexP2uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9137   TglVertexP3ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9138   TglVertexP3uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9139   TglVertexP4ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9140   TglVertexP4uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9141   TglTexCoordP1ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9142   TglTexCoordP1uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9143   TglTexCoordP2ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9144   TglTexCoordP2uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9145   TglTexCoordP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9146   TglTexCoordP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9147   TglTexCoordP4ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9148   TglTexCoordP4uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9149   TglMultiTexCoordP1ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9150   TglMultiTexCoordP1uiv = procedure(texture: GLenum; type_: GLenum; const coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9151   TglMultiTexCoordP2ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9152   TglMultiTexCoordP2uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9153   TglMultiTexCoordP3ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9154   TglMultiTexCoordP3uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9155   TglMultiTexCoordP4ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9156   TglMultiTexCoordP4uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9157   TglNormalP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9158   TglNormalP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9159   TglColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9160   TglColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9161   TglColorP4ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9162   TglColorP4uiv = procedure(type_: GLenum; const color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9163   TglSecondaryColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9164   TglSecondaryColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9165   TglVertexAttribP1ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9166   TglVertexAttribP1uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9167   TglVertexAttribP2ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9168   TglVertexAttribP2uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9169   TglVertexAttribP3ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9170   TglVertexAttribP3uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9171   TglVertexAttribP4ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9172   TglVertexAttribP4uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9173
9174   // GL_ARB_draw_indirect
9175   TglDrawArraysIndirect = procedure(mode: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9176   TglDrawElementsIndirect = procedure(mode: GLenum; type_: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9177
9178   // GL_ARB_gpu_shader_fp64
9179   TglUniform1d = procedure(location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9180   TglUniform2d = procedure(location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9181   TglUniform3d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9182   TglUniform4d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9183   TglUniform1dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9184   TglUniform2dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9185   TglUniform3dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9186   TglUniform4dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9187   TglUniformMatrix2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9188   TglUniformMatrix3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9189   TglUniformMatrix4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9190   TglUniformMatrix2x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9191   TglUniformMatrix2x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9192   TglUniformMatrix3x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9193   TglUniformMatrix3x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9194   TglUniformMatrix4x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9195   TglUniformMatrix4x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9196   TglGetUniformdv = procedure(program_: GLuint; location: GLint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9197
9198   // GL_ARB_shader_subroutine
9199   TglGetSubroutineUniformLocation = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9200   TglGetSubroutineIndex = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9201   TglGetActiveSubroutineUniformiv = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9202   TglGetActiveSubroutineUniformName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9203   TglGetActiveSubroutineName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9204   TglUniformSubroutinesuiv = procedure(shadertype: GLenum; count: GLsizei; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9205   TglGetUniformSubroutineuiv = procedure(shadertype: GLenum; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9206   TglGetProgramStageiv = procedure(program_: GLuint; shadertype: GLenum; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9207
9208   // GL_ARB_tessellation_shader
9209   TglPatchParameteri = procedure(pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9210   TglPatchParameterfv = procedure(pname: GLenum; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9211
9212   // GL_ARB_transform_feedback2
9213   TglBindTransformFeedback = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9214   TglDeleteTransformFeedbacks = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9215   TglGenTransformFeedbacks = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9216   TglIsTransformFeedback = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9217   TglPauseTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9218   TglResumeTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9219   TglDrawTransformFeedback = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9220
9221   // GL_ARB_transform_feedback3
9222   TglDrawTransformFeedbackStream = procedure(mode: GLenum; id: GLuint; stream: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9223   TglBeginQueryIndexed = procedure(target: GLenum; index: GLuint; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9224   TglEndQueryIndexed = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9225   TglGetQueryIndexediv = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9226
9227   // GL_ARB_ES2_compatibility
9228   TglReleaseShaderCompiler = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9229   TglShaderBinary = procedure(count: GLsizei; const shaders: PGLuint; binaryformat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9230   TglGetShaderPrecisionFormat = procedure(shadertype: GLenum; precisiontype: GLenum; range: PGLint; precision: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9231   TglDepthRangef = procedure(n: GLclampf; f: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9232   TglClearDepthf = procedure(d: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9233
9234   // GL_ARB_get_program_binary
9235   TglGetProgramBinary = procedure(program_: GLuint; bufSize: GLsizei; length: PGLsizei; binaryFormat: PGLenum; binary: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9236   TglProgramBinary = procedure(program_: GLuint; binaryFormat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9237   TglProgramParameteri = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9238   
9239   // GL_ARB_separate_shader_objects
9240   TglUseProgramStages = procedure(pipeline: GLuint; stages: GLbitfield; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9241   TglActiveShaderProgram = procedure(pipeline: GLuint; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9242   TglCreateShaderProgramv = function(type_: GLenum; count: GLsizei; const strings: PPGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9243   TglBindProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9244   TglDeleteProgramPipelines = procedure(n: GLsizei; const pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9245   TglGenProgramPipelines = procedure(n: GLsizei; pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9246   TglIsProgramPipeline = function(pipeline: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9247   TglGetProgramPipelineiv = procedure(pipeline: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9248   TglProgramUniform1i = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9249   TglProgramUniform1iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9250   TglProgramUniform1f = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9251   TglProgramUniform1fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9252   TglProgramUniform1d = procedure(program_: GLuint; location: GLint; v0: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9253   TglProgramUniform1dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9254   TglProgramUniform1ui = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9255   TglProgramUniform1uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9256   TglProgramUniform2i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9257   TglProgramUniform2iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9258   TglProgramUniform2f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9259   TglProgramUniform2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9260   TglProgramUniform2d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9261   TglProgramUniform2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9262   TglProgramUniform2ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9263   TglProgramUniform2uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9264   TglProgramUniform3i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9265   TglProgramUniform3iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9266   TglProgramUniform3f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9267   TglProgramUniform3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9268   TglProgramUniform3d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9269   TglProgramUniform3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9270   TglProgramUniform3ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9271   TglProgramUniform3uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9272   TglProgramUniform4i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9273   TglProgramUniform4iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9274   TglProgramUniform4f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9275   TglProgramUniform4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9276   TglProgramUniform4d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble; v3: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9277   TglProgramUniform4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9278   TglProgramUniform4ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9279   TglProgramUniform4uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9280   TglProgramUniformMatrix2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9281   TglProgramUniformMatrix3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9282   TglProgramUniformMatrix4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9283   TglProgramUniformMatrix2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9284   TglProgramUniformMatrix3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9285   TglProgramUniformMatrix4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9286   TglProgramUniformMatrix2x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9287   TglProgramUniformMatrix3x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9288   TglProgramUniformMatrix2x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9289   TglProgramUniformMatrix4x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9290   TglProgramUniformMatrix3x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9291   TglProgramUniformMatrix4x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9292   TglProgramUniformMatrix2x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9293   TglProgramUniformMatrix3x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9294   TglProgramUniformMatrix2x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9295   TglProgramUniformMatrix4x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9296   TglProgramUniformMatrix3x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9297   TglProgramUniformMatrix4x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9298   TglValidateProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9299   TglGetProgramPipelineInfoLog = procedure(pipeline: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9300
9301   // GL_ARB_vertex_attrib_64bit
9302   TglVertexAttribL1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9303   TglVertexAttribL2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9304   TglVertexAttribL3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9305   TglVertexAttribL4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9306   TglVertexAttribL1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9307   TglVertexAttribL2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9308   TglVertexAttribL3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9309   TglVertexAttribL4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9310   TglVertexAttribLPointer = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9311   TglGetVertexAttribLdv = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9312
9313   // GL_ARB_viewport_array
9314   TglViewportArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9315   TglViewportIndexedf = procedure(index: GLuint; x: GLfloat; y: GLfloat; w: GLfloat; h: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9316   TglViewportIndexedfv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9317   TglScissorArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9318   TglScissorIndexed = procedure(index: GLuint; left: GLint; bottom: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9319   TglScissorIndexedv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9320   TglDepthRangeArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9321   TglDepthRangeIndexed = procedure(index: GLuint; n: GLclampd; f: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9322   TglGetFloati_v = procedure(target: GLenum; index: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9323   TglGetDoublei_v = procedure(target: GLenum; index: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9324
9325   // GL 4.2
9326
9327   // GL_ARB_base_instance
9328   TglDrawArraysInstancedBaseInstance = procedure(mode : GLenum; first : GLint; count :GLsizei; primcount : GLsizei; baseinstance : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9329   TglDrawElementsInstancedBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount : GLsizei; baseinstance : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9330   TglDrawElementsInstancedBaseVertexBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount :GLsizei; basevertex : GLint; baseinstance : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9331
9332   // GL_ARB_transform_feedback_instanced
9333   TglDrawTransformFeedbackInstanced = procedure(mode : GLenum; id : GLuint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9334   TglDrawTransformFeedbackStreamInstanced = procedure(mode : GLenum; id : GLUInt; stream : GLUint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9335
9336   // GL_ARB_internalformat_query
9337   TglGetInternalformativ = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9338
9339   // GL_ARB_shader_atomic_counters
9340   TglGetActiveAtomicCounterBufferiv = procedure(_program : GLuint; bufferIndex : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9341
9342   /// GL_ARB_shader_image_load_store
9343   TglBindImageTexture = procedure(_unit : GLuint; texture : GLuint; level :GLint; layered : GLboolean; layer : GLint; access : GLenum; format : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9344   TglMemoryBarrier = procedure(barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9345
9346   // GL_ARB_texture_storage
9347   TglTexStorage1D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9348   TglTexStorage2D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9349   TglTexStorage3D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9350   TglTextureStorage1DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9351   TglTextureStorage2DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9352   TglTextureStorage3DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9353
9354
9355   // GL 4.3
9356
9357   // GL_KHR_debug
9358   TglDebugMessageControl = procedure(source : GLenum; type_ : GLenum; severity : TGLenum; count : GLsizei; const ids : PGLUInt; enabled : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9359   TglDebugMessageInsert = procedure(source : GLenum;  type_ : GLenum; id : GLuint; sverity : GLenum; length : GLsizei; const buf : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9360   TglDebugMessageCallback = procedure(callback : TGLDEBUGPROC; const userParam : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9361   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}
9362   TglPushDebugGroup = procedure(source : GLenum; id : GLuint; length : GLsizei; const message_ : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9363   TglPopDebugGroup = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9364   TglObjectLabel = procedure(identifier : GLenum; name : GLuint; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9365   TglGetObjectLabel = procedure(identifier : GLenum; name : GLuint; bufsize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9366   TglObjectPtrLabel = procedure(const ptr : Pointer; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9367   TglGetObjectPtrLabel = procedure(const ptr : Pointer; bufSize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9368
9369   // GL_ARB_clear_buffer_object
9370   TglClearBufferData = procedure(target : GLenum; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9371   TglClearBufferSubData = procedure(target : GLenum; internalformat : GLenum; offset : GLintptr; size : GLsizeiptr; format : GLenum; type_ : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9372   TglClearNamedBufferDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9373   TglClearNamedBufferSubDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLenum; type_ : GLenum; offset : GLsizeiptr; size : GLsizeiptr; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9374
9375   // GL_ARB_compute_shader 1
9376   TglDispatchCompute = procedure(num_groups_x : GLuint; num_groups_y : GLuint; num_groups_z : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9377   TglDispatchComputeIndirect = procedure(indirect : GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9378
9379   // GL_ARB_copy_image
9380   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}
9381
9382   // GL_ARB_debug_group
9383   // ARB_debug_group reuses entry points from KHR_debug
9384
9385   // GL_ARB_debug_label
9386   // ARB_debug_label reuses entry points from KHR_debug
9387
9388   // GL_ARB_debug_output2
9389
9390   // GL_ARB_ES3_compatibility
9391
9392   // GL_ARB_explicit_uniform_location
9393
9394   // GL_ARB_fragment_layer_viewport
9395
9396   // GL_ARB_framebuffer_no_attachments
9397   TglFramebufferParameteri = procedure(target : GLenum; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9398   TglGetFramebufferParameteriv = procedure(target : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9399   TglNamedFramebufferParameteriEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9400   TglGetNamedFramebufferParameterivEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9401
9402   // GL_ARB_internalformat_query2
9403   TglGetInternalformati64v = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9404
9405   // GL_ARB_invalidate_subdata
9406   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}
9407   TglInvalidateTexImage = procedure(texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9408   TglInvalidateBufferSubData = procedure(buffer : GLuint; offset : GLintptr; length : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9409   TglInvalidateBufferData = procedure(buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9410   TglInvalidateFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9411   TglInvalidateSubFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9412
9413   // GL_ARB_multi_draw_indirect
9414   TglMultiDrawArraysIndirect = procedure(mode : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9415   TglMultiDrawElementsIndirect = procedure(mode : GLenum; type_ : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9416
9417   // GL_ARB_program_interface_query
9418   TglGetProgramInterfaceiv = procedure(program_ : GLUInt;programInterface : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9419   TglGetProgramResourceIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLUInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9420   TglGetProgramResourceName = procedure(program_ : GLUInt;programInterface : GLenum; index : GLuint; bufSize : GLsizei; length : PGLsizei; name : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9421   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}
9422   TglGetProgramResourceLocation = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9423   TglGetProgramResourceLocationIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9424
9425   // GL_ARB_robust_buffer_access_behavior
9426
9427   // GL_ARB_shader_image_size
9428
9429   // GL_ARB_shader_storage_buffer_object
9430   TglShaderStorageBlockBinding = procedure(program_ : GLuint; storageBlockIndex : GLuint; storageBlockBinding : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9431
9432   // GL_ARB_stencil_texturing
9433
9434   // GL_ARB_texture_buffer_range
9435   TglTexBufferRange = procedure(target : GLenum; internalformat : GLenum; buffer : GLuint; offset :GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9436   TglTextureBufferRangeEXT = procedure(texture : GLuint; target : GLenum; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9437
9438   // GL_ARB_texture_query_levels
9439
9440   // GL_ARB_texture_storage_multisample
9441   TglTexStorage2DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9442   TglTexStorage3DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9443   TglTextureStorage2DMultisampleEXT = procedure(texture : GLuint; target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9444   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}
9445
9446   // GL 4.4
9447
9448   TglBufferStorage = procedure(target : GLenum; size : GLsizeiptr; const data : pointer; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9449         TglClearTexImage = procedure(texture : GLuint; level : GLint; format : GLenum; _type : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9450         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}
9451         TglBindBuffersBase = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9452         TglBindBuffersRange = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : GLintptr; const sizes : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9453         TglBindTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9454         TglBindSamplers = procedure(first : GLuint; count : GLsizei; const samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9455         TglBindImageTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9456         TglBindVertexBuffers = procedure(first : GLuint; count : GLsizei; const buffers : GLuint; const offsets : GLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9457
9458   // END GL 4.4
9459
9460
9461   // GL_ARB_texture_view
9462   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}
9463
9464   // GL_ARB_vertex_attrib_binding
9465   TglBindVertexBuffer = procedure(bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9466   TglVertexAttribFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9467   TglVertexAttribIFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9468   TglVertexAttribLFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9469   TglVertexAttribBinding = procedure(attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9470   TglVertexBindingDivisor = procedure(bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9471   TglVertexArrayBindVertexBufferEXT = procedure(vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9472   TglVertexArrayVertexAttribFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9473   TglVertexArrayVertexAttribIFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9474   TglVertexArrayVertexAttribLFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9475   TglVertexArrayVertexAttribBindingEXT = procedure(vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9476   TglVertexArrayVertexBindingDivisorEXT = procedure(vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9477
9478   // GL_ARB_robustness_isolation
9479
9480   //
9481
9482   // GL_ARB_cl_event
9483   TglCreateSyncFromCLeventARB = function(context: p_cl_context; event: p_cl_event; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9484
9485   // GL_ARB_debug_output
9486   TglDebugMessageControlARB = procedure(source: GLenum; type_: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9487   TglDebugMessageInsertARB = procedure(source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9488   TglDebugMessageCallbackARB = procedure(callback: TglDebugProcARB; const userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9489   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}
9490
9491   // GL_ARB_robustness
9492   TglGetGraphicsResetStatusARB = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9493   TglGetnMapdvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9494   TglGetnMapfvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9495   TglGetnMapivARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9496   TglGetnPixelMapfvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9497   TglGetnPixelMapuivARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9498   TglGetnPixelMapusvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9499   TglGetnPolygonStippleARB = procedure(bufSize: GLsizei; pattern: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9500   TglGetnColorTableARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9501   TglGetnConvolutionFilterARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9502   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}
9503   TglGetnHistogramARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9504   TglGetnMinmaxARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9505   TglGetnTexImageARB = procedure(target: GLenum; level: GLint; format: GLenum; type_: GLenum; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9506   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}
9507   TglGetnCompressedTexImageARB = procedure(target: GLenum; lod: GLint; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9508   TglGetnUniformfvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9509   TglGetnUniformivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9510   TglGetnUniformuivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9511   TglGetnUniformdvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9512
9513   // GL_ATI_draw_buffers
9514   TglDrawBuffersATI = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9515
9516   // GL_ATI_element_array
9517   TglElementPointerATI = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9518   TglDrawElementArrayATI = procedure(mode: GLenum; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9519   TglDrawRangeElementArrayATI = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9520
9521   // GL_ATI_envmap_bumpmap
9522   TglTexBumpParameterivATI = procedure(pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9523   TglTexBumpParameterfvATI = procedure(pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9524   TglGetTexBumpParameterivATI = procedure(pname: GLenum; param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9525   TglGetTexBumpParameterfvATI = procedure(pname: GLenum; param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9526
9527   // GL_ATI_fragment_shader
9528   TglGenFragmentShadersATI = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9529   TglBindFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9530   TglDeleteFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9531   TglBeginFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9532   TglEndFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9533   TglPassTexCoordATI = procedure(dst: GLuint; coord: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9534   TglSampleMapATI = procedure(dst: GLuint; interp: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9535   TglColorFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9536   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}
9537   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}
9538   TglAlphaFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9539   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}
9540   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}
9541   TglSetFragmentShaderConstantATI = procedure(dst: GLuint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9542
9543   // GL_ATI_map_object_buffer
9544   TglMapObjectBufferATI = function(buffer: GLuint): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9545   TglUnmapObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9546
9547   // GL_ATI_pn_triangles
9548   TglPNTrianglesiATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9549   TglPNTrianglesfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9550
9551   // GL_ATI_separate_stencil
9552   TglStencilOpSeparateATI = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9553   TglStencilFuncSeparateATI = procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9554
9555   // GL_ATI_vertex_array_object
9556   TglNewObjectBufferATI = function(size: GLsizei; const _pointer: PGLvoid; usage: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9557   TglIsObjectBufferATI = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9558   TglUpdateObjectBufferATI = procedure(buffer: GLuint; offset: GLuint; size: GLsizei; const _pointer: PGLvoid; preserve: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9559   TglGetObjectBufferfvATI = procedure(buffer: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9560   TglGetObjectBufferivATI = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9561   TglFreeObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9562   TglArrayObjectATI = procedure(_array: GLenum; size: GLint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9563   TglGetArrayObjectfvATI = procedure(_array: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9564   TglGetArrayObjectivATI = procedure(_array: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9565   TglVariantArrayObjectATI = procedure(id: GLuint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9566   TglGetVariantArrayObjectfvATI = procedure(id: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9567   TglGetVariantArrayObjectivATI = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9568
9569   // GL_ATI_vertex_attrib_array_object
9570   TglVertexAttribArrayObjectATI = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9571   TglGetVertexAttribArrayObjectfvATI = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9572   TglGetVertexAttribArrayObjectivATI = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9573
9574   // GL_ATI_vertex_streams
9575   TglVertexStream1sATI = procedure(stream: GLenum; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9576   TglVertexStream1svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9577   TglVertexStream1iATI = procedure(stream: GLenum; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9578   TglVertexStream1ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9579   TglVertexStream1fATI = procedure(stream: GLenum; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9580   TglVertexStream1fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9581   TglVertexStream1dATI = procedure(stream: GLenum; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9582   TglVertexStream1dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9583   TglVertexStream2sATI = procedure(stream: GLenum; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9584   TglVertexStream2svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9585   TglVertexStream2iATI = procedure(stream: GLenum; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9586   TglVertexStream2ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9587   TglVertexStream2fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9588   TglVertexStream2fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9589   TglVertexStream2dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9590   TglVertexStream2dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9591   TglVertexStream3sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9592   TglVertexStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9593   TglVertexStream3iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9594   TglVertexStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9595   TglVertexStream3fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9596   TglVertexStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9597   TglVertexStream3dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9598   TglVertexStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9599   TglVertexStream4sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9600   TglVertexStream4svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9601   TglVertexStream4iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9602   TglVertexStream4ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9603   TglVertexStream4fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9604   TglVertexStream4fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9605   TglVertexStream4dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9606   TglVertexStream4dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9607   TglNormalStream3bATI = procedure(stream: GLenum; nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9608   TglNormalStream3bvATI = procedure(stream: GLenum; const coords: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9609   TglNormalStream3sATI = procedure(stream: GLenum; nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9610   TglNormalStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9611   TglNormalStream3iATI = procedure(stream: GLenum; nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9612   TglNormalStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9613   TglNormalStream3fATI = procedure(stream: GLenum; nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9614   TglNormalStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9615   TglNormalStream3dATI = procedure(stream: GLenum; nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9616   TglNormalStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9617   TglClientActiveVertexStreamATI = procedure(stream: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9618   TglVertexBlendEnviATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9619   TglVertexBlendEnvfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9620
9621   // GL_AMD_performance_monitor
9622   TglGetPerfMonitorGroupsAMD = procedure(numGroups: PGLint; groupsSize: GLsizei; groups: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9623   TglGetPerfMonitorCountersAMD = procedure(group: GLuint; numCounters: PGLint; maxActiveCouters: PGLint; counterSize: GLsizei; counters: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9624   TglGetPerfMonitorGroupStringAMD = procedure(group: GLuint; bufSize: GLsizei; length: PGLsizei; groupString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9625   TglGetPerfMonitorCounterStringAMD = procedure(group: GLuint; counter: GLuint; bufSize: GLsizei; length: PGLsizei; counterString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9626   TglGetPerfMonitorCounterInfoAMD = procedure(group: GLuint; counter: GLuint; pname: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9627   TglGenPerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9628   TglDeletePerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9629   TglSelectPerfMonitorCountersAMD = procedure(monitor: GLuint; enable: GLboolean; group: GLuint; numCounters: GLint; counterList: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9630   TglBeginPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9631   TglEndPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9632   TglGetPerfMonitorCounterDataAMD = procedure(monitor: GLuint; pname: GLenum; dataSize: GLsizei; data: PGLuint; bytesWritten: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9633
9634   // GL_AMD_vertex_shader_tesselator
9635   TglTessellationFactorAMD = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9636   TglTessellationModeAMD = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9637
9638   // GL_AMD_draw_buffers_blend
9639   TglBlendFuncIndexedAMD = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9640   TglBlendFuncSeparateIndexedAMD = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9641   TglBlendEquationIndexedAMD = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9642   TglBlendEquationSeparateIndexedAMD = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9643
9644   // GL_AMD_name_gen_delete
9645   TglGenNamesAMD = procedure(identifier: GLenum; num: GLuint; names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9646   TglDeleteNamesAMD = procedure(identifier: GLenum; num: GLuint; const names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9647   TglIsNameAMD = function(identifier: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9648
9649   // GL_AMD_debug_output
9650   TglDebugMessageEnableAMD = procedure(category: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9651   TglDebugMessageInsertAMD = procedure(category: GLenum; severity: GLenum; id: GLuint; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9652   TglDebugMessageCallbackAMD = procedure(callback: TGLDebugProcAMD; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9653   TglGetDebugMessageLogAMD = function(count: GLuint; bufsize: GLsizei; categories: PGLenum; severities: PGLuint; ids: PGLuint; lengths: PGLsizei; message: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9654
9655   // GL_EXT_blend_color
9656   TglBlendColorEXT = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9657
9658   // GL_EXT_blend_func_separate
9659   TglBlendFuncSeparateEXT = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9660
9661   // GL_EXT_blend_minmax
9662   TglBlendEquationEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9663
9664   // GL_EXT_color_subtable
9665   TglColorSubTableEXT = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9666   TglCopyColorSubTableEXT = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9667
9668   // GL_EXT_compiled_vertex_array
9669   TglLockArraysEXT = procedure(first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9670   TglUnlockArraysEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9671
9672   // GL_EXT_convolution
9673   TglConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9674   TglConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9675   TglConvolutionParameterfEXT = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9676   TglConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9677   TglConvolutionParameteriEXT = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9678   TglConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9679   TglCopyConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9680   TglCopyConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9681   TglGetConvolutionFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9682   TglGetConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9683   TglGetConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9684   TglGetSeparableFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9685   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}
9686
9687   // GL_EXT_coordinate_frame
9688   TglTangent3bEXT = procedure(tx: GLbyte; ty: GLbyte; tz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9689   TglTangent3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9690   TglTangent3dEXT = procedure(tx: GLdouble; ty: GLdouble; tz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9691   TglTangent3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9692   TglTangent3fEXT = procedure(tx: GLfloat; ty: GLfloat; tz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9693   TglTangent3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9694   TglTangent3iEXT = procedure(tx: GLint; ty: GLint; tz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9695   TglTangent3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9696   TglTangent3sEXT = procedure(tx: GLshort; ty: GLshort; tz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9697   TglTangent3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9698   TglBinormal3bEXT = procedure(bx: GLbyte; by: GLbyte; bz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9699   TglBinormal3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9700   TglBinormal3dEXT = procedure(bx: GLdouble; by: GLdouble; bz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9701   TglBinormal3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9702   TglBinormal3fEXT = procedure(bx: GLfloat; by: GLfloat; bz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9703   TglBinormal3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9704   TglBinormal3iEXT = procedure(bx: GLint; by: GLint; bz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9705   TglBinormal3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9706   TglBinormal3sEXT = procedure(bx: GLshort; by: GLshort; bz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9707   TglBinormal3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9708   TglTangentPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9709   TglBinormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9710
9711   // GL_EXT_copy_texture
9712   TglCopyTexImage1DEXT = procedure(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9713   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}
9714   TglCopyTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9715   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}
9716   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}
9717
9718   // GL_EXT_cull_vertex
9719   TglCullParameterdvEXT = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9720   TglCullParameterfvEXT = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9721
9722   // GL_EXT_draw_range_elements
9723   TglDrawRangeElementsEXT = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9724
9725   // GL_EXT_fog_coord
9726   TglFogCoordfEXT = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9727   TglFogCoordfvEXT = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9728   TglFogCoorddEXT = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9729   TglFogCoorddvEXT = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9730   TglFogCoordPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9731
9732   // GL_EXT_framebuffer_object
9733   TglIsRenderbufferEXT = function(renderbuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9734   TglBindRenderbufferEXT = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9735   TglDeleteRenderbuffersEXT = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9736   TglGenRenderbuffersEXT = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9737   TglRenderbufferStorageEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9738   TglGetRenderbufferParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9739   TglIsFramebufferEXT = function(framebuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9740   TglBindFramebufferEXT = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9741   TglDeleteFramebuffersEXT = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9742   TglGenFramebuffersEXT = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9743   TglCheckFramebufferStatusEXT = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9744   TglFramebufferTexture1DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9745   TglFramebufferTexture2DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9746   TglFramebufferTexture3DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9747   TglFramebufferRenderbufferEXT = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9748   TglGetFramebufferAttachmentParameterivEXT = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9749   TglGenerateMipmapEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9750
9751   // GL_EXT_histogram
9752   TglGetHistogramEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9753   TglGetHistogramParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9754   TglGetHistogramParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9755   TglGetMinmaxEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9756   TglGetMinmaxParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9757   TglGetMinmaxParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9758   TglHistogramEXT = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9759   TglMinmaxEXT = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9760   TglResetHistogramEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9761   TglResetMinmaxEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9762
9763   // GL_EXT_index_func
9764   TglIndexFuncEXT = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9765
9766   // GL_EXT_index_material
9767   TglIndexMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9768
9769   // GL_EXT_light_texture
9770   TglApplyTextureEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9771   TglTextureLightEXT = procedure(pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9772   TglTextureMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9773
9774   // GL_EXT_multi_draw_arrays
9775   TglMultiDrawArraysEXT = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9776   TglMultiDrawElementsEXT = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9777
9778   // GL_EXT_multisample
9779   TglSampleMaskEXT = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9780   TglSamplePatternEXT = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9781
9782   // GL_EXT_paletted_texture
9783   TglColorTableEXT = procedure(target: GLenum; internalFormat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9784   TglGetColorTableEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9785   TglGetColorTableParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9786   TglGetColorTableParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9787
9788   // GL_EXT_pixel_transform
9789   TglPixelTransformParameteriEXT = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9790   TglPixelTransformParameterfEXT = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9791   TglPixelTransformParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9792   TglPixelTransformParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9793
9794   // GL_EXT_point_parameters
9795   TglPointParameterfEXT = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9796   TglPointParameterfvEXT = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9797
9798   // GL_EXT_polygon_offset
9799   TglPolygonOffsetEXT = procedure(factor: GLfloat; bias: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9800
9801   // GL_EXT_secondary_color
9802   TglSecondaryColor3bEXT = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9803   TglSecondaryColor3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9804   TglSecondaryColor3dEXT = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9805   TglSecondaryColor3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9806   TglSecondaryColor3fEXT = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9807   TglSecondaryColor3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9808   TglSecondaryColor3iEXT = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9809   TglSecondaryColor3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9810   TglSecondaryColor3sEXT = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9811   TglSecondaryColor3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9812   TglSecondaryColor3ubEXT = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9813   TglSecondaryColor3ubvEXT = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9814   TglSecondaryColor3uiEXT = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9815   TglSecondaryColor3uivEXT = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9816   TglSecondaryColor3usEXT = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9817   TglSecondaryColor3usvEXT = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9818   TglSecondaryColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9819
9820   // GL_EXT_stencil_two_side
9821   TglActiveStencilFaceEXT = procedure(face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9822
9823   // GL_EXT_subtexture
9824   TglTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9825   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}
9826
9827   // GL_EXT_texture3D
9828   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}
9829   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}
9830
9831   // GL_EXT_texture_object
9832   TglAreTexturesResidentEXT = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9833   TglBindTextureEXT = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9834   TglDeleteTexturesEXT = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9835   TglGenTexturesEXT = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9836   TglIsTextureEXT = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9837   TglPrioritizeTexturesEXT = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9838
9839   // GL_EXT_texture_perturb_normal
9840   TglTextureNormalEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9841
9842   // GL_EXT_vertex_array
9843   TglArrayElementEXT = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9844   TglColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9845   TglDrawArraysEXT = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9846   TglEdgeFlagPointerEXT = procedure(stride: GLsizei; count: GLsizei; const _pointer: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9847   TglGetPointervEXT = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9848   TglIndexPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9849   TglNormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9850   TglTexCoordPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9851   TglVertexPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9852
9853   // GL_EXT_vertex_shader
9854   TglBeginVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9855   TglEndVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9856   TglBindVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9857   TglGenVertexShadersEXT = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9858   TglDeleteVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9859   TglShaderOp1EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9860   TglShaderOp2EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9861   TglShaderOp3EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint; arg3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9862   TglSwizzleEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9863   TglWriteMaskEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9864   TglInsertComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9865   TglExtractComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9866   TglGenSymbolsEXT = function(datatype: GLenum; storagetype: GLenum; range: GLenum; components: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9867   TglSetInvariantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9868   TglSetLocalConstantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9869   TglVariantbvEXT = procedure(id: GLuint; const addr: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9870   TglVariantsvEXT = procedure(id: GLuint; const addr: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9871   TglVariantivEXT = procedure(id: GLuint; const addr: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9872   TglVariantfvEXT = procedure(id: GLuint; const addr: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9873   TglVariantdvEXT = procedure(id: GLuint; const addr: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9874   TglVariantubvEXT = procedure(id: GLuint; const addr: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9875   TglVariantusvEXT = procedure(id: GLuint; const addr: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9876   TglVariantuivEXT = procedure(id: GLuint; const addr: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9877   TglVariantPointerEXT = procedure(id: GLuint; _type: GLenum; stride: GLuint; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9878   TglEnableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9879   TglDisableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9880   TglBindLightParameterEXT = function(light: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9881   TglBindMaterialParameterEXT = function(face: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9882   TglBindTexGenParameterEXT = function(_unit: GLenum; coord: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9883   TglBindTextureUnitParameterEXT = function(_unit: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9884   TglBindParameterEXT = function(value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9885   TglIsVariantEnabledEXT = function(id: GLuint; cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9886   TglGetVariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9887   TglGetVariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9888   TglGetVariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9889   TglGetVariantPointervEXT = procedure(id: GLuint; value: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9890   TglGetInvariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9891   TglGetInvariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9892   TglGetInvariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9893   TglGetLocalConstantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9894   TglGetLocalConstantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9895   TglGetLocalConstantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9896
9897   // GL_EXT_vertex_weighting
9898   TglVertexWeightfEXT = procedure(weight: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9899   TglVertexWeightfvEXT = procedure(const weight: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9900   TglVertexWeightPointerEXT = procedure(size: GLsizei; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9901
9902   // GL_EXT_stencil_clear_tag
9903   TglStencilClearTagEXT = procedure(stencilTagBits: GLsizei; stencilClearTag: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9904
9905   // GL_EXT_framebuffer_blit
9906   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}
9907
9908   // GL_EXT_framebuffer_multisample
9909   TglRenderbufferStorageMultisampleEXT = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9910
9911   // GL_EXT_timer_query
9912   TglGetQueryObjecti64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9913   TglGetQueryObjectui64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9914
9915   // GL_EXT_gpu_program_parameters
9916   TglProgramEnvParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9917   TglProgramLocalParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9918
9919   // GL_EXT_bindable_uniform
9920   TglUniformBufferEXT = procedure(_program: GLuint; location: GLint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9921   TglGetUniformBufferSizeEXT = function(_program: GLuint; location: GLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9922   TglGetUniformOffsetEXT = function(_program: GLuint; location: GLint): GLintptr; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9923
9924   // GL_EXT_draw_buffers2
9925   TglColorMaskIndexedEXT = procedure(buf: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9926   TglGetBooleanIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9927   TglGetIntegerIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9928   TglEnableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9929   TglDisableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9930   TglIsEnabledIndexedEXT = function(target: GLenum; index: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9931
9932   // GL_EXT_draw_instanced
9933   TglDrawArraysInstancedEXT = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9934   TglDrawElementsInstancedEXT = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: Pointer; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9935
9936   // GL_EXT_geometry_shader4
9937   TglProgramParameteriEXT = procedure (_program: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9938   TglFramebufferTextureEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9939 //  TglFramebufferTextureLayerEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9940   TglFramebufferTextureFaceEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9941
9942   // GL_EXT_gpu_shader4
9943   TglVertexAttribI1iEXT = procedure(index: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9944   TglVertexAttribI2iEXT = procedure(index: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9945   TglVertexAttribI3iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9946   TglVertexAttribI4iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9947   TglVertexAttribI1uiEXT = procedure(index: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9948   TglVertexAttribI2uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9949   TglVertexAttribI3uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9950   TglVertexAttribI4uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9951   TglVertexAttribI1ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9952   TglVertexAttribI2ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9953   TglVertexAttribI3ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9954   TglVertexAttribI4ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9955   TglVertexAttribI1uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9956   TglVertexAttribI2uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9957   TglVertexAttribI3uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9958   TglVertexAttribI4uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9959   TglVertexAttribI4bvEXT = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9960   TglVertexAttribI4svEXT = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9961   TglVertexAttribI4ubvEXT = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9962   TglVertexAttribI4usvEXT = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9963   TglVertexAttribIPointerEXT = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const _pointer: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9964   TglGetVertexAttribIivEXT = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9965   TglGetVertexAttribIuivEXT = procedure(index: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9966   TglUniform1uiEXT = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9967   TglUniform2uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9968   TglUniform3uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9969   TglUniform4uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9970   TglUniform1uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9971   TglUniform2uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9972   TglUniform3uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9973   TglUniform4uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9974   TglGetUniformuivEXT = procedure(_program: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9975   TglBindFragDataLocationEXT = procedure(_program: GLuint; colorNumber: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9976   TglGetFragDataLocationEXT = function(_program: GLuint; const name: PGLchar): GLint;
9977
9978   // GL_EXT_texture_array
9979   TglFramebufferTextureLayerEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9980
9981   // GL_EXT_texture_buffer_object
9982   TglTexBufferEXT = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9983
9984   // GL_EXT_texture_integer
9985   TglClearColorIiEXT = procedure(r: GLint; g: GLint; b: GLint; a: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9986   TglClearColorIuiEXT = procedure(r: GLuint; g: GLuint; b: GLuint; a: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9987   TglTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9988   TglTexParameterIuivEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9989   TglGetTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9990   TglGetTexParameterIiuvEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9991
9992   // GL_HP_image_transform
9993   TglImageTransformParameteriHP = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9994   TglImageTransformParameterfHP = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9995   TglImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9996   TglImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9997   TglGetImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9998   TglGetImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9999
10000   // GL_EXT_depth_bounds_test
10001   TglDepthBoundsEXT = procedure(zmin: GLclampd; zmax: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10002
10003   // GL_EXT_blend_equation_separate
10004   TglBlendEquationSeparateEXT = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10005
10006   // GL_EXT_transform_feedback
10007   TglBeginTransformFeedbackEXT = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10008   TglEndTransformFeedbackEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10009   TglBindBufferRangeEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10010   TglBindBufferOffsetEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10011   TglBindBufferBaseEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10012   TglTransformFeedbackVaryingsEXT = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10013   TglGetTransformFeedbackVaryingEXT = procedure(program_: GLuint; index_: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10014
10015   // GL_EXT_direct_state_access
10016   TglClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10017   TglPushClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10018   TglMatrixLoadfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10019   TglMatrixLoaddEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10020   TglMatrixMultfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10021   TglMatrixMultdEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10022   TglMatrixLoadIdentityEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10023   TglMatrixRotatefEXT = procedure(mode: GLenum; angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10024   TglMatrixRotatedEXT = procedure(mode: GLenum; angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10025   TglMatrixScalefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10026   TglMatrixScaledEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10027   TglMatrixTranslatefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10028   TglMatrixTranslatedEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10029   TglMatrixFrustumEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10030   TglMatrixOrthoEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10031   TglMatrixPopEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10032   TglMatrixPushEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10033   TglMatrixLoadTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10034   TglMatrixLoadTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10035   TglMatrixMultTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10036   TglMatrixMultTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10037   TglTextureParameterfEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10038   TglTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10039   TglTextureParameteriEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10040   TglTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10041   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}
10042   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}
10043   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}
10044   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}
10045   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}
10046   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}
10047   TglCopyTextureSubImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10048   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}
10049   TglGetTextureImageEXT = procedure(texture: GLuint; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10050   TglGetTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10051   TglGetTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10052   TglGetTextureLevelParameterfvEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10053   TglGetTextureLevelParameterivEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10054   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}
10055   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}
10056   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}
10057   TglMultiTexParameterfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10058   TglMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10059   TglMultiTexParameteriEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10060   TglMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10061   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}
10062   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}
10063   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}
10064   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}
10065   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}
10066   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}
10067   TglCopyMultiTexSubImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10068   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}
10069   TglGetMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10070   TglGetMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10071   TglGetMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10072   TglGetMultiTexLevelParameterfvEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10073   TglGetMultiTexLevelParameterivEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10074   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}
10075   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}
10076   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}
10077   TglBindMultiTextureEXT = procedure(texunit: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10078   TglEnableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10079   TglDisableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10080   TglMultiTexCoordPointerEXT = procedure(texunit: GLenum; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10081   TglMultiTexEnvfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10082   TglMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10083   TglMultiTexEnviEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10084   TglMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10085   TglMultiTexGendEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10086   TglMultiTexGendvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10087   TglMultiTexGenfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10088   TglMultiTexGenfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10089   TglMultiTexGeniEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10090   TglMultiTexGenivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10091   TglGetMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10092   TglGetMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10093   TglGetMultiTexGendvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10094   TglGetMultiTexGenfvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10095   TglGetMultiTexGenivEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10096   TglGetFloatIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10097   TglGetDoubleIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10098   TglGetPointerIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10099   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}
10100   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}
10101   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}
10102   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}
10103   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}
10104   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}
10105   TglGetCompressedTextureImageEXT = procedure(texture: GLuint; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10106   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}
10107   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}
10108   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}
10109   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}
10110   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}
10111   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}
10112   TglGetCompressedMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10113   TglNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; format: GLenum; len: GLsizei; const string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10114   TglNamedProgramLocalParameter4dEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10115   TglNamedProgramLocalParameter4dvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10116   TglNamedProgramLocalParameter4fEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10117   TglNamedProgramLocalParameter4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10118   TglGetNamedProgramLocalParameterdvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10119   TglGetNamedProgramLocalParameterfvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10120   TglGetNamedProgramivEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10121   TglGetNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10122   TglNamedProgramLocalParameters4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10123   TglNamedProgramLocalParameterI4iEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10124   TglNamedProgramLocalParameterI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10125   TglNamedProgramLocalParametersI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10126   TglNamedProgramLocalParameterI4uiEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10127   TglNamedProgramLocalParameterI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10128   TglNamedProgramLocalParametersI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10129   TglGetNamedProgramLocalParameterIivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10130   TglGetNamedProgramLocalParameterIuivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10131   TglTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10132   TglTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10133   TglGetTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10134   TglGetTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10135   TglMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10136   TglMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10137   TglGetMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10138   TglGetMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10139   TglProgramUniform1fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10140   TglProgramUniform2fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10141   TglProgramUniform3fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10142   TglProgramUniform4fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10143   TglProgramUniform1iEXT = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10144   TglProgramUniform2iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10145   TglProgramUniform3iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10146   TglProgramUniform4iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10147   TglProgramUniform1fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10148   TglProgramUniform2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10149   TglProgramUniform3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10150   TglProgramUniform4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10151   TglProgramUniform1ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10152   TglProgramUniform2ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10153   TglProgramUniform3ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10154   TglProgramUniform4ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10155   TglProgramUniformMatrix2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10156   TglProgramUniformMatrix3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10157   TglProgramUniformMatrix4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10158   TglProgramUniformMatrix2x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10159   TglProgramUniformMatrix3x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10160   TglProgramUniformMatrix2x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10161   TglProgramUniformMatrix4x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10162   TglProgramUniformMatrix3x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10163   TglProgramUniformMatrix4x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10164   TglProgramUniform1uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10165   TglProgramUniform2uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10166   TglProgramUniform3uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10167   TglProgramUniform4uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10168   TglProgramUniform1uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10169   TglProgramUniform2uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10170   TglProgramUniform3uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10171   TglProgramUniform4uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10172   TglNamedBufferDataEXT = procedure(buffer: GLuint; size: GLsizei; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10173   TglNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10174   TglMapNamedBufferEXT = function(buffer: GLuint; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10175   TglUnmapNamedBufferEXT = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10176   TglMapNamedBufferRangeEXT = function(buffer: GLuint; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10177   TglFlushMappedNamedBufferRangeEXT = procedure(buffer: GLuint; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10178   TglNamedCopyBufferSubDataEXT = procedure(readBuffer: GLuint; writeBuffer: GLuint; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10179   TglGetNamedBufferParameterivEXT = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10180   TglGetNamedBufferPointervEXT = procedure(buffer: GLuint; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10181   TglGetNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10182   TglTextureBufferEXT = procedure(texture: GLuint; target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10183   TglMultiTexBufferEXT = procedure(texunit: GLenum; target: GLenum; interformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10184   TglNamedRenderbufferStorageEXT = procedure(renderbuffer: GLuint; interformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10185   TglGetNamedRenderbufferParameterivEXT = procedure(renderbuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10186   TglCheckNamedFramebufferStatusEXT = function(framebuffer: GLuint; target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10187   TglNamedFramebufferTexture1DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10188   TglNamedFramebufferTexture2DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10189   TglNamedFramebufferTexture3DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10190   TglNamedFramebufferRenderbufferEXT = procedure(framebuffer: GLuint; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10191   TglGetNamedFramebufferAttachmentParameterivEXT = procedure(framebuffer: GLuint; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10192   TglGenerateTextureMipmapEXT = procedure(texture: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10193   TglGenerateMultiTexMipmapEXT = procedure(texunit: GLenum; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10194   TglFramebufferDrawBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10195   TglFramebufferDrawBuffersEXT = procedure(framebuffer: GLuint; n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10196   TglFramebufferReadBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10197   TglGetFramebufferParameterivEXT = procedure(framebuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10198   TglNamedRenderbufferStorageMultisampleEXT = procedure(renderbuffer: GLuint; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10199   TglNamedRenderbufferStorageMultisampleCoverageEXT = procedure(renderbuffer: GLuint; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10200   TglNamedFramebufferTextureEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10201   TglNamedFramebufferTextureLayerEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10202   TglNamedFramebufferTextureFaceEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10203   TglTextureRenderbufferEXT = procedure(texture: GLuint; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10204   TglMultiTexRenderbufferEXT = procedure(texunit: GLenum; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10205   TglProgramUniform1dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10206   TglProgramUniform2dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10207   TglProgramUniform3dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10208   TglProgramUniform4dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10209   TglProgramUniform1dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10210   TglProgramUniform2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10211   TglProgramUniform3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10212   TglProgramUniform4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10213   TglProgramUniformMatrix2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10214   TglProgramUniformMatrix3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10215   TglProgramUniformMatrix4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10216   TglProgramUniformMatrix2x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10217   TglProgramUniformMatrix2x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10218   TglProgramUniformMatrix3x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10219   TglProgramUniformMatrix3x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10220   TglProgramUniformMatrix4x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10221   TglProgramUniformMatrix4x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10222
10223   // GL_EXT_separate_shader_objects
10224   TglUseShaderProgramEXT = procedure(_type: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10225   TglActiveProgramEXT = procedure(_program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10226   TglCreateShaderProgramEXT = function(_type: GLenum; const _string: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10227
10228   // GL_EXT_shader_image_load_store
10229   TglBindImageTextureEXT = procedure(index: GLuint; texture: GLuint; level: GLint; layered: GLboolean; layer: GLint; access: GLenum; format: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10230   TglMemoryBarrierEXT = procedure(barriers: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10231
10232   // GL_EXT_vertex_attrib_64bit
10233   TglVertexAttribL1dEXT = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10234   TglVertexAttribL2dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10235   TglVertexAttribL3dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10236   TglVertexAttribL4dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10237   TglVertexAttribL1dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10238   TglVertexAttribL2dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10239   TglVertexAttribL3dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10240   TglVertexAttribL4dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10241   TglVertexAttribLPointerEXT = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10242   TglGetVertexAttribLdvEXT = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10243   TglVertexArrayVertexAttribLOffsetEXT = procedure(vaobj: GLuint; buffer: GLuint; index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10244
10245   // GL_IBM_multimode_draw_arrays
10246   TglMultiModeDrawArraysIBM = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10247   TglMultiModeDrawElementsIBM = procedure(const mode: PGLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10248
10249   // GL_IBM_vertex_array_lists
10250   TglColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10251   TglSecondaryColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10252   TglEdgeFlagPointerListIBM = procedure(stride: GLint; const _pointer: PGLboolean; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10253   TglFogCoordPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10254   TglIndexPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10255   TglNormalPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10256   TglTexCoordPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10257   TglVertexPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10258
10259   // GL_INGR_blend_func_separate
10260   TglBlendFuncSeparateINGR = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10261
10262   // GL_INTEL_parallel_arrays
10263   TglVertexPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10264   TglNormalPointervINTEL = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10265   TglColorPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10266   TglTexCoordPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10267
10268   // GL_MESA_resize_buffers
10269   TglResizeBuffersMESA = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10270
10271   // GL_MESA_window_pos
10272   TglWindowPos2dMESA = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10273   TglWindowPos2dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10274   TglWindowPos2fMESA = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10275   TglWindowPos2fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10276   TglWindowPos2iMESA = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10277   TglWindowPos2ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10278   TglWindowPos2sMESA = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10279   TglWindowPos2svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10280   TglWindowPos3dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10281   TglWindowPos3dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10282   TglWindowPos3fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10283   TglWindowPos3fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10284   TglWindowPos3iMESA = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10285   TglWindowPos3ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10286   TglWindowPos3sMESA = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10287   TglWindowPos3svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10288   TglWindowPos4dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10289   TglWindowPos4dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10290   TglWindowPos4fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10291   TglWindowPos4fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10292   TglWindowPos4iMESA = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10293   TglWindowPos4ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10294   TglWindowPos4sMESA = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10295   TglWindowPos4svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10296
10297   // GL_NV_evaluators
10298   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}
10299   TglMapParameterivNV = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10300   TglMapParameterfvNV = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10301   TglGetMapControlPointsNV = procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; _packed: GLboolean; points: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10302   TglGetMapParameterivNV = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10303   TglGetMapParameterfvNV = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10304   TglGetMapAttribParameterivNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10305   TglGetMapAttribParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10306   TglEvalMapsNV = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10307
10308   // GL_NV_fence
10309   TglDeleteFencesNV = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10310   TglGenFencesNV = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10311   TglIsFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10312   TglTestFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10313   TglGetFenceivNV = procedure(fence: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10314   TglFinishFenceNV = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10315   TglSetFenceNV = procedure(fence: GLuint; condition: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10316
10317   // GL_NV_fragment_program
10318   TglProgramNamedParameter4fNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10319   TglProgramNamedParameter4dNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10320   TglProgramNamedParameter4fvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10321   TglProgramNamedParameter4dvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10322   TglGetProgramNamedParameterfvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10323   TglGetProgramNamedParameterdvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10324
10325   // GL_NV_half_float
10326   TglVertex2hNV = procedure(x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10327   TglVertex2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10328   TglVertex3hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10329   TglVertex3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10330   TglVertex4hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10331   TglVertex4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10332   TglNormal3hNV = procedure(nx: GLhalfNV; ny: GLhalfNV; nz: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10333   TglNormal3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10334   TglColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10335   TglColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10336   TglColor4hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV; alpha: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10337   TglColor4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10338   TglTexCoord1hNV = procedure(s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10339   TglTexCoord1hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10340   TglTexCoord2hNV = procedure(s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10341   TglTexCoord2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10342   TglTexCoord3hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10343   TglTexCoord3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10344   TglTexCoord4hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10345   TglTexCoord4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10346   TglMultiTexCoord1hNV = procedure(target: GLenum; s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10347   TglMultiTexCoord1hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10348   TglMultiTexCoord2hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10349   TglMultiTexCoord2hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10350   TglMultiTexCoord3hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10351   TglMultiTexCoord3hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10352   TglMultiTexCoord4hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10353   TglMultiTexCoord4hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10354   TglFogCoordhNV = procedure(fog: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10355   TglFogCoordhvNV = procedure(const fog: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10356   TglSecondaryColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10357   TglSecondaryColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10358   TglVertexWeighthNV = procedure(weight: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10359   TglVertexWeighthvNV = procedure(const weight: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10360   TglVertexAttrib1hNV = procedure(index: GLuint; x: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10361   TglVertexAttrib1hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10362   TglVertexAttrib2hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10363   TglVertexAttrib2hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10364   TglVertexAttrib3hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10365   TglVertexAttrib3hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10366   TglVertexAttrib4hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10367   TglVertexAttrib4hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10368   TglVertexAttribs1hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10369   TglVertexAttribs2hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10370   TglVertexAttribs3hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10371   TglVertexAttribs4hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10372
10373   // GL_NV_occlusion_query
10374   TglGenOcclusionQueriesNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10375   TglDeleteOcclusionQueriesNV = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10376   TglIsOcclusionQueryNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10377   TglBeginOcclusionQueryNV = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10378   TglEndOcclusionQueryNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10379   TglGetOcclusionQueryivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10380   TglGetOcclusionQueryuivNV = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10381
10382   // GL_NV_pixel_data_range
10383   TglPixelDataRangeNV = procedure(target: GLenum; length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10384   TglFlushPixelDataRangeNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10385
10386   // GL_NV_point_sprite
10387   TglPointParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10388   TglPointParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10389
10390   // GL_NV_primitive_restart
10391   TglPrimitiveRestartNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10392   TglPrimitiveRestartIndexNV = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10393
10394   // GL_NV_register_combiners
10395   TglCombinerParameterfvNV = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10396   TglCombinerParameterfNV = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10397   TglCombinerParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10398   TglCombinerParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10399   TglCombinerInputNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10400   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}
10401   TglFinalCombinerInputNV = procedure(variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10402   TglGetCombinerInputParameterfvNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10403   TglGetCombinerInputParameterivNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10404   TglGetCombinerOutputParameterfvNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10405   TglGetCombinerOutputParameterivNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10406   TglGetFinalCombinerInputParameterfvNV = procedure(variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10407   TglGetFinalCombinerInputParameterivNV = procedure(variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10408
10409   // GL_NV_register_combiners2
10410   TglCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10411   TglGetCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10412
10413   // GL_NV_vertex_array_range
10414   TglFlushVertexArrayRangeNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10415   TglVertexArrayRangeNV = procedure(length: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10416
10417   // GL_NV_vertex_program
10418   TglAreProgramsResidentNV = function(n: GLsizei; const programs: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10419   TglBindProgramNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10420   TglDeleteProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10421   TglExecuteProgramNV = procedure(target: GLenum; id: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10422   TglGenProgramsNV = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10423   TglGetProgramParameterdvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10424   TglGetProgramParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10425   TglGetProgramivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10426   TglGetProgramStringNV = procedure(id: GLuint; pname: GLenum; _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10427   TglGetTrackMatrixivNV = procedure(target: GLenum; address: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10428   TglGetVertexAttribdvNV = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10429   TglGetVertexAttribfvNV = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10430   TglGetVertexAttribivNV = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10431   TglGetVertexAttribPointervNV = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10432   TglIsProgramNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10433   TglLoadProgramNV = procedure(target: GLenum; id: GLuint; len: GLsizei; const _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10434   TglProgramParameter4dNV = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10435   TglProgramParameter4dvNV = procedure(target: GLenum; index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10436   TglProgramParameter4fNV = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10437   TglProgramParameter4fvNV = procedure(target: GLenum; index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10438   TglProgramParameters4dvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10439   TglProgramParameters4fvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10440   TglRequestResidentProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10441   TglTrackMatrixNV = procedure(target: GLenum; address: GLuint; matrix: GLenum; transform: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10442   TglVertexAttribPointerNV = procedure(index: GLuint; fsize: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10443   TglVertexAttrib1dNV = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10444   TglVertexAttrib1dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10445   TglVertexAttrib1fNV = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10446   TglVertexAttrib1fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10447   TglVertexAttrib1sNV = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10448   TglVertexAttrib1svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10449   TglVertexAttrib2dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10450   TglVertexAttrib2dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10451   TglVertexAttrib2fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10452   TglVertexAttrib2fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10453   TglVertexAttrib2sNV = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10454   TglVertexAttrib2svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10455   TglVertexAttrib3dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10456   TglVertexAttrib3dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10457   TglVertexAttrib3fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10458   TglVertexAttrib3fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10459   TglVertexAttrib3sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10460   TglVertexAttrib3svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10461   TglVertexAttrib4dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10462   TglVertexAttrib4dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10463   TglVertexAttrib4fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10464   TglVertexAttrib4fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10465   TglVertexAttrib4sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10466   TglVertexAttrib4svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10467   TglVertexAttrib4ubNV = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10468   TglVertexAttrib4ubvNV = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10469   TglVertexAttribs1dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10470   TglVertexAttribs1fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10471   TglVertexAttribs1svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10472   TglVertexAttribs2dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10473   TglVertexAttribs2fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10474   TglVertexAttribs2svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10475   TglVertexAttribs3dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10476   TglVertexAttribs3fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10477   TglVertexAttribs3svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10478   TglVertexAttribs4dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10479   TglVertexAttribs4fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10480   TglVertexAttribs4svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10481   TglVertexAttribs4ubvNV = procedure(index: GLuint; count: GLsizei; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10482
10483   // GL_NV_depth_buffer_float
10484   TglDepthRangedNV = procedure(n: GLdouble; f: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10485   TglClearDepthdNV = procedure(d: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10486   TglDepthBoundsdNV = procedure(zmin: GLdouble; zmax: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10487
10488   // GL_NV_framebuffer_multisample_coverage
10489   TglRenderbufferStorageMultsampleCoverageNV = procedure(target: GLenum; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10490
10491   // GL_NV_geometry_program4
10492   TglProgramVertexLimitNV = procedure(target: GLenum; limit: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10493
10494   // GL_NV_gpu_program4
10495   TglProgramLocalParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10496   TglProgramLocalParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10497   TglProgramLocalParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10498   TglProgramLocalParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10499   TglProgramLocalParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10500   TglProgramLocalParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10501   TglProgramEnvParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10502   TglProgramEnvParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10503   TglProgramEnvParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10504   TglProgramEnvParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10505   TglProgramEnvParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10506   TglProgramEnvParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10507   TglGetProgramLocalParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10508   TglGetProgramLocalParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10509   TglGetProgramEnvParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10510   TglGetProgramEnvParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10511
10512   // GL_NV_parameter_buffer_object
10513   TglProgramBufferParametersfvNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10514   TglProgramBufferParametersIivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10515   TglProgramBufferParametersIuivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10516
10517   // GL_NV_transform_feedback
10518   TglBeginTransformFeedbackNV = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10519   TglEndTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10520   TglTransformFeedbackAttribsNV = procedure(count: GLsizei; const attribs: GLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10521   TglBindBufferRangeNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10522   TglBindBufferOffsetNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10523   TglBindBufferBaseNV = procedure(target: GLenum; index: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10524   TglTransformFeedbackVaryingsNV = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10525   TglActiveVaryingNV = procedure(program_: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10526   TglGetVaryingLocationNV = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10527   TglGetActiveVaryingNV = procedure(program_: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; _type: PGLenum; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10528   TglGetTransformFeedbackVaryingNV = procedure(program_: GLuint; index: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10529   TglTransformFeedbackStreamAttribsNV = procedure(count: GLsizei; const attribs: PGLint; nbuffers: GLsizei; const bufstreams: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10530
10531   // GL_NV_conditional_render
10532   TglBeginConditionalRenderNV = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10533   TglEndConditionalRenderNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10534
10535   // GL_NV_present_video
10536   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}
10537   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}
10538   TglGetVideoivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10539   TglGetVideouivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10540   TglGetVideoi64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10541   TglGetVideoui64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10542 //  TglVideoParameterivNV = procedure(video_slot: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10543   
10544   // GL_NV_explicit_multisample
10545   TglGetMultisamplefvNV = procedure (pname: GLenum; index: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10546   TglSampleMaskIndexedNV = procedure (index: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10547   TglTexRenderbufferNV = procedure (target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10548
10549   // GL_NV_transform_feedback2
10550   TglBindTransformFeedbackNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10551   TglDeleteTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10552   TglGenTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10553   TglIsTransformFeedbackNV = function (id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10554   TglPauseTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10555   TglResumeTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10556   TglDrawTransformFeedbackNV = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10557
10558   // GL_NV_video_capture
10559   TglBeginVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10560   TglBindVideoCaptureStreamBufferNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; offset: GLintptrARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10561   TglBindVideoCaptureStreamTextureNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10562   TglEndVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10563   TglGetVideoCaptureivNV = procedure(video_capture_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10564   TglGetVideoCaptureStreamivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10565   TglGetVideoCaptureStreamfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10566   TglGetVideoCaptureStreamdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10567   TglVideoCaptureNV = function(video_capture_slot: GLuint; sequence_num: PGLuint; capture_time: PGLuint64EXT): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10568   TglVideoCaptureStreamParameterivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10569   TglVideoCaptureStreamParameterfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10570   TglVideoCaptureStreamParameterdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10571
10572   // GL_NV_copy_image
10573   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}
10574
10575   // GL_NV_shader_buffer_load
10576   TglMakeBufferResidentNV = procedure(target: GLenum; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10577   TglMakeBufferNonResidentNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10578   TglIsBufferResidentNV = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10579   TglMakeNamedBufferResidentNV = procedure(buffer: GLuint; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10580   TglMakeNamedBufferNonResidentNV = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10581   TglIsNamedBufferResidentNV = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10582   TglGetBufferParameterui64vNV = procedure(target: GLenum; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10583   TglGetNamedBufferParameterui64vNV = procedure(buffer: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10584   TglGetIntegerui64vNV = procedure(value: GLenum; result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10585   TglUniformui64NV = procedure(location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10586   TglUniformui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10587   TglGetUniformui64vNV = procedure(_program: GLuint; location: GLint; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10588   TglProgramUniformui64NV = procedure(_program: GLuint; location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10589   TglProgramUniformui64vNV = procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10590
10591   // GL_NV_vertex_buffer_unified_memory
10592   TglBufferAddressRangeNV = procedure(pname: GLenum; index: GLuint; adress: GLuint64EXT; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10593   TglVertexFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10594   TglNormalFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10595   TglColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10596   TglIndexFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10597   TglTexCoordFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10598   TglEdgeFlagFormatNV = procedure(stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10599   TglSecondaryColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10600   TglFogCoordFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10601   TglVertexAttribFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10602   TglVertexAttribIFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10603   TglGetIntegerui64i_vNV = procedure(value: GLenum; index: GLuint; Result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10604
10605   // GL_NV_gpu_program5
10606   TglProgramSubroutineParametersuivNV = procedure(target: GLenum; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10607   TglGetProgramSubroutineParameteruivNV = procedure(target: GLenum; index: GLuint; param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10608
10609   // GL_NV_gpu_shader5
10610   TglUniform1i64NV = procedure(location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10611   TglUniform2i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10612   TglUniform3i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10613   TglUniform4i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10614   TglUniform1i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10615   TglUniform2i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10616   TglUniform3i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10617   TglUniform4i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10618   TglUniform1ui64NV = procedure(location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10619   TglUniform2ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10620   TglUniform3ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10621   TglUniform4ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10622   TglUniform1ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10623   TglUniform2ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10624   TglUniform3ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10625   TglUniform4ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10626   TglGetUniformi64vNV = procedure(program_: GLuint; location: GLint; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10627   TglProgramUniform1i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10628   TglProgramUniform2i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10629   TglProgramUniform3i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10630   TglProgramUniform4i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10631   TglProgramUniform1i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10632   TglProgramUniform2i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10633   TglProgramUniform3i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10634   TglProgramUniform4i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10635   TglProgramUniform1ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10636   TglProgramUniform2ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10637   TglProgramUniform3ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10638   TglProgramUniform4ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10639   TglProgramUniform1ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10640   TglProgramUniform2ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10641   TglProgramUniform3ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10642   TglProgramUniform4ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10643
10644   // GL_NV_vertex_attrib_integer_64bit
10645   TglVertexAttribL1i64NV = procedure(index: GLuint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10646   TglVertexAttribL2i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10647   TglVertexAttribL3i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10648   TglVertexAttribL4i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10649   TglVertexAttribL1i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10650   TglVertexAttribL2i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10651   TglVertexAttribL3i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10652   TglVertexAttribL4i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10653   TglVertexAttribL1ui64NV = procedure(index: GLuint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10654   TglVertexAttribL2ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10655   TglVertexAttribL3ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10656   TglVertexAttribL4ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10657   TglVertexAttribL1ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10658   TglVertexAttribL2ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10659   TglVertexAttribL3ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10660   TglVertexAttribL4ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10661   TglGetVertexAttribLi64vNV = procedure(index: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10662   TglGetVertexAttribLui64vNV = procedure(index: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10663   TglVertexAttribLFormatNV = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10664
10665   // GL_NV_vdpau_interop
10666   TglVDPAUInitNV = procedure(const vdpDevice: PGLvoid; const getProcAddress: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10667   TglVDPAUFiniNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10668   TglVDPAURegisterVideoSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10669   TglVDPAURegisterOutputSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10670   TglVDPAUIsSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10671   TglVDPAUUnregisterSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10672   TglVDPAUGetSurfaceivNV = procedure(surface: GLvdpauSurfaceNV; pname: GLenum; bufSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10673   TglVDPAUSurfaceAccessNV = procedure(surface: GLvdpauSurfaceNV; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10674   TglVDPAUMapSurfacesNV = procedure(numSurfaces: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10675   TglVDPAUUnmapSurfacesNV = procedure(numSurface: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10676
10677   // GL_NV_texture_barrier
10678   TglTextureBarrierNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10679
10680   // (4.3)
10681         // GL_NV_path_rendering
10682   TglGenPathsNV = function(range : GLsizei) : GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10683   TglDeletePathsNV = procedure(path : GLUInt; range : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10684   TglIsPathNV = function(path : GLUInt) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10685   TglPathCommandsNV = procedure(path : GLUInt; numCommands : GLsizei; const commands : PGLubyte; numCoords : GLsizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10686   TglPathCoordsNV = procedure(path : GLUInt; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10687   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}
10688   TglPathSubCoordsNV = procedure(path : GLUInt; coordStart : GLsizei; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10689   TglPathStringNV = procedure(path : GLUInt; format : GLenum; length : GLsizei; const pathString : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10690   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}
10691   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}
10692   TglWeightPathsNV = procedure(resultPath : GLUInt; numPaths : GLSizei; const paths : PGLuint; const weights : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10693   TglCopyPathNV = procedure(resultPath : GLUInt; srcPath : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10694   TglInterpolatePathsNV = procedure(resultPath : GLUInt; pathA : GLUInt; pathB : GLUInt; weight : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10695   TglTransformPathNV = procedure(resultPath : GLUInt; srcPath : GLuint; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10696   TglPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10697   TglPathParameteriNV = procedure(path : GLUInt; pname : GLEnum; value : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10698   TglPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10699   TglPathParameterfNV = procedure(path : GLUInt; pname : GLEnum; value : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10700   TglPathDashArrayNV = procedure(path : GLUInt; dashCount : GLsizei; const dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10701   TglPathStencilFuncNV = procedure(func : GLenum; ref : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10702   TglPathStencilDepthOffsetNV = procedure(factor : GLfloat; units : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10703   TglStencilFillPathNV = procedure(path : GLUInt; fillMode : GLenum; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10704   TglStencilStrokePathNV = procedure(path : GLUInt; reference : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10705   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}
10706   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}
10707   TglPathCoverDepthFuncNV = procedure(func : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10708   TglPathColorGenNV = procedure(color : GLenum; genMode : GLenum; colorFormat : GLenum; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10709   TglPathTexGenNV = procedure(texCoordSet : GLenum; genMode : GLenum; components : GLint; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10710   TglPathFogGenNV = procedure(genMode : GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10711   TglCoverFillPathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10712   TglCoverStrokePathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10713   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}
10714   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}
10715   TglGetPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10716   TglGetPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10717   TglGetPathCommandsNV = procedure(path : GLUInt; commands : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10718   TglGetPathCoordsNV = procedure(path : GLUInt; coords : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10719   TglGetPathDashArrayNV = procedure(path : GLUInt; dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10720   TglGetPathMetricsNV = procedure(metricQueryMask : GLbitfield; numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10721   TglGetPathMetricRangeNV = procedure(metricQueryMask : GLbitfield; firstPathName : GLuint; numPaths : GLSizei; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10722   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}
10723   TglGetPathColorGenivNV = procedure(color : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10724   TglGetPathColorGenfvNV = procedure(color : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10725   TglGetPathTexGenivNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10726   TglGetPathTexGenfvNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10727   TglIsPointInFillPathNV = function(path : GLUInt; mask : GLuint; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10728   TglIsPointInStrokePathNV = function (path : GLUInt; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10729   TglGetPathLengthNV = function(path : GLUInt; startSegment : GLsizei; numSegments : GLsizei) : GLfloat; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10730   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}
10731
10732   // GL_AMD_pinned_memory
10733
10734   // GL_AMD_stencil_operation_extended
10735   TglStencilOpValueAMD = procedure(face : GLEnum; value : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10736
10737   // GL_AMD_vertex_shader_viewport_index
10738
10739   // GL_AMD_vertex_shader_layer
10740
10741   // GL_NV_bindless_texture
10742   TglGetTextureHandleNV = function(texture : GLuint ) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10743   TglGetTextureSamplerHandleNV = function(texture : GLuint; sampler : GLuint) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10744   TglMakeTextureHandleResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10745   TglMakeTextureHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10746   TglGetImageHandleNV = function(texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10747   TglMakeImageHandleResidentNV = procedure(handle : GLUint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10748   TglMakeImageHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10749   TglUniformHandleui64NV = procedure(location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10750   TglUniformHandleui64vNV = procedure(location : GLint; cowunt : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10751   TglProgramUniformHandleui64NV = procedure(program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10752   TglProgramUniformHandleui64vNV = procedure(program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10753   TglIsTextureHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10754   TglIsImageHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10755
10756         // GL_NV_shader_atomic_float
10757
10758         // GL_AMD_query_buffer_object
10759
10760   //
10761
10762   // GL_PGI_misc_hints
10763   TglHintPGI = procedure(target: GLenum; mode: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10764
10765   // GL_SGIS_detail_texture
10766   TglDetailTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10767   TglGetDetailTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10768
10769   // GL_SGIS_fog_function
10770   TglFogFuncSGIS = procedure(n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10771   TglGetFogFuncSGIS = procedure(points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10772
10773   // GL_SGIS_multisample
10774   TglSampleMaskSGIS = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10775   TglSamplePatternSGIS = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10776
10777   // GL_SGIS_pixel_texture
10778   TglPixelTexGenParameteriSGIS = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10779   TglPixelTexGenParameterivSGIS = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10780   TglPixelTexGenParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10781   TglPixelTexGenParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10782   TglGetPixelTexGenParameterivSGIS = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10783   TglGetPixelTexGenParameterfvSGIS = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10784
10785   // GL_SGIS_point_parameters
10786   TglPointParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10787   TglPointParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10788
10789   // GL_SGIS_sharpen_texture
10790   TglSharpenTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10791   TglGetSharpenTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10792
10793   // GL_SGIS_texture4D
10794   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}
10795   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}
10796
10797   // GL_SGIS_texture_color_mask
10798   TglTextureColorMaskSGIS = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10799
10800   // GL_SGIS_texture_filter4
10801   TglGetTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10802   TglTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; n: GLsizei; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10803
10804   // GL_SGIX_async
10805   TglAsyncMarkerSGIX = procedure(marker: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10806   TglFinishAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10807   TglPollAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10808   TglGenAsyncMarkersSGIX = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10809   TglDeleteAsyncMarkersSGIX = procedure(marker: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10810   TglIsAsyncMarkerSGIX = function(marker: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10811
10812   // GL_SGIX_flush_raster
10813   TglFlushRasterSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10814
10815   // GL_SGIX_fragment_lighting
10816   TglFragmentColorMaterialSGIX = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10817   TglFragmentLightfSGIX = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10818   TglFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10819   TglFragmentLightiSGIX = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10820   TglFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10821   TglFragmentLightModelfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10822   TglFragmentLightModelfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10823   TglFragmentLightModeliSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10824   TglFragmentLightModelivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10825   TglFragmentMaterialfSGIX = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10826   TglFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10827   TglFragmentMaterialiSGIX = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10828   TglFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10829   TglGetFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10830   TglGetFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10831   TglGetFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10832   TglGetFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10833   TglLightEnviSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10834
10835   // GL_SGIX_framezoom
10836   TglFrameZoomSGIX = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10837
10838   // GL_SGIX_igloo_interface
10839   TglIglooInterfaceSGIX = procedure(pname: GLenum; const params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10840
10841   // GL_SGIX_instruments
10842   TglGetInstrumentsSGIX = function(): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10843   TglInstrumentsBufferSGIX = procedure(size: GLsizei; buffer: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10844   TglPollInstrumentsSGIX = function(marker_p: PGLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10845   TglReadInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10846   TglStartInstrumentsSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10847   TglStopInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10848
10849   // GL_SGIX_list_priority
10850   TglGetListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10851   TglGetListParameterivSGIX = procedure(list: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10852   TglListParameterfSGIX = procedure(list: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10853   TglListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10854   TglListParameteriSGIX = procedure(list: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10855   TglListParameterivSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10856
10857   // GL_SGIX_pixel_texture
10858   TglPixelTexGenSGIX = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10859
10860   // GL_SGIX_polynomial_ffd
10861   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}
10862   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}
10863   TglDeformSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10864   TglLoadIdentityDeformationMapSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10865
10866   // GL_SGIX_reference_plane
10867   TglReferencePlaneSGIX = procedure(const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10868
10869   // GL_SGIX_sprite
10870   TglSpriteParameterfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10871   TglSpriteParameterfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10872   TglSpriteParameteriSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10873   TglSpriteParameterivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10874
10875   // GL_SGIX_tag_sample_buffer
10876   TglTagSampleBufferSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10877
10878   // GL_SGI_color_table
10879   TglColorTableSGI = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10880   TglColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10881   TglColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10882   TglCopyColorTableSGI = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10883   TglGetColorTableSGI = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10884   TglGetColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10885   TglGetColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10886
10887   // GL_SUNX_constant_data
10888   TglFinishTextureSUNX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10889
10890   // GL_SUN_global_alpha
10891   TglGlobalAlphaFactorbSUN = procedure(factor: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10892   TglGlobalAlphaFactorsSUN = procedure(factor: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10893   TglGlobalAlphaFactoriSUN = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10894   TglGlobalAlphaFactorfSUN = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10895   TglGlobalAlphaFactordSUN = procedure(factor: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10896   TglGlobalAlphaFactorubSUN = procedure(factor: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10897   TglGlobalAlphaFactorusSUN = procedure(factor: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10898   TglGlobalAlphaFactoruiSUN = procedure(factor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10899
10900   // GL_SUN_mesh_array
10901   TglDrawMeshArraysSUN = procedure(mode: GLenum; first: GLint; count: GLsizei; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10902
10903   // GL_SUN_triangle_list
10904   TglReplacementCodeuiSUN = procedure(code: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10905   TglReplacementCodeusSUN = procedure(code: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10906   TglReplacementCodeubSUN = procedure(code: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10907   TglReplacementCodeuivSUN = procedure(const code: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10908   TglReplacementCodeusvSUN = procedure(const code: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10909   TglReplacementCodeubvSUN = procedure(const code: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10910   TglReplacementCodePointerSUN = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10911
10912   // GL_SUN_vertex
10913   TglColor4ubVertex2fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10914   TglColor4ubVertex2fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10915   TglColor4ubVertex3fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10916   TglColor4ubVertex3fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10917   TglColor3fVertex3fSUN = procedure(r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10918   TglColor3fVertex3fvSUN = procedure(const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10919   TglNormal3fVertex3fSUN = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10920   TglNormal3fVertex3fvSUN = procedure(const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10921   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}
10922   TglColor4fNormal3fVertex3fvSUN = procedure(const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10923   TglTexCoord2fVertex3fSUN = procedure(s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10924   TglTexCoord2fVertex3fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10925   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}
10926   TglTexCoord4fVertex4fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10927   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}
10928   TglTexCoord2fColor4ubVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10929   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}
10930   TglTexCoord2fColor3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10931   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}
10932   TglTexCoord2fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10933   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}
10934   TglTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10935   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}
10936   TglTexCoord4fColor4fNormal3fVertex4fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10937   TglReplacementCodeuiVertex3fSUN = procedure(rc: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10938   TglReplacementCodeuiVertex3fvSUN = procedure(const rc: PGLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10939   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}
10940   TglReplacementCodeuiColor4ubVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10941   TglReplacementCodeuiColor3fVertex3fSUN = procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10942   TglReplacementCodeuiColor3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10943   TglReplacementCodeuiNormal3fVertex3fSUN = procedure(rc: GLuint; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10944   TglReplacementCodeuiNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10945   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}
10946   TglReplacementCodeuiColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10947   TglReplacementCodeuiTexCoord2fVertex3fSUN = procedure(rc: GLuint; s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10948   TglReplacementCodeuiTexCoord2fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10949   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}
10950   TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10951   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}
10952   TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10953
10954   // window support functions
10955 {$IFDEF DGL_WIN}
10956   TwglGetProcAddress = function(ProcName: PAnsiChar): Pointer; stdcall;
10957   TwglCopyContext = function(p1: HGLRC; p2: HGLRC; p3: Cardinal): BOOL; stdcall;
10958   TwglCreateContext = function(DC: HDC): HGLRC; stdcall;
10959   TwglCreateLayerContext = function(p1: HDC; p2: Integer): HGLRC; stdcall;
10960   TwglDeleteContext = function(p1: HGLRC): BOOL; stdcall;
10961   TwglDescribeLayerPlane = function(p1: HDC; p2, p3: Integer; p4: Cardinal; p5: PLayerPlaneDescriptor): BOOL; stdcall;
10962   TwglGetCurrentContext = function: HGLRC; stdcall;
10963   TwglGetCurrentDC = function: HDC; stdcall;
10964   TwglGetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10965   TwglMakeCurrent = function(DC: HDC; p2: HGLRC): BOOL; stdcall;
10966   TwglRealizeLayerPalette = function(p1: HDC; p2: Integer; p3: BOOL): BOOL; stdcall;
10967   TwglSetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10968   TwglShareLists = function(p1, p2: HGLRC): BOOL; stdcall;
10969   TwglSwapLayerBuffers = function(p1: HDC; p2: Cardinal): BOOL; stdcall;
10970   TwglSwapMultipleBuffers = function(p1: UINT; const p2: PWGLSWAP): DWORD; stdcall;
10971   TwglUseFontBitmapsA = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10972   TwglUseFontBitmapsW = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10973   TwglUseFontBitmaps = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10974
10975   TwglUseFontOutlinesA = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10976   TwglUseFontOutlinesW = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10977   TwglUseFontOutlines = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10978
10979
10980   // WGL_ARB_buffer_region
10981   TwglCreateBufferRegionARB = function(hDC: HDC; iLayerPlane: GLint; uType: GLuint): THandle; stdcall;
10982   TwglDeleteBufferRegionARB = procedure(hRegion: THandle); stdcall;
10983   TwglSaveBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint): Boolean; stdcall;
10984   TwglRestoreBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint; xSrc: GLint; ySrc: GLint): Boolean; stdcall;
10985
10986   // WGL_ARB_extensions_string
10987   TwglGetExtensionsStringARB = function(hdc: HDC): PAnsiChar; stdcall;
10988
10989   // WGL_ARB_make_current_read
10990   TwglMakeContextCurrentARB = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10991   TwglGetCurrentReadDCARB = function(): HDC; stdcall;
10992
10993   // WGL_ARB_pbuffer
10994   TwglCreatePbufferARB = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFERARB; stdcall;
10995   TwglGetPbufferDCARB = function(hPbuffer: HPBUFFERARB): HDC; stdcall;
10996   TwglReleasePbufferDCARB = function(hPbuffer: HPBUFFERARB; hDC: HDC): GLint; stdcall;
10997   TwglDestroyPbufferARB = function(hPbuffer: HPBUFFERARB): Boolean; stdcall;
10998   TwglQueryPbufferARB = function(hPbuffer: HPBUFFERARB; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10999
11000   // WGL_ARB_pixel_format
11001   TwglGetPixelFormatAttribivARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
11002   TwglGetPixelFormatAttribfvARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
11003   TwglChoosePixelFormatARB = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): BOOL; stdcall;
11004
11005   // WGL_ARB_color_buffer_float
11006   TwglClampColorARB = procedure(target: GLenum; clamp: GLenum); stdcall;
11007
11008   // WGL_ARB_render_texture
11009   TwglBindTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
11010   TwglReleaseTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
11011   TwglSetPbufferAttribARB = function(hPbuffer: HPBUFFERARB; const piAttribList: PGLint): Boolean; stdcall;
11012
11013   // WGL_ARB_create_context
11014   TwglCreateContextAttribsARB = function(hDC: HDC; hShareContext: HGLRC; const attribList: PGLint): HGLRC; stdcall;
11015
11016   // WGL_AMD_gpu_association
11017   TwglGetGPUIDsAMD = function(maxCount: Cardinal; ids: PCardinal): Cardinal; stdcall;
11018   TwglGetGPUInfoAMD = function(id: Cardinal; property_: Integer; dataType: GLenum; size: Cardinal; data: Pointer): Integer; stdcall;
11019   TwglGetContextGPUIDAMD = function(hglrc: HGLRC): Cardinal; stdcall;
11020   TwglCreateAssociatedContextAMD = function(id: Cardinal): HGLRC; stdcall;
11021   TwglCreateAssociatedContextAttribsAMD = function(id: Cardinal; hShareContext: HGLRC; const attribList: PInteger): HGLRC; stdcall;
11022   TwglDeleteAssociatedContextAMD = function(hglrc: HGLRC): Boolean; stdcall;
11023   TwglMakeAssociatedContextCurrentAMD = function(hglrc: HGLRC): Boolean; stdcall;
11024   TwglGetCurrentAssociatedContextAMD = function(): HGLRC; stdcall;
11025   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;
11026
11027   // WGL_EXT_display_color_table
11028   TwglCreateDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
11029   TwglLoadDisplayColorTableEXT = function(const table: PGLushort; length: GLuint): GLboolean; stdcall;
11030   TwglBindDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
11031   TwglDestroyDisplayColorTableEXT = procedure(id: GLushort); stdcall;
11032
11033   // WGL_EXT_extensions_string
11034   TwglGetExtensionsStringEXT = function(): PAnsiChar; stdcall;
11035
11036   // WGL_EXT_make_current_read
11037   TwglMakeContextCurrentEXT = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
11038   TwglGetCurrentReadDCEXT = function(): HDC; stdcall;
11039
11040   // WGL_EXT_pbuffer
11041   TwglCreatePbufferEXT = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFEREXT; stdcall;
11042   TwglGetPbufferDCEXT = function(hPbuffer: HPBUFFEREXT): HDC; stdcall;
11043   TwglReleasePbufferDCEXT = function(hPbuffer: HPBUFFEREXT; hDC: HDC): GLint; stdcall;
11044   TwglDestroyPbufferEXT = function(hPbuffer: HPBUFFEREXT): Boolean; stdcall;
11045   TwglQueryPbufferEXT = function(hPbuffer: HPBUFFEREXT; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
11046
11047   // WGL_EXT_pixel_format
11048   TwglGetPixelFormatAttribivEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
11049   TwglGetPixelFormatAttribfvEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
11050   TwglChoosePixelFormatEXT = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): Boolean; stdcall;
11051
11052   // WGL_EXT_swap_control
11053   TwglSwapIntervalEXT = function(interval: GLint): Boolean; stdcall;
11054   TwglGetSwapIntervalEXT = function(): GLint; stdcall;
11055
11056   // WGL_I3D_digital_video_control
11057   TwglGetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
11058   TwglSetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
11059
11060   // WGL_I3D_gamma
11061   TwglGetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
11062   TwglSetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
11063   TwglGetGammaTableI3D = function(hDC: HDC; iEntries: GLint; puRed: PGLushort; puGreen: PGLushort; puBlue: PGLushort): Boolean; stdcall;
11064   TwglSetGammaTableI3D = function(hDC: HDC; iEntries: GLint; const puRed: PGLushort; const puGreen: PGLushort; const puBlue: PGLushort): Boolean; stdcall;
11065
11066   // WGL_I3D_genlock
11067   TwglEnableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
11068   TwglDisableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
11069   TwglIsEnabledGenlockI3D = function(hDC: HDC; pFlag: Boolean): Boolean; stdcall;
11070   TwglGenlockSourceI3D = function(hDC: HDC; uSource: GLuint): Boolean; stdcall;
11071   TwglGetGenlockSourceI3D = function(hDC: HDC; uSource: PGLuint): Boolean; stdcall;
11072   TwglGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: GLuint): Boolean; stdcall;
11073   TwglGetGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: PGLuint): Boolean; stdcall;
11074   TwglGenlockSampleRateI3D = function(hDC: HDC; uRate: GLuint): Boolean; stdcall;
11075   TwglGetGenlockSampleRateI3D = function(hDC: HDC; uRate: PGLuint): Boolean; stdcall;
11076   TwglGenlockSourceDelayI3D = function(hDC: HDC; uDelay: GLuint): Boolean; stdcall;
11077   TwglGetGenlockSourceDelayI3D = function(hDC: HDC; uDelay: PGLuint): Boolean; stdcall;
11078   TwglQueryGenlockMaxSourceDelayI3D = function(hDC: HDC; uMaxLineDelay: PGLuint; uMaxPixelDelay: PGLuint): Boolean; stdcall;
11079
11080   // WGL_I3D_image_buffer
11081   TwglCreateImageBufferI3D = function(hDC: HDC; dwSize: GLuint; uFlags: GLuint): GLvoid; stdcall;
11082   TwglDestroyImageBufferI3D = function(hDC: HDC; pAddress: GLvoid): Boolean; stdcall;
11083   TwglAssociateImageBufferEventsI3D = function(hDC: HDC; const pEvent: THandle; const pAddress: PGLvoid; const pSize: PGLuint; count: GLuint): Boolean; stdcall;
11084   TwglReleaseImageBufferEventsI3D = function(hDC: HDC; const pAddress: PGLvoid; count: GLuint): Boolean; stdcall;
11085
11086   // WGL_I3D_swap_frame_lock
11087   TwglEnableFrameLockI3D = function(): Boolean; stdcall;
11088   TwglDisableFrameLockI3D = function(): Boolean; stdcall;
11089   TwglIsEnabledFrameLockI3D = function(pFlag: Boolean): Boolean; stdcall;
11090   TwglQueryFrameLockMasterI3D = function(pFlag: Boolean): Boolean; stdcall;
11091
11092   // WGL_I3D_swap_frame_usage
11093   TwglGetFrameUsageI3D = function(pUsage: PGLfloat): Boolean; stdcall;
11094   TwglBeginFrameTrackingI3D = function(): Boolean; stdcall;
11095   TwglEndFrameTrackingI3D = function(): Boolean; stdcall;
11096   TwglQueryFrameTrackingI3D = function(pFrameCount: PGLuint; pMissedFrames: PGLuint; pLastMissedUsage: PGLfloat): Boolean; stdcall;
11097
11098   // WGL_NV_vertex_array_range
11099   TwglAllocateMemoryNV = procedure(size: GLsizei; readfreq: GLfloat; writefreq: GLfloat; priority: GLfloat); stdcall;
11100   TwglFreeMemoryNV = procedure(_pointer: Pointer); stdcall;
11101
11102   // WGL_NV_present_video
11103   TwglEnumerateVideoDevicesNV = function(hdc: HDC; phDeviceList: PHVIDEOOUTPUTDEVICENV): Integer; stdcall;
11104   TwglBindVideoDeviceNV = function(hd: HDC; uVideoSlot: Cardinal; hVideoDevice: HVIDEOOUTPUTDEVICENV; piAttribList: PInteger): Boolean; stdcall;
11105   TwglQueryCurrentContextNV = function(iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11106
11107   // WGL_NV_video_output
11108   TwglGetVideoDeviceNV = function(hDC: HDC; numDevices: Integer; hVideoDevice: PHPVIDEODEV): Boolean; stdcall;
11109   TwglReleaseVideoDeviceNV = function(hVideoDevice: HPVIDEODEV): Boolean; stdcall;
11110   TwglBindVideoImageNV = function(hVideoDevice: HPVIDEODEV; hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11111   TwglReleaseVideoImageNV = function(hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11112   TwglSendPbufferToVideoNV = function(hPbuffer: HPBUFFERARB; iBufferType: Integer; pulCounterPbuffer: PCardinal; bBlock: Boolean): Boolean; stdcall;
11113   TwglGetVideoInfoNV = function(hpVideoDevice: HPVIDEODEV; pulCounterOutputPbuffer: PCardinal; pulCounterOutputVideo: PCardinal): Boolean; stdcall;
11114
11115   // WGL_NV_swap_group
11116   TwglJoinSwapGroupNV = function(hDC: HDC; group: GLuint): Boolean; stdcall;
11117   TwglBindSwapBarrierNV = function(group: GLuint; barrier: GLuint): Boolean; stdcall;
11118   TwglQuerySwapGroupNV = function(hDC: HDC; group: PGLuint; barrier: PGLuint): Boolean; stdcall;
11119   TwglQueryMaxSwapGroupsNV = function(hDC: HDC; mxGroups: PGLuint; maxBarriers: PGLuint): Boolean; stdcall;
11120   TwglQueryFrameCountNV = function(hDC: HDC; count: PGLuint): Boolean; stdcall;
11121   TwglResetFrameCountNV = function(hDC: HDC): Boolean; stdcall;
11122
11123   // WGL_NV_gpu_affinity
11124   TwglEnumGpusNV = function(iGpuIndex: Cardinal; phGpu: PHGPUNV): Boolean; stdcall;
11125   TwglEnumGpuDevicesNV = function(hGpu: HGPUNV; iDeviceIndex: Cardinal; lpGpuDevice: PGPU_DEVICE): Boolean; stdcall;
11126   TwglCreateAffinityDCNV = function(const phGpuList: PHGPUNV): HDC; stdcall;
11127   TwglEnumGpusFromAffinityDCNV = function(hAffinityDC: HDC; iGpuIndex: Cardinal; hGpu: PHGPUNV): Boolean; stdcall;
11128   TwglDeleteDCNV = function(hDC: HDC): Boolean; stdcall;
11129
11130   // WGL_NV_video_capture
11131   TwglBindVideoCaptureDeviceNV = function(uVideoSlot: Cardinal; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11132   TwglEnumerateVideoCaptureDevicesNV = function(hDc: HDC; phDeviceList: PHVIDEOINPUTDEVICENV): Cardinal; stdcall;
11133   TwglLockVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11134   TwglQueryVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV; iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11135   TwglReleaseVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11136
11137   // WGL_NV_copy_image
11138   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;
11139
11140   // WGL_NV_DX_interop
11141   TwglDXSetResourceShareHandleNV = function(dxObject : PGLVoid; hareHandle : Cardinal) : Boolean; stdcall;
11142   TwglDXOpenDeviceNV = function(dxDevice : PGLVoid) : Cardinal; stdcall;
11143   TwglDXCloseDeviceNV = function(hDevice : Cardinal) : Boolean; stdcall;
11144   TwglDXRegisterObjectNV = function(hDevice : Cardinal; dxObject : PGLVoid; name : GLUInt; _type : TGLEnum; access : TGLenum) : Cardinal; stdcall;
11145   TwglDXUnregisterObjectNV = function(hDevice : Cardinal; hObject : Cardinal) : Boolean; stdcall;
11146   TwglDXObjectAccessNV = function(hObject : Cardinal; access : GLenum) : Boolean; stdcall;
11147   TwglDXLockObjectsNV = function(hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11148   TwglDXUnlockObjectsNV = function (hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11149
11150   // WGL_OML_sync_control
11151   TwglGetSyncValuesOML = function(hdc: HDC; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11152   TwglGetMscRateOML = function(hdc: HDC; numerator: PGLint; denominator: PGLint): Boolean; stdcall;
11153   TwglSwapBuffersMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11154   TwglSwapLayerBuffersMscOML = function(hdc: HDC; fuPlanes: GLint; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11155   TwglWaitForMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11156   TwglWaitForSbcOML = function(hdc: HDC; target_sbc: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11157
11158   // WGL_3DL_stereo_control
11159   TwglSetStereoEmitterState3DL = function(hDC: HDC; uState: UINT): Boolean; stdcall;
11160   
11161   // WIN_draw_range_elements
11162   TglDrawRangeElementsWIN = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); stdcall;
11163
11164   // WIN_swap_hint
11165   TglAddSwapHintRectWIN = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
11166 {$ENDIF}
11167
11168 {$IFDEF DGL_LINUX}
11169   TglXChooseVisual = function(dpy: PDisplay; screen: GLint; attribList: PGLint): PXVisualInfo; cdecl;
11170   TglXCopyContext = procedure(dpy: PDisplay; src: GLXContext; dst: GLXContext; mask: GLuint); cdecl;
11171   TglXCreateContext = function(dpy: PDisplay; vis: PXVisualInfo; shareList: GLXContext; direct: GLboolean): GLXContext; cdecl;
11172   TglXCreateGLXPixmap = function(dpy: PDisplay; vis: PXVisualInfo; pixmap: Pixmap): GLXPixmap cdecl;
11173   TglXDestroyContext = procedure(dpy: PDisplay; ctx: GLXContext); cdecl;
11174   TglXDestroyGLXPixmap = procedure(dpy : PDisplay; pix: GLXPixmap); cdecl;
11175   TglXGetConfig = function(dpy : PDisplay; vis: PXVisualInfo; attrib: GLint; value: PGLint): GLint; cdecl;
11176   TglXGetCurrentContext = function: GLXContext cdecl;
11177   TglXGetCurrentDrawable = function: GLXDrawable cdecl;
11178   TglXIsDirect = function(dpy: PDisplay; ctx: GLXContext): glboolean; cdecl;
11179   TglXMakeCurrent = function(dpy: PDisplay; drawable: GLXDrawable; ctx: GLXContext): GLboolean cdecl;
11180   TglXQueryExtension = function(dpy: PDisplay; errorBase: PGLint; eventBase: PGLint): GLboolean; cdecl;
11181   TglXQueryVersion = function(dpy: PDisplay; major: PGLint; minor: PGLint): GLboolean cdecl;
11182   TglXSwapBuffers = procedure(dpy: PDisplay; drawable: GLXDrawable); cdecl;
11183   TglXUseXFont = procedure(font: Font; first: GLint; count: GLint; listBase: GLint); cdecl;
11184   TglXWaitGL = procedure; cdecl; 
11185   TglXWaitX = procedure; cdecl;
11186
11187   TglXGetClientString = function(dpy: PDisplay; name: GLint): PGLchar; cdecl;
11188   TglXQueryServerString = function(dpy: PDisplay; screen: GLint; name: GLint): PGLchar; cdecl;
11189   TglXQueryExtensionsString = function(dpy: PDisplay; screen: GLint): PGLchar; cdecl;
11190
11191   // GLX_VERSION_1_3
11192   TglXGetFBConfigs = function(dpy: PDisplay; screen: GLint; nelements: PGLint): GLXFBConfig; cdecl;
11193   TglXChooseFBConfig = function(dpy: PDisplay; screen: GLint; attrib_list: PGLint; nelements: PGLint): GLXFBConfig; cdecl;
11194   TglXGetFBConfigAttrib = function(dpy: PDisplay; config: GLXFBConfig; attribute: GLint; value: PGLint): glint; cdecl;
11195   TglXGetVisualFromFBConfig = function(dpy: PDisplay; config: GLXFBConfig) : PXVisualInfo; cdecl;
11196   TglXCreateWindow = function(dpy: PDisplay; config: GLXFBConfig; win: Window; attrib_list: PGLint): GLXWindow; cdecl;
11197   TglXDestroyWindow = procedure(dpy: PDisplay; win: GLXWindow); cdecl;
11198   TglXCreatePixmap = function(dpy: PDisplay; config: GLXFBConfig; pixmap: Pixmap; attrib_list: PGLint): GLXPixmap; cdecl;
11199
11200   TglXDestroyPixmap = procedure(dpy: PDisplay; pixmap: GLXPixmap); cdecl;
11201   TglXCreatePbuffer = function(dpy: PDisplay; config: GLXFBConfig; attrib_list: PGLint): GLXPbuffer; cdecl;
11202   TglXDestroyPbuffer = procedure(dpy: PDisplay; pbuf: GLXPbuffer); cdecl;
11203   TglXQueryDrawable = procedure(dpy: PDisplay; draw: GLXDrawable; attribute: GLint; value: PGLuint); cdecl;
11204   TglXCreateNewContext = function(dpy: PDisplay; config: GLXFBConfig; render_type: GLint; share_list: GLXContext; direct: GLboolean): GLXContext cdecl;
11205   TglXMakeContextCurrent = function(display: PDisplay; draw: GLXDrawable; read_: GLXDrawable; ctx: GLXContext): GLboolean; cdecl;
11206   TglXGetCurrentReadDrawable = function: GLXDrawable; cdecl;
11207   TglXGetCurreentDisplay = function: PDisplay;
11208
11209   TglXQueryContext = function(dpy: PDisplay; ctx: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11210   TglXSelectEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: GLuint); cdecl;
11211   TglXGetSelectedEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: PGLuint); cdecl;
11212
11213   // GLX_VERSION_1_4
11214   TglXGetProcAddress = function(const name: PAnsiChar): pointer; cdecl;
11215
11216   // GLX_ARB_get_proc_address
11217   TglXGetProcAddressARB = function(const name: PAnsiChar): pointer; cdecl;
11218
11219   // GLX_ARB_create_context
11220   TglXCreateContextAttribsARB = function(dpy: PDisplay; config: GLXFBConfig; share_context: GLXContext; direct: GLboolean; const attrib_list: PGLint): GLXContext; cdecl;
11221
11222   // GLX_EXT_import_context
11223   TglXGetCurrentDisplayEXT = function: PDisplay; cdecl;
11224   TglXQueryContextInfoEXT = function(dpy: PDisplay; context: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11225   TglXGetContextIDEXT = function(const context: GLXContext): GLXContextID; cdecl;
11226   TglXImportContextEXT = function(dpy: PDisplay; contextID: GLXContextID): GLXContext; cdecl;
11227   TglXFreeContextEXT = procedure(dpy: PDisplay; context: GLXContext); cdecl;
11228   
11229   // GLX_EXT_texture_from_pixmap
11230   TglXBindTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint; const attrib_list: PGLint); cdecl;
11231   TglXReleaseTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint); cdecl;
11232
11233   // GLX_EXT_swap_control
11234   TglXSwapIntervalEXT = procedure (dpy: PDisplay; drawable: GLXDrawable; interval: GLint); cdecl;
11235 {$ENDIF}
11236
11237   // GL utility functions and procedures
11238   TgluErrorString = function(errCode: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11239   TgluGetString = function(name: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11240   TgluOrtho2D = procedure(left, right, bottom, top: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11241   TgluPerspective = procedure(fovy, aspect, zNear, zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11242   TgluPickMatrix = procedure(x, y, width, height: GLdouble; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11243   TgluLookAt = procedure(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11244   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}
11245   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}
11246   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}
11247   TgluBuild1DMipmaps = function(target: GLEnum; components, width: GLint; format, atype: GLEnum; const data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11248   TgluBuild2DMipmaps = function(target: GLEnum; components, width, height: GLint; format, atype: GLEnum; const Data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11249   TgluNewQuadric = function: PGLUquadric; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11250   TgluDeleteQuadric = procedure(state: PGLUquadric); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11251   TgluQuadricNormals = procedure(quadObject: PGLUquadric; normals: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11252   TgluQuadricTexture = procedure(quadObject: PGLUquadric; textureCoords: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11253   TgluQuadricOrientation = procedure(quadObject: PGLUquadric; orientation: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11254   TgluQuadricDrawStyle = procedure(quadObject: PGLUquadric; drawStyle: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11255   TgluCylinder = procedure(quadObject: PGLUquadric; baseRadius, topRadius, height: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11256   TgluDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11257   TgluPartialDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint; startAngle, sweepAngle: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11258   TgluSphere = procedure(quadObject: PGLUquadric; radius: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11259   TgluQuadricCallback = procedure(quadObject: PGLUquadric; which: GLEnum; fn: TGLUQuadricErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11260   TgluNewTess = function: PGLUtesselator; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11261   TgluDeleteTess = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11262   TgluTessBeginPolygon = procedure(tess: PGLUtesselator; polygon_data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11263   TgluTessBeginContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11264   TgluTessVertex = procedure(tess: PGLUtesselator; const coords: TGLArrayd3; data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11265   TgluTessEndContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11266   TgluTessEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11267   TgluTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11268   TgluTessNormal = procedure(tess: PGLUtesselator; x, y, z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11269   TgluTessCallback = procedure(tess: PGLUtesselator; which: GLEnum; fn: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11270   TgluGetTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11271   TgluNewNurbsRenderer = function: PGLUnurbs; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11272   TgluDeleteNurbsRenderer = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11273   TgluBeginSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11274   TgluBeginCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11275   TgluEndCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11276   TgluEndSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11277   TgluBeginTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11278   TgluEndTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11279   TgluPwlCurve = procedure(nobj: PGLUnurbs; count: GLint; points: PGLfloat; stride: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11280   TgluNurbsCurve = procedure(nobj: PGLUnurbs; nknots: GLint; knot: PGLfloat; stride: GLint; ctlarray: PGLfloat; order: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11281   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}
11282   TgluLoadSamplingMatrices = procedure(nobj: PGLUnurbs; const modelMatrix, projMatrix: TGLMatrixf4; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11283   TgluNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11284   TgluGetNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11285   TgluNurbsCallback = procedure(nobj: PGLUnurbs; which: GLEnum; fn: TGLUNurbsErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11286   TgluBeginPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11287   TgluNextContour = procedure(tess: PGLUtesselator; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11288   TgluEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11289
11290 var
11291   // GL_VERSION_1_0
11292   glCullFace: TglCullFace;
11293   glFrontFace: TglFrontFace;
11294   glHint: TglHint;
11295   glLineWidth: TglLineWidth;
11296   glPointSize: TglPointSize;
11297   glPolygonMode: TglPolygonMode;
11298   glScissor: TglScissor;
11299   glTexParameterf: TglTexParameterf;
11300   glTexParameterfv: TglTexParameterfv;
11301   glTexParameteri: TglTexParameteri;
11302   glTexParameteriv: TglTexParameteriv;
11303   glTexImage1D: TglTexImage1D;
11304   glTexImage2D: TglTexImage2D;
11305   glDrawBuffer: TglDrawBuffer;
11306   glClear: TglClear;
11307   glClearColor: TglClearColor;
11308   glClearStencil: TglClearStencil;
11309   glClearDepth: TglClearDepth;
11310   glStencilMask: TglStencilMask;
11311   glColorMask: TglColorMask;
11312   glDepthMask: TglDepthMask;
11313   glDisable: TglDisable;
11314   glEnable: TglEnable;
11315   glFinish: TglFinish;
11316   glFlush: TglFlush;
11317   glBlendFunc: TglBlendFunc;
11318   glLogicOp: TglLogicOp;
11319   glStencilFunc: TglStencilFunc;
11320   glStencilOp: TglStencilOp;
11321   glDepthFunc: TglDepthFunc;
11322   glPixelStoref: TglPixelStoref;
11323   glPixelStorei: TglPixelStorei;
11324   glReadBuffer: TglReadBuffer;
11325   glReadPixels: TglReadPixels;
11326   glGetBooleanv: TglGetBooleanv;
11327   glGetDoublev: TglGetDoublev;
11328   glGetError: TglGetError;
11329   glGetFloatv: TglGetFloatv;
11330   glGetIntegerv: TglGetIntegerv;
11331   glGetString: TglGetString;
11332   glGetTexImage: TglGetTexImage;
11333   glGetTexParameteriv: TglGetTexParameteriv;
11334   glGetTexParameterfv: TglGetTexParameterfv;
11335   glGetTexLevelParameterfv: TglGetTexLevelParameterfv;
11336   glGetTexLevelParameteriv: TglGetTexLevelParameteriv;
11337   glIsEnabled: TglIsEnabled;
11338   glDepthRange: TglDepthRange;
11339   glViewport: TglViewport;
11340
11341   // GL_VERSION_1_1
11342   glDrawArrays: TglDrawArrays;
11343   glDrawElements: TglDrawElements;
11344   glGetPointerv: TglGetPointerv;
11345   glPolygonOffset: TglPolygonOffset;
11346   glCopyTexImage1D: TglCopyTexImage1D;
11347   glCopyTexImage2D: TglCopyTexImage2D;
11348   glCopyTexSubImage1D: TglCopyTexSubImage1D;
11349   glCopyTexSubImage2D: TglCopyTexSubImage2D;
11350   glTexSubImage1D: TglTexSubImage1D;
11351   glTexSubImage2D: TglTexSubImage2D;
11352   glBindTexture: TglBindTexture;
11353   glDeleteTextures: TglDeleteTextures;
11354   glGenTextures: TglGenTextures;
11355 {$ifdef DGL_DEPRECATED}
11356   glAccum: TglAccum;
11357   glAlphaFunc: TglAlphaFunc;
11358   glAreTexturesResident: TglAreTexturesResident;
11359   glArrayElement: TglArrayElement;
11360   glBegin: TglBegin;
11361   glBitmap: TglBitmap;
11362   glCallList: TglCallList;
11363   glCallLists: TglCallLists;
11364   glClearAccum: TglClearAccum;
11365   glClearIndex: TglClearIndex;
11366   glClipPlane: TglClipPlane;
11367   glColor3b: TglColor3b;
11368   glColor3bv: TglColor3bv;
11369   glColor3d: TglColor3d;
11370   glColor3dv: TglColor3dv;
11371   glColor3f: TglColor3f;
11372   glColor3fv: TglColor3fv;
11373   glColor3i: TglColor3i;
11374   glColor3iv: TglColor3iv;
11375   glColor3s: TglColor3s;
11376   glColor3sv: TglColor3sv;
11377   glColor3ub: TglColor3ub;
11378   glColor3ubv: TglColor3ubv;
11379   glColor3ui: TglColor3ui;
11380   glColor3uiv: TglColor3uiv;
11381   glColor3us: TglColor3us;
11382   glColor3usv: TglColor3usv;
11383   glColor4b: TglColor4b;
11384   glColor4bv: TglColor4bv;
11385   glColor4d: TglColor4d;
11386   glColor4dv: TglColor4dv;
11387   glColor4f: TglColor4f;
11388   glColor4fv: TglColor4fv;
11389   glColor4i: TglColor4i;
11390   glColor4iv: TglColor4iv;
11391   glColor4s: TglColor4s;
11392   glColor4sv: TglColor4sv;
11393   glColor4ub: TglColor4ub;
11394   glColor4ubv: TglColor4ubv;
11395   glColor4ui: TglColor4ui;
11396   glColor4uiv: TglColor4uiv;
11397   glColor4us: TglColor4us;
11398   glColor4usv: TglColor4usv;
11399   glColorMaterial: TglColorMaterial;
11400   glColorPointer: TglColorPointer;
11401   glCopyPixels: TglCopyPixels;
11402   glDeleteLists: TglDeleteLists;
11403   glDisableClientState: TglDisableClientState;
11404   glDrawPixels: TglDrawPixels;
11405   glEdgeFlag: TglEdgeFlag;
11406   glEdgeFlagPointer: TglEdgeFlagPointer;
11407   glEdgeFlagv: TglEdgeFlagv;
11408   glEnableClientState: TglEnableClientState;
11409   glEnd: TglEnd;
11410   glEndList: TglEndList;
11411   glEvalCoord1d: TglEvalCoord1d;
11412   glEvalCoord1dv: TglEvalCoord1dv;
11413   glEvalCoord1f: TglEvalCoord1f;
11414   glEvalCoord1fv: TglEvalCoord1fv;
11415   glEvalCoord2d: TglEvalCoord2d;
11416   glEvalCoord2dv: TglEvalCoord2dv;
11417   glEvalCoord2f: TglEvalCoord2f;
11418   glEvalCoord2fv: TglEvalCoord2fv;
11419   glEvalMesh1: TglEvalMesh1;
11420   glEvalMesh2: TglEvalMesh2;
11421   glEvalPoint1: TglEvalPoint1;
11422   glEvalPoint2: TglEvalPoint2;
11423   glFeedbackBuffer: TglFeedbackBuffer;
11424   glFogf: TglFogf;
11425   glFogfv: TglFogfv;
11426   glFogi: TglFogi;
11427   glFogiv: TglFogiv;
11428   glFrustum: TglFrustum;
11429   glGenLists: TglGenLists;
11430   glGetClipPlane: TglGetClipPlane;
11431   glGetLightfv: TglGetLightfv;
11432   glGetLightiv: TglGetLightiv;
11433   glGetMapdv: TglGetMapdv;
11434   glGetMapfv: TglGetMapfv;
11435   glGetMapiv: TglGetMapiv;
11436   glGetMaterialfv: TglGetMaterialfv;
11437   glGetMaterialiv: TglGetMaterialiv;
11438   glGetPixelMapfv: TglGetPixelMapfv;
11439   glGetPixelMapuiv: TglGetPixelMapuiv;
11440   glGetPixelMapusv: TglGetPixelMapusv;
11441   glGetPolygonStipple: TglGetPolygonStipple;
11442   glGetTexEnvfv: TglGetTexEnvfv;
11443   glGetTexEnviv: TglGetTexEnviv;
11444   glGetTexGendv: TglGetTexGendv;
11445   glGetTexGenfv: TglGetTexGenfv;
11446   glGetTexGeniv: TglGetTexGeniv;
11447   glIndexMask: TglIndexMask;
11448   glIndexPointer: TglIndexPointer;
11449   glIndexd: TglIndexd;
11450   glIndexdv: TglIndexdv;
11451   glIndexf: TglIndexf;
11452   glIndexfv: TglIndexfv;
11453   glIndexi: TglIndexi;
11454   glIndexiv: TglIndexiv;
11455   glIndexs: TglIndexs;
11456   glIndexsv: TglIndexsv;
11457   glIndexub: TglIndexub;
11458   glIndexubv: TglIndexubv;
11459   glInitNames: TglInitNames;
11460   glInterleavedArrays: TglInterleavedArrays;
11461   glIsList: TglIsList;
11462   glIsTexture: TglIsTexture;
11463   glLightModelf: TglLightModelf;
11464   glLightModelfv: TglLightModelfv;
11465   glLightModeli: TglLightModeli;
11466   glLightModeliv: TglLightModeliv;
11467   glLightf: TglLightf;
11468   glLightfv: TglLightfv;
11469   glLighti: TglLighti;
11470   glLightiv: TglLightiv;
11471   glLineStipple: TglLineStipple;
11472   glListBase: TglListBase;
11473   glLoadIdentity: TglLoadIdentity;
11474   glLoadMatrixd: TglLoadMatrixd;
11475   glLoadMatrixf: TglLoadMatrixf;
11476   glLoadName: TglLoadName;
11477   glMap1d: TglMap1d;
11478   glMap1f: TglMap1f;
11479   glMap2d: TglMap2d;
11480   glMap2f: TglMap2f;
11481   glMapGrid1d: TglMapGrid1d;
11482   glMapGrid1f: TglMapGrid1f;
11483   glMapGrid2d: TglMapGrid2d;
11484   glMapGrid2f: TglMapGrid2f;
11485   glMaterialf: TglMaterialf;
11486   glMaterialfv: TglMaterialfv;
11487   glMateriali: TglMateriali;
11488   glMaterialiv: TglMaterialiv;
11489   glMatrixMode: TglMatrixMode;
11490   glMultMatrixd: TglMultMatrixd;
11491   glMultMatrixf: TglMultMatrixf;
11492   glNewList: TglNewList;
11493   glNormal3b: TglNormal3b;
11494   glNormal3bv: TglNormal3bv;
11495   glNormal3d: TglNormal3d;
11496   glNormal3dv: TglNormal3dv;
11497   glNormal3f: TglNormal3f;
11498   glNormal3fv: TglNormal3fv;
11499   glNormal3i: TglNormal3i;
11500   glNormal3iv: TglNormal3iv;
11501   glNormal3s: TglNormal3s;
11502   glNormal3sv: TglNormal3sv;
11503   glNormalPointer: TglNormalPointer;
11504   glOrtho: TglOrtho;
11505   glPassThrough: TglPassThrough;
11506   glPixelMapfv: TglPixelMapfv;
11507   glPixelMapuiv: TglPixelMapuiv;
11508   glPixelMapusv: TglPixelMapusv;
11509   glPixelTransferf: TglPixelTransferf;
11510   glPixelTransferi: TglPixelTransferi;
11511   glPixelZoom: TglPixelZoom;
11512   glPolygonStipple: TglPolygonStipple;
11513   glPopAttrib: TglPopAttrib;
11514   glPopClientAttrib: TglPopClientAttrib;
11515   glPopMatrix: TglPopMatrix;
11516   glPopName: TglPopName;
11517   glPrioritizeTextures: TglPrioritizeTextures;
11518   glPushAttrib: TglPushAttrib;
11519   glPushClientAttrib: TglPushClientAttrib;
11520   glPushMatrix: TglPushMatrix;
11521   glPushName: TglPushName;
11522   glRasterPos2d: TglRasterPos2d;
11523   glRasterPos2dv: TglRasterPos2dv;
11524   glRasterPos2f: TglRasterPos2f;
11525   glRasterPos2fv: TglRasterPos2fv;
11526   glRasterPos2i: TglRasterPos2i;
11527   glRasterPos2iv: TglRasterPos2iv;
11528   glRasterPos2s: TglRasterPos2s;
11529   glRasterPos2sv: TglRasterPos2sv;
11530   glRasterPos3d: TglRasterPos3d;
11531   glRasterPos3dv: TglRasterPos3dv;
11532   glRasterPos3f: TglRasterPos3f;
11533   glRasterPos3fv: TglRasterPos3fv;
11534   glRasterPos3i: TglRasterPos3i;
11535   glRasterPos3iv: TglRasterPos3iv;
11536   glRasterPos3s: TglRasterPos3s;
11537   glRasterPos3sv: TglRasterPos3sv;
11538   glRasterPos4d: TglRasterPos4d;
11539   glRasterPos4dv: TglRasterPos4dv;
11540   glRasterPos4f: TglRasterPos4f;
11541   glRasterPos4fv: TglRasterPos4fv;
11542   glRasterPos4i: TglRasterPos4i;
11543   glRasterPos4iv: TglRasterPos4iv;
11544   glRasterPos4s: TglRasterPos4s;
11545   glRasterPos4sv: TglRasterPos4sv;
11546   glRectd: TglRectd;
11547   glRectdv: TglRectdv;
11548   glRectf: TglRectf;
11549   glRectfv: TglRectfv;
11550   glRecti: TglRecti;
11551   glRectiv: TglRectiv;
11552   glRects: TglRects;
11553   glRectsv: TglRectsv;
11554   glRenderMode: TglRenderMode;
11555   glRotated: TglRotated;
11556   glRotatef: TglRotatef;
11557   glScaled: TglScaled;
11558   glScalef: TglScalef;
11559   glSelectBuffer: TglSelectBuffer;
11560   glShadeModel: TglShadeModel;
11561   glTexCoord1d: TglTexCoord1d;
11562   glTexCoord1dv: TglTexCoord1dv;
11563   glTexCoord1f: TglTexCoord1f;
11564   glTexCoord1fv: TglTexCoord1fv;
11565   glTexCoord1i: TglTexCoord1i;
11566   glTexCoord1iv: TglTexCoord1iv;
11567   glTexCoord1s: TglTexCoord1s;
11568   glTexCoord1sv: TglTexCoord1sv;
11569   glTexCoord2d: TglTexCoord2d;
11570   glTexCoord2dv: TglTexCoord2dv;
11571   glTexCoord2f: TglTexCoord2f;
11572   glTexCoord2fv: TglTexCoord2fv;
11573   glTexCoord2i: TglTexCoord2i;
11574   glTexCoord2iv: TglTexCoord2iv;
11575   glTexCoord2s: TglTexCoord2s;
11576   glTexCoord2sv: TglTexCoord2sv;
11577   glTexCoord3d: TglTexCoord3d;
11578   glTexCoord3dv: TglTexCoord3dv;
11579   glTexCoord3f: TglTexCoord3f;
11580   glTexCoord3fv: TglTexCoord3fv;
11581   glTexCoord3i: TglTexCoord3i;
11582   glTexCoord3iv: TglTexCoord3iv;
11583   glTexCoord3s: TglTexCoord3s;
11584   glTexCoord3sv: TglTexCoord3sv;
11585   glTexCoord4d: TglTexCoord4d;
11586   glTexCoord4dv: TglTexCoord4dv;
11587   glTexCoord4f: TglTexCoord4f;
11588   glTexCoord4fv: TglTexCoord4fv;
11589   glTexCoord4i: TglTexCoord4i;
11590   glTexCoord4iv: TglTexCoord4iv;
11591   glTexCoord4s: TglTexCoord4s;
11592   glTexCoord4sv: TglTexCoord4sv;
11593   glTexCoordPointer: TglTexCoordPointer;
11594   glTexEnvf: TglTexEnvf;
11595   glTexEnvfv: TglTexEnvfv;
11596   glTexEnvi: TglTexEnvi;
11597   glTexEnviv: TglTexEnviv;
11598   glTexGend: TglTexGend;
11599   glTexGendv: TglTexGendv;
11600   glTexGenf: TglTexGenf;
11601   glTexGenfv: TglTexGenfv;
11602   glTexGeni: TglTexGeni;
11603   glTexGeniv: TglTexGeniv;
11604   glTranslated: TglTranslated;
11605   glTranslatef: TglTranslatef;
11606   glVertex2d: TglVertex2d;
11607   glVertex2dv: TglVertex2dv;
11608   glVertex2f: TglVertex2f;
11609   glVertex2fv: TglVertex2fv;
11610   glVertex2i: TglVertex2i;
11611   glVertex2iv: TglVertex2iv;
11612   glVertex2s: TglVertex2s;
11613   glVertex2sv: TglVertex2sv;
11614   glVertex3d: TglVertex3d;
11615   glVertex3dv: TglVertex3dv;
11616   glVertex3f: TglVertex3f;
11617   glVertex3fv: TglVertex3fv;
11618   glVertex3i: TglVertex3i;
11619   glVertex3iv: TglVertex3iv;
11620   glVertex3s: TglVertex3s;
11621   glVertex3sv: TglVertex3sv;
11622   glVertex4d: TglVertex4d;
11623   glVertex4dv: TglVertex4dv;
11624   glVertex4f: TglVertex4f;
11625   glVertex4fv: TglVertex4fv;
11626   glVertex4i: TglVertex4i;
11627   glVertex4iv: TglVertex4iv;
11628   glVertex4s: TglVertex4s;
11629   glVertex4sv: TglVertex4sv;
11630   glVertexPointer: TglVertexPointer;
11631 {$endif}
11632
11633   // GL_VERSION_1_2
11634   glBlendColor: TglBlendColor;
11635   glBlendEquation: TglBlendEquation;
11636   glDrawRangeElements: TglDrawRangeElements;
11637   glTexImage3D: TglTexImage3D;
11638   glTexSubImage3D: TglTexSubImage3D;
11639   glCopyTexSubImage3D: TglCopyTexSubImage3D;
11640 {$ifdef DGL_DEPRECATED}
11641   glColorTable: TglColorTable;
11642   glColorTableParameterfv: TglColorTableParameterfv;
11643   glColorTableParameteriv: TglColorTableParameteriv;
11644   glCopyColorTable: TglCopyColorTable;
11645   glGetColorTable: TglGetColorTable;
11646   glGetColorTableParameterfv: TglGetColorTableParameterfv;
11647   glGetColorTableParameteriv: TglGetColorTableParameteriv;
11648   glColorSubTable: TglColorSubTable;
11649   glCopyColorSubTable: TglCopyColorSubTable;
11650   glConvolutionFilter1D: TglConvolutionFilter1D;
11651   glConvolutionFilter2D: TglConvolutionFilter2D;
11652   glConvolutionParameterf: TglConvolutionParameterf;
11653   glConvolutionParameterfv: TglConvolutionParameterfv;
11654   glConvolutionParameteri: TglConvolutionParameteri;
11655   glConvolutionParameteriv: TglConvolutionParameteriv;
11656   glCopyConvolutionFilter1D: TglCopyConvolutionFilter1D;
11657   glCopyConvolutionFilter2D: TglCopyConvolutionFilter2D;
11658   glGetConvolutionFilter: TglGetConvolutionFilter;
11659   glGetConvolutionParameterfv: TglGetConvolutionParameterfv;
11660   glGetConvolutionParameteriv: TglGetConvolutionParameteriv;
11661   glGetSeparableFilter: TglGetSeparableFilter;
11662   glSeparableFilter2D: TglSeparableFilter2D;
11663   glGetHistogram: TglGetHistogram;
11664   glGetHistogramParameterfv: TglGetHistogramParameterfv;
11665   glGetHistogramParameteriv: TglGetHistogramParameteriv;
11666   glGetMinmax: TglGetMinmax;
11667   glGetMinmaxParameterfv: TglGetMinmaxParameterfv;
11668   glGetMinmaxParameteriv: TglGetMinmaxParameteriv;
11669   glHistogram: TglHistogram;
11670   glMinmax: TglMinmax;
11671   glResetHistogram: TglResetHistogram;
11672   glResetMinmax: TglResetMinmax;
11673 {$endif}
11674
11675   // GL_VERSION_1_3
11676   glActiveTexture: TglActiveTexture;
11677   glSampleCoverage: TglSampleCoverage;
11678   glCompressedTexImage3D: TglCompressedTexImage3D;
11679   glCompressedTexImage2D: TglCompressedTexImage2D;
11680   glCompressedTexImage1D: TglCompressedTexImage1D;
11681   glCompressedTexSubImage3D: TglCompressedTexSubImage3D;
11682   glCompressedTexSubImage2D: TglCompressedTexSubImage2D;
11683   glCompressedTexSubImage1D: TglCompressedTexSubImage1D;
11684   glGetCompressedTexImage: TglGetCompressedTexImage;
11685 {$ifdef DGL_DEPRECATED}
11686   glClientActiveTexture: TglClientActiveTexture;
11687   glMultiTexCoord1d: TglMultiTexCoord1d;
11688   glMultiTexCoord1dv: TglMultiTexCoord1dv;
11689   glMultiTexCoord1f: TglMultiTexCoord1f;
11690   glMultiTexCoord1fv: TglMultiTexCoord1fv;
11691   glMultiTexCoord1i: TglMultiTexCoord1i;
11692   glMultiTexCoord1iv: TglMultiTexCoord1iv;
11693   glMultiTexCoord1s: TglMultiTexCoord1s;
11694   glMultiTexCoord1sv: TglMultiTexCoord1sv;
11695   glMultiTexCoord2d: TglMultiTexCoord2d;
11696   glMultiTexCoord2dv: TglMultiTexCoord2dv;
11697   glMultiTexCoord2f: TglMultiTexCoord2f;
11698   glMultiTexCoord2fv: TglMultiTexCoord2fv;
11699   glMultiTexCoord2i: TglMultiTexCoord2i;
11700   glMultiTexCoord2iv: TglMultiTexCoord2iv;
11701   glMultiTexCoord2s: TglMultiTexCoord2s;
11702   glMultiTexCoord2sv: TglMultiTexCoord2sv;
11703   glMultiTexCoord3d: TglMultiTexCoord3d;
11704   glMultiTexCoord3dv: TglMultiTexCoord3dv;
11705   glMultiTexCoord3f: TglMultiTexCoord3f;
11706   glMultiTexCoord3fv: TglMultiTexCoord3fv;
11707   glMultiTexCoord3i: TglMultiTexCoord3i;
11708   glMultiTexCoord3iv: TglMultiTexCoord3iv;
11709   glMultiTexCoord3s: TglMultiTexCoord3s;
11710   glMultiTexCoord3sv: TglMultiTexCoord3sv;
11711   glMultiTexCoord4d: TglMultiTexCoord4d;
11712   glMultiTexCoord4dv: TglMultiTexCoord4dv;
11713   glMultiTexCoord4f: TglMultiTexCoord4f;
11714   glMultiTexCoord4fv: TglMultiTexCoord4fv;
11715   glMultiTexCoord4i: TglMultiTexCoord4i;
11716   glMultiTexCoord4iv: TglMultiTexCoord4iv;
11717   glMultiTexCoord4s: TglMultiTexCoord4s;
11718   glMultiTexCoord4sv: TglMultiTexCoord4sv;
11719   glLoadTransposeMatrixf: TglLoadTransposeMatrixf;
11720   glLoadTransposeMatrixd: TglLoadTransposeMatrixd;
11721   glMultTransposeMatrixf: TglMultTransposeMatrixf;
11722   glMultTransposeMatrixd: TglMultTransposeMatrixd;
11723 {$endif}
11724
11725   // GL_VERSION_1_4
11726   glBlendFuncSeparate: TglBlendFuncSeparate;
11727   glMultiDrawArrays: TglMultiDrawArrays;
11728   glMultiDrawElements: TglMultiDrawElements;
11729   glPointParameterf: TglPointParameterf;
11730   glPointParameterfv: TglPointParameterfv;
11731   glPointParameteri: TglPointParameteri;
11732   glPointParameteriv: TglPointParameteriv;
11733 {$ifdef DGL_DEPRECATED}
11734   glFogCoordf: TglFogCoordf;
11735   glFogCoordfv: TglFogCoordfv;
11736   glFogCoordd: TglFogCoordd;
11737   glFogCoorddv: TglFogCoorddv;
11738   glFogCoordPointer: TglFogCoordPointer;
11739   glSecondaryColor3b: TglSecondaryColor3b;
11740   glSecondaryColor3bv: TglSecondaryColor3bv;
11741   glSecondaryColor3d: TglSecondaryColor3d;
11742   glSecondaryColor3dv: TglSecondaryColor3dv;
11743   glSecondaryColor3f: TglSecondaryColor3f;
11744   glSecondaryColor3fv: TglSecondaryColor3fv;
11745   glSecondaryColor3i: TglSecondaryColor3i;
11746   glSecondaryColor3iv: TglSecondaryColor3iv;
11747   glSecondaryColor3s: TglSecondaryColor3s;
11748   glSecondaryColor3sv: TglSecondaryColor3sv;
11749   glSecondaryColor3ub: TglSecondaryColor3ub;
11750   glSecondaryColor3ubv: TglSecondaryColor3ubv;
11751   glSecondaryColor3ui: TglSecondaryColor3ui;
11752   glSecondaryColor3uiv: TglSecondaryColor3uiv;
11753   glSecondaryColor3us: TglSecondaryColor3us;
11754   glSecondaryColor3usv: TglSecondaryColor3usv;
11755   glSecondaryColorPointer: TglSecondaryColorPointer;
11756   glWindowPos2d: TglWindowPos2d;
11757   glWindowPos2dv: TglWindowPos2dv;
11758   glWindowPos2f: TglWindowPos2f;
11759   glWindowPos2fv: TglWindowPos2fv;
11760   glWindowPos2i: TglWindowPos2i;
11761   glWindowPos2iv: TglWindowPos2iv;
11762   glWindowPos2s: TglWindowPos2s;
11763   glWindowPos2sv: TglWindowPos2sv;
11764   glWindowPos3d: TglWindowPos3d;
11765   glWindowPos3dv: TglWindowPos3dv;
11766   glWindowPos3f: TglWindowPos3f;
11767   glWindowPos3fv: TglWindowPos3fv;
11768   glWindowPos3i: TglWindowPos3i;
11769   glWindowPos3iv: TglWindowPos3iv;
11770   glWindowPos3s: TglWindowPos3s;
11771   glWindowPos3sv: TglWindowPos3sv;
11772 {$endif}
11773
11774   // GL_VERSION_1_5
11775   glGenQueries: TglGenQueries;
11776   glDeleteQueries: TglDeleteQueries;
11777   glIsQuery: TglIsQuery;
11778   glBeginQuery: TglBeginQuery;
11779   glEndQuery: TglEndQuery;
11780   glGetQueryiv: TglGetQueryiv;
11781   glGetQueryObjectiv: TglGetQueryObjectiv;
11782   glGetQueryObjectuiv: TglGetQueryObjectuiv;
11783   glBindBuffer: TglBindBuffer;
11784   glDeleteBuffers: TglDeleteBuffers;
11785   glGenBuffers: TglGenBuffers;
11786   glIsBuffer: TglIsBuffer;
11787   glBufferData: TglBufferData;
11788   glBufferSubData: TglBufferSubData;
11789   glGetBufferSubData: TglGetBufferSubData;
11790   glMapBuffer: TglMapBuffer;
11791   glUnmapBuffer: TglUnmapBuffer;
11792   glGetBufferParameteriv: TglGetBufferParameteriv;
11793   glGetBufferPointerv: TglGetBufferPointerv;
11794
11795   // GL_VERSION_2_0
11796   glBlendEquationSeparate: TglBlendEquationSeparate;
11797   glDrawBuffers: TglDrawBuffers;
11798   glStencilOpSeparate: TglStencilOpSeparate;
11799   glStencilFuncSeparate: TglStencilFuncSeparate;
11800   glStencilMaskSeparate: TglStencilMaskSeparate;
11801   glAttachShader: TglAttachShader;
11802   glBindAttribLocation: TglBindAttribLocation;
11803   glCompileShader: TglCompileShader;
11804   glCreateProgram: TglCreateProgram;
11805   glCreateShader: TglCreateShader;
11806   glDeleteProgram: TglDeleteProgram;
11807   glDeleteShader: TglDeleteShader;
11808   glDetachShader: TglDetachShader;
11809   glDisableVertexAttribArray: TglDisableVertexAttribArray;
11810   glEnableVertexAttribArray: TglEnableVertexAttribArray;
11811   glGetActiveAttrib: TglGetActiveAttrib;
11812   glGetActiveUniform: TglGetActiveUniform;
11813   glGetAttachedShaders: TglGetAttachedShaders;
11814   glGetAttribLocation: TglGetAttribLocation;
11815   glGetProgramiv: TglGetProgramiv;
11816   glGetProgramInfoLog: TglGetProgramInfoLog;
11817   glGetShaderiv: TglGetShaderiv;
11818   glGetShaderInfoLog: TglGetShaderInfoLog;
11819   glGetShaderSource: TglGetShaderSource;
11820   glGetUniformLocation: TglGetUniformLocation;
11821   glGetUniformfv: TglGetUniformfv;
11822   glGetUniformiv: TglGetUniformiv;
11823   glGetVertexAttribfv: TglGetVertexAttribfv;
11824   glGetVertexAttribiv: TglGetVertexAttribiv;
11825   glGetVertexAttribPointerv: TglGetVertexAttribPointerv;
11826   glIsProgram: TglIsProgram;
11827   glIsShader: TglIsShader;
11828   glLinkProgram: TglLinkProgram;
11829   glShaderSource: TglShaderSource;
11830   glUseProgram: TglUseProgram;
11831   glUniform1f: TglUniform1f;
11832   glUniform2f: TglUniform2f;
11833   glUniform3f: TglUniform3f;
11834   glUniform4f: TglUniform4f;
11835   glUniform1i: TglUniform1i;
11836   glUniform2i: TglUniform2i;
11837   glUniform3i: TglUniform3i;
11838   glUniform4i: TglUniform4i;
11839   glUniform1fv: TglUniform1fv;
11840   glUniform2fv: TglUniform2fv;
11841   glUniform3fv: TglUniform3fv;
11842   glUniform4fv: TglUniform4fv;
11843   glUniform1iv: TglUniform1iv;
11844   glUniform2iv: TglUniform2iv;
11845   glUniform3iv: TglUniform3iv;
11846   glUniform4iv: TglUniform4iv;
11847   glUniformMatrix2fv: TglUniformMatrix2fv;
11848   glUniformMatrix3fv: TglUniformMatrix3fv;
11849   glUniformMatrix4fv: TglUniformMatrix4fv;
11850   glValidateProgram: TglValidateProgram;
11851   glVertexAttrib1d: TglVertexAttrib1d;
11852   glVertexAttrib1dv: TglVertexAttrib1dv;
11853   glVertexAttrib1f: TglVertexAttrib1f;
11854   glVertexAttrib1fv: TglVertexAttrib1fv;
11855   glVertexAttrib1s: TglVertexAttrib1s;
11856   glVertexAttrib1sv: TglVertexAttrib1sv;
11857   glVertexAttrib2d: TglVertexAttrib2d;
11858   glVertexAttrib2dv: TglVertexAttrib2dv;
11859   glVertexAttrib2f: TglVertexAttrib2f;
11860   glVertexAttrib2fv: TglVertexAttrib2fv;
11861   glVertexAttrib2s: TglVertexAttrib2s;
11862   glVertexAttrib2sv: TglVertexAttrib2sv;
11863   glVertexAttrib3d: TglVertexAttrib3d;
11864   glVertexAttrib3dv: TglVertexAttrib3dv;
11865   glVertexAttrib3f: TglVertexAttrib3f;
11866   glVertexAttrib3fv: TglVertexAttrib3fv;
11867   glVertexAttrib3s: TglVertexAttrib3s;
11868   glVertexAttrib3sv: TglVertexAttrib3sv;
11869   glVertexAttrib4Nbv: TglVertexAttrib4Nbv;
11870   glVertexAttrib4Niv: TglVertexAttrib4Niv;
11871   glVertexAttrib4Nsv: TglVertexAttrib4Nsv;
11872   glVertexAttrib4Nub: TglVertexAttrib4Nub;
11873   glVertexAttrib4Nubv: TglVertexAttrib4Nubv;
11874   glVertexAttrib4Nuiv: TglVertexAttrib4Nuiv;
11875   glVertexAttrib4Nusv: TglVertexAttrib4Nusv;
11876   glVertexAttrib4bv: TglVertexAttrib4bv;
11877   glVertexAttrib4d: TglVertexAttrib4d;
11878   glVertexAttrib4dv: TglVertexAttrib4dv;
11879   glVertexAttrib4f: TglVertexAttrib4f;
11880   glVertexAttrib4fv: TglVertexAttrib4fv;
11881   glVertexAttrib4iv: TglVertexAttrib4iv;
11882   glVertexAttrib4s: TglVertexAttrib4s;
11883   glVertexAttrib4sv: TglVertexAttrib4sv;
11884   glVertexAttrib4ubv: TglVertexAttrib4ubv;
11885   glVertexAttrib4uiv: TglVertexAttrib4uiv;
11886   glVertexAttrib4usv: TglVertexAttrib4usv;
11887   glVertexAttribPointer: TglVertexAttribPointer;
11888
11889   // GL_VERSION_2_1
11890   glUniformMatrix2x3fv: TglUniformMatrix2x3fv;
11891   glUniformMatrix3x2fv: TglUniformMatrix3x2fv;
11892   glUniformMatrix2x4fv: TglUniformMatrix2x4fv;
11893   glUniformMatrix4x2fv: TglUniformMatrix4x2fv;
11894   glUniformMatrix3x4fv: TglUniformMatrix3x4fv;
11895   glUniformMatrix4x3fv: TglUniformMatrix4x3fv;
11896
11897   // GL_VERSION_3_0
11898   glColorMaski: TglColorMaski;
11899   glGetBooleani_v: TglGetBooleani_v;
11900   glGetIntegeri_v: TglGetIntegeri_v;
11901   glEnablei: TglEnablei;
11902   glDisablei: TglDisablei;
11903   glIsEnabledi: TglIsEnabledi;
11904   glBeginTransformFeedback: TglBeginTransformFeedback;
11905   glEndTransformFeedback: TglEndTransformFeedback;
11906   glBindBufferRange: TglBindBufferRange;
11907   glBindBufferBase: TglBindBufferBase;
11908   glTransformFeedbackVaryings: TglTransformFeedbackVaryings;
11909   glGetTransformFeedbackVarying: TglGetTransformFeedbackVarying;
11910   glClampColor: TglClampColor;
11911   glBeginConditionalRender: TglBeginConditionalRender;
11912   glEndConditionalRender: TglEndConditionalRender;
11913   glVertexAttribI1i: TglVertexAttribI1i;
11914   glVertexAttribI2i: TglVertexAttribI2i;
11915   glVertexAttribI3i: TglVertexAttribI3i;
11916   glVertexAttribI4i: TglVertexAttribI4i;
11917   glVertexAttribI1ui: TglVertexAttribI1ui;
11918   glVertexAttribI2ui: TglVertexAttribI2ui;
11919   glVertexAttribI3ui: TglVertexAttribI3ui;
11920   glVertexAttribI4ui: TglVertexAttribI4ui;
11921   glVertexAttribI1iv: TglVertexAttribI1iv;
11922   glVertexAttribI2iv: TglVertexAttribI2iv;
11923   glVertexAttribI3iv: TglVertexAttribI3iv;
11924   glVertexAttribI4iv: TglVertexAttribI4iv;
11925   glVertexAttribI1uiv: TglVertexAttribI1uiv;
11926   glVertexAttribI2uiv: TglVertexAttribI2uiv;
11927   glVertexAttribI3uiv: TglVertexAttribI3uiv;
11928   glVertexAttribI4uiv: TglVertexAttribI4uiv;
11929   glVertexAttribI4bv: TglVertexAttribI4bv;
11930   glVertexAttribI4sv: TglVertexAttribI4sv;
11931   glVertexAttribI4ubv: TglVertexAttribI4ubv;
11932   glVertexAttribI4usv: TglVertexAttribI4usv;
11933   glVertexAttribIPointer: TglVertexAttribIPointer;
11934   glGetVertexAttribIiv: TglGetVertexAttribIiv;
11935   glGetVertexAttribIuiv: TglGetVertexAttribIuiv;
11936   glGetUniformuiv: TglGetUniformuiv;
11937   glBindFragDataLocation: TglBindFragDataLocation;
11938   glGetFragDataLocation: TglGetFragDataLocation;
11939   glUniform1ui: TglUniform1ui;
11940   glUniform2ui: TglUniform2ui;
11941   glUniform3ui: TglUniform3ui;
11942   glUniform4ui: TglUniform4ui;
11943   glUniform1uiv: TglUniform1uiv;
11944   glUniform2uiv: TglUniform2uiv;
11945   glUniform3uiv: TglUniform3uiv;
11946   glUniform4uiv: TglUniform4uiv;
11947   glTexParameterIiv: TglTexParameterIiv;
11948   glTexParameterIuiv: TglTexParameterIuiv;
11949   glGetTexParameterIiv: TglGetTexParameterIiv;
11950   glGetTexParameterIuiv: TglGetTexParameterIuiv;
11951   glClearBufferiv: TglClearBufferiv;
11952   glClearBufferuiv: TglClearBufferuiv;
11953   glClearBufferfv: TglClearBufferfv;
11954   glClearBufferfi: TglClearBufferfi;
11955   glGetStringi: TglGetStringi;
11956
11957   // GL_VERSION_2_1
11958   glEnableVertexArrayEXT : TglEnableVertexArrayEXT;
11959   glEnableVertexArrayAttribEXT : TglEnableVertexArrayAttribEXT;
11960   glVertexArrayVertexAttribOffsetEXT : TglVertexArrayVertexAttribOffsetEXT;
11961
11962   // GL_VERSION_3_1
11963   glDrawArraysInstanced: TglDrawArraysInstanced;
11964   glDrawElementsInstanced: TglDrawElementsInstanced;
11965   glTexBuffer: TglTexBuffer;
11966   glPrimitiveRestartIndex: TglPrimitiveRestartIndex;
11967
11968   // GL_VERSION_3_2
11969   glGetInteger64i_v: TglGetInteger64i_v;
11970   glGetBufferParameteri64v: TglGetBufferParameteri64v;
11971   glFramebufferTexture: TglFramebufferTexture;
11972
11973   // GL_VERSION_3_3
11974   glVertexAttribDivisor: TglVertexAttribDivisor;
11975   
11976   // GL_VERSION_4_0
11977   { OpenGL 4.0 also reuses entry points from these extensions: }
11978   { ARB_texture_query_lod (no entry points) }
11979   { ARB_draw_indirect }
11980   { ARB_gpu_shader5 (no entry points) }
11981   { ARB_gpu_shader_fp64 }
11982   { ARB_shader_subroutine }
11983   { ARB_tessellation_shader }
11984   { ARB_texture_buffer_object_rgb32 (no entry points) }
11985   { ARB_texture_cube_map_array (no entry points) }
11986   { ARB_texture_gather (no entry points) }
11987   { ARB_transform_feedback2 }
11988   { ARB_transform_feedback3 }
11989   glMinSampleShading: TglMinSampleShading;
11990   glBlendEquationi: TglBlendEquationi;
11991   glBlendEquationSeparatei: TglBlendEquationSeparatei;
11992   glBlendFunci: TglBlendFunci;
11993   glBlendFuncSeparatei: TglBlendFuncSeparatei;
11994
11995   // GL_3DFX_tbuffer
11996   glTbufferMask3DFX: TglTbufferMask3DFX;
11997
11998   // GL_APPLE_element_array
11999   glElementPointerAPPLE: TglElementPointerAPPLE;
12000   glDrawElementArrayAPPLE: TglDrawElementArrayAPPLE;
12001   glDrawRangeElementArrayAPPLE: TglDrawRangeElementArrayAPPLE;
12002   glMultiDrawElementArrayAPPLE: TglMultiDrawElementArrayAPPLE;
12003   glMultiDrawRangeElementArrayAPPLE: TglMultiDrawRangeElementArrayAPPLE;
12004
12005   // GL_APPLE_fence
12006   glGenFencesAPPLE: TglGenFencesAPPLE;
12007   glDeleteFencesAPPLE: TglDeleteFencesAPPLE;
12008   glSetFenceAPPLE: TglSetFenceAPPLE;
12009   glIsFenceAPPLE: TglIsFenceAPPLE;
12010   glTestFenceAPPLE: TglTestFenceAPPLE;
12011   glFinishFenceAPPLE: TglFinishFenceAPPLE;
12012   glTestObjectAPPLE: TglTestObjectAPPLE;
12013   glFinishObjectAPPLE: TglFinishObjectAPPLE;
12014
12015   // GL_APPLE_vertex_array_object
12016   glBindVertexArrayAPPLE: TglBindVertexArrayAPPLE;
12017   glDeleteVertexArraysAPPLE: TglDeleteVertexArraysAPPLE;
12018   glGenVertexArraysAPPLE: TglGenVertexArraysAPPLE;
12019   glIsVertexArrayAPPLE: TglIsVertexArrayAPPLE;
12020
12021   // GL_APPLE_vertex_array_range
12022   glVertexArrayRangeAPPLE: TglVertexArrayRangeAPPLE;
12023   glFlushVertexArrayRangeAPPLE: TglFlushVertexArrayRangeAPPLE;
12024   glVertexArrayParameteriAPPLE: TglVertexArrayParameteriAPPLE;
12025
12026   // GL_APPLE_texture_range
12027   glTextureRangeAPPLE: TglTextureRangeAPPLE;
12028   glGetTexParameterPointervAPPLE: TglGetTexParameterPointervAPPLE;
12029
12030   // GL_APPLE_vertex_program_evaluators
12031   glEnableVertexAttribAPPLE: TglEnableVertexAttribAPPLE;
12032   glDisableVertexAttribAPPLE: TglDisableVertexAttribAPPLE;
12033   glIsVertexAttribEnabledAPPLE: TglIsVertexAttribEnabledAPPLE;
12034   glMapVertexAttrib1dAPPLE: TglMapVertexAttrib1dAPPLE;
12035   glMapVertexAttrib1fAPPLE: TglMapVertexAttrib1fAPPLE;
12036   glMapVertexAttrib2dAPPLE: TglMapVertexAttrib2dAPPLE;
12037   glMapVertexAttrib2fAPPLE: TglMapVertexAttrib2fAPPLE;
12038
12039   // GL_APPLE_object_purgeable
12040   glObjectPurgeableAPPLE: TglObjectPurgeableAPPLE;
12041   glObjectUnpurgeableAPPLE: TglObjectUnpurgeableAPPLE;
12042   glGetObjectParameterivAPPLE: TglGetObjectParameterivAPPLE;
12043
12044   // GL_ARB_matrix_palette
12045   glCurrentPaletteMatrixARB: TglCurrentPaletteMatrixARB;
12046   glMatrixIndexubvARB: TglMatrixIndexubvARB;
12047   glMatrixIndexusvARB: TglMatrixIndexusvARB;
12048   glMatrixIndexuivARB: TglMatrixIndexuivARB;
12049   glMatrixIndexPointerARB: TglMatrixIndexPointerARB;
12050
12051   // GL_ARB_multisample
12052   glSampleCoverageARB: TglSampleCoverageARB;
12053
12054   // GL_ARB_multitexture
12055   glActiveTextureARB: TglActiveTextureARB;
12056   glClientActiveTextureARB: TglClientActiveTextureARB;
12057   glMultiTexCoord1dARB: TglMultiTexCoord1dARB;
12058   glMultiTexCoord1dvARB: TglMultiTexCoord1dvARB;
12059   glMultiTexCoord1fARB: TglMultiTexCoord1fARB;
12060   glMultiTexCoord1fvARB: TglMultiTexCoord1fvARB;
12061   glMultiTexCoord1iARB: TglMultiTexCoord1iARB;
12062   glMultiTexCoord1ivARB: TglMultiTexCoord1ivARB;
12063   glMultiTexCoord1sARB: TglMultiTexCoord1sARB;
12064   glMultiTexCoord1svARB: TglMultiTexCoord1svARB;
12065   glMultiTexCoord2dARB: TglMultiTexCoord2dARB;
12066   glMultiTexCoord2dvARB: TglMultiTexCoord2dvARB;
12067   glMultiTexCoord2fARB: TglMultiTexCoord2fARB;
12068   glMultiTexCoord2fvARB: TglMultiTexCoord2fvARB;
12069   glMultiTexCoord2iARB: TglMultiTexCoord2iARB;
12070   glMultiTexCoord2ivARB: TglMultiTexCoord2ivARB;
12071   glMultiTexCoord2sARB: TglMultiTexCoord2sARB;
12072   glMultiTexCoord2svARB: TglMultiTexCoord2svARB;
12073   glMultiTexCoord3dARB: TglMultiTexCoord3dARB;
12074   glMultiTexCoord3dvARB: TglMultiTexCoord3dvARB;
12075   glMultiTexCoord3fARB: TglMultiTexCoord3fARB;
12076   glMultiTexCoord3fvARB: TglMultiTexCoord3fvARB;
12077   glMultiTexCoord3iARB: TglMultiTexCoord3iARB;
12078   glMultiTexCoord3ivARB: TglMultiTexCoord3ivARB;
12079   glMultiTexCoord3sARB: TglMultiTexCoord3sARB;
12080   glMultiTexCoord3svARB: TglMultiTexCoord3svARB;
12081   glMultiTexCoord4dARB: TglMultiTexCoord4dARB;
12082   glMultiTexCoord4dvARB: TglMultiTexCoord4dvARB;
12083   glMultiTexCoord4fARB: TglMultiTexCoord4fARB;
12084   glMultiTexCoord4fvARB: TglMultiTexCoord4fvARB;
12085   glMultiTexCoord4iARB: TglMultiTexCoord4iARB;
12086   glMultiTexCoord4ivARB: TglMultiTexCoord4ivARB;
12087   glMultiTexCoord4sARB: TglMultiTexCoord4sARB;
12088   glMultiTexCoord4svARB: TglMultiTexCoord4svARB;
12089
12090   // GL_ARB_point_parameters
12091   glPointParameterfARB: TglPointParameterfARB;
12092   glPointParameterfvARB: TglPointParameterfvARB;
12093
12094   // GL_ARB_texture_compression
12095   glCompressedTexImage3DARB: TglCompressedTexImage3DARB;
12096   glCompressedTexImage2DARB: TglCompressedTexImage2DARB;
12097   glCompressedTexImage1DARB: TglCompressedTexImage1DARB;
12098   glCompressedTexSubImage3DARB: TglCompressedTexSubImage3DARB;
12099   glCompressedTexSubImage2DARB: TglCompressedTexSubImage2DARB;
12100   glCompressedTexSubImage1DARB: TglCompressedTexSubImage1DARB;
12101   glGetCompressedTexImageARB: TglGetCompressedTexImageARB;
12102
12103   // GL_ARB_transpose_matrix
12104   glLoadTransposeMatrixfARB: TglLoadTransposeMatrixfARB;
12105   glLoadTransposeMatrixdARB: TglLoadTransposeMatrixdARB;
12106   glMultTransposeMatrixfARB: TglMultTransposeMatrixfARB;
12107   glMultTransposeMatrixdARB: TglMultTransposeMatrixdARB;
12108
12109   // GL_ARB_vertex_blend
12110   glWeightbvARB: TglWeightbvARB;
12111   glWeightsvARB: TglWeightsvARB;
12112   glWeightivARB: TglWeightivARB;
12113   glWeightfvARB: TglWeightfvARB;
12114   glWeightdvARB: TglWeightdvARB;
12115   glWeightubvARB: TglWeightubvARB;
12116   glWeightusvARB: TglWeightusvARB;
12117   glWeightuivARB: TglWeightuivARB;
12118   glWeightPointerARB: TglWeightPointerARB;
12119   glVertexBlendARB: TglVertexBlendARB;
12120
12121   // GL_ARB_vertex_buffer_object
12122   glBindBufferARB: TglBindBufferARB;
12123   glDeleteBuffersARB: TglDeleteBuffersARB;
12124   glGenBuffersARB: TglGenBuffersARB;
12125   glIsBufferARB: TglIsBufferARB;
12126   glBufferDataARB: TglBufferDataARB;
12127   glBufferSubDataARB: TglBufferSubData;
12128   glGetBufferSubDataARB: TglGetBufferSubDataARB;
12129   glMapBufferARB: TglMapBufferARB;
12130   glUnmapBufferARB: TglUnmapBufferARB;
12131   glGetBufferParameterivARB: TglGetBufferParameterivARB;
12132   glGetBufferPointervARB: TglGetBufferPointervARB;
12133
12134   // GL_ARB_vertex_program
12135   glVertexAttrib1dARB: TglVertexAttrib1dARB;
12136   glVertexAttrib1dvARB: TglVertexAttrib1dvARB;
12137   glVertexAttrib1fARB: TglVertexAttrib1fARB;
12138   glVertexAttrib1fvARB: TglVertexAttrib1fvARB;
12139   glVertexAttrib1sARB: TglVertexAttrib1sARB;
12140   glVertexAttrib1svARB: TglVertexAttrib1svARB;
12141   glVertexAttrib2dARB: TglVertexAttrib2dARB;
12142   glVertexAttrib2dvARB: TglVertexAttrib2dvARB;
12143   glVertexAttrib2fARB: TglVertexAttrib2fARB;
12144   glVertexAttrib2fvARB: TglVertexAttrib2fvARB;
12145   glVertexAttrib2sARB: TglVertexAttrib2sARB;
12146   glVertexAttrib2svARB: TglVertexAttrib2svARB;
12147   glVertexAttrib3dARB: TglVertexAttrib3dARB;
12148   glVertexAttrib3dvARB: TglVertexAttrib3dvARB;
12149   glVertexAttrib3fARB: TglVertexAttrib3fARB;
12150   glVertexAttrib3fvARB: TglVertexAttrib3fvARB;
12151   glVertexAttrib3sARB: TglVertexAttrib3sARB;
12152   glVertexAttrib3svARB: TglVertexAttrib3svARB;
12153   glVertexAttrib4NbvARB: TglVertexAttrib4NbvARB;
12154   glVertexAttrib4NivARB: TglVertexAttrib4NivARB;
12155   glVertexAttrib4NsvARB: TglVertexAttrib4NsvARB;
12156   glVertexAttrib4NubARB: TglVertexAttrib4NubARB;
12157   glVertexAttrib4NubvARB: TglVertexAttrib4NubvARB;
12158   glVertexAttrib4NuivARB: TglVertexAttrib4NuivARB;
12159   glVertexAttrib4NusvARB: TglVertexAttrib4NusvARB;
12160   glVertexAttrib4bvARB: TglVertexAttrib4bvARB;
12161   glVertexAttrib4dARB: TglVertexAttrib4dARB;
12162   glVertexAttrib4dvARB: TglVertexAttrib4dvARB;
12163   glVertexAttrib4fARB: TglVertexAttrib4fARB;
12164   glVertexAttrib4fvARB: TglVertexAttrib4fvARB;
12165   glVertexAttrib4ivARB: TglVertexAttrib4ivARB;
12166   glVertexAttrib4sARB: TglVertexAttrib4sARB;
12167   glVertexAttrib4svARB: TglVertexAttrib4svARB;
12168   glVertexAttrib4ubvARB: TglVertexAttrib4ubvARB;
12169   glVertexAttrib4uivARB: TglVertexAttrib4uivARB;
12170   glVertexAttrib4usvARB: TglVertexAttrib4usvARB;
12171   glVertexAttribPointerARB: TglVertexAttribPointerARB;
12172   glEnableVertexAttribArrayARB: TglEnableVertexAttribArrayARB;
12173   glDisableVertexAttribArrayARB: TglDisableVertexAttribArrayARB;
12174   glProgramStringARB: TglProgramStringARB;
12175   glBindProgramARB: TglBindProgramARB;
12176   glDeleteProgramsARB: TglDeleteProgramsARB;
12177   glGenProgramsARB: TglGenProgramsARB;
12178
12179   glProgramEnvParameter4dARB: TglProgramEnvParameter4dARB;
12180   glProgramEnvParameter4dvARB: TglProgramEnvParameter4dvARB;
12181   glProgramEnvParameter4fARB: TglProgramEnvParameter4fARB;
12182   glProgramEnvParameter4fvARB: TglProgramEnvParameter4fvARB;
12183   glProgramLocalParameter4dARB: TglProgramLocalParameter4dARB;
12184   glProgramLocalParameter4dvARB: TglProgramLocalParameter4dvARB;
12185   glProgramLocalParameter4fARB: TglProgramLocalParameter4fARB;
12186   glProgramLocalParameter4fvARB: TglProgramLocalParameter4fvARB;
12187   glGetProgramEnvParameterdvARB: TglGetProgramEnvParameterdvARB;
12188   glGetProgramEnvParameterfvARB: TglGetProgramEnvParameterfvARB;
12189   glGetProgramLocalParameterdvARB: TglGetProgramLocalParameterdvARB;
12190   glGetProgramLocalParameterfvARB: TglGetProgramLocalParameterfvARB;
12191   glGetProgramivARB: TglGetProgramivARB;
12192   glGetProgramStringARB: TglGetProgramStringARB;
12193   glGetVertexAttribdvARB: TglGetVertexAttribdvARB;
12194   glGetVertexAttribfvARB: TglGetVertexAttribfvARB;
12195   glGetVertexAttribivARB: TglGetVertexAttribivARB;
12196   glGetVertexAttribPointervARB: TglGetVertexAttribPointervARB;
12197   glIsProgramARB: TglIsProgramARB;
12198
12199   // GL_ARB_window_pos
12200   glWindowPos2dARB: TglWindowPos2dARB;
12201   glWindowPos2dvARB: TglWindowPos2dvARB;
12202   glWindowPos2fARB: TglWindowPos2fARB;
12203   glWindowPos2fvARB: TglWindowPos2fvARB;
12204   glWindowPos2iARB: TglWindowPos2iARB;
12205   glWindowPos2ivARB: TglWindowPos2ivARB;
12206   glWindowPos2sARB: TglWindowPos2sARB;
12207   glWindowPos2svARB: TglWindowPos2svARB;
12208   glWindowPos3dARB: TglWindowPos3dARB;
12209   glWindowPos3dvARB: TglWindowPos3dvARB;
12210   glWindowPos3fARB: TglWindowPos3fARB;
12211   glWindowPos3fvARB: TglWindowPos3fvARB;
12212   glWindowPos3iARB: TglWindowPos3iARB;
12213   glWindowPos3ivARB: TglWindowPos3ivARB;
12214   glWindowPos3sARB: TglWindowPos3sARB;
12215   glWindowPos3svARB: TglWindowPos3svARB;
12216
12217   // GL_ARB_draw_buffers
12218   glDrawBuffersARB: TglDrawBuffersARB;
12219
12220   // GL_ARB_color_buffer_float
12221   glClampColorARB: TglClampColorARB;
12222
12223   // GL_ARB_vertex_shader
12224   glGetActiveAttribARB: TglGetActiveAttribARB;
12225   glGetAttribLocationARB: TglGetAttribLocationARB;
12226   glBindAttribLocationARB: TglBindAttribLocationARB;
12227
12228   // GL_ARB_shader_objects
12229   glDeleteObjectARB: TglDeleteObjectARB;
12230   glGetHandleARB: TglGetHandleARB;
12231   glDetachObjectARB: TglDetachObjectARB;
12232   glCreateShaderObjectARB: TglCreateShaderObjectARB;
12233   glShaderSourceARB: TglShaderSourceARB;
12234   glCompileShaderARB: TglCompileShaderARB;
12235   glCreateProgramObjectARB: TglCreateProgramObjectARB;
12236   glAttachObjectARB: TglAttachObjectARB;
12237   glLinkProgramARB: TglLinkProgramARB;
12238   glUseProgramObjectARB: TglUseProgramObjectARB;
12239   glValidateProgramARB: TglValidateProgramARB;
12240   glUniform1fARB: TglUniform1fARB;
12241   glUniform2fARB: TglUniform2fARB;
12242   glUniform3fARB: TglUniform3fARB;
12243   glUniform4fARB: TglUniform4fARB;
12244   glUniform1iARB: TglUniform1iARB;
12245   glUniform2iARB: TglUniform2iARB;
12246   glUniform3iARB: TglUniform3iARB;
12247   glUniform4iARB: TglUniform4iARB;
12248   glUniform1fvARB: TglUniform1fvARB;
12249   glUniform2fvARB: TglUniform2fvARB;
12250   glUniform3fvARB: TglUniform3fvARB;
12251   glUniform4fvARB: TglUniform4fvARB;
12252   glUniform1ivARB: TglUniform1ivARB;
12253   glUniform2ivARB: TglUniform2ivARB;
12254   glUniform3ivARB: TglUniform3ivARB;
12255   glUniform4ivARB: TglUniform4ivARB;
12256   glUniformMatrix2fvARB: TglUniformMatrix2fvARB;
12257   glUniformMatrix3fvARB: TglUniformMatrix3fvARB;
12258   glUniformMatrix4fvARB: TglUniformMatrix4fvARB;
12259   glGetObjectParameterfvARB: TglGetObjectParameterfvARB;
12260   glGetObjectParameterivARB: TglGetObjectParameterivARB;
12261   glGetInfoLogARB: TglGetInfoLogARB;
12262   glGetAttachedObjectsARB: TglGetAttachedObjectsARB;
12263   glGetUniformLocationARB: TglGetUniformLocationARB;
12264   glGetActiveUniformARB: TglGetActiveUniformARB;
12265   glGetUniformfvARB: TglGetUniformfvARB;
12266   glGetUniformivARB: TglGetUniformivARB;
12267   glGetShaderSourceARB: TglGetShaderSourceARB;
12268
12269   // GL_ARB_Occlusion_Query
12270   glGenQueriesARB: TglGenQueriesARB;
12271   glDeleteQueriesARB: TglDeleteQueriesARB;
12272   glIsQueryARB: TglIsQueryARB;
12273   glBeginQueryARB: TglBeginQueryARB;
12274   glEndQueryARB: TglEndQueryARB;
12275   glGetQueryivARB: TglGetQueryivARB;
12276   glGetQueryObjectivARB: TglGetQueryObjectivARB;
12277   glGetQueryObjectuivARB: TglGetQueryObjectuivARB;
12278
12279   // GL_ARB_draw_instanced
12280   glDrawArraysInstancedARB: TglDrawArraysInstancedARB;
12281   glDrawElementsInstancedARB: TglDrawElementsInstancedARB;
12282
12283   // GL_ARB_framebuffer_object
12284   glIsRenderbuffer: TglIsRenderbuffer;
12285   glBindRenderbuffer: TglBindRenderbuffer;
12286   glDeleteRenderbuffers: TglDeleteRenderbuffers;
12287   glGenRenderbuffers: TglGenRenderbuffers;
12288   glRenderbufferStorage: TglRenderbufferStorage;
12289   glGetRenderbufferParameteriv: TglGetRenderbufferParameteriv;
12290   glIsFramebuffer: TglIsFramebuffer;
12291   glBindFramebuffer: TglBindFramebuffer;
12292   glDeleteFramebuffers: TglDeleteFramebuffers;
12293   glGenFramebuffers: TglGenFramebuffers;
12294   glCheckFramebufferStatus: TglCheckFramebufferStatus;
12295   glFramebufferTexture1D: TglFramebufferTexture1D;
12296   glFramebufferTexture2D: TglFramebufferTexture2D;
12297   glFramebufferTexture3D: TglFramebufferTexture3D;
12298   glFramebufferRenderbuffer: TglFramebufferRenderbuffer;
12299   glGetFramebufferAttachmentParameteriv: TglGetFramebufferAttachmentParameteriv;
12300   glGenerateMipmap: TglGenerateMipmap;
12301   glBlitFramebuffer: TglBlitFramebuffer;
12302   glRenderbufferStorageMultisample: TglRenderbufferStorageMultisample;
12303   glFramebufferTextureLayer: TglFramebufferTextureLayer;
12304
12305   // GL_ARB_geometry_shader4
12306   glProgramParameteriARB: TglProgramParameteriARB;
12307   glFramebufferTextureARB: TglFramebufferTextureARB;
12308   glFramebufferTextureLayerARB: TglFramebufferTextureLayerARB;
12309   glFramebufferTextureFaceARB: TglFramebufferTextureFaceARB;
12310
12311   // GL_ARB_instanced_arrays
12312   glVertexAttribDivisorARB: TglVertexAttribDivisorARB;
12313
12314   // GL_ARB_map_buffer_range
12315   glMapBufferRange: TglMapBufferRange;
12316   glFlushMappedBufferRange: TglFlushMappedBufferRange;
12317
12318   // GL_ARB_texture_buffer_object
12319   glTexBufferARB: TglTexBufferARB;
12320
12321   // GL_ARB_vertex_array_object
12322   glBindVertexArray: TglBindVertexArray;
12323   glDeleteVertexArrays: TglDeleteVertexArrays;
12324   glGenVertexArrays: TglGenVertexArrays;
12325   glIsVertexArray: TglIsVertexArray;
12326
12327   // GL_ARB_uniform_buffer_object
12328   glGetUniformIndices: TglGetUniformIndices;
12329   glGetActiveUniformsiv: TglGetActiveUniformsiv;
12330   glGetActiveUniformName: TglGetActiveUniformName;
12331   glGetUniformBlockIndex: TglGetUniformBlockIndex;
12332   glGetActiveUniformBlockiv: TglGetActiveUniformBlockiv;
12333   glGetActiveUniformBlockName: TglGetActiveUniformBlockName;
12334   glUniformBlockBinding: TglUniformBlockBinding;
12335
12336   // GL_ARB_copy_buffer
12337   glCopyBufferSubData: TglCopyBufferSubData;
12338
12339   // GL_ARB_draw_elements_base_vertex
12340   glDrawElementsBaseVertex: TglDrawElementsBaseVertex;
12341   glDrawRangeElementsBaseVertex: TglDrawRangeElementsBaseVertex;
12342   glDrawElementsInstancedBaseVertex: TglDrawElementsInstancedBaseVertex;
12343   glMultiDrawElementsBaseVertex: TglMultiDrawElementsBaseVertex;
12344
12345   // GL_ARB_provoking_vertex
12346   glProvokingVertex: TglProvokingVertex;
12347
12348   // GL_ARB_sync
12349   glFenceSync: TglFenceSync;
12350   glIsSync: TglIsSync;
12351   glDeleteSync: TglDeleteSync;
12352   glClientWaitSync: TglClientWaitSync;
12353   glWaitSync: TglWaitSync;
12354   glGetInteger64v: TglGetInteger64v;
12355   glGetSynciv: TglGetSynciv;
12356
12357   // GL_ARB_texture_multisample
12358   glTexImage2DMultisample: TglTexImage2DMultisample;
12359   glTexImage3DMultisample: TglTexImage3DMultisample;
12360   glGetMultisamplefv: TglGetMultisamplefv;
12361   glSampleMaski: TglSampleMaski;
12362
12363   // GL_ARB_draw_buffers_blend
12364   glBlendEquationiARB: TglBlendEquationiARB;
12365   glBlendEquationSeparateiARB: TglBlendEquationSeparateiARB;
12366   glBlendFunciARB: TglBlendFunciARB;
12367   glBlendFuncSeparateiARB: TglBlendFuncSeparateiARB;
12368
12369   // GL_ARB_sample_shading
12370   glMinSampleShadingARB: TglMinSampleShadingARB;
12371
12372   // GL_ARB_shading_language_include
12373   glNamedStringARB: TglNamedStringARB;
12374   glDeleteNamedStringARB: TglDeleteNamedStringARB;
12375   glCompileShaderIncludeARB: TglCompileShaderIncludeARB;
12376   glIsNamedStringARB: TglIsNamedStringARB;
12377   glGetNamedStringARB: TglGetNamedStringARB;
12378   glGetNamedStringivARB: TglGetNamedStringivARB;
12379
12380   // GL_ARB_blend_func_extended
12381   glBindFragDataLocationIndexed: TglBindFragDataLocationIndexed;
12382   glGetFragDataIndex: TglGetFragDataIndex;
12383
12384   // GL_ARB_sampler_objects
12385   glGenSamplers: TglGenSamplers;
12386   glDeleteSamplers: TglDeleteSamplers;
12387   glIsSampler: TglIsSampler;
12388   glBindSampler: TglBindSampler;
12389   glSamplerParameteri: TglSamplerParameteri;
12390   glSamplerParameteriv: TglSamplerParameteriv;
12391   glSamplerParameterf: TglSamplerParameterf;
12392   glSamplerParameterfv: TglSamplerParameterfv;
12393   glSamplerParameterIiv: TglSamplerParameterIiv;
12394   glSamplerParameterIuiv: TglSamplerParameterIuiv;
12395   glGetSamplerParameteriv: TglGetSamplerParameteriv;
12396   glGetSamplerParameterIiv: TglGetSamplerParameterIiv;
12397   glGetSamplerParameterfv: TglGetSamplerParameterfv;
12398   glGetSamplerParameterIuiv: TglGetSamplerParameterIuiv;
12399
12400   // GL_ARB_timer_query
12401   glQueryCounter: TglQueryCounter;
12402   glGetQueryObjecti64v: TglGetQueryObjecti64v;
12403   glGetQueryObjectui64v: TglGetQueryObjectui64v;
12404
12405   // GL_ARB_vertex_type_2_10_10_10_rev
12406   glVertexP2ui: TglVertexP2ui;
12407   glVertexP2uiv: TglVertexP2uiv;
12408   glVertexP3ui: TglVertexP3ui;
12409   glVertexP3uiv: TglVertexP3uiv;
12410   glVertexP4ui: TglVertexP4ui;
12411   glVertexP4uiv: TglVertexP4uiv;
12412   glTexCoordP1ui: TglTexCoordP1ui;
12413   glTexCoordP1uiv: TglTexCoordP1uiv;
12414   glTexCoordP2ui: TglTexCoordP2ui;
12415   glTexCoordP2uiv: TglTexCoordP2uiv;
12416   glTexCoordP3ui: TglTexCoordP3ui;
12417   glTexCoordP3uiv: TglTexCoordP3uiv;
12418   glTexCoordP4ui: TglTexCoordP4ui;
12419   glTexCoordP4uiv: TglTexCoordP4uiv;
12420   glMultiTexCoordP1ui: TglMultiTexCoordP1ui;
12421   glMultiTexCoordP1uiv: TglMultiTexCoordP1uiv;
12422   glMultiTexCoordP2ui: TglMultiTexCoordP2ui;
12423   glMultiTexCoordP2uiv: TglMultiTexCoordP2uiv;
12424   glMultiTexCoordP3ui: TglMultiTexCoordP3ui;
12425   glMultiTexCoordP3uiv: TglMultiTexCoordP3uiv;
12426   glMultiTexCoordP4ui: TglMultiTexCoordP4ui;
12427   glMultiTexCoordP4uiv: TglMultiTexCoordP4uiv;
12428   glNormalP3ui: TglNormalP3ui;
12429   glNormalP3uiv: TglNormalP3uiv;
12430   glColorP3ui: TglColorP3ui;
12431   glColorP3uiv: TglColorP3uiv;
12432   glColorP4ui: TglColorP4ui;
12433   glColorP4uiv: TglColorP4uiv;
12434   glSecondaryColorP3ui: TglSecondaryColorP3ui;
12435   glSecondaryColorP3uiv: TglSecondaryColorP3uiv;
12436   glVertexAttribP1ui: TglVertexAttribP1ui;
12437   glVertexAttribP1uiv: TglVertexAttribP1uiv;
12438   glVertexAttribP2ui: TglVertexAttribP2ui;
12439   glVertexAttribP2uiv: TglVertexAttribP2uiv;
12440   glVertexAttribP3ui: TglVertexAttribP3ui;
12441   glVertexAttribP3uiv: TglVertexAttribP3uiv;
12442   glVertexAttribP4ui: TglVertexAttribP4ui;
12443   glVertexAttribP4uiv: TglVertexAttribP4uiv;
12444
12445   // GL_ARB_draw_indirect
12446   glDrawArraysIndirect: TglDrawArraysIndirect;
12447   glDrawElementsIndirect: TglDrawElementsIndirect;
12448
12449   // GL_ARB_gpu_shader_fp64
12450   glUniform1d: TglUniform1d;
12451   glUniform2d: TglUniform2d;
12452   glUniform3d: TglUniform3d;
12453   glUniform4d: TglUniform4d;
12454   glUniform1dv: TglUniform1dv;
12455   glUniform2dv: TglUniform2dv;
12456   glUniform3dv: TglUniform3dv;
12457   glUniform4dv: TglUniform4dv;
12458   glUniformMatrix2dv: TglUniformMatrix2dv;
12459   glUniformMatrix3dv: TglUniformMatrix3dv;
12460   glUniformMatrix4dv: TglUniformMatrix4dv;
12461   glUniformMatrix2x3dv: TglUniformMatrix2x3dv;
12462   glUniformMatrix2x4dv: TglUniformMatrix2x4dv;
12463   glUniformMatrix3x2dv: TglUniformMatrix3x2dv;
12464   glUniformMatrix3x4dv: TglUniformMatrix3x4dv;
12465   glUniformMatrix4x2dv: TglUniformMatrix4x2dv;
12466   glUniformMatrix4x3dv: TglUniformMatrix4x3dv;
12467   glGetUniformdv: TglGetUniformdv;
12468
12469   // GL_ARB_shader_subroutine
12470   glGetSubroutineUniformLocation: TglGetSubroutineUniformLocation;
12471   glGetSubroutineIndex: TglGetSubroutineIndex;
12472   glGetActiveSubroutineUniformiv: TglGetActiveSubroutineUniformiv;
12473   glGetActiveSubroutineUniformName: TglGetActiveSubroutineUniformName;
12474   glGetActiveSubroutineName: TglGetActiveSubroutineName;
12475   glUniformSubroutinesuiv: TglUniformSubroutinesuiv;
12476   glGetUniformSubroutineuiv: TglGetUniformSubroutineuiv;
12477   glGetProgramStageiv: TglGetProgramStageiv;
12478
12479   // GL_ARB_tessellation_shader
12480   glPatchParameteri: TglPatchParameteri;
12481   glPatchParameterfv: TglPatchParameterfv;
12482
12483   // GL_ARB_transform_feedback2
12484   glBindTransformFeedback: TglBindTransformFeedback;
12485   glDeleteTransformFeedbacks: TglDeleteTransformFeedbacks;
12486   glGenTransformFeedbacks: TglGenTransformFeedbacks;
12487   glIsTransformFeedback: TglIsTransformFeedback;
12488   glPauseTransformFeedback: TglPauseTransformFeedback;
12489   glResumeTransformFeedback: TglResumeTransformFeedback;
12490   glDrawTransformFeedback: TglDrawTransformFeedback;
12491
12492   // GL_ARB_transform_feedback3
12493   glDrawTransformFeedbackStream: TglDrawTransformFeedbackStream;
12494   glBeginQueryIndexed: TglBeginQueryIndexed;
12495   glEndQueryIndexed: TglEndQueryIndexed;
12496   glGetQueryIndexediv: TglGetQueryIndexediv;
12497
12498   // GL_ARB_ES2_compatibility
12499   glReleaseShaderCompiler: TglReleaseShaderCompiler;
12500   glShaderBinary: TglShaderBinary;
12501   glGetShaderPrecisionFormat: TglGetShaderPrecisionFormat;
12502   glDepthRangef: TglDepthRangef;
12503   glClearDepthf: TglClearDepthf;
12504
12505   // GL_ARB_get_program_binary
12506   glGetProgramBinary: TglGetProgramBinary;
12507   glProgramBinary: TglProgramBinary;
12508   glProgramParameteri: TglProgramParameteri;
12509   
12510   // GL_ARB_separate_shader_objects
12511   glUseProgramStages: TglUseProgramStages;
12512   glActiveShaderProgram: TglActiveShaderProgram;
12513   glCreateShaderProgramv: TglCreateShaderProgramv;
12514   glBindProgramPipeline: TglBindProgramPipeline;
12515   glDeleteProgramPipelines: TglDeleteProgramPipelines;
12516   glGenProgramPipelines: TglGenProgramPipelines;
12517   glIsProgramPipeline: TglIsProgramPipeline;
12518   glGetProgramPipelineiv: TglGetProgramPipelineiv;
12519   glProgramUniform1i: TglProgramUniform1i;
12520   glProgramUniform1iv: TglProgramUniform1iv;
12521   glProgramUniform1f: TglProgramUniform1f;
12522   glProgramUniform1fv: TglProgramUniform1fv;
12523   glProgramUniform1d: TglProgramUniform1d;
12524   glProgramUniform1dv: TglProgramUniform1dv;
12525   glProgramUniform1ui: TglProgramUniform1ui;
12526   glProgramUniform1uiv: TglProgramUniform1uiv;
12527   glProgramUniform2i: TglProgramUniform2i;
12528   glProgramUniform2iv: TglProgramUniform2iv;
12529   glProgramUniform2f: TglProgramUniform2f;
12530   glProgramUniform2fv: TglProgramUniform2fv;
12531   glProgramUniform2d: TglProgramUniform2d;
12532   glProgramUniform2dv: TglProgramUniform2dv;
12533   glProgramUniform2ui: TglProgramUniform2ui;
12534   glProgramUniform2uiv: TglProgramUniform2uiv;
12535   glProgramUniform3i: TglProgramUniform3i;
12536   glProgramUniform3iv: TglProgramUniform3iv;
12537   glProgramUniform3f: TglProgramUniform3f;
12538   glProgramUniform3fv: TglProgramUniform3fv;
12539   glProgramUniform3d: TglProgramUniform3d;
12540   glProgramUniform3dv: TglProgramUniform3dv;
12541   glProgramUniform3ui: TglProgramUniform3ui;
12542   glProgramUniform3uiv: TglProgramUniform3uiv;
12543   glProgramUniform4i: TglProgramUniform4i;
12544   glProgramUniform4iv: TglProgramUniform4iv;
12545   glProgramUniform4f: TglProgramUniform4f;
12546   glProgramUniform4fv: TglProgramUniform4fv;
12547   glProgramUniform4d: TglProgramUniform4d;
12548   glProgramUniform4dv: TglProgramUniform4dv;
12549   glProgramUniform4ui: TglProgramUniform4ui;
12550   glProgramUniform4uiv: TglProgramUniform4uiv;
12551   glProgramUniformMatrix2fv: TglProgramUniformMatrix2fv;
12552   glProgramUniformMatrix3fv: TglProgramUniformMatrix3fv;
12553   glProgramUniformMatrix4fv: TglProgramUniformMatrix4fv;
12554   glProgramUniformMatrix2dv: TglProgramUniformMatrix2dv;
12555   glProgramUniformMatrix3dv: TglProgramUniformMatrix3dv;
12556   glProgramUniformMatrix4dv: TglProgramUniformMatrix4dv;
12557   glProgramUniformMatrix2x3fv: TglProgramUniformMatrix2x3fv;
12558   glProgramUniformMatrix3x2fv: TglProgramUniformMatrix3x2fv;
12559   glProgramUniformMatrix2x4fv: TglProgramUniformMatrix2x4fv;
12560   glProgramUniformMatrix4x2fv: TglProgramUniformMatrix4x2fv;
12561   glProgramUniformMatrix3x4fv: TglProgramUniformMatrix3x4fv;
12562   glProgramUniformMatrix4x3fv: TglProgramUniformMatrix4x3fv;
12563   glProgramUniformMatrix2x3dv: TglProgramUniformMatrix2x3dv;
12564   glProgramUniformMatrix3x2dv: TglProgramUniformMatrix3x2dv;
12565   glProgramUniformMatrix2x4dv: TglProgramUniformMatrix2x4dv;
12566   glProgramUniformMatrix4x2dv: TglProgramUniformMatrix4x2dv;
12567   glProgramUniformMatrix3x4dv: TglProgramUniformMatrix3x4dv;
12568   glProgramUniformMatrix4x3dv: TglProgramUniformMatrix4x3dv;
12569   glValidateProgramPipeline: TglValidateProgramPipeline;
12570   glGetProgramPipelineInfoLog: TglGetProgramPipelineInfoLog;
12571
12572   // GL_ARB_vertex_attrib_64bit
12573   glVertexAttribL1d: TglVertexAttribL1d;
12574   glVertexAttribL2d: TglVertexAttribL2d;
12575   glVertexAttribL3d: TglVertexAttribL3d;
12576   glVertexAttribL4d: TglVertexAttribL4d;
12577   glVertexAttribL1dv: TglVertexAttribL1dv;
12578   glVertexAttribL2dv: TglVertexAttribL2dv;
12579   glVertexAttribL3dv: TglVertexAttribL3dv;
12580   glVertexAttribL4dv: TglVertexAttribL4dv;
12581   glVertexAttribLPointer: TglVertexAttribLPointer;
12582   glGetVertexAttribLdv: TglGetVertexAttribLdv;
12583
12584   // GL_ARB_viewport_array
12585   glViewportArrayv: TglViewportArrayv;
12586   glViewportIndexedf: TglViewportIndexedf;
12587   glViewportIndexedfv: TglViewportIndexedfv;
12588   glScissorArrayv: TglScissorArrayv;
12589   glScissorIndexed: TglScissorIndexed;
12590   glScissorIndexedv: TglScissorIndexedv;
12591   glDepthRangeArrayv: TglDepthRangeArrayv;
12592   glDepthRangeIndexed: TglDepthRangeIndexed;
12593   glGetFloati_v: TglGetFloati_v;
12594   glGetDoublei_v: TglGetDoublei_v;
12595
12596   // GL 4.2
12597
12598   // GL_ARB_base_instance
12599   glDrawArraysInstancedBaseInstance : TglDrawArraysInstancedBaseInstance;
12600   glDrawElementsInstancedBaseInstance : TglDrawElementsInstancedBaseInstance;
12601   glDrawElementsInstancedBaseVertexBaseInstance : TglDrawElementsInstancedBaseVertexBaseInstance;
12602
12603   // GL_ARB_transform_feedback_instanced
12604   glDrawTransformFeedbackInstanced : TglDrawTransformFeedbackInstanced;
12605   glDrawTransformFeedbackStreamInstanced : TglDrawTransformFeedbackStreamInstanced;
12606
12607   // GL_ARB_internalformat_query
12608   glGetInternalformativ : TglGetInternalformativ;
12609
12610   // GL_ARB_shader_atomic_counters
12611   glGetActiveAtomicCounterBufferiv : TglGetActiveAtomicCounterBufferiv;
12612
12613   /// GL_ARB_shader_image_load_store
12614   glBindImageTexture : TglBindImageTexture;
12615   glMemoryBarrier : TglMemoryBarrier;
12616
12617   // GL_ARB_texture_storage
12618   glTexStorage1D : TglTexStorage1D;
12619   glTexStorage2D : TglTexStorage2D;
12620   glTexStorage3D : TglTexStorage3D;
12621   glTextureStorage1DEXT : TglTextureStorage1DEXT;
12622   glTextureStorage2DEXT : TglTextureStorage2DEXT;
12623   glTextureStorage3DEXT : TglTextureStorage3DEXT;
12624
12625
12626   // GL 4.3
12627     // GL_KHR_debug
12628     glDebugMessageControl : TglDebugMessageControl;
12629     glDebugMessageInsert : TglDebugMessageInsert;
12630     glDebugMessageCallback : TglDebugMessageCallback;
12631     glGetDebugMessageLog : TglGetDebugMessageLog;
12632     glPushDebugGroup : TglPushDebugGroup;
12633     glPopDebugGroup : TglPopDebugGroup;
12634     glObjectLabel : TglObjectLabel;
12635     glGetObjectLabel : TglGetObjectLabel;
12636     glObjectPtrLabel : TglObjectPtrLabel;
12637     glGetObjectPtrLabel : TglGetObjectPtrLabel;
12638     // GL_ARB_clear_buffer_object
12639     glClearBufferData : TglClearBufferData;
12640     glClearBufferSubData : TglClearBufferSubData;
12641     glClearNamedBufferDataEXT : TglClearNamedBufferDataEXT;
12642     glClearNamedBufferSubDataEXT : TglClearNamedBufferSubDataEXT;
12643     // GL_ARB_compute_shader
12644     glDispatchCompute : TglDispatchCompute;
12645     glDispatchComputeIndirect : TglDispatchComputeIndirect;
12646     // GL_ARB_copy_image
12647     glCopyImageSubData : TglCopyImageSubData;
12648     // GL_ARB_framebuffer_no_attachments
12649     glFramebufferParameteri : TglFramebufferParameteri;
12650     glGetFramebufferParameteriv : TglGetFramebufferParameteriv;
12651     glNamedFramebufferParameteriEXT : TglNamedFramebufferParameteriEXT;
12652     glGetNamedFramebufferParameterivEXT : TglGetNamedFramebufferParameterivEXT;
12653     // GL_ARB_internalformat_query2
12654     glGetInternalformati64v : TglGetInternalformati64v;
12655     // GL_ARB_invalidate_subdata
12656     glInvalidateTexSubImage : TglInvalidateTexSubImage;
12657     glInvalidateTexImage : TglInvalidateTexImage;
12658     glInvalidateBufferSubData : TglInvalidateBufferSubData;
12659     glInvalidateBufferData : TglInvalidateBufferData;
12660     glInvalidateFramebuffer : TglInvalidateFramebuffer;
12661     glInvalidateSubFramebuffer : TglInvalidateSubFramebuffer;
12662     // GL_ARB_multi_draw_indirect
12663     glMultiDrawArraysIndirect : TglMultiDrawArraysIndirect;
12664     glMultiDrawElementsIndirect : TglMultiDrawElementsIndirect;
12665     // GL_ARB_program_interface_query
12666     glGetProgramInterfaceiv : TglGetProgramInterfaceiv;
12667     glGetProgramResourceIndex : TglGetProgramResourceIndex;
12668     glGetProgramResourceName : TglGetProgramResourceName;
12669     glGetProgramResourceiv : TglGetProgramResourceiv;
12670     glGetProgramResourceLocation : TglGetProgramResourceLocation;
12671     glGetProgramResourceLocationIndex : TglGetProgramResourceLocationIndex;
12672     // GL_ARB_shader_storage_buffer_object
12673     glShaderStorageBlockBinding : TglShaderStorageBlockBinding;
12674     // GL_ARB_texture_buffer_range
12675     glTexBufferRange : TglTexBufferRange;
12676     glTextureBufferRangeEXT : TglTextureBufferRangeEXT;
12677     // GL_ARB_texture_storage_multisample
12678     glTexStorage2DMultisample : TglTexStorage2DMultisample;
12679     glTexStorage3DMultisample : TglTexStorage3DMultisample;
12680     glTextureStorage2DMultisampleEXT : TglTextureStorage2DMultisampleEXT;
12681     glTextureStorage3DMultisampleEXT : TglTextureStorage3DMultisampleEXT;
12682     // GL_ARB_texture_view
12683     glTextureView : TglTextureView;
12684     // GL_ARB_vertex_attrib_binding
12685     glBindVertexBuffer : TglBindVertexBuffer;
12686     glVertexAttribFormat : TglVertexAttribFormat;
12687     glVertexAttribIFormat : TglVertexAttribIFormat;
12688     glVertexAttribLFormat : TglVertexAttribLFormat;
12689     glVertexAttribBinding : TglVertexAttribBinding;
12690     glVertexBindingDivisor : TglVertexBindingDivisor;
12691     glVertexArrayBindVertexBufferEXT : TglVertexArrayBindVertexBufferEXT;
12692     glVertexArrayVertexAttribFormatEXT : TglVertexArrayVertexAttribFormatEXT;
12693     glVertexArrayVertexAttribIFormatEXT : TglVertexArrayVertexAttribIFormatEXT;
12694     glVertexArrayVertexAttribLFormatEXT : TglVertexArrayVertexAttribLFormatEXT;
12695     glVertexArrayVertexAttribBindingEXT : TglVertexArrayVertexAttribBindingEXT;
12696     glVertexArrayVertexBindingDivisorEXT : TglVertexArrayVertexBindingDivisorEXT;
12697   // END GL 4.3
12698
12699
12700   // GL 4.4
12701     glBufferStorage : TglBufferStorage;
12702     glClearTexImage : TglClearTexImage;
12703     glClearTexSubImage : TglClearTexSubImage;
12704     glBindBuffersBase : TglBindBuffersBase;
12705     glBindBuffersRange : TglBindBuffersRange;
12706     glBindTextures : TglBindTextures;
12707     glBindSamplers : TglBindSamplers;
12708     glBindImageTextures : TglBindImageTextures;
12709     glBindVertexBuffers : TglBindVertexBuffers;
12710   // END GL 4.4
12711
12712
12713   // GL_ARB_cl_event
12714   glCreateSyncFromCLeventARB: TglCreateSyncFromCLeventARB;
12715
12716   // GL_ARB_debug_output
12717   glDebugMessageControlARB: TglDebugMessageControlARB;
12718   glDebugMessageInsertARB: TglDebugMessageInsertARB;
12719   glDebugMessageCallbackARB: TglDebugMessageCallbackARB;
12720   glGetDebugMessageLogARB: TglGetDebugMessageLogARB;
12721
12722   // GL_ARB_robustness
12723   glGetGraphicsResetStatusARB: TglGetGraphicsResetStatusARB;
12724   glGetnMapdvARB: TglGetnMapdvARB;
12725   glGetnMapfvARB: TglGetnMapfvARB;
12726   glGetnMapivARB: TglGetnMapivARB;
12727   glGetnPixelMapfvARB: TglGetnPixelMapfvARB;
12728   glGetnPixelMapuivARB: TglGetnPixelMapuivARB;
12729   glGetnPixelMapusvARB: TglGetnPixelMapusvARB;
12730   glGetnPolygonStippleARB: TglGetnPolygonStippleARB;
12731   glGetnColorTableARB: TglGetnColorTableARB;
12732   glGetnConvolutionFilterARB: TglGetnConvolutionFilterARB;
12733   glGetnSeparableFilterARB: TglGetnSeparableFilterARB;
12734   glGetnHistogramARB: TglGetnHistogramARB;
12735   glGetnMinmaxARB: TglGetnMinmaxARB;
12736   glGetnTexImageARB: TglGetnTexImageARB;
12737   glReadnPixelsARB: TglReadnPixelsARB;
12738   glGetnCompressedTexImageARB: TglGetnCompressedTexImageARB;
12739   glGetnUniformfvARB: TglGetnUniformfvARB;
12740   glGetnUniformivARB: TglGetnUniformivARB;
12741   glGetnUniformuivARB: TglGetnUniformuivARB;
12742   glGetnUniformdvARB: TglGetnUniformdvARB;
12743
12744   // GL_ATI_draw_buffers
12745   glDrawBuffersATI: TglDrawBuffersATI;
12746
12747   // GL_ATI_element_array
12748   glElementPointerATI: TglElementPointerATI;
12749   glDrawElementArrayATI: TglDrawElementArrayATI;
12750   glDrawRangeElementArrayATI: TglDrawRangeElementArrayATI;
12751
12752   // GL_ATI_envmap_bumpmap
12753   glTexBumpParameterivATI: TglTexBumpParameterivATI;
12754   glTexBumpParameterfvATI: TglTexBumpParameterfvATI;
12755   glGetTexBumpParameterivATI: TglGetTexBumpParameterivATI;
12756   glGetTexBumpParameterfvATI: TglGetTexBumpParameterfvATI;
12757
12758   // GL_ATI_fragment_shader
12759   glGenFragmentShadersATI: TglGenFragmentShadersATI;
12760   glBindFragmentShaderATI: TglBindFragmentShaderATI;
12761   glDeleteFragmentShaderATI: TglDeleteFragmentShaderATI;
12762   glBeginFragmentShaderATI: TglBeginFragmentShaderATI;
12763   glEndFragmentShaderATI: TglEndFragmentShaderATI;
12764   glPassTexCoordATI: TglPassTexCoordATI;
12765   glSampleMapATI: TglSampleMapATI;
12766   glColorFragmentOp1ATI: TglColorFragmentOp1ATI;
12767   glColorFragmentOp2ATI: TglColorFragmentOp2ATI;
12768   glColorFragmentOp3ATI: TglColorFragmentOp3ATI;
12769   glAlphaFragmentOp1ATI: TglAlphaFragmentOp1ATI;
12770   glAlphaFragmentOp2ATI: TglAlphaFragmentOp2ATI;
12771   glAlphaFragmentOp3ATI: TglAlphaFragmentOp3ATI;
12772   glSetFragmentShaderConstantATI: TglSetFragmentShaderConstantATI;
12773
12774   // GL_ATI_map_object_buffer
12775   glMapObjectBufferATI: TglMapObjectBufferATI;
12776   glUnmapObjectBufferATI: TglUnmapObjectBufferATI;
12777
12778   // GL_ATI_pn_triangles
12779   glPNTrianglesiATI: TglPNTrianglesiATI;
12780   glPNTrianglesfATI: TglPNTrianglesfATI;
12781
12782   // GL_ATI_separate_stencil
12783   glStencilOpSeparateATI: TglStencilOpSeparateATI;
12784   glStencilFuncSeparateATI: TglStencilFuncSeparateATI;
12785
12786   // GL_ATI_vertex_array_object
12787   glNewObjectBufferATI: TglNewObjectBufferATI;
12788   glIsObjectBufferATI: TglIsObjectBufferATI;
12789   glUpdateObjectBufferATI: TglUpdateObjectBufferATI;
12790   glGetObjectBufferfvATI: TglGetObjectBufferfvATI;
12791   glGetObjectBufferivATI: TglGetObjectBufferivATI;
12792   glFreeObjectBufferATI: TglFreeObjectBufferATI;
12793   glArrayObjectATI: TglArrayObjectATI;
12794   glGetArrayObjectfvATI: TglGetArrayObjectfvATI;
12795   glGetArrayObjectivATI: TglGetArrayObjectivATI;
12796   glVariantArrayObjectATI: TglVariantArrayObjectATI;
12797   glGetVariantArrayObjectfvATI: TglGetVariantArrayObjectfvATI;
12798   glGetVariantArrayObjectivATI: TglGetVariantArrayObjectivATI;
12799   glVertexAttribArrayObjectATI: TglVertexAttribArrayObjectATI;
12800   glGetVertexAttribArrayObjectfvATI: TglGetVertexAttribArrayObjectfvATI;
12801   glGetVertexAttribArrayObjectivATI: TglGetVertexAttribArrayObjectivATI;
12802
12803   // GL_ATI_vertex_streams
12804   glVertexStream1sATI: TglVertexStream1sATI;
12805   glVertexStream1svATI: TglVertexStream1svATI;
12806   glVertexStream1iATI: TglVertexStream1iATI;
12807   glVertexStream1ivATI: TglVertexStream1ivATI;
12808   glVertexStream1fATI: TglVertexStream1fATI;
12809   glVertexStream1fvATI: TglVertexStream1fvATI;
12810   glVertexStream1dATI: TglVertexStream1dATI;
12811   glVertexStream1dvATI: TglVertexStream1dvATI;
12812   glVertexStream2sATI: TglVertexStream2sATI;
12813   glVertexStream2svATI: TglVertexStream2svATI;
12814   glVertexStream2iATI: TglVertexStream2iATI;
12815   glVertexStream2ivATI: TglVertexStream2ivATI;
12816   glVertexStream2fATI: TglVertexStream2fATI;
12817   glVertexStream2fvATI: TglVertexStream2fvATI;
12818   glVertexStream2dATI: TglVertexStream2dATI;
12819   glVertexStream2dvATI: TglVertexStream2dvATI;
12820   glVertexStream3sATI: TglVertexStream3sATI;
12821   glVertexStream3svATI: TglVertexStream3svATI;
12822   glVertexStream3iATI: TglVertexStream3iATI;
12823   glVertexStream3ivATI: TglVertexStream3ivATI;
12824   glVertexStream3fATI: TglVertexStream3fATI;
12825   glVertexStream3fvATI: TglVertexStream3fvATI;
12826   glVertexStream3dATI: TglVertexStream3dATI;
12827   glVertexStream3dvATI: TglVertexStream3dvATI;
12828   glVertexStream4sATI: TglVertexStream4sATI;
12829   glVertexStream4svATI: TglVertexStream4svATI;
12830   glVertexStream4iATI: TglVertexStream4iATI;
12831   glVertexStream4ivATI: TglVertexStream4ivATI;
12832   glVertexStream4fATI: TglVertexStream4fATI;
12833   glVertexStream4fvATI: TglVertexStream4fvATI;
12834   glVertexStream4dATI: TglVertexStream4dATI;
12835   glVertexStream4dvATI: TglVertexStream4dvATI;
12836   glNormalStream3bATI: TglNormalStream3bATI;
12837   glNormalStream3bvATI: TglNormalStream3bvATI;
12838   glNormalStream3sATI: TglNormalStream3sATI;
12839   glNormalStream3svATI: TglNormalStream3svATI;
12840   glNormalStream3iATI: TglNormalStream3iATI;
12841   glNormalStream3ivATI: TglNormalStream3ivATI;
12842   glNormalStream3fATI: TglNormalStream3fATI;
12843   glNormalStream3fvATI: TglNormalStream3fvATI;
12844   glNormalStream3dATI: TglNormalStream3dATI;
12845   glNormalStream3dvATI: TglNormalStream3dvATI;
12846   glClientActiveVertexStreamATI: TglClientActiveVertexStreamATI;
12847   glVertexBlendEnviATI: TglVertexBlendEnviATI;
12848   glVertexBlendEnvfATI: TglVertexBlendEnvfATI;
12849
12850   // GL_AMD_performance_monitor
12851   glGetPerfMonitorGroupsAMD: TglGetPerfMonitorGroupsAMD;
12852   glGetPerfMonitorCountersAMD: TglGetPerfMonitorCountersAMD;
12853   glGetPerfMonitorGroupStringAMD: TglGetPerfMonitorGroupStringAMD;
12854   glGetPerfMonitorCounterStringAMD: TglGetPerfMonitorCounterStringAMD;
12855   glGetPerfMonitorCounterInfoAMD: TglGetPerfMonitorCounterInfoAMD;
12856   glGenPerfMonitorsAMD: TglGenPerfMonitorsAMD;
12857   glDeletePerfMonitorsAMD: TglDeletePerfMonitorsAMD;
12858   glSelectPerfMonitorCountersAMD: TglSelectPerfMonitorCountersAMD;
12859   glBeginPerfMonitorAMD: TglBeginPerfMonitorAMD;
12860   glEndPerfMonitorAMD: TglEndPerfMonitorAMD;
12861   glGetPerfMonitorCounterDataAMD: TglGetPerfMonitorCounterDataAMD;
12862
12863   // GL_AMD_vertex_shader_tesselator
12864   glTessellationFactorAMD: TglTessellationFactorAMD;
12865   glTessellationModeAMD: TglTessellationModeAMD;
12866   
12867   // GL_AMD_draw_buffers_blend
12868   glBlendFuncIndexedAMD: TglBlendFuncIndexedAMD;
12869   glBlendFuncSeparateIndexedAMD: TglBlendFuncSeparateIndexedAMD;
12870   glBlendEquationIndexedAMD: TglBlendEquationIndexedAMD;
12871   glBlendEquationSeparateIndexedAMD: TglBlendEquationSeparateIndexedAMD;
12872
12873   // GL_AMD_name_gen_delete
12874   glGenNamesAMD: TglGenNamesAMD;
12875   glDeleteNamesAMD: TglDeleteNamesAMD;
12876   glIsNameAMD: TglIsNameAMD;
12877
12878   // GL_AMD_debug_output
12879   glDebugMessageEnableAMD: TglDebugMessageEnableAMD;
12880   glDebugMessageInsertAMD: TglDebugMessageInsertAMD;
12881   glDebugMessageCallbackAMD: TglDebugMessageCallbackAMD;
12882   glGetDebugMessageLogAMD: TglGetDebugMessageLogAMD;
12883
12884   // GL_EXT_blend_color
12885   glBlendColorEXT: TglBlendColorEXT;
12886
12887   // GL_EXT_blend_func_separate
12888   glBlendFuncSeparateEXT: TglBlendFuncSeparateEXT;
12889
12890   // GL_EXT_blend_minmax
12891   glBlendEquationEXT: TglBlendEquationEXT;
12892
12893   // GL_EXT_color_subtable
12894   glColorSubTableEXT: TglColorSubTableEXT;
12895   glCopyColorSubTableEXT: TglCopyColorSubTableEXT;
12896
12897   // GL_EXT_compiled_vertex_array
12898   glLockArraysEXT: TglLockArraysEXT;
12899   glUnlockArraysEXT: TglUnlockArraysEXT;
12900
12901   // GL_EXT_convolution
12902   glConvolutionFilter1DEXT: TglConvolutionFilter1DEXT;
12903   glConvolutionFilter2DEXT: TglConvolutionFilter2DEXT;
12904   glConvolutionParameterfEXT: TglConvolutionParameterfEXT;
12905   glConvolutionParameterfvEXT: TglConvolutionParameterfvEXT;
12906   glConvolutionParameteriEXT: TglConvolutionParameteriEXT;
12907   glConvolutionParameterivEXT: TglConvolutionParameterivEXT;
12908   glCopyConvolutionFilter1DEXT: TglCopyConvolutionFilter1DEXT;
12909   glCopyConvolutionFilter2DEXT: TglCopyConvolutionFilter2DEXT;
12910   glGetConvolutionFilterEXT: TglGetConvolutionFilterEXT;
12911   glGetConvolutionParameterfvEXT: TglGetConvolutionParameterfvEXT;
12912   glGetConvolutionParameterivEXT: TglGetConvolutionParameterivEXT;
12913   glGetSeparableFilterEXT: TglGetSeparableFilterEXT;
12914   glSeparableFilter2DEXT: TglSeparableFilter2DEXT;
12915
12916   // GL_EXT_coordinate_frame
12917   glTangent3bEXT: TglTangent3bEXT;
12918   glTangent3bvEXT: TglTangent3bvEXT;
12919   glTangent3dEXT: TglTangent3dEXT;
12920   glTangent3dvEXT: TglTangent3dvEXT;
12921   glTangent3fEXT: TglTangent3fEXT;
12922   glTangent3fvEXT: TglTangent3fvEXT;
12923   glTangent3iEXT: TglTangent3iEXT;
12924   glTangent3ivEXT: TglTangent3ivEXT;
12925   glTangent3sEXT: TglTangent3sEXT;
12926   glTangent3svEXT: TglTangent3svEXT;
12927   glBinormal3bEXT: TglBinormal3bEXT;
12928   glBinormal3bvEXT: TglBinormal3bvEXT;
12929   glBinormal3dEXT: TglBinormal3dEXT;
12930   glBinormal3dvEXT: TglBinormal3dvEXT;
12931   glBinormal3fEXT: TglBinormal3fEXT;
12932   glBinormal3fvEXT: TglBinormal3fvEXT;
12933   glBinormal3iEXT: TglBinormal3iEXT;
12934   glBinormal3ivEXT: TglBinormal3ivEXT;
12935   glBinormal3sEXT: TglBinormal3sEXT;
12936   glBinormal3svEXT: TglBinormal3svEXT;
12937   glTangentPointerEXT: TglTangentPointerEXT;
12938   glBinormalPointerEXT: TglBinormalPointerEXT;
12939
12940   // GL_EXT_copy_texture
12941   glCopyTexImage1DEXT: TglCopyTexImage1DEXT;
12942   glCopyTexImage2DEXT: TglCopyTexImage2DEXT;
12943   glCopyTexSubImage1DEXT: TglCopyTexSubImage1DEXT;
12944   glCopyTexSubImage2DEXT: TglCopyTexSubImage2DEXT;
12945   glCopyTexSubImage3DEXT: TglCopyTexSubImage3DEXT;
12946
12947   // GL_EXT_cull_vertex
12948   glCullParameterdvEXT: TglCullParameterdvEXT;
12949   glCullParameterfvEXT: TglCullParameterfvEXT;
12950
12951   // GL_EXT_draw_range_elements
12952   glDrawRangeElementsEXT: TglDrawRangeElementsEXT;
12953
12954   // GL_EXT_fog_coord
12955   glFogCoordfEXT: TglFogCoordfEXT;
12956   glFogCoordfvEXT: TglFogCoordfvEXT;
12957   glFogCoorddEXT: TglFogCoorddEXT;
12958   glFogCoorddvEXT: TglFogCoorddvEXT;
12959   glFogCoordPointerEXT: TglFogCoordPointerEXT;
12960
12961   // GL_EXT_framebuffer_object
12962   glIsRenderbufferEXT: TglIsRenderbufferEXT;
12963   glBindRenderbufferEXT: TglBindRenderbufferEXT;
12964   glDeleteRenderbuffersEXT: TglDeleteRenderbuffersEXT;
12965   glGenRenderbuffersEXT: TglGenRenderbuffersEXT;
12966   glRenderbufferStorageEXT: TglRenderbufferStorageEXT;
12967   glGetRenderbufferParameterivEXT: TglGetRenderbufferParameterivEXT;
12968   glIsFramebufferEXT: TglIsFramebufferEXT;
12969   glBindFramebufferEXT: TglBindFramebufferEXT;
12970   glDeleteFramebuffersEXT: TglDeleteFramebuffersEXT;
12971   glGenFramebuffersEXT: TglGenFramebuffersEXT;
12972   glCheckFramebufferStatusEXT: TglCheckFramebufferStatusEXT;
12973   glFramebufferTexture1DEXT: TglFramebufferTexture1DEXT;
12974   glFramebufferTexture2DEXT: TglFramebufferTexture2DEXT;
12975   glFramebufferTexture3DEXT: TglFramebufferTexture3DEXT;
12976   glFramebufferRenderbufferEXT: TglFramebufferRenderbufferEXT;
12977   glGetFramebufferAttachmentParameterivEXT: TglGetFramebufferAttachmentParameterivEXT;
12978   glGenerateMipmapEXT: TglGenerateMipmapEXT;
12979
12980   // GL_EXT_histogram
12981   glGetHistogramEXT: TglGetHistogramEXT;
12982   glGetHistogramParameterfvEXT: TglGetHistogramParameterfvEXT;
12983   glGetHistogramParameterivEXT: TglGetHistogramParameterivEXT;
12984   glGetMinmaxEXT: TglGetMinmaxEXT;
12985   glGetMinmaxParameterfvEXT: TglGetMinmaxParameterfvEXT;
12986   glGetMinmaxParameterivEXT: TglGetMinmaxParameterivEXT;
12987   glHistogramEXT: TglHistogramEXT;
12988   glMinmaxEXT: TglMinmaxEXT;
12989   glResetHistogramEXT: TglResetHistogramEXT;
12990   glResetMinmaxEXT: TglResetMinmaxEXT;
12991
12992   // GL_EXT_index_func
12993   glIndexFuncEXT: TglIndexFuncEXT;
12994
12995   // GL_EXT_index_material
12996   glIndexMaterialEXT: TglIndexMaterialEXT;
12997
12998   // GL_EXT_light_texture
12999   glApplyTextureEXT: TglApplyTextureEXT;
13000   glTextureLightEXT: TglTextureLightEXT;
13001   glTextureMaterialEXT: TglTextureMaterialEXT;
13002
13003   // GL_EXT_multi_draw_arrays
13004   glMultiDrawArraysEXT: TglMultiDrawArraysEXT;
13005   glMultiDrawElementsEXT: TglMultiDrawElementsEXT;
13006
13007   // GL_EXT_multisample
13008   glSampleMaskEXT: TglSampleMaskEXT;
13009   glSamplePatternEXT: TglSamplePatternEXT;
13010
13011   // GL_EXT_paletted_texture
13012   glColorTableEXT: TglColorTableEXT;
13013   glGetColorTableEXT: TglGetColorTableEXT;
13014   glGetColorTableParameterivEXT: TglGetColorTableParameterivEXT;
13015   glGetColorTableParameterfvEXT: TglGetColorTableParameterfvEXT;
13016
13017   // GL_EXT_pixel_transform
13018   glPixelTransformParameteriEXT: TglPixelTransformParameteriEXT;
13019   glPixelTransformParameterfEXT: TglPixelTransformParameterfEXT;
13020   glPixelTransformParameterivEXT: TglPixelTransformParameterivEXT;
13021   glPixelTransformParameterfvEXT: TglPixelTransformParameterfvEXT;
13022
13023   // GL_EXT_point_parameters
13024   glPointParameterfEXT: TglPointParameterfEXT;
13025   glPointParameterfvEXT: TglPointParameterfvEXT;
13026
13027   // GL_EXT_polygon_offset
13028   glPolygonOffsetEXT: TglPolygonOffsetEXT;
13029
13030   // GL_EXT_secondary_color
13031   glSecondaryColor3bEXT: TglSecondaryColor3bEXT;
13032   glSecondaryColor3bvEXT: TglSecondaryColor3bvEXT;
13033   glSecondaryColor3dEXT: TglSecondaryColor3dEXT;
13034   glSecondaryColor3dvEXT: TglSecondaryColor3dvEXT;
13035   glSecondaryColor3fEXT: TglSecondaryColor3fEXT;
13036   glSecondaryColor3fvEXT: TglSecondaryColor3fvEXT;
13037   glSecondaryColor3iEXT: TglSecondaryColor3iEXT;
13038   glSecondaryColor3ivEXT: TglSecondaryColor3ivEXT;
13039   glSecondaryColor3sEXT: TglSecondaryColor3sEXT;
13040   glSecondaryColor3svEXT: TglSecondaryColor3svEXT;
13041   glSecondaryColor3ubEXT: TglSecondaryColor3ubEXT;
13042   glSecondaryColor3ubvEXT: TglSecondaryColor3ubvEXT;
13043   glSecondaryColor3uiEXT: TglSecondaryColor3uiEXT;
13044   glSecondaryColor3uivEXT: TglSecondaryColor3uivEXT;
13045   glSecondaryColor3usEXT: TglSecondaryColor3usEXT;
13046   glSecondaryColor3usvEXT: TglSecondaryColor3usvEXT;
13047   glSecondaryColorPointerEXT: TglSecondaryColorPointerEXT;
13048
13049   // GL_EXT_stencil_two_side
13050   glActiveStencilFaceEXT: TglActiveStencilFaceEXT;
13051
13052   // GL_EXT_subtexture
13053   glTexSubImage1DEXT: TglTexSubImage1DEXT;
13054   glTexSubImage2DEXT: TglTexSubImage2DEXT;
13055
13056   // GL_EXT_texture3D
13057   glTexImage3DEXT: TglTexImage3DEXT;
13058   glTexSubImage3DEXT: TglTexSubImage3DEXT;
13059
13060   // GL_EXT_texture_object
13061   glAreTexturesResidentEXT: TglAreTexturesResidentEXT;
13062   glBindTextureEXT: TglBindTextureEXT;
13063   glDeleteTexturesEXT: TglDeleteTexturesEXT;
13064   glGenTexturesEXT: TglGenTexturesEXT;
13065   glIsTextureEXT: TglIsTextureEXT;
13066   glPrioritizeTexturesEXT: TglPrioritizeTexturesEXT;
13067
13068   // GL_EXT_texture_perturb_normal
13069   glTextureNormalEXT: TglTextureNormalEXT;
13070
13071   // GL_EXT_vertex_array
13072   glArrayElementEXT: TglArrayElementEXT;
13073   glColorPointerEXT: TglColorPointerEXT;
13074   glDrawArraysEXT: TglDrawArraysEXT;
13075   glEdgeFlagPointerEXT: TglEdgeFlagPointerEXT;
13076   glGetPointervEXT: TglGetPointervEXT;
13077   glIndexPointerEXT: TglIndexPointerEXT;
13078   glNormalPointerEXT: TglNormalPointerEXT;
13079   glTexCoordPointerEXT: TglTexCoordPointerEXT;
13080   glVertexPointerEXT: TglVertexPointerEXT;
13081
13082   // GL_EXT_vertex_shader
13083   glBeginVertexShaderEXT: TglBeginVertexShaderEXT;
13084   glEndVertexShaderEXT: TglEndVertexShaderEXT;
13085   glBindVertexShaderEXT: TglBindVertexShaderEXT;
13086   glGenVertexShadersEXT: TglGenVertexShadersEXT;
13087   glDeleteVertexShaderEXT: TglDeleteVertexShaderEXT;
13088   glShaderOp1EXT: TglShaderOp1EXT;
13089   glShaderOp2EXT: TglShaderOp2EXT;
13090   glShaderOp3EXT: TglShaderOp3EXT;
13091   glSwizzleEXT: TglSwizzleEXT;
13092   glWriteMaskEXT: TglWriteMaskEXT;
13093   glInsertComponentEXT: TglInsertComponentEXT;
13094   glExtractComponentEXT: TglExtractComponentEXT;
13095   glGenSymbolsEXT: TglGenSymbolsEXT;
13096   glSetInvariantEXT: TglSetInvariantEXT;
13097   glSetLocalConstantEXT: TglSetLocalConstantEXT;
13098   glVariantbvEXT: TglVariantbvEXT;
13099   glVariantsvEXT: TglVariantsvEXT;
13100   glVariantivEXT: TglVariantivEXT;
13101   glVariantfvEXT: TglVariantfvEXT;
13102   glVariantdvEXT: TglVariantdvEXT;
13103   glVariantubvEXT: TglVariantubvEXT;
13104   glVariantusvEXT: TglVariantusvEXT;
13105   glVariantuivEXT: TglVariantuivEXT;
13106   glVariantPointerEXT: TglVariantPointerEXT;
13107   glEnableVariantClientStateEXT: TglEnableVariantClientStateEXT;
13108   glDisableVariantClientStateEXT: TglDisableVariantClientStateEXT;
13109   glBindLightParameterEXT: TglBindLightParameterEXT;
13110   glBindMaterialParameterEXT: TglBindMaterialParameterEXT;
13111   glBindTexGenParameterEXT: TglBindTexGenParameterEXT;
13112   glBindTextureUnitParameterEXT: TglBindTextureUnitParameterEXT;
13113   glBindParameterEXT: TglBindParameterEXT;
13114   glIsVariantEnabledEXT: TglIsVariantEnabledEXT;
13115   glGetVariantBooleanvEXT: TglGetVariantBooleanvEXT;
13116   glGetVariantIntegervEXT: TglGetVariantIntegervEXT;
13117   glGetVariantFloatvEXT: TglGetVariantFloatvEXT;
13118   glGetVariantPointervEXT: TglGetVariantPointervEXT;
13119   glGetInvariantBooleanvEXT: TglGetInvariantBooleanvEXT;
13120   glGetInvariantIntegervEXT: TglGetInvariantIntegervEXT;
13121   glGetInvariantFloatvEXT: TglGetInvariantFloatvEXT;
13122   glGetLocalConstantBooleanvEXT: TglGetLocalConstantBooleanvEXT;
13123   glGetLocalConstantIntegervEXT: TglGetLocalConstantIntegervEXT;
13124   glGetLocalConstantFloatvEXT: TglGetLocalConstantFloatvEXT;
13125
13126   // GL_EXT_vertex_weighting
13127   glVertexWeightfEXT: TglVertexWeightfEXT;
13128   glVertexWeightfvEXT: TglVertexWeightfvEXT;
13129   glVertexWeightPointerEXT: TglVertexWeightPointerEXT;
13130
13131   // GL_EXT_stencil_clear_tag
13132   glStencilClearTagEXT: TglStencilClearTagEXT;
13133
13134   // GL_EXT_framebuffer_blit
13135   glBlitFramebufferEXT: TglBlitFramebufferEXT;
13136
13137   // GL_EXT_framebuffer_multisample
13138   glRenderbufferStorageMultisampleEXT: TglRenderbufferStorageMultisampleEXT;
13139
13140   // GL_EXT_timer_query
13141   glGetQueryObjecti64vEXT: TglGetQueryObjecti64vEXT;
13142   glGetQueryObjectui64vEXT: TglGetQueryObjectui64vEXT;
13143
13144   // GL_EXT_gpu_program_parameters
13145   glProgramEnvParameters4fvEXT: TglProgramEnvParameters4fvEXT;
13146   glProgramLocalParameters4fvEXT: TglProgramLocalParameters4fvEXT;
13147
13148   // GL_EXT_bindable_uniform
13149   glUniformBufferEXT: TglUniformBufferEXT;
13150   glGetUniformBufferSizeEXT: TglGetUniformBufferSizeEXT;
13151   glGetUniformOffsetEXT: TglGetUniformOffsetEXT;
13152
13153   // GL_EXT_draw_buffers2
13154   glColorMaskIndexedEXT: TglColorMaskIndexedEXT;
13155   glGetBooleanIndexedvEXT: TglGetBooleanIndexedvEXT;
13156   glGetIntegerIndexedvEXT: TglGetIntegerIndexedvEXT;
13157   glEnableIndexedEXT: TglEnableIndexedEXT;
13158   glDisableIndexedEXT: TglDisableIndexedEXT;
13159   glIsEnabledIndexedEXT: TglIsEnabledIndexedEXT;
13160
13161   // GL_EXT_draw_instanced
13162   glDrawArraysInstancedEXT: TglDrawArraysInstancedEXT;
13163   glDrawElementsInstancedEXT: TglDrawElementsInstancedEXT;
13164
13165   // GL_EXT_geometry_shader4
13166   glProgramParameteriEXT: TglProgramParameteriEXT;
13167   glFramebufferTextureEXT: TglFramebufferTextureEXT;
13168 //  glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13169   glFramebufferTextureFaceEXT: TglFramebufferTextureFaceEXT;
13170
13171   // GL_EXT_gpu_shader4
13172   glVertexAttribI1iEXT: TglVertexAttribI1iEXT;
13173   glVertexAttribI2iEXT: TglVertexAttribI2iEXT;
13174   glVertexAttribI3iEXT: TglVertexAttribI3iEXT;
13175   glVertexAttribI4iEXT: TglVertexAttribI4iEXT;
13176   glVertexAttribI1uiEXT: TglVertexAttribI1uiEXT;
13177   glVertexAttribI2uiEXT: TglVertexAttribI2uiEXT;
13178   glVertexAttribI3uiEXT: TglVertexAttribI3uiEXT;
13179   glVertexAttribI4uiEXT: TglVertexAttribI4uiEXT;
13180   glVertexAttribI1ivEXT: TglVertexAttribI1ivEXT;
13181   glVertexAttribI2ivEXT: TglVertexAttribI2ivEXT;
13182   glVertexAttribI3ivEXT: TglVertexAttribI3ivEXT;
13183   glVertexAttribI4ivEXT: TglVertexAttribI4ivEXT;
13184   glVertexAttribI1uivEXT: TglVertexAttribI1uivEXT;
13185   glVertexAttribI2uivEXT: TglVertexAttribI2uivEXT;
13186   glVertexAttribI3uivEXT: TglVertexAttribI3uivEXT;
13187   glVertexAttribI4uivEXT: TglVertexAttribI4uivEXT;
13188   glVertexAttribI4bvEXT: TglVertexAttribI4bvEXT;
13189   glVertexAttribI4svEXT: TglVertexAttribI4svEXT;
13190   glVertexAttribI4ubvEXT: TglVertexAttribI4ubvEXT;
13191   glVertexAttribI4usvEXT: TglVertexAttribI4usvEXT;
13192   glVertexAttribIPointerEXT: TglVertexAttribIPointerEXT;
13193   glGetVertexAttribIivEXT: TglGetVertexAttribIivEXT;
13194   glGetVertexAttribIuivEXT: TglGetVertexAttribIuivEXT;
13195   glUniform1uiEXT: TglUniform1uiEXT;
13196   glUniform2uiEXT: TglUniform2uiEXT;
13197   glUniform3uiEXT: TglUniform3uiEXT;
13198   glUniform4uiEXT: TglUniform4uiEXT;
13199   glUniform1uivEXT: TglUniform1uivEXT;
13200   glUniform2uivEXT: TglUniform2uivEXT;
13201   glUniform3uivEXT: TglUniform3uivEXT;
13202   glUniform4uivEXT: TglUniform4uivEXT;
13203   glGetUniformuivEXT: TglGetUniformuivEXT;
13204   glBindFragDataLocationEXT: TglBindFragDataLocationEXT;
13205   glGetFragDataLocationEXT: TglGetFragDataLocationEXT;
13206
13207   // GL_EXT_texture_array
13208   glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13209
13210   // GL_EXT_texture_buffer_object
13211   glTexBufferEXT: TglTexBufferEXT;
13212
13213   // GL_EXT_texture_integer
13214   glClearColorIiEXT: TglClearColorIiEXT;
13215   glClearColorIuiEXT: TglClearColorIuiEXT;
13216   glTexParameterIivEXT: TglTexParameterIivEXT;
13217   glTexParameterIuivEXT: TglTexParameterIuivEXT;
13218   glGetTexParameterIivEXT: TglGetTexParameterIivEXT;
13219   glGetTexParameterIiuvEXT: TglGetTexParameterIiuvEXT;
13220
13221   // GL_EXT_transform_feedback
13222   glBeginTransformFeedbackEXT: TglBeginTransformFeedbackEXT;
13223   glEndTransformFeedbackEXT: TglEndTransformFeedbackEXT;
13224   glBindBufferRangeEXT: TglBindBufferRangeEXT;
13225   glBindBufferOffsetEXT: TglBindBufferOffsetEXT;
13226   glBindBufferBaseEXT: TglBindBufferBaseEXT;
13227   glTransformFeedbackVaryingsEXT: TglTransformFeedbackVaryingsEXT;
13228   glGetTransformFeedbackVaryingEXT: TglGetTransformFeedbackVaryingEXT;
13229
13230   // GL_EXT_direct_state_access
13231   glClientAttribDefaultEXT: TglClientAttribDefaultEXT;
13232   glPushClientAttribDefaultEXT: TglPushClientAttribDefaultEXT;
13233   glMatrixLoadfEXT: TglMatrixLoadfEXT;
13234   glMatrixLoaddEXT: TglMatrixLoaddEXT;
13235   glMatrixMultfEXT: TglMatrixMultfEXT;
13236   glMatrixMultdEXT: TglMatrixMultdEXT;
13237   glMatrixLoadIdentityEXT: TglMatrixLoadIdentityEXT;
13238   glMatrixRotatefEXT: TglMatrixRotatefEXT;
13239   glMatrixRotatedEXT: TglMatrixRotatedEXT;
13240   glMatrixScalefEXT: TglMatrixScalefEXT;
13241   glMatrixScaledEXT: TglMatrixScaledEXT;
13242   glMatrixTranslatefEXT: TglMatrixTranslatefEXT;
13243   glMatrixTranslatedEXT: TglMatrixTranslatedEXT;
13244   glMatrixFrustumEXT: TglMatrixFrustumEXT;
13245   glMatrixOrthoEXT: TglMatrixOrthoEXT;
13246   glMatrixPopEXT: TglMatrixPopEXT;
13247   glMatrixPushEXT: TglMatrixPushEXT;
13248   glMatrixLoadTransposefEXT: TglMatrixLoadTransposefEXT;
13249   glMatrixLoadTransposedEXT: TglMatrixLoadTransposedEXT;
13250   glMatrixMultTransposefEXT: TglMatrixMultTransposefEXT;
13251   glMatrixMultTransposedEXT: TglMatrixMultTransposedEXT;
13252   glTextureParameterfEXT: TglTextureParameterfEXT;
13253   glTextureParameterfvEXT: TglTextureParameterfvEXT;
13254   glTextureParameteriEXT: TglTextureParameteriEXT;
13255   glTextureParameterivEXT: TglTextureParameterivEXT;
13256   glTextureImage1DEXT: TglTextureImage1DEXT;
13257   glTextureImage2DEXT: TglTextureImage2DEXT;
13258   glTextureSubImage1DEXT: TglTextureSubImage1DEXT;
13259   glTextureSubImage2DEXT: TglTextureSubImage2DEXT;
13260   glCopyTextureImage1DEXT: TglCopyTextureImage1DEXT;
13261   glCopyTextureImage2DEXT: TglCopyTextureImage2DEXT;
13262   glCopyTextureSubImage1DEXT: TglCopyTextureSubImage1DEXT;
13263   glCopyTextureSubImage2DEXT: TglCopyTextureSubImage2DEXT;
13264   glGetTextureImageEXT: TglGetTextureImageEXT;
13265   glGetTextureParameterfvEXT: TglGetTextureParameterfvEXT;
13266   glGetTextureParameterivEXT: TglGetTextureParameterivEXT;
13267   glGetTextureLevelParameterfvEXT: TglGetTextureLevelParameterfvEXT;
13268   glGetTextureLevelParameterivEXT: TglGetTextureLevelParameterivEXT;
13269   glTextureImage3DEXT: TglTextureImage3DEXT;
13270   glTextureSubImage3DEXT: TglTextureSubImage3DEXT;
13271   glCopyTextureSubImage3DEXT: TglCopyTextureSubImage3DEXT;
13272   glMultiTexParameterfEXT: TglMultiTexParameterfEXT;
13273   glMultiTexParameterfvEXT: TglMultiTexParameterfvEXT;
13274   glMultiTexParameteriEXT: TglMultiTexParameteriEXT;
13275   glMultiTexParameterivEXT: TglMultiTexParameterivEXT;
13276   glMultiTexImage1DEXT: TglMultiTexImage1DEXT;
13277   glMultiTexImage2DEXT: TglMultiTexImage2DEXT;
13278   glMultiTexSubImage1DEXT: TglMultiTexSubImage1DEXT;
13279   glMultiTexSubImage2DEXT: TglMultiTexSubImage2DEXT;
13280   glCopyMultiTexImage1DEXT: TglCopyMultiTexImage1DEXT;
13281   glCopyMultiTexImage2DEXT: TglCopyMultiTexImage2DEXT;
13282   glCopyMultiTexSubImage1DEXT: TglCopyMultiTexSubImage1DEXT;
13283   glCopyMultiTexSubImage2DEXT: TglCopyMultiTexSubImage2DEXT;
13284   glGetMultiTexImageEXT: TglGetMultiTexImageEXT;
13285   glGetMultiTexParameterfvEXT: TglGetMultiTexParameterfvEXT;
13286   glGetMultiTexParameterivEXT: TglGetMultiTexParameterivEXT;
13287   glGetMultiTexLevelParameterfvEXT: TglGetMultiTexLevelParameterfvEXT;
13288   glGetMultiTexLevelParameterivEXT: TglGetMultiTexLevelParameterivEXT;
13289   glMultiTexImage3DEXT: TglMultiTexImage3DEXT;
13290   glMultiTexSubImage3DEXT: TglMultiTexSubImage3DEXT;
13291   glCopyMultiTexSubImage3DEXT: TglCopyMultiTexSubImage3DEXT;
13292   glBindMultiTextureEXT: TglBindMultiTextureEXT;
13293   glEnableClientStateIndexedEXT: TglEnableClientStateIndexedEXT;
13294   glDisableClientStateIndexedEXT: TglDisableClientStateIndexedEXT;
13295   glMultiTexCoordPointerEXT: TglMultiTexCoordPointerEXT;
13296   glMultiTexEnvfEXT: TglMultiTexEnvfEXT;
13297   glMultiTexEnvfvEXT: TglMultiTexEnvfvEXT;
13298   glMultiTexEnviEXT: TglMultiTexEnviEXT;
13299   glMultiTexEnvivEXT: TglMultiTexEnvivEXT;
13300   glMultiTexGendEXT: TglMultiTexGendEXT;
13301   glMultiTexGendvEXT: TglMultiTexGendvEXT;
13302   glMultiTexGenfEXT: TglMultiTexGenfEXT;
13303   glMultiTexGenfvEXT: TglMultiTexGenfvEXT;
13304   glMultiTexGeniEXT: TglMultiTexGeniEXT;
13305   glMultiTexGenivEXT: TglMultiTexGenivEXT;
13306   glGetMultiTexEnvfvEXT: TglGetMultiTexEnvfvEXT;
13307   glGetMultiTexEnvivEXT: TglGetMultiTexEnvivEXT;
13308   glGetMultiTexGendvEXT: TglGetMultiTexGendvEXT;
13309   glGetMultiTexGenfvEXT: TglGetMultiTexGenfvEXT;
13310   glGetMultiTexGenivEXT: TglGetMultiTexGenivEXT;
13311   glGetFloatIndexedvEXT: TglGetFloatIndexedvEXT;
13312   glGetDoubleIndexedvEXT: TglGetDoubleIndexedvEXT;
13313   glGetPointerIndexedvEXT: TglGetPointerIndexedvEXT;
13314   glCompressedTextureImage3DEXT: TglCompressedTextureImage3DEXT;
13315   glCompressedTextureImage2DEXT: TglCompressedTextureImage2DEXT;
13316   glCompressedTextureImage1DEXT: TglCompressedTextureImage1DEXT;
13317   glCompressedTextureSubImage3DEXT: TglCompressedTextureSubImage3DEXT;
13318   glCompressedTextureSubImage2DEXT: TglCompressedTextureSubImage2DEXT;
13319   glCompressedTextureSubImage1DEXT: TglCompressedTextureSubImage1DEXT;
13320   glGetCompressedTextureImageEXT: TglGetCompressedTextureImageEXT;
13321   glCompressedMultiTexImage3DEXT: TglCompressedMultiTexImage3DEXT;
13322   glCompressedMultiTexImage2DEXT: TglCompressedMultiTexImage2DEXT;
13323   glCompressedMultiTexImage1DEXT: TglCompressedMultiTexImage1DEXT;
13324   glCompressedMultiTexSubImage3DEXT: TglCompressedMultiTexSubImage3DEXT;
13325   glCompressedMultiTexSubImage2DEXT: TglCompressedMultiTexSubImage2DEXT;
13326   glCompressedMultiTexSubImage1DEXT: TglCompressedMultiTexSubImage1DEXT;
13327   glGetCompressedMultiTexImageEXT: TglGetCompressedMultiTexImageEXT;
13328   glNamedProgramStringEXT: TglNamedProgramStringEXT;
13329   glNamedProgramLocalParameter4dEXT: TglNamedProgramLocalParameter4dEXT;
13330   glNamedProgramLocalParameter4dvEXT: TglNamedProgramLocalParameter4dvEXT;
13331   glNamedProgramLocalParameter4fEXT: TglNamedProgramLocalParameter4fEXT;
13332   glNamedProgramLocalParameter4fvEXT: TglNamedProgramLocalParameter4fvEXT;
13333   glGetNamedProgramLocalParameterdvEXT: TglGetNamedProgramLocalParameterdvEXT;
13334   glGetNamedProgramLocalParameterfvEXT: TglGetNamedProgramLocalParameterfvEXT;
13335   glGetNamedProgramivEXT: TglGetNamedProgramivEXT;
13336   glGetNamedProgramStringEXT: TglGetNamedProgramStringEXT;
13337   glNamedProgramLocalParameters4fvEXT: TglNamedProgramLocalParameters4fvEXT;
13338   glNamedProgramLocalParameterI4iEXT: TglNamedProgramLocalParameterI4iEXT;
13339   glNamedProgramLocalParameterI4ivEXT: TglNamedProgramLocalParameterI4ivEXT;
13340   glNamedProgramLocalParametersI4ivEXT: TglNamedProgramLocalParametersI4ivEXT;
13341   glNamedProgramLocalParameterI4uiEXT: TglNamedProgramLocalParameterI4uiEXT;
13342   glNamedProgramLocalParameterI4uivEXT: TglNamedProgramLocalParameterI4uivEXT;
13343   glNamedProgramLocalParametersI4uivEXT: TglNamedProgramLocalParametersI4uivEXT;
13344   glGetNamedProgramLocalParameterIivEXT: TglGetNamedProgramLocalParameterIivEXT;
13345   glGetNamedProgramLocalParameterIuivEXT: TglGetNamedProgramLocalParameterIuivEXT;
13346   glTextureParameterIivEXT: TglTextureParameterIivEXT;
13347   glTextureParameterIuivEXT: TglTextureParameterIuivEXT;
13348   glGetTextureParameterIivEXT: TglGetTextureParameterIivEXT;
13349   glGetTextureParameterIuivEXT: TglGetTextureParameterIuivEXT;
13350   glMultiTexParameterIivEXT: TglMultiTexParameterIivEXT;
13351   glMultiTexParameterIuivEXT: TglMultiTexParameterIuivEXT;
13352   glGetMultiTexParameterIivEXT: TglGetMultiTexParameterIivEXT;
13353   glGetMultiTexParameterIuivEXT: TglGetMultiTexParameterIuivEXT;
13354   glProgramUniform1fEXT: TglProgramUniform1fEXT;
13355   glProgramUniform2fEXT: TglProgramUniform2fEXT;
13356   glProgramUniform3fEXT: TglProgramUniform3fEXT;
13357   glProgramUniform4fEXT: TglProgramUniform4fEXT;
13358   glProgramUniform1iEXT: TglProgramUniform1iEXT;
13359   glProgramUniform2iEXT: TglProgramUniform2iEXT;
13360   glProgramUniform3iEXT: TglProgramUniform3iEXT;
13361   glProgramUniform4iEXT: TglProgramUniform4iEXT;
13362   glProgramUniform1fvEXT: TglProgramUniform1fvEXT;
13363   glProgramUniform2fvEXT: TglProgramUniform2fvEXT;
13364   glProgramUniform3fvEXT: TglProgramUniform3fvEXT;
13365   glProgramUniform4fvEXT: TglProgramUniform4fvEXT;
13366   glProgramUniform1ivEXT: TglProgramUniform1ivEXT;
13367   glProgramUniform2ivEXT: TglProgramUniform2ivEXT;
13368   glProgramUniform3ivEXT: TglProgramUniform3ivEXT;
13369   glProgramUniform4ivEXT: TglProgramUniform4ivEXT;
13370   glProgramUniformMatrix2fvEXT: TglProgramUniformMatrix2fvEXT;
13371   glProgramUniformMatrix3fvEXT: TglProgramUniformMatrix3fvEXT;
13372   glProgramUniformMatrix4fvEXT: TglProgramUniformMatrix4fvEXT;
13373   glProgramUniformMatrix2x3fvEXT: TglProgramUniformMatrix2x3fvEXT;
13374   glProgramUniformMatrix3x2fvEXT: TglProgramUniformMatrix3x2fvEXT;
13375   glProgramUniformMatrix2x4fvEXT: TglProgramUniformMatrix2x4fvEXT;
13376   glProgramUniformMatrix4x2fvEXT: TglProgramUniformMatrix4x2fvEXT;
13377   glProgramUniformMatrix3x4fvEXT: TglProgramUniformMatrix3x4fvEXT;
13378   glProgramUniformMatrix4x3fvEXT: TglProgramUniformMatrix4x3fvEXT;
13379   glProgramUniform1uiEXT: TglProgramUniform1uiEXT;
13380   glProgramUniform2uiEXT: TglProgramUniform2uiEXT;
13381   glProgramUniform3uiEXT: TglProgramUniform3uiEXT;
13382   glProgramUniform4uiEXT: TglProgramUniform4uiEXT;
13383   glProgramUniform1uivEXT: TglProgramUniform1uivEXT;
13384   glProgramUniform2uivEXT: TglProgramUniform2uivEXT;
13385   glProgramUniform3uivEXT: TglProgramUniform3uivEXT;
13386   glProgramUniform4uivEXT: TglProgramUniform4uivEXT;
13387   glNamedBufferDataEXT: TglNamedBufferDataEXT;
13388   glNamedBufferSubDataEXT: TglNamedBufferSubDataEXT;
13389   glMapNamedBufferEXT: TglMapNamedBufferEXT;
13390   glUnmapNamedBufferEXT: TglUnmapNamedBufferEXT;
13391   glMapNamedBufferRangeEXT: TglMapNamedBufferRangeEXT;
13392   glFlushMappedNamedBufferRangeEXT: TglFlushMappedNamedBufferRangeEXT;
13393   glNamedCopyBufferSubDataEXT: TglNamedCopyBufferSubDataEXT;
13394   glGetNamedBufferParameterivEXT: TglGetNamedBufferParameterivEXT;
13395   glGetNamedBufferPointervEXT: TglGetNamedBufferPointervEXT;
13396   glGetNamedBufferSubDataEXT: TglGetNamedBufferSubDataEXT;
13397   glTextureBufferEXT: TglTextureBufferEXT;
13398   glMultiTexBufferEXT: TglMultiTexBufferEXT;
13399   glNamedRenderbufferStorageEXT: TglNamedRenderbufferStorageEXT;
13400   glGetNamedRenderbufferParameterivEXT: TglGetNamedRenderbufferParameterivEXT;
13401   glCheckNamedFramebufferStatusEXT: TglCheckNamedFramebufferStatusEXT;
13402   glNamedFramebufferTexture1DEXT: TglNamedFramebufferTexture1DEXT;
13403   glNamedFramebufferTexture2DEXT: TglNamedFramebufferTexture2DEXT;
13404   glNamedFramebufferTexture3DEXT: TglNamedFramebufferTexture3DEXT;
13405   glNamedFramebufferRenderbufferEXT: TglNamedFramebufferRenderbufferEXT;
13406   glGetNamedFramebufferAttachmentParameterivEXT: TglGetNamedFramebufferAttachmentParameterivEXT;
13407   glGenerateTextureMipmapEXT: TglGenerateTextureMipmapEXT;
13408   glGenerateMultiTexMipmapEXT: TglGenerateMultiTexMipmapEXT;
13409   glFramebufferDrawBufferEXT: TglFramebufferDrawBufferEXT;
13410   glFramebufferDrawBuffersEXT: TglFramebufferDrawBuffersEXT;
13411   glFramebufferReadBufferEXT: TglFramebufferReadBufferEXT;
13412   glGetFramebufferParameterivEXT: TglGetFramebufferParameterivEXT;
13413   glNamedRenderbufferStorageMultisampleEXT: TglNamedRenderbufferStorageMultisampleEXT;
13414   glNamedRenderbufferStorageMultisampleCoverageEXT: TglNamedRenderbufferStorageMultisampleCoverageEXT;
13415   glNamedFramebufferTextureEXT: TglNamedFramebufferTextureEXT;
13416   glNamedFramebufferTextureLayerEXT: TglNamedFramebufferTextureLayerEXT;
13417   glNamedFramebufferTextureFaceEXT: TglNamedFramebufferTextureFaceEXT;
13418   glTextureRenderbufferEXT: TglTextureRenderbufferEXT;
13419   glMultiTexRenderbufferEXT: TglMultiTexRenderbufferEXT;
13420   glProgramUniform1dEXT: TglProgramUniform1dEXT;
13421   glProgramUniform2dEXT: TglProgramUniform2dEXT;
13422   glProgramUniform3dEXT: TglProgramUniform3dEXT;
13423   glProgramUniform4dEXT: TglProgramUniform4dEXT;
13424   glProgramUniform1dvEXT: TglProgramUniform1dvEXT;
13425   glProgramUniform2dvEXT: TglProgramUniform2dvEXT;
13426   glProgramUniform3dvEXT: TglProgramUniform3dvEXT;
13427   glProgramUniform4dvEXT: TglProgramUniform4dvEXT;
13428   glProgramUniformMatrix2dvEXT: TglProgramUniformMatrix2dvEXT;
13429   glProgramUniformMatrix3dvEXT: TglProgramUniformMatrix3dvEXT;
13430   glProgramUniformMatrix4dvEXT: TglProgramUniformMatrix4dvEXT;
13431   glProgramUniformMatrix2x3dvEXT: TglProgramUniformMatrix2x3dvEXT;
13432   glProgramUniformMatrix2x4dvEXT: TglProgramUniformMatrix2x4dvEXT;
13433   glProgramUniformMatrix3x2dvEXT: TglProgramUniformMatrix3x2dvEXT;
13434   glProgramUniformMatrix3x4dvEXT: TglProgramUniformMatrix3x4dvEXT;
13435   glProgramUniformMatrix4x2dvEXT: TglProgramUniformMatrix4x2dvEXT;
13436   glProgramUniformMatrix4x3dvEXT: TglProgramUniformMatrix4x3dvEXT;
13437
13438   // GL_EXT_separate_shader_objects
13439   glUseShaderProgramEXT: TglUseShaderProgramEXT;
13440   glActiveProgramEXT: TglActiveProgramEXT;
13441   glCreateShaderProgramEXT: TglCreateShaderProgramEXT;
13442
13443   // GL_EXT_shader_image_load_store
13444   glBindImageTextureEXT: TglBindImageTextureEXT;
13445   glMemoryBarrierEXT: TglMemoryBarrierEXT;
13446
13447   // GL_EXT_vertex_attrib_64bit
13448   glVertexAttribL1dEXT: TglVertexAttribL1dEXT;
13449   glVertexAttribL2dEXT: TglVertexAttribL2dEXT;
13450   glVertexAttribL3dEXT: TglVertexAttribL3dEXT;
13451   glVertexAttribL4dEXT: TglVertexAttribL4dEXT;
13452   glVertexAttribL1dvEXT: TglVertexAttribL1dvEXT;
13453   glVertexAttribL2dvEXT: TglVertexAttribL2dvEXT;
13454   glVertexAttribL3dvEXT: TglVertexAttribL3dvEXT;
13455   glVertexAttribL4dvEXT: TglVertexAttribL4dvEXT;
13456   glVertexAttribLPointerEXT: TglVertexAttribLPointerEXT;
13457   glGetVertexAttribLdvEXT: TglGetVertexAttribLdvEXT;
13458   glVertexArrayVertexAttribLOffsetEXT: TglVertexArrayVertexAttribLOffsetEXT;
13459   
13460   // GL_HP_image_transform
13461   glImageTransformParameteriHP: TglImageTransformParameteriHP;
13462   glImageTransformParameterfHP: TglImageTransformParameterfHP;
13463   glImageTransformParameterivHP: TglImageTransformParameterivHP;
13464   glImageTransformParameterfvHP: TglImageTransformParameterfvHP;
13465   glGetImageTransformParameterivHP: TglGetImageTransformParameterivHP;
13466   glGetImageTransformParameterfvHP: TglGetImageTransformParameterfvHP;
13467
13468   // GL_EXT_depth_bounds_test
13469   glDepthBoundsEXT: TglDepthBoundsEXT;
13470
13471   // GL_EXT_blend_equation_separate
13472   glBlendEquationSeparateEXT: TglBlendEquationSeparateEXT;
13473
13474   // GL_IBM_multimode_draw_arrays
13475   glMultiModeDrawArraysIBM: TglMultiModeDrawArraysIBM;
13476   glMultiModeDrawElementsIBM: TglMultiModeDrawElementsIBM;
13477
13478   // GL_IBM_vertex_array_lists
13479   glColorPointerListIBM: TglColorPointerListIBM;
13480   glSecondaryColorPointerListIBM: TglSecondaryColorPointerListIBM;
13481   glEdgeFlagPointerListIBM: TglEdgeFlagPointerListIBM;
13482   glFogCoordPointerListIBM: TglFogCoordPointerListIBM;
13483   glIndexPointerListIBM: TglIndexPointerListIBM;
13484   glNormalPointerListIBM: TglNormalPointerListIBM;
13485   glTexCoordPointerListIBM: TglTexCoordPointerListIBM;
13486   glVertexPointerListIBM: TglVertexPointerListIBM;
13487
13488   // GL_INGR_blend_func_separate
13489   glBlendFuncSeparateINGR: TglBlendFuncSeparateINGR;
13490
13491   // GL_INTEL_parallel_arrays
13492   glVertexPointervINTEL: TglVertexPointervINTEL;
13493   glNormalPointervINTEL: TglNormalPointervINTEL;
13494   glColorPointervINTEL: TglColorPointervINTEL;
13495   glTexCoordPointervINTEL: TglTexCoordPointervINTEL;
13496
13497   // GL_MESA_resize_buffers
13498   glResizeBuffersMESA: TglResizeBuffersMESA;
13499
13500   // GL_MESA_window_pos
13501   glWindowPos2dMESA: TglWindowPos2dMESA;
13502   glWindowPos2dvMESA: TglWindowPos2dvMESA;
13503   glWindowPos2fMESA: TglWindowPos2fMESA;
13504   glWindowPos2fvMESA: TglWindowPos2fvMESA;
13505   glWindowPos2iMESA: TglWindowPos2iMESA;
13506   glWindowPos2ivMESA: TglWindowPos2ivMESA;
13507   glWindowPos2sMESA: TglWindowPos2sMESA;
13508   glWindowPos2svMESA: TglWindowPos2svMESA;
13509   glWindowPos3dMESA: TglWindowPos3dMESA;
13510   glWindowPos3dvMESA: TglWindowPos3dvMESA;
13511   glWindowPos3fMESA: TglWindowPos3fMESA;
13512   glWindowPos3fvMESA: TglWindowPos3fvMESA;
13513   glWindowPos3iMESA: TglWindowPos3iMESA;
13514   glWindowPos3ivMESA: TglWindowPos3ivMESA;
13515   glWindowPos3sMESA: TglWindowPos3sMESA;
13516   glWindowPos3svMESA: TglWindowPos3svMESA;
13517   glWindowPos4dMESA: TglWindowPos4dMESA;
13518   glWindowPos4dvMESA: TglWindowPos4dvMESA;
13519   glWindowPos4fMESA: TglWindowPos4fMESA;
13520   glWindowPos4fvMESA: TglWindowPos4fvMESA;
13521   glWindowPos4iMESA: TglWindowPos4iMESA;
13522   glWindowPos4ivMESA: TglWindowPos4ivMESA;
13523   glWindowPos4sMESA: TglWindowPos4sMESA;
13524   glWindowPos4svMESA: TglWindowPos4svMESA;
13525
13526   // GL_NV_evaluators
13527   glMapControlPointsNV: TglMapControlPointsNV;
13528   glMapParameterivNV: TglMapParameterivNV;
13529   glMapParameterfvNV: TglMapParameterfvNV;
13530   glGetMapControlPointsNV: TglGetMapControlPointsNV;
13531   glGetMapParameterivNV: TglGetMapParameterivNV;
13532   glGetMapParameterfvNV: TglGetMapParameterfvNV;
13533   glGetMapAttribParameterivNV: TglGetMapAttribParameterivNV;
13534   glGetMapAttribParameterfvNV: TglGetMapAttribParameterfvNV;
13535   glEvalMapsNV: TglEvalMapsNV;
13536
13537   // GL_NV_fence
13538   glDeleteFencesNV: TglDeleteFencesNV;
13539   glGenFencesNV: TglGenFencesNV;
13540   glIsFenceNV: TglIsFenceNV;
13541   glTestFenceNV: TglTestFenceNV;
13542   glGetFenceivNV: TglGetFenceivNV;
13543   glFinishFenceNV: TglFinishFenceNV;
13544   glSetFenceNV: TglSetFenceNV;
13545
13546   // GL_NV_fragment_program
13547   glProgramNamedParameter4fNV: TglProgramNamedParameter4fNV;
13548   glProgramNamedParameter4dNV: TglProgramNamedParameter4dNV;
13549   glProgramNamedParameter4fvNV: TglProgramNamedParameter4fvNV;
13550   glProgramNamedParameter4dvNV: TglProgramNamedParameter4dvNV;
13551   glGetProgramNamedParameterfvNV: TglGetProgramNamedParameterfvNV;
13552   glGetProgramNamedParameterdvNV: TglGetProgramNamedParameterdvNV;
13553
13554   // GL_NV_half_float
13555   glVertex2hNV: TglVertex2hNV;
13556   glVertex2hvNV: TglVertex2hvNV;
13557   glVertex3hNV: TglVertex3hNV;
13558   glVertex3hvNV: TglVertex3hvNV;
13559   glVertex4hNV: TglVertex4hNV;
13560   glVertex4hvNV: TglVertex4hvNV;
13561   glNormal3hNV: TglNormal3hNV;
13562   glNormal3hvNV: TglNormal3hvNV;
13563   glColor3hNV: TglColor3hNV;
13564   glColor3hvNV: TglColor3hvNV;
13565   glColor4hNV: TglColor4hNV;
13566   glColor4hvNV: TglColor4hvNV;
13567   glTexCoord1hNV: TglTexCoord1hNV;
13568   glTexCoord1hvNV: TglTexCoord1hvNV;
13569   glTexCoord2hNV: TglTexCoord2hNV;
13570   glTexCoord2hvNV: TglTexCoord2hvNV;
13571   glTexCoord3hNV: TglTexCoord3hNV;
13572   glTexCoord3hvNV: TglTexCoord3hvNV;
13573   glTexCoord4hNV: TglTexCoord4hNV;
13574   glTexCoord4hvNV: TglTexCoord4hvNV;
13575   glMultiTexCoord1hNV: TglMultiTexCoord1hNV;
13576   glMultiTexCoord1hvNV: TglMultiTexCoord1hvNV;
13577   glMultiTexCoord2hNV: TglMultiTexCoord2hNV;
13578   glMultiTexCoord2hvNV: TglMultiTexCoord2hvNV;
13579   glMultiTexCoord3hNV: TglMultiTexCoord3hNV;
13580   glMultiTexCoord3hvNV: TglMultiTexCoord3hvNV;
13581   glMultiTexCoord4hNV: TglMultiTexCoord4hNV;
13582   glMultiTexCoord4hvNV: TglMultiTexCoord4hvNV;
13583   glFogCoordhNV: TglFogCoordhNV;
13584   glFogCoordhvNV: TglFogCoordhvNV;
13585   glSecondaryColor3hNV: TglSecondaryColor3hNV;
13586   glSecondaryColor3hvNV: TglSecondaryColor3hvNV;
13587   glVertexWeighthNV: TglVertexWeighthNV;
13588   glVertexWeighthvNV: TglVertexWeighthvNV;
13589   glVertexAttrib1hNV: TglVertexAttrib1hNV;
13590   glVertexAttrib1hvNV: TglVertexAttrib1hvNV;
13591   glVertexAttrib2hNV: TglVertexAttrib2hNV;
13592   glVertexAttrib2hvNV: TglVertexAttrib2hvNV;
13593   glVertexAttrib3hNV: TglVertexAttrib3hNV;
13594   glVertexAttrib3hvNV: TglVertexAttrib3hvNV;
13595   glVertexAttrib4hNV: TglVertexAttrib4hNV;
13596   glVertexAttrib4hvNV: TglVertexAttrib4hvNV;
13597   glVertexAttribs1hvNV: TglVertexAttribs1hvNV;
13598   glVertexAttribs2hvNV: TglVertexAttribs2hvNV;
13599   glVertexAttribs3hvNV: TglVertexAttribs3hvNV;
13600   glVertexAttribs4hvNV: TglVertexAttribs4hvNV;
13601
13602   // GL_NV_occlusion_query
13603   glGenOcclusionQueriesNV: TglGenOcclusionQueriesNV;
13604   glDeleteOcclusionQueriesNV: TglDeleteOcclusionQueriesNV;
13605   glIsOcclusionQueryNV: TglIsOcclusionQueryNV;
13606   glBeginOcclusionQueryNV: TglBeginOcclusionQueryNV;
13607   glEndOcclusionQueryNV: TglEndOcclusionQueryNV;
13608   glGetOcclusionQueryivNV: TglGetOcclusionQueryivNV;
13609   glGetOcclusionQueryuivNV: TglGetOcclusionQueryuivNV;
13610
13611   // GL_NV_pixel_data_range
13612   glPixelDataRangeNV: TglPixelDataRangeNV;
13613   glFlushPixelDataRangeNV: TglFlushPixelDataRangeNV;
13614
13615   // GL_NV_point_sprite
13616   glPointParameteriNV: TglPointParameteriNV;
13617   glPointParameterivNV: TglPointParameterivNV;
13618
13619   // GL_NV_primitive_restart
13620   glPrimitiveRestartNV: TglPrimitiveRestartNV;
13621   glPrimitiveRestartIndexNV: TglPrimitiveRestartIndexNV;
13622
13623   // GL_NV_register_combiners
13624   glCombinerParameterfvNV: TglCombinerParameterfvNV;
13625   glCombinerParameterfNV: TglCombinerParameterfNV;
13626   glCombinerParameterivNV: TglCombinerParameterivNV;
13627   glCombinerParameteriNV: TglCombinerParameteriNV;
13628   glCombinerInputNV: TglCombinerInputNV;
13629   glCombinerOutputNV: TglCombinerOutputNV;
13630   glFinalCombinerInputNV: TglFinalCombinerInputNV;
13631   glGetCombinerInputParameterfvNV: TglGetCombinerInputParameterfvNV;
13632   glGetCombinerInputParameterivNV: TglGetCombinerInputParameterivNV;
13633   glGetCombinerOutputParameterfvNV: TglGetCombinerOutputParameterfvNV;
13634   glGetCombinerOutputParameterivNV: TglGetCombinerOutputParameterivNV;
13635   glGetFinalCombinerInputParameterfvNV: TglGetFinalCombinerInputParameterfvNV;
13636   glGetFinalCombinerInputParameterivNV: TglGetFinalCombinerInputParameterivNV;
13637
13638   // GL_NV_register_combiners2
13639   glCombinerStageParameterfvNV: TglCombinerStageParameterfvNV;
13640   glGetCombinerStageParameterfvNV: TglGetCombinerStageParameterfvNV;
13641
13642   // GL_NV_vertex_array_range
13643   glFlushVertexArrayRangeNV: TglFlushVertexArrayRangeNV;
13644   glVertexArrayRangeNV: TglVertexArrayRangeNV;
13645
13646   // GL_NV_vertex_program
13647   glAreProgramsResidentNV: TglAreProgramsResidentNV;
13648   glBindProgramNV: TglBindProgramNV;
13649   glDeleteProgramsNV: TglDeleteProgramsNV;
13650   glExecuteProgramNV: TglExecuteProgramNV;
13651   glGenProgramsNV: TglGenProgramsNV;
13652   glGetProgramParameterdvNV: TglGetProgramParameterdvNV;
13653   glGetProgramParameterfvNV: TglGetProgramParameterfvNV;
13654   glGetProgramivNV: TglGetProgramivNV;
13655   glGetProgramStringNV: TglGetProgramStringNV;
13656   glGetTrackMatrixivNV: TglGetTrackMatrixivNV;
13657   glGetVertexAttribdvNV: TglGetVertexAttribdvNV;
13658   glGetVertexAttribfvNV: TglGetVertexAttribfvNV;
13659   glGetVertexAttribivNV: TglGetVertexAttribivNV;
13660   glGetVertexAttribPointervNV: TglGetVertexAttribPointervNV;
13661   glIsProgramNV: TglIsProgramNV;
13662   glLoadProgramNV: TglLoadProgramNV;
13663   glProgramParameter4dNV: TglProgramParameter4dNV;
13664   glProgramParameter4dvNV: TglProgramParameter4dvNV;
13665   glProgramParameter4fNV: TglProgramParameter4fNV;
13666   glProgramParameter4fvNV: TglProgramParameter4fvNV;
13667   glProgramParameters4dvNV: TglProgramParameters4dvNV;
13668   glProgramParameters4fvNV: TglProgramParameters4fvNV;
13669   glRequestResidentProgramsNV: TglRequestResidentProgramsNV;
13670   glTrackMatrixNV: TglTrackMatrixNV;
13671   glVertexAttribPointerNV: TglVertexAttribPointerNV;
13672   glVertexAttrib1dNV: TglVertexAttrib1dNV;
13673   glVertexAttrib1dvNV: TglVertexAttrib1dvNV;
13674   glVertexAttrib1fNV: TglVertexAttrib1fNV;
13675   glVertexAttrib1fvNV: TglVertexAttrib1fvNV;
13676   glVertexAttrib1sNV: TglVertexAttrib1sNV;
13677   glVertexAttrib1svNV: TglVertexAttrib1svNV;
13678   glVertexAttrib2dNV: TglVertexAttrib2dNV;
13679   glVertexAttrib2dvNV: TglVertexAttrib2dvNV;
13680   glVertexAttrib2fNV: TglVertexAttrib2fNV;
13681   glVertexAttrib2fvNV: TglVertexAttrib2fvNV;
13682   glVertexAttrib2sNV: TglVertexAttrib2sNV;
13683   glVertexAttrib2svNV: TglVertexAttrib2svNV;
13684   glVertexAttrib3dNV: TglVertexAttrib3dNV;
13685   glVertexAttrib3dvNV: TglVertexAttrib3dvNV;
13686   glVertexAttrib3fNV: TglVertexAttrib3fNV;
13687   glVertexAttrib3fvNV: TglVertexAttrib3fvNV;
13688   glVertexAttrib3sNV: TglVertexAttrib3sNV;
13689   glVertexAttrib3svNV: TglVertexAttrib3svNV;
13690   glVertexAttrib4dNV: TglVertexAttrib4dNV;
13691   glVertexAttrib4dvNV: TglVertexAttrib4dvNV;
13692   glVertexAttrib4fNV: TglVertexAttrib4fNV;
13693   glVertexAttrib4fvNV: TglVertexAttrib4fvNV;
13694   glVertexAttrib4sNV: TglVertexAttrib4sNV;
13695   glVertexAttrib4svNV: TglVertexAttrib4svNV;
13696   glVertexAttrib4ubNV: TglVertexAttrib4ubNV;
13697   glVertexAttrib4ubvNV: TglVertexAttrib4ubvNV;
13698   glVertexAttribs1dvNV: TglVertexAttribs1dvNV;
13699   glVertexAttribs1fvNV: TglVertexAttribs1fvNV;
13700   glVertexAttribs1svNV: TglVertexAttribs1svNV;
13701   glVertexAttribs2dvNV: TglVertexAttribs2dvNV;
13702   glVertexAttribs2fvNV: TglVertexAttribs2fvNV;
13703   glVertexAttribs2svNV: TglVertexAttribs2svNV;
13704   glVertexAttribs3dvNV: TglVertexAttribs3dvNV;
13705   glVertexAttribs3fvNV: TglVertexAttribs3fvNV;
13706   glVertexAttribs3svNV: TglVertexAttribs3svNV;
13707   glVertexAttribs4dvNV: TglVertexAttribs4dvNV;
13708   glVertexAttribs4fvNV: TglVertexAttribs4fvNV;
13709   glVertexAttribs4svNV: TglVertexAttribs4svNV;
13710   glVertexAttribs4ubvNV: TglVertexAttribs4ubvNV;
13711
13712   // GL_NV_depth_buffer_float
13713   glDepthRangedNV: TglDepthRangedNV;
13714   glClearDepthdNV: TglClearDepthdNV;
13715   glDepthBoundsdNV: TglDepthBoundsdNV;
13716
13717   // GL_NV_framebuffer_multisample_coverage
13718   glRenderbufferStorageMultsampleCoverageNV: TglRenderbufferStorageMultsampleCoverageNV;
13719
13720   // GL_NV_geometry_program4
13721   glProgramVertexLimitNV: TglProgramVertexLimitNV;
13722
13723   // GL_NV_gpu_program4
13724   glProgramLocalParameterI4iNV: TglProgramLocalParameterI4iNV;
13725   glProgramLocalParameterI4ivNV: TglProgramLocalParameterI4ivNV;
13726   glProgramLocalParametersI4ivNV: TglProgramLocalParametersI4ivNV;
13727   glProgramLocalParameterI4uiNV: TglProgramLocalParameterI4uiNV;
13728   glProgramLocalParameterI4uivNV: TglProgramLocalParameterI4uivNV;
13729   glProgramLocalParametersI4uivNV: TglProgramLocalParametersI4uivNV;
13730   glProgramEnvParameterI4iNV: TglProgramEnvParameterI4iNV;
13731   glProgramEnvParameterI4ivNV: TglProgramEnvParameterI4ivNV;
13732   glProgramEnvParametersI4ivNV: TglProgramEnvParametersI4ivNV;
13733   glProgramEnvParameterI4uiNV: TglProgramEnvParameterI4uiNV;
13734   glProgramEnvParameterI4uivNV: TglProgramEnvParameterI4uivNV;
13735   glProgramEnvParametersI4uivNV: TglProgramEnvParametersI4uivNV;
13736   glGetProgramLocalParameterIivNV: TglGetProgramLocalParameterIivNV;
13737   glGetProgramLocalParameterIuivNV: TglGetProgramLocalParameterIuivNV;
13738   glGetProgramEnvParameterIivNV: TglGetProgramEnvParameterIivNV;
13739   glGetProgramEnvParameterIuivNV: TglGetProgramEnvParameterIuivNV;
13740
13741   // GL_NV_parameter_buffer_object
13742   glProgramBufferParametersfvNV: TglProgramBufferParametersfvNV;
13743   glProgramBufferParametersIivNV: TglProgramBufferParametersIivNV;
13744   glProgramBufferParametersIuivNV: TglProgramBufferParametersIuivNV;
13745
13746   // GL_NV_transform_feedback
13747   glBeginTransformFeedbackNV: TglBeginTransformFeedbackNV;
13748   glEndTransformFeedbackNV: TglEndTransformFeedbackNV;
13749   glTransformFeedbackAttribsNV: TglTransformFeedbackAttribsNV;
13750   glBindBufferRangeNV: TglBindBufferRangeNV;
13751   glBindBufferOffsetNV: TglBindBufferOffsetNV;
13752   glBindBufferBaseNV: TglBindBufferBaseNV;
13753   glTransformFeedbackVaryingsNV: TglTransformFeedbackVaryingsNV;
13754   glActiveVaryingNV: TglActiveVaryingNV;
13755   glGetVaryingLocationNV: TglGetVaryingLocationNV;
13756   glGetActiveVaryingNV: TglGetActiveVaryingNV;
13757   glGetTransformFeedbackVaryingNV: TglGetTransformFeedbackVaryingNV;
13758   glTransformFeedbackStreamAttribsNV: TglTransformFeedbackStreamAttribsNV;
13759
13760   // GL_NV_conditional_render
13761   glBeginConditionalRenderNV: TglBeginConditionalRenderNV;
13762   glEndConditionalRenderNV: TglEndConditionalRenderNV;
13763
13764   // GL_NV_present_video
13765   glPresentFrameKeyedNV: TglPresentFrameKeyedNV;
13766   glPresentFrameDualFillNV: TglPresentFrameDualFillNV;
13767   glGetVideoivNV: TglGetVideoivNV;
13768   glGetVideouivNV: TglGetVideouivNV;
13769   glGetVideoi64vNV: TglGetVideoi64vNV;
13770   glGetVideoui64vNV: TglGetVideoui64vNV;
13771 //  glVideoParameterivNV: TglVideoParameterivNV;
13772
13773   // GL_NV_explicit_multisample
13774   glGetMultisamplefvNV: TglGetMultisamplefvNV;
13775   glSampleMaskIndexedNV: TglSampleMaskIndexedNV;
13776   glTexRenderbufferNV: TglTexRenderbufferNV;
13777
13778   // GL_NV_transform_feedback2
13779   glBindTransformFeedbackNV: TglBindTransformFeedbackNV;
13780   glDeleteTransformFeedbacksNV: TglDeleteTransformFeedbacksNV;
13781   glGenTransformFeedbacksNV: TglGenTransformFeedbacksNV;
13782   glIsTransformFeedbackNV: TglIsTransformFeedbackNV;
13783   glPauseTransformFeedbackNV: TglPauseTransformFeedbackNV;
13784   glResumeTransformFeedbackNV: TglResumeTransformFeedbackNV;
13785   glDrawTransformFeedbackNV: TglDrawTransformFeedbackNV;
13786
13787   // GL_NV_video_capture
13788   glBeginVideoCaptureNV: TglBeginVideoCaptureNV;
13789   glBindVideoCaptureStreamBufferNV: TglBindVideoCaptureStreamBufferNV;
13790   glBindVideoCaptureStreamTextureNV: TglBindVideoCaptureStreamTextureNV;
13791   glEndVideoCaptureNV: TglEndVideoCaptureNV;
13792   glGetVideoCaptureivNV: TglGetVideoCaptureivNV;
13793   glGetVideoCaptureStreamivNV: TglGetVideoCaptureStreamivNV;
13794   glGetVideoCaptureStreamfvNV: TglGetVideoCaptureStreamfvNV;
13795   glGetVideoCaptureStreamdvNV: TglGetVideoCaptureStreamdvNV;
13796   glVideoCaptureNV: TglVideoCaptureNV;
13797   glVideoCaptureStreamParameterivNV: TglVideoCaptureStreamParameterivNV;
13798   glVideoCaptureStreamParameterfvNV: TglVideoCaptureStreamParameterfvNV;
13799   glVideoCaptureStreamParameterdvNV: TglVideoCaptureStreamParameterdvNV;
13800
13801   // GL_NV_copy_image
13802   glCopyImageSubDataNV: TglCopyImageSubDataNV;
13803
13804   // GL_NV_shader_buffer_load
13805   glMakeBufferResidentNV: TglMakeBufferResidentNV;
13806   glMakeBufferNonResidentNV: TglMakeBufferNonResidentNV;
13807   glIsBufferResidentNV: TglIsBufferResidentNV;
13808   glMakeNamedBufferResidentNV: TglMakeNamedBufferResidentNV;
13809   glMakeNamedBufferNonResidentNV: TglMakeNamedBufferNonResidentNV;
13810   glIsNamedBufferResidentNV: TglIsNamedBufferResidentNV;
13811   glGetBufferParameterui64vNV: TglGetBufferParameterui64vNV;
13812   glGetNamedBufferParameterui64vNV: TglGetNamedBufferParameterui64vNV;
13813   glGetIntegerui64vNV: TglGetIntegerui64vNV;
13814   glUniformui64NV: TglUniformui64NV;
13815   glUniformui64vNV: TglUniformui64vNV;
13816   glGetUniformui64vNV: TglGetUniformui64vNV;
13817   glProgramUniformui64NV: TglProgramUniformui64NV;
13818   glProgramUniformui64vNV: TglProgramUniformui64vNV;
13819
13820   // GL_NV_vertex_buffer_unified_memory
13821   glBufferAddressRangeNV: TglBufferAddressRangeNV;
13822   glVertexFormatNV: TglVertexFormatNV;
13823   glNormalFormatNV: TglNormalFormatNV;
13824   glColorFormatNV: TglColorFormatNV;
13825   glIndexFormatNV: TglIndexFormatNV;
13826   glTexCoordFormatNV: TglTexCoordFormatNV;
13827   glEdgeFlagFormatNV: TglEdgeFlagFormatNV;
13828   glSecondaryColorFormatNV: TglSecondaryColorFormatNV;
13829   glFogCoordFormatNV: TglFogCoordFormatNV;
13830   glVertexAttribFormatNV: TglVertexAttribFormatNV;
13831   glVertexAttribIFormatNV: TglVertexAttribIFormatNV;
13832   glGetIntegerui64i_vNV: TglGetIntegerui64i_vNV;
13833
13834   // GL_NV_gpu_program5
13835   glProgramSubroutineParametersuivNV: TglProgramSubroutineParametersuivNV;
13836   glGetProgramSubroutineParameteruivNV: TglGetProgramSubroutineParameteruivNV;
13837
13838   // GL_NV_gpu_shader5
13839   glUniform1i64NV: TglUniform1i64NV;
13840   glUniform2i64NV: TglUniform2i64NV;
13841   glUniform3i64NV: TglUniform3i64NV;
13842   glUniform4i64NV: TglUniform4i64NV;
13843   glUniform1i64vNV: TglUniform1i64vNV;
13844   glUniform2i64vNV: TglUniform2i64vNV;
13845   glUniform3i64vNV: TglUniform3i64vNV;
13846   glUniform4i64vNV: TglUniform4i64vNV;
13847   glUniform1ui64NV: TglUniform1ui64NV;
13848   glUniform2ui64NV: TglUniform2ui64NV;
13849   glUniform3ui64NV: TglUniform3ui64NV;
13850   glUniform4ui64NV: TglUniform4ui64NV;
13851   glUniform1ui64vNV: TglUniform1ui64vNV;
13852   glUniform2ui64vNV: TglUniform2ui64vNV;
13853   glUniform3ui64vNV: TglUniform3ui64vNV;
13854   glUniform4ui64vNV: TglUniform4ui64vNV;
13855   glGetUniformi64vNV: TglGetUniformi64vNV;
13856   glProgramUniform1i64NV: TglProgramUniform1i64NV;
13857   glProgramUniform2i64NV: TglProgramUniform2i64NV;
13858   glProgramUniform3i64NV: TglProgramUniform3i64NV;
13859   glProgramUniform4i64NV: TglProgramUniform4i64NV;
13860   glProgramUniform1i64vNV: TglProgramUniform1i64vNV;
13861   glProgramUniform2i64vNV: TglProgramUniform2i64vNV;
13862   glProgramUniform3i64vNV: TglProgramUniform3i64vNV;
13863   glProgramUniform4i64vNV: TglProgramUniform4i64vNV;
13864   glProgramUniform1ui64NV: TglProgramUniform1ui64NV;
13865   glProgramUniform2ui64NV: TglProgramUniform2ui64NV;
13866   glProgramUniform3ui64NV: TglProgramUniform3ui64NV;
13867   glProgramUniform4ui64NV: TglProgramUniform4ui64NV;
13868   glProgramUniform1ui64vNV: TglProgramUniform1ui64vNV;
13869   glProgramUniform2ui64vNV: TglProgramUniform2ui64vNV;
13870   glProgramUniform3ui64vNV: TglProgramUniform3ui64vNV;
13871   glProgramUniform4ui64vNV: TglProgramUniform4ui64vNV;
13872
13873   // GL_NV_vertex_attrib_integer_64bit
13874   glVertexAttribL1i64NV: TglVertexAttribL1i64NV;
13875   glVertexAttribL2i64NV: TglVertexAttribL2i64NV;
13876   glVertexAttribL3i64NV: TglVertexAttribL3i64NV;
13877   glVertexAttribL4i64NV: TglVertexAttribL4i64NV;
13878   glVertexAttribL1i64vNV: TglVertexAttribL1i64vNV;
13879   glVertexAttribL2i64vNV: TglVertexAttribL2i64vNV;
13880   glVertexAttribL3i64vNV: TglVertexAttribL3i64vNV;
13881   glVertexAttribL4i64vNV: TglVertexAttribL4i64vNV;
13882   glVertexAttribL1ui64NV: TglVertexAttribL1ui64NV;
13883   glVertexAttribL2ui64NV: TglVertexAttribL2ui64NV;
13884   glVertexAttribL3ui64NV: TglVertexAttribL3ui64NV;
13885   glVertexAttribL4ui64NV: TglVertexAttribL4ui64NV;
13886   glVertexAttribL1ui64vNV: TglVertexAttribL1ui64vNV;
13887   glVertexAttribL2ui64vNV: TglVertexAttribL2ui64vNV;
13888   glVertexAttribL3ui64vNV: TglVertexAttribL3ui64vNV;
13889   glVertexAttribL4ui64vNV: TglVertexAttribL4ui64vNV;
13890   glGetVertexAttribLi64vNV: TglGetVertexAttribLi64vNV;
13891   glGetVertexAttribLui64vNV: TglGetVertexAttribLui64vNV;
13892   glVertexAttribLFormatNV: TglVertexAttribLFormatNV;
13893
13894   // GL_NV_vdpau_interop
13895   glVDPAUInitNV: TglVDPAUInitNV;
13896   glVDPAUFiniNV: TglVDPAUFiniNV;
13897   glVDPAURegisterVideoSurfaceNV: TglVDPAURegisterVideoSurfaceNV;
13898   glVDPAURegisterOutputSurfaceNV: TglVDPAURegisterOutputSurfaceNV;
13899   glVDPAUIsSurfaceNV: TglVDPAUIsSurfaceNV;
13900   glVDPAUUnregisterSurfaceNV: TglVDPAUUnregisterSurfaceNV;
13901   glVDPAUGetSurfaceivNV: TglVDPAUGetSurfaceivNV;
13902   glVDPAUSurfaceAccessNV: TglVDPAUSurfaceAccessNV;
13903   glVDPAUMapSurfacesNV: TglVDPAUMapSurfacesNV;
13904   glVDPAUUnmapSurfacesNV: TglVDPAUUnmapSurfacesNV;
13905
13906   // GL_NV_texture_barrier
13907   glTextureBarrierNV: TglTextureBarrierNV;
13908
13909   // (4.3) GL_NV_path_rendering
13910   glGenPathsNV : TglGenPathsNV;
13911   glDeletePathsNV : TglDeletePathsNV;
13912   glIsPathNV : TglIsPathNV;
13913   glPathCommandsNV : TglPathCommandsNV;
13914   glPathCoordsNV : TglPathCoordsNV;
13915   glPathSubCommandsNV : TglPathSubCommandsNV;
13916   glPathSubCoordsNV : TglPathSubCoordsNV;
13917   glPathStringNV : TglPathStringNV;
13918   glPathGlyphsNV : TglPathGlyphsNV;
13919   glPathGlyphRangeNV : TglPathGlyphRangeNV;
13920   glWeightPathsNV : TglWeightPathsNV;
13921   glCopyPathNV : TglCopyPathNV;
13922   glInterpolatePathsNV : TglInterpolatePathsNV;
13923   glTransformPathNV : TglTransformPathNV;
13924   glPathParameterivNV : TglPathParameterivNV;
13925   glPathParameteriNV : TglPathParameteriNV;
13926   glPathParameterfvNV : TglPathParameterfvNV;
13927   glPathParameterfNV : TglPathParameterfNV;
13928   glPathDashArrayNV : TglPathDashArrayNV;
13929   glPathStencilFuncNV : TglPathStencilFuncNV;
13930   glPathStencilDepthOffsetNV : TglPathStencilDepthOffsetNV;
13931   glStencilFillPathNV : TglStencilFillPathNV;
13932   glStencilStrokePathNV : TglStencilStrokePathNV;
13933   glStencilFillPathInstancedNV : TglStencilFillPathInstancedNV;
13934   glStencilStrokePathInstancedNV : TglStencilStrokePathInstancedNV;
13935   glPathCoverDepthFuncNV : TglPathCoverDepthFuncNV;
13936   glPathColorGenNV : TglPathColorGenNV;
13937   glPathTexGenNV : TglPathTexGenNV;
13938   glPathFogGenNV : TglPathFogGenNV;
13939   glCoverFillPathNV : TglCoverFillPathNV;
13940   glCoverStrokePathNV : TglCoverStrokePathNV;
13941   glCoverFillPathInstancedNV : TglCoverFillPathInstancedNV;
13942   glCoverStrokePathInstancedNV : TglCoverStrokePathInstancedNV;
13943   glGetPathParameterivNV : TglGetPathParameterivNV;
13944   glGetPathParameterfvNV : TglGetPathParameterfvNV;
13945   glGetPathCommandsNV : TglGetPathCommandsNV;
13946   glGetPathCoordsNV : TglGetPathCoordsNV;
13947   glGetPathDashArrayNV : TglGetPathDashArrayNV;
13948   glGetPathMetricsNV : TglGetPathMetricsNV;
13949   glGetPathMetricRangeNV : TglGetPathMetricRangeNV;
13950   glGetPathSpacingNV : TglGetPathSpacingNV;
13951   glGetPathColorGenivNV : TglGetPathColorGenivNV;
13952   glGetPathColorGenfvNV : TglGetPathColorGenfvNV;
13953   glGetPathTexGenivNV : TglGetPathTexGenivNV;
13954   glGetPathTexGenfvNV : TglGetPathTexGenfvNV;
13955   glIsPointInFillPathNV : TglIsPointInFillPathNV;
13956   glIsPointInStrokePathNV : TglIsPointInStrokePathNV;
13957   glGetPathLengthNV : TglGetPathLengthNV;
13958   glPointAlongPathNV : TglPointAlongPathNV;
13959
13960   // GL_AMD_pinned_memory
13961
13962   // GL_AMD_stencil_operation_extended
13963   glStencilOpValueAMD : TglStencilOpValueAMD;
13964
13965   // GL_AMD_vertex_shader_viewport_index
13966
13967   // GL_AMD_vertex_shader_layer
13968
13969   // GL_NV_bindless_texture
13970   glGetTextureHandleNV : TglGetTextureHandleNV;
13971   glGetTextureSamplerHandleNV : TglGetTextureSamplerHandleNV;
13972   glMakeTextureHandleResidentNV : TglMakeTextureHandleResidentNV;
13973   glMakeTextureHandleNonResidentNV : TglMakeTextureHandleNonResidentNV;
13974   glGetImageHandleNV : TglGetImageHandleNV;
13975   glMakeImageHandleResidentNV : TglMakeImageHandleResidentNV;
13976   glMakeImageHandleNonResidentNV : TglMakeImageHandleNonResidentNV;
13977   glUniformHandleui64NV : TglUniformHandleui64NV;
13978   glUniformHandleui64vNV : TglUniformHandleui64vNV;
13979   glProgramUniformHandleui64NV : TglProgramUniformHandleui64NV;
13980   glProgramUniformHandleui64vNV : TglProgramUniformHandleui64vNV;
13981   glIsTextureHandleResidentNV : TglIsTextureHandleResidentNV;
13982   glIsImageHandleResidentNV : TglIsImageHandleResidentNV;
13983
13984   //
13985
13986   // GL_PGI_misc_hints
13987   glHintPGI: TglHintPGI;
13988
13989   // GL_SGIS_detail_texture
13990   glDetailTexFuncSGIS: TglDetailTexFuncSGIS;
13991   glGetDetailTexFuncSGIS: TglGetDetailTexFuncSGIS;
13992
13993   // GL_SGIS_fog_function
13994   glFogFuncSGIS: TglFogFuncSGIS;
13995   glGetFogFuncSGIS: TglGetFogFuncSGIS;
13996
13997   // GL_SGIS_multisample
13998   glSampleMaskSGIS: TglSampleMaskSGIS;
13999   glSamplePatternSGIS: TglSamplePatternSGIS;
14000
14001   // GL_SGIS_pixel_texture
14002   glPixelTexGenParameteriSGIS: TglPixelTexGenParameteriSGIS;
14003   glPixelTexGenParameterivSGIS: TglPixelTexGenParameterivSGIS;
14004   glPixelTexGenParameterfSGIS: TglPixelTexGenParameterfSGIS;
14005   glPixelTexGenParameterfvSGIS: TglPixelTexGenParameterfvSGIS;
14006   glGetPixelTexGenParameterivSGIS: TglGetPixelTexGenParameterivSGIS;
14007   glGetPixelTexGenParameterfvSGIS: TglGetPixelTexGenParameterfvSGIS;
14008
14009   // GL_SGIS_point_parameters
14010   glPointParameterfSGIS: TglPointParameterfSGIS;
14011   glPointParameterfvSGIS: TglPointParameterfvSGIS;
14012
14013   // GL_SGIS_sharpen_texture
14014   glSharpenTexFuncSGIS: TglSharpenTexFuncSGIS;
14015   glGetSharpenTexFuncSGIS: TglGetSharpenTexFuncSGIS;
14016
14017   // GL_SGIS_texture4D
14018   glTexImage4DSGIS: TglTexImage4DSGIS;
14019   glTexSubImage4DSGIS: TglTexSubImage4DSGIS;
14020
14021   // GL_SGIS_texture_color_mask
14022   glTextureColorMaskSGIS: TglTextureColorMaskSGIS;
14023
14024   // GL_SGIS_texture_filter4
14025   glGetTexFilterFuncSGIS: TglGetTexFilterFuncSGIS;
14026   glTexFilterFuncSGIS: TglTexFilterFuncSGIS;
14027
14028   // GL_SGIX_async
14029   glAsyncMarkerSGIX: TglAsyncMarkerSGIX;
14030   glFinishAsyncSGIX: TglFinishAsyncSGIX;
14031   glPollAsyncSGIX: TglPollAsyncSGIX;
14032   glGenAsyncMarkersSGIX: TglGenAsyncMarkersSGIX;
14033   glDeleteAsyncMarkersSGIX: TglDeleteAsyncMarkersSGIX;
14034   glIsAsyncMarkerSGIX: TglIsAsyncMarkerSGIX;
14035
14036   // GL_SGIX_flush_raster
14037   glFlushRasterSGIX: TglFlushRasterSGIX;
14038
14039   // GL_SGIX_fragment_lighting
14040   glFragmentColorMaterialSGIX: TglFragmentColorMaterialSGIX;
14041   glFragmentLightfSGIX: TglFragmentLightfSGIX;
14042   glFragmentLightfvSGIX: TglFragmentLightfvSGIX;
14043   glFragmentLightiSGIX: TglFragmentLightiSGIX;
14044   glFragmentLightivSGIX: TglFragmentLightivSGIX;
14045   glFragmentLightModelfSGIX: TglFragmentLightModelfSGIX;
14046   glFragmentLightModelfvSGIX: TglFragmentLightModelfvSGIX;
14047   glFragmentLightModeliSGIX: TglFragmentLightModeliSGIX;
14048   glFragmentLightModelivSGIX: TglFragmentLightModelivSGIX;
14049   glFragmentMaterialfSGIX: TglFragmentMaterialfSGIX;
14050   glFragmentMaterialfvSGIX: TglFragmentMaterialfvSGIX;
14051   glFragmentMaterialiSGIX: TglFragmentMaterialiSGIX;
14052   glFragmentMaterialivSGIX: TglFragmentMaterialivSGIX;
14053   glGetFragmentLightfvSGIX: TglGetFragmentLightfvSGIX;
14054   glGetFragmentLightivSGIX: TglGetFragmentLightivSGIX;
14055   glGetFragmentMaterialfvSGIX: TglGetFragmentMaterialfvSGIX;
14056   glGetFragmentMaterialivSGIX: TglGetFragmentMaterialivSGIX;
14057   glLightEnviSGIX: TglLightEnviSGIX;
14058
14059   // GL_SGIX_framezoom
14060   glFrameZoomSGIX: TglFrameZoomSGIX;
14061
14062   // GL_SGIX_igloo_interface
14063   glIglooInterfaceSGIX: TglIglooInterfaceSGIX;
14064
14065   // GL_SGIX_instruments
14066   glGetInstrumentsSGIX: TglGetInstrumentsSGIX;
14067   glInstrumentsBufferSGIX: TglInstrumentsBufferSGIX;
14068   glPollInstrumentsSGIX: TglPollInstrumentsSGIX;
14069   glReadInstrumentsSGIX: TglReadInstrumentsSGIX;
14070   glStartInstrumentsSGIX: TglStartInstrumentsSGIX;
14071   glStopInstrumentsSGIX: TglStopInstrumentsSGIX;
14072
14073   // GL_SGIX_list_priority
14074   glGetListParameterfvSGIX: TglGetListParameterfvSGIX;
14075   glGetListParameterivSGIX: TglGetListParameterivSGIX;
14076   glListParameterfSGIX: TglListParameterfSGIX;
14077   glListParameterfvSGIX: TglListParameterfvSGIX;
14078   glListParameteriSGIX: TglListParameteriSGIX;
14079   glListParameterivSGIX: TglListParameterivSGIX;
14080
14081   // GL_SGIX_pixel_texture
14082   glPixelTexGenSGIX: TglPixelTexGenSGIX;
14083
14084   // GL_SGIX_polynomial_ffd
14085   glDeformationMap3dSGIX: TglDeformationMap3dSGIX;
14086   glDeformationMap3fSGIX: TglDeformationMap3fSGIX;
14087   glDeformSGIX: TglDeformSGIX;
14088   glLoadIdentityDeformationMapSGIX: TglLoadIdentityDeformationMapSGIX;
14089
14090   // GL_SGIX_reference_plane
14091   glReferencePlaneSGIX: TglReferencePlaneSGIX;
14092
14093   // GL_SGIX_sprite
14094   glSpriteParameterfSGIX: TglSpriteParameterfSGIX;
14095   glSpriteParameterfvSGIX: TglSpriteParameterfvSGIX;
14096   glSpriteParameteriSGIX: TglSpriteParameteriSGIX;
14097   glSpriteParameterivSGIX: TglSpriteParameterivSGIX;
14098
14099   // GL_SGIX_tag_sample_buffer
14100   glTagSampleBufferSGIX: TglTagSampleBufferSGIX;
14101
14102   // GL_SGI_color_table
14103   glColorTableSGI: TglColorTableSGI;
14104   glColorTableParameterfvSGI: TglColorTableParameterfvSGI;
14105   glColorTableParameterivSGI: TglColorTableParameterivSGI;
14106   glCopyColorTableSGI: TglCopyColorTableSGI;
14107   glGetColorTableSGI: TglGetColorTableSGI;
14108   glGetColorTableParameterfvSGI: TglGetColorTableParameterfvSGI;
14109   glGetColorTableParameterivSGI: TglGetColorTableParameterivSGI;
14110
14111   // GL_SUNX_constant_data
14112   glFinishTextureSUNX: TglFinishTextureSUNX;
14113
14114   // GL_SUN_global_alpha
14115   glGlobalAlphaFactorbSUN: TglGlobalAlphaFactorbSUN;
14116   glGlobalAlphaFactorsSUN: TglGlobalAlphaFactorsSUN;
14117   glGlobalAlphaFactoriSUN: TglGlobalAlphaFactoriSUN;
14118   glGlobalAlphaFactorfSUN: TglGlobalAlphaFactorfSUN;
14119   glGlobalAlphaFactordSUN: TglGlobalAlphaFactordSUN;
14120   glGlobalAlphaFactorubSUN: TglGlobalAlphaFactorubSUN;
14121   glGlobalAlphaFactorusSUN: TglGlobalAlphaFactorusSUN;
14122   glGlobalAlphaFactoruiSUN: TglGlobalAlphaFactoruiSUN;
14123
14124   // GL_SUN_mesh_array
14125   glDrawMeshArraysSUN: TglDrawMeshArraysSUN;
14126
14127   // GL_SUN_triangle_list
14128   glReplacementCodeuiSUN: TglReplacementCodeuiSUN;
14129   glReplacementCodeusSUN: TglReplacementCodeusSUN;
14130   glReplacementCodeubSUN: TglReplacementCodeubSUN;
14131   glReplacementCodeuivSUN: TglReplacementCodeuivSUN;
14132   glReplacementCodeusvSUN: TglReplacementCodeusvSUN;
14133   glReplacementCodeubvSUN: TglReplacementCodeubvSUN;
14134   glReplacementCodePointerSUN: TglReplacementCodePointerSUN;
14135
14136   // GL_SUN_vertex
14137   glColor4ubVertex2fSUN: TglColor4ubVertex2fSUN;
14138   glColor4ubVertex2fvSUN: TglColor4ubVertex2fvSUN;
14139   glColor4ubVertex3fSUN: TglColor4ubVertex3fSUN;
14140   glColor4ubVertex3fvSUN: TglColor4ubVertex3fvSUN;
14141   glColor3fVertex3fSUN: TglColor3fVertex3fSUN;
14142   glColor3fVertex3fvSUN: TglColor3fVertex3fvSUN;
14143   glNormal3fVertex3fSUN: TglNormal3fVertex3fSUN;
14144   glNormal3fVertex3fvSUN: TglNormal3fVertex3fvSUN;
14145   glColor4fNormal3fVertex3fSUN: TglColor4fNormal3fVertex3fSUN;
14146   glColor4fNormal3fVertex3fvSUN: TglColor4fNormal3fVertex3fvSUN;
14147   glTexCoord2fVertex3fSUN: TglTexCoord2fVertex3fSUN;
14148   glTexCoord2fVertex3fvSUN: TglTexCoord2fVertex3fvSUN;
14149   glTexCoord4fVertex4fSUN: TglTexCoord4fVertex4fSUN;
14150   glTexCoord4fVertex4fvSUN: TglTexCoord4fVertex4fvSUN;
14151   glTexCoord2fColor4ubVertex3fSUN: TglTexCoord2fColor4ubVertex3fSUN;
14152   glTexCoord2fColor4ubVertex3fvSUN: TglTexCoord2fColor4ubVertex3fvSUN;
14153   glTexCoord2fColor3fVertex3fSUN: TglTexCoord2fColor3fVertex3fSUN;
14154   glTexCoord2fColor3fVertex3fvSUN: TglTexCoord2fColor3fVertex3fvSUN;
14155   glTexCoord2fNormal3fVertex3fSUN: TglTexCoord2fNormal3fVertex3fSUN;
14156   glTexCoord2fNormal3fVertex3fvSUN: TglTexCoord2fNormal3fVertex3fvSUN;
14157   glTexCoord2fColor4fNormal3fVertex3fSUN: TglTexCoord2fColor4fNormal3fVertex3fSUN;
14158   glTexCoord2fColor4fNormal3fVertex3fvSUN: TglTexCoord2fColor4fNormal3fVertex3fvSUN;
14159   glTexCoord4fColor4fNormal3fVertex4fSUN: TglTexCoord4fColor4fNormal3fVertex4fSUN;
14160   glTexCoord4fColor4fNormal3fVertex4fvSUN: TglTexCoord4fColor4fNormal3fVertex4fvSUN;
14161   glReplacementCodeuiVertex3fSUN: TglReplacementCodeuiVertex3fSUN;
14162   glReplacementCodeuiVertex3fvSUN: TglReplacementCodeuiVertex3fvSUN;
14163   glReplacementCodeuiColor4ubVertex3fSUN: TglReplacementCodeuiColor4ubVertex3fSUN;
14164   glReplacementCodeuiColor4ubVertex3fvSUN: TglReplacementCodeuiColor4ubVertex3fvSUN;
14165   glReplacementCodeuiColor3fVertex3fSUN: TglReplacementCodeuiColor3fVertex3fSUN;
14166   glReplacementCodeuiColor3fVertex3fvSUN: TglReplacementCodeuiColor3fVertex3fvSUN;
14167   glReplacementCodeuiNormal3fVertex3fSUN: TglReplacementCodeuiNormal3fVertex3fSUN;
14168   glReplacementCodeuiNormal3fVertex3fvSUN: TglReplacementCodeuiNormal3fVertex3fvSUN;
14169   glReplacementCodeuiColor4fNormal3fVertex3fSUN: TglReplacementCodeuiColor4fNormal3fVertex3fSUN;
14170   glReplacementCodeuiColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiColor4fNormal3fVertex3fvSUN;
14171   glReplacementCodeuiTexCoord2fVertex3fSUN: TglReplacementCodeuiTexCoord2fVertex3fSUN;
14172   glReplacementCodeuiTexCoord2fVertex3fvSUN: TglReplacementCodeuiTexCoord2fVertex3fvSUN;
14173   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
14174   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
14175   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
14176   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
14177
14178 {$IFDEF DGL_WIN}
14179   wglGetProcAddress: TwglGetProcAddress;
14180   wglCopyContext: TwglCopyContext;
14181   wglCreateContext: TwglCreateContext;
14182   wglCreateLayerContext: TwglCreateLayerContext;
14183   wglDeleteContext: TwglDeleteContext;
14184   wglDescribeLayerPlane: TwglDescribeLayerPlane;
14185   wglGetCurrentContext: TwglGetCurrentContext;
14186   wglGetCurrentDC: TwglGetCurrentDC;
14187   wglGetLayerPaletteEntries: TwglGetLayerPaletteEntries;
14188   wglMakeCurrent: TwglMakeCurrent;
14189   wglRealizeLayerPalette: TwglRealizeLayerPalette;
14190   wglSetLayerPaletteEntries: TwglSetLayerPaletteEntries;
14191   wglShareLists: TwglShareLists;
14192   wglSwapLayerBuffers: TwglSwapLayerBuffers;
14193   wglSwapMultipleBuffers: TwglSwapMultipleBuffers;
14194   wglUseFontBitmapsA: TwglUseFontBitmapsA;
14195   wglUseFontOutlinesA: TwglUseFontOutlinesA;
14196   wglUseFontBitmapsW: TwglUseFontBitmapsW;
14197   wglUseFontOutlinesW: TwglUseFontOutlinesW;
14198   wglUseFontBitmaps: TwglUseFontBitmaps;
14199   wglUseFontOutlines: TwglUseFontOutlines;
14200
14201    // WGL_ARB_buffer_region
14202   wglCreateBufferRegionARB: TwglCreateBufferRegionARB;
14203   wglDeleteBufferRegionARB: TwglDeleteBufferRegionARB;
14204   wglSaveBufferRegionARB: TwglSaveBufferRegionARB;
14205   wglRestoreBufferRegionARB: TwglRestoreBufferRegionARB;
14206
14207   // WGL_ARB_extensions_string
14208   wglGetExtensionsStringARB: TwglGetExtensionsStringARB;
14209
14210   // WGL_ARB_make_current_read
14211   wglMakeContextCurrentARB: TwglMakeContextCurrentARB;
14212   wglGetCurrentReadDCARB: TwglGetCurrentReadDCARB;
14213
14214   // WGL_ARB_pbuffer
14215   wglCreatePbufferARB: TwglCreatePbufferARB;
14216   wglGetPbufferDCARB: TwglGetPbufferDCARB;
14217   wglReleasePbufferDCARB: TwglReleasePbufferDCARB;
14218   wglDestroyPbufferARB: TwglDestroyPbufferARB;
14219   wglQueryPbufferARB: TwglQueryPbufferARB;
14220
14221   // WGL_ARB_pixel_format
14222   wglGetPixelFormatAttribivARB: TwglGetPixelFormatAttribivARB;
14223   wglGetPixelFormatAttribfvARB: TwglGetPixelFormatAttribfvARB;
14224   wglChoosePixelFormatARB: TwglChoosePixelFormatARB;
14225   // WGL_ARB_color_buffer_float
14226   wglClampColorARB: TwglClampColorARB;
14227
14228   // WGL_ARB_render_texture
14229   wglBindTexImageARB: TwglBindTexImageARB;
14230   wglReleaseTexImageARB: TwglReleaseTexImageARB;
14231   wglSetPbufferAttribARB: TwglSetPbufferAttribARB;
14232
14233   // WGL_ARB_create_context
14234   wglCreateContextAttribsARB: TwglCreateContextAttribsARB;
14235
14236   // WGL_AMD_gpu_association
14237   wglGetGPUIDsAMD: TwglGetGPUIDsAMD;
14238   wglGetGPUInfoAMD: TwglGetGPUInfoAMD;
14239   wglGetContextGPUIDAMD: TwglGetContextGPUIDAMD;
14240   wglCreateAssociatedContextAMD: TwglCreateAssociatedContextAMD;
14241   wglCreateAssociatedContextAttribsAMD: TwglCreateAssociatedContextAttribsAMD;
14242   wglDeleteAssociatedContextAMD: TwglDeleteAssociatedContextAMD;
14243   wglMakeAssociatedContextCurrentAMD: TwglMakeAssociatedContextCurrentAMD;
14244   wglGetCurrentAssociatedContextAMD: TwglGetCurrentAssociatedContextAMD;
14245   wglBlitContextFramebufferAMD: TwglBlitContextFramebufferAMD;
14246
14247   // WGL_EXT_display_color_table
14248   wglCreateDisplayColorTableEXT: TwglCreateDisplayColorTableEXT;
14249   wglLoadDisplayColorTableEXT: TwglLoadDisplayColorTableEXT;
14250   wglBindDisplayColorTableEXT: TwglBindDisplayColorTableEXT;
14251   wglDestroyDisplayColorTableEXT: TwglDestroyDisplayColorTableEXT;
14252
14253   // WGL_EXT_extensions_string
14254   wglGetExtensionsStringEXT: TwglGetExtensionsStringEXT;
14255
14256   // WGL_EXT_make_current_read
14257   wglMakeContextCurrentEXT: TwglMakeContextCurrentEXT;
14258   wglGetCurrentReadDCEXT: TwglGetCurrentReadDCEXT;
14259
14260   // WGL_EXT_pbuffer
14261   wglCreatePbufferEXT: TwglCreatePbufferEXT;
14262   wglGetPbufferDCEXT: TwglGetPbufferDCEXT;
14263   wglReleasePbufferDCEXT: TwglReleasePbufferDCEXT;
14264   wglDestroyPbufferEXT: TwglDestroyPbufferEXT;
14265   wglQueryPbufferEXT: TwglQueryPbufferEXT;
14266
14267   // WGL_EXT_pixel_format
14268   wglGetPixelFormatAttribivEXT: TwglGetPixelFormatAttribivEXT;
14269   wglGetPixelFormatAttribfvEXT: TwglGetPixelFormatAttribfvEXT;
14270   wglChoosePixelFormatEXT: TwglChoosePixelFormatEXT;
14271
14272   // WGL_EXT_swap_control
14273   wglSwapIntervalEXT: TwglSwapIntervalEXT;
14274   wglGetSwapIntervalEXT: TwglGetSwapIntervalEXT;
14275
14276   // WGL_I3D_digital_video_control
14277   wglGetDigitalVideoParametersI3D: TwglGetDigitalVideoParametersI3D;
14278   wglSetDigitalVideoParametersI3D: TwglSetDigitalVideoParametersI3D;
14279
14280   // WGL_I3D_gamma
14281   wglGetGammaTableParametersI3D: TwglGetGammaTableParametersI3D;
14282   wglSetGammaTableParametersI3D: TwglSetGammaTableParametersI3D;
14283   wglGetGammaTableI3D: TwglGetGammaTableI3D;
14284   wglSetGammaTableI3D: TwglSetGammaTableI3D;
14285
14286   // WGL_I3D_genlock
14287   wglEnableGenlockI3D: TwglEnableGenlockI3D;
14288   wglDisableGenlockI3D: TwglDisableGenlockI3D;
14289   wglIsEnabledGenlockI3D: TwglIsEnabledGenlockI3D;
14290   wglGenlockSourceI3D: TwglGenlockSourceI3D;
14291   wglGetGenlockSourceI3D: TwglGetGenlockSourceI3D;
14292   wglGenlockSourceEdgeI3D: TwglGenlockSourceEdgeI3D;
14293   wglGetGenlockSourceEdgeI3D: TwglGetGenlockSourceEdgeI3D;
14294   wglGenlockSampleRateI3D: TwglGenlockSampleRateI3D;
14295   wglGetGenlockSampleRateI3D: TwglGetGenlockSampleRateI3D;
14296   wglGenlockSourceDelayI3D: TwglGenlockSourceDelayI3D;
14297   wglGetGenlockSourceDelayI3D: TwglGetGenlockSourceDelayI3D;
14298   wglQueryGenlockMaxSourceDelayI3D: TwglQueryGenlockMaxSourceDelayI3D;
14299
14300   // WGL_I3D_image_buffer
14301   wglCreateImageBufferI3D: TwglCreateImageBufferI3D;
14302   wglDestroyImageBufferI3D: TwglDestroyImageBufferI3D;
14303   wglAssociateImageBufferEventsI3D: TwglAssociateImageBufferEventsI3D;
14304   wglReleaseImageBufferEventsI3D: TwglReleaseImageBufferEventsI3D;
14305
14306   // WGL_I3D_swap_frame_lock
14307   wglEnableFrameLockI3D: TwglEnableFrameLockI3D;
14308   wglDisableFrameLockI3D: TwglDisableFrameLockI3D;
14309   wglIsEnabledFrameLockI3D: TwglIsEnabledFrameLockI3D;
14310   wglQueryFrameLockMasterI3D: TwglQueryFrameLockMasterI3D;
14311
14312   // WGL_I3D_swap_frame_usage
14313   wglGetFrameUsageI3D: TwglGetFrameUsageI3D;
14314   wglBeginFrameTrackingI3D: TwglBeginFrameTrackingI3D;
14315   wglEndFrameTrackingI3D: TwglEndFrameTrackingI3D;
14316   wglQueryFrameTrackingI3D: TwglQueryFrameTrackingI3D;
14317
14318   // WGL_NV_vertex_array_range
14319   wglAllocateMemoryNV: TwglAllocateMemoryNV;
14320   wglFreeMemoryNV: TwglFreeMemoryNV;
14321
14322   // WGL_NV_present_video
14323   wglEnumerateVideoDevicesNV: TwglEnumerateVideoDevicesNV;
14324   wglBindVideoDeviceNV: TwglBindVideoDeviceNV;
14325   wglQueryCurrentContextNV: TwglQueryCurrentContextNV;
14326
14327   // WGL_NV_video_output
14328   wglGetVideoDeviceNV: TwglGetVideoDeviceNV;
14329   wglReleaseVideoDeviceNV: TwglReleaseVideoDeviceNV;
14330   wglBindVideoImageNV: TwglBindVideoImageNV;
14331   wglReleaseVideoImageNV: TwglReleaseVideoImageNV;
14332   wglSendPbufferToVideoNV: TwglSendPbufferToVideoNV;
14333   wglGetVideoInfoNV: TwglGetVideoInfoNV;
14334
14335   // WGL_NV_swap_group
14336   wglJoinSwapGroupNV: TwglJoinSwapGroupNV;
14337   wglBindSwapBarrierNV: TwglBindSwapBarrierNV;
14338   wglQuerySwapGroupNV: TwglQuerySwapGroupNV;
14339   wglQueryMaxSwapGroupsNV: TwglQueryMaxSwapGroupsNV;
14340   wglQueryFrameCountNV: TwglQueryFrameCountNV;
14341   wglResetFrameCountNV: TwglResetFrameCountNV;
14342
14343   // WGL_NV_gpu_affinity
14344   wglEnumGpusNV: TwglEnumGpusNV;
14345   wglEnumGpuDevicesNV: TwglEnumGpuDevicesNV;
14346   wglCreateAffinityDCNV: TwglCreateAffinityDCNV;
14347   wglEnumGpusFromAffinityDCNV: TwglEnumGpusFromAffinityDCNV;
14348   wglDeleteDCNV: TwglDeleteDCNV;
14349
14350   // WGL_NV_video_capture
14351   wglBindVideoCaptureDeviceNV: TwglBindVideoCaptureDeviceNV;
14352   wglEnumerateVideoCaptureDevicesNV: TwglEnumerateVideoCaptureDevicesNV;
14353   wglLockVideoCaptureDeviceNV: TwglLockVideoCaptureDeviceNV;
14354   wglQueryVideoCaptureDeviceNV: TwglQueryVideoCaptureDeviceNV;
14355   wglReleaseVideoCaptureDeviceNV: TwglReleaseVideoCaptureDeviceNV;
14356
14357   // WGL_NV_copy_image
14358   wglCopyImageSubDataNV: TwglCopyImageSubDataNV;
14359
14360   // WGL_NV_DX_interop
14361   wglDXSetResourceShareHandleNV : TwglDXSetResourceShareHandleNV;
14362   wglDXOpenDeviceNV : TwglDXOpenDeviceNV;
14363   wglDXCloseDeviceNV : TwglDXCloseDeviceNV;
14364   wglDXRegisterObjectNV : TwglDXRegisterObjectNV;
14365   wglDXUnregisterObjectNV : TwglDXUnregisterObjectNV;
14366   wglDXObjectAccessNV : TwglDXObjectAccessNV;
14367   wglDXLockObjectsNV : TwglDXLockObjectsNV;
14368   wglDXUnlockObjectsNV : TwglDXUnlockObjectsNV;
14369
14370   // WGL_OML_sync_control
14371   wglGetSyncValuesOML: TwglGetSyncValuesOML;
14372   wglGetMscRateOML: TwglGetMscRateOML;
14373   wglSwapBuffersMscOML: TwglSwapBuffersMscOML;
14374   wglSwapLayerBuffersMscOML: TwglSwapLayerBuffersMscOML;
14375   wglWaitForMscOML: TwglWaitForMscOML;
14376   wglWaitForSbcOML: TwglWaitForSbcOML;
14377
14378   // WGL_3DL_stereo_control
14379   wglSetStereoEmitterState3DL: TwglSetStereoEmitterState3DL;
14380
14381   // WIN_draw_range_elements
14382   glDrawRangeElementsWIN: TglDrawRangeElementsWIN;
14383
14384   // WIN_swap_hint
14385   glAddSwapHintRectWIN: TglAddSwapHintRectWIN;
14386 {$ENDIF}
14387
14388 {$IFDEF DGL_LINUX}
14389   glXChooseVisual: TglXChooseVisual;
14390   glXCopyContext: TglXCopyContext;
14391   glXCreateContext: TglXCreateContext;
14392   glXCreateGLXPixmap: TglXCreateGLXPixmap;
14393   glXDestroyContext: TglXDestroyContext;
14394   glXDestroyGLXPixmap: TglXDestroyGLXPixmap;
14395   glXGetConfig: TglXGetConfig;
14396   glXGetCurrentContext: TglXGetCurrentContext;
14397   glXGetCurrentDrawable: TglXGetCurrentDrawable;
14398   glXIsDirect: TglXIsDirect;
14399   glXMakeCurrent: TglXMakeCurrent;
14400   glXQueryExtension: TglXQueryExtension;
14401   glXQueryVersion: TglXQueryVersion;
14402   glXSwapBuffers: TglXSwapBuffers;
14403   glXUseXFont: TglXUseXFont;
14404   glXWaitGL: TglXWaitGL;
14405   glXWaitX: TglXWaitX;
14406
14407   glXGetClientString: TglXGetClientString;
14408   glXQueryServerString: TglXQueryServerString;
14409   glXQueryExtensionsString: TglXQueryExtensionsString;
14410
14411   // GLX_VERSION_1_3
14412   glXGetFBConfigs: TglXGetFBConfigs;
14413   glXChooseFBConfig: TglXChooseFBConfig;
14414   glXGetFBConfigAttrib: TglXGetFBConfigAttrib;
14415   glXGetVisualFromFBConfig: TglXGetVisualFromFBConfig;
14416   glXCreateWindow: TglXCreateWindow;
14417   glXDestroyWindow: TglXDestroyWindow;
14418   glXCreatePixmap: TglXCreatePixmap;
14419
14420   glXDestroyPixmap: TglXDestroyPixmap;
14421   glXCreatePbuffer: TglXCreatePbuffer;
14422   glXDestroyPbuffer: TglXDestroyPbuffer;
14423   glXQueryDrawable: TglXQueryDrawable;
14424   glXCreateNewContext: TglXCreateNewContext;
14425   glXMakeContextCurrent: TglXMakeContextCurrent;
14426   glXGetCurrentReadDrawable: TglXGetCurrentReadDrawable;
14427   glXGetCurreentDisplay: TglXGetCurreentDisplay;
14428
14429   glXQueryContext: TglXQueryContext;
14430   glXSelectEvent: TglXSelectEvent;
14431   glXGetSelectedEvent: TglXGetSelectedEvent;
14432
14433   // GLX_VERSION_1_4
14434   glXGetProcAddress: TglXGetProcAddress;
14435
14436   // GLX_ARB_get_proc_address
14437   glXGetProcAddressARB: TglXGetProcAddressARB;
14438
14439   // GLX_ARB_create_context
14440   glXCreateContextAttribsARB: TglXCreateContextAttribsARB;
14441   
14442   // GLX_EXT_import_context
14443   glXGetCurrentDisplayEXT: TglXGetCurrentDisplayEXT;
14444   glXQueryContextInfoEXT: TglXQueryContextInfoEXT;
14445   glXGetContextIDEXT: TglXGetContextIDEXT;
14446   glXImportContextEXT: TglXImportContextEXT;
14447   glXFreeContextEXT: TglXFreeContextEXT;
14448   
14449   // GLX_EXT_texture_from_pixmap
14450   glXBindTexImageEXT: TglXBindTexImageEXT;
14451   glXReleaseTexImageEXT: TglXReleaseTexImageEXT;
14452
14453   // GLX_EXT_swap_control
14454   glXSwapIntervalEXT: TglXSwapIntervalEXT;
14455 {$ENDIF}
14456
14457   // GL utility functions and procedures
14458   gluErrorString: TgluErrorString;
14459   gluGetString: TgluGetString;
14460   gluOrtho2D: TgluOrtho2D;
14461   gluPerspective: TgluPerspective;
14462   gluPickMatrix: TgluPickMatrix;
14463   gluLookAt: TgluLookAt;
14464   gluProject: TgluProject;
14465   gluUnProject: TgluUnProject;
14466   gluScaleImage: TgluScaleImage;
14467   gluBuild1DMipmaps: TgluBuild1DMipmaps;
14468   gluBuild2DMipmaps: TgluBuild2DMipmaps;
14469   gluNewQuadric: TgluNewQuadric;
14470   gluDeleteQuadric: TgluDeleteQuadric;
14471   gluQuadricNormals: TgluQuadricNormals;
14472   gluQuadricTexture: TgluQuadricTexture;
14473   gluQuadricOrientation: TgluQuadricOrientation;
14474   gluQuadricDrawStyle: TgluQuadricDrawStyle;
14475   gluCylinder: TgluCylinder;
14476   gluDisk: TgluDisk;
14477   gluPartialDisk: TgluPartialDisk;
14478   gluSphere: TgluSphere;
14479   gluQuadricCallback: TgluQuadricCallback;
14480   gluNewTess: TgluNewTess;
14481   gluDeleteTess: TgluDeleteTess;
14482   gluTessBeginPolygon: TgluTessBeginPolygon;
14483   gluTessBeginContour: TgluTessBeginContour;
14484   gluTessVertex: TgluTessVertex;
14485   gluTessEndContour: TgluTessEndContour;
14486   gluTessEndPolygon: TgluTessEndPolygon;
14487   gluTessProperty: TgluTessProperty;
14488   gluTessNormal: TgluTessNormal;
14489   gluTessCallback: TgluTessCallback;
14490   gluGetTessProperty: TgluGetTessProperty;
14491   gluNewNurbsRenderer: TgluNewNurbsRenderer;
14492   gluDeleteNurbsRenderer: TgluDeleteNurbsRenderer;
14493   gluBeginSurface: TgluBeginSurface;
14494   gluBeginCurve: TgluBeginCurve;
14495   gluEndCurve: TgluEndCurve;
14496   gluEndSurface: TgluEndSurface;
14497   gluBeginTrim: TgluBeginTrim;
14498   gluEndTrim: TgluEndTrim;
14499   gluPwlCurve: TgluPwlCurve;
14500   gluNurbsCurve: TgluNurbsCurve;
14501   gluNurbsSurface: TgluNurbsSurface;
14502   gluLoadSamplingMatrices: TgluLoadSamplingMatrices;
14503   gluNurbsProperty: TgluNurbsProperty;
14504   gluGetNurbsProperty: TgluGetNurbsProperty;
14505   gluNurbsCallback: TgluNurbsCallback;
14506   gluBeginPolygon: TgluBeginPolygon;
14507   gluNextContour: TgluNextContour;
14508   gluEndPolygon: TgluEndPolygon;
14509
14510
14511 type
14512   TRCOptions = set of (opDoubleBuffered, opGDI, opStereo);
14513
14514 var
14515   GL_LibHandle: Pointer = nil;
14516   GLU_LibHandle: Pointer = nil;
14517
14518   LastPixelFormat: Integer;
14519   ExtensionsRead: Boolean;
14520   ImplementationRead: Boolean;
14521
14522
14523 const
14524 {$IFDEF DGL_WIN}
14525   OPENGL_LIBNAME = 'OpenGL32.dll';
14526   GLU_LIBNAME = 'GLU32.dll';
14527 {$ELSE}
14528   {$IFDEF darwin}
14529     OPENGL_LIBNAME = 'libGL.dylib';
14530     GLU_LIBNAME = 'libGLU.dylib';
14531   {$ELSE}
14532     OPENGL_LIBNAME = 'libGL.so.1';
14533     GLU_LIBNAME = 'libGLU.so.1';
14534   {$ENDIF}
14535 {$ENDIF}
14536
14537 function InitOpenGL(LibName: String = OPENGL_LIBNAME; GLULibName: String = GLU_LIBNAME): Boolean;
14538
14539 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14540 function dglCheckExtension(Extension: AnsiString): Boolean;
14541
14542 procedure ReadExtensions;
14543 procedure ReadImplementationProperties;
14544
14545 // =============================================================================
14546 // Helper-Functions
14547 // =============================================================================
14548 {$IFDEF DGL_WIN}
14549   function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14550   function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14551   procedure DestroyRenderingContext(RC: HGLRC);
14552
14553   procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
14554   procedure DeactivateRenderingContext;
14555 {$ENDIF}
14556
14557
14558 procedure ReadOpenGLCore;
14559 procedure Read_GL_3DFX_tbuffer;
14560 procedure Read_GL_APPLE_element_array;
14561 procedure Read_GL_APPLE_fence;
14562 procedure Read_GL_APPLE_vertex_array_object;
14563 procedure Read_GL_APPLE_vertex_array_range;
14564 procedure Read_GL_APPLE_texture_range;
14565 procedure Read_GL_APPLE_vertex_program_evaluators;
14566 procedure Read_GL_APPLE_object_purgeable;
14567 procedure Read_GL_ARB_matrix_palette;
14568 procedure Read_GL_ARB_multitexture;
14569 procedure Read_GL_ARB_point_parameters;
14570 procedure Read_GL_ARB_texture_compression;
14571 procedure Read_GL_ARB_transpose_matrix;
14572 procedure Read_GL_ARB_vertex_blend;
14573 procedure Read_GL_ARB_vertex_buffer_object;
14574 procedure Read_GL_ARB_vertex_program;
14575 procedure Read_GL_ARB_window_pos;
14576 procedure Read_GL_ARB_color_buffer_float;
14577 procedure Read_GL_ARB_Shader_Objects;
14578 procedure Read_GL_ARB_occlusion_query;
14579 procedure Read_GL_ARB_draw_instanced;
14580 procedure Read_GL_ARB_framebuffer_object;
14581 procedure Read_GL_ARB_geometry_shader4;
14582 procedure Read_GL_ARB_instanced_arrays;
14583 procedure Read_GL_ARB_map_buffer_range;
14584 procedure Read_GL_ARB_texture_buffer_object;
14585 procedure Read_GL_ARB_vertex_array_object;
14586 procedure Read_GL_ARB_uniform_buffer_object;
14587 procedure Read_GL_ARB_copy_buffer;
14588 procedure Read_GL_ARB_draw_elements_base_vertex;
14589 procedure Read_GL_ARB_provoking_vertex;
14590 procedure Read_GL_ARB_sync;
14591 procedure Read_GL_ARB_texture_multisample;
14592 procedure Read_GL_ARB_draw_buffers_blend;
14593 procedure Read_GL_ARB_sample_shading;
14594 procedure Read_GL_ARB_shading_language_include;
14595 procedure Read_GL_ARB_blend_func_extended;
14596 procedure Read_GL_ARB_sampler_objects;
14597 procedure Read_GL_ARB_timer_query;
14598 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
14599 procedure Read_GL_ARB_draw_indirect;
14600 procedure Read_GL_ARB_gpu_shader_fp64;
14601 procedure Read_GL_ARB_shader_subroutine;
14602 procedure Read_GL_ARB_tessellation_shader;
14603 procedure Read_GL_ARB_transform_feedback2;
14604 procedure Read_GL_ARB_transform_feedback3;
14605 procedure Read_GL_ARB_ES2_compatibility;
14606 procedure Read_GL_ARB_get_program_binary;
14607 procedure Read_GL_ARB_separate_shader_objects;
14608 procedure Read_GL_ARB_vertex_attrib_64bit;
14609 procedure Read_GL_ARB_viewport_array;
14610 // GL 4.2
14611 procedure Read_GL_ARB_base_instance;
14612 procedure Read_GL_ARB_transform_feedback_instanced;
14613 procedure Read_GL_ARB_internalformat_query;
14614 procedure Read_GL_ARB_shader_atomic_counters;
14615 procedure Read_GL_ARB_shader_image_load_store;
14616 procedure Read_GL_ARB_texture_storage;
14617 // GL 4.3
14618 procedure Read_GL_KHR_debug;
14619 procedure Read_GL_ARB_clear_buffer_object;
14620 procedure Read_GL_ARB_compute_shader;
14621 procedure Read_GL_ARB_copy_image;
14622 procedure Read_GL_ARB_framebuffer_no_attachments;
14623 procedure Read_GL_ARB_internalformat_query2;
14624 procedure Read_GL_ARB_invalidate_subdata;
14625 procedure Read_GL_ARB_multi_draw_indirect;
14626 procedure Read_GL_ARB_program_interface_query;
14627 procedure Read_GL_ARB_shader_storage_buffer_object;
14628 procedure Read_GL_ARB_texture_buffer_range;
14629 procedure Read_GL_ARB_texture_storage_multisample;
14630 procedure Read_GL_ARB_texture_view;
14631 procedure Read_GL_ARB_vertex_attrib_binding;
14632
14633 // GL 4.4
14634 procedure Read_GL_4_4;
14635
14636 //
14637 procedure Read_GL_ARB_cl_event;
14638 procedure Read_GL_ARB_debug_output;
14639 procedure Read_GL_ARB_robustness;
14640 procedure Read_GL_ATI_draw_buffers;
14641 procedure Read_GL_ATI_element_array;
14642 procedure Read_GL_ATI_envmap_bumpmap;
14643 procedure Read_GL_ATI_fragment_shader;
14644 procedure Read_GL_ATI_map_object_buffer;
14645 procedure Read_GL_ATI_pn_triangles;
14646 procedure Read_GL_ATI_separate_stencil;
14647 procedure Read_GL_ATI_vertex_array_object;
14648 procedure Read_GL_ATI_vertex_attrib_array_object;
14649 procedure Read_GL_ATI_vertex_streams;
14650 procedure Read_GL_AMD_performance_monitor;
14651 procedure Read_GL_AMD_vertex_shader_tesselator;
14652 procedure Read_GL_AMD_draw_buffers_blend;
14653 procedure Read_GL_AMD_name_gen_delete;
14654 procedure Read_GL_AMD_debug_output;
14655 procedure Read_GL_EXT_blend_color;
14656 procedure Read_GL_EXT_blend_func_separate;
14657 procedure Read_GL_EXT_blend_minmax;
14658 procedure Read_GL_EXT_color_subtable;
14659 procedure Read_GL_EXT_compiled_vertex_array;
14660 procedure Read_GL_EXT_convolution;
14661 procedure Read_GL_EXT_coordinate_frame;
14662 procedure Read_GL_EXT_copy_texture;
14663 procedure Read_GL_EXT_cull_vertex;
14664 procedure Read_GL_EXT_draw_range_elements;
14665 procedure Read_GL_EXT_fog_coord;
14666 procedure Read_GL_EXT_framebuffer_object;
14667 procedure Read_GL_EXT_histogram;
14668 procedure Read_GL_EXT_index_func;
14669 procedure Read_GL_EXT_index_material;
14670 procedure Read_GL_EXT_multi_draw_arrays;
14671 procedure Read_GL_EXT_multisample;
14672 procedure Read_GL_EXT_paletted_texture;
14673 procedure Read_GL_EXT_pixel_transform;
14674 procedure Read_GL_EXT_point_parameters;
14675 procedure Read_GL_EXT_polygon_offset;
14676 procedure Read_GL_EXT_secondary_color;
14677 procedure Read_GL_EXT_stencil_two_side;
14678 procedure Read_GL_EXT_subtexture;
14679 procedure Read_GL_EXT_texture3D;
14680 procedure Read_GL_EXT_texture_object;
14681 procedure Read_GL_EXT_texture_perturb_normal;
14682 procedure Read_GL_EXT_vertex_array;
14683 procedure Read_GL_EXT_vertex_shader;
14684 procedure Read_GL_EXT_vertex_weighting;
14685 procedure Read_GL_EXT_depth_bounds_test;
14686 procedure Read_GL_EXT_blend_equation_separate;
14687 procedure Read_GL_EXT_stencil_clear_tag;
14688 procedure Read_GL_EXT_framebuffer_blit;
14689 procedure Read_GL_EXT_framebuffer_multisample;
14690 procedure Read_GL_EXT_timer_query;
14691 procedure Read_GL_EXT_gpu_program_parameters;
14692 procedure Read_GL_EXT_bindable_uniform;
14693 procedure Read_GL_EXT_draw_buffers2;
14694 procedure Read_GL_EXT_draw_instanced;
14695 procedure Read_GL_EXT_geometry_shader4;
14696 procedure Read_GL_EXT_gpu_shader4;
14697 procedure Read_GL_EXT_texture_array;
14698 procedure Read_GL_EXT_texture_buffer_object;
14699 procedure Read_GL_EXT_texture_integer;
14700 procedure Read_GL_EXT_transform_feedback;
14701 procedure Read_GL_EXT_direct_state_access;
14702 procedure Read_GL_EXT_separate_shader_objects;
14703 procedure Read_GL_EXT_shader_image_load_store;
14704 procedure Read_GL_EXT_vertex_attrib_64bit;
14705 procedure Read_GL_HP_image_transform;
14706 procedure Read_GL_IBM_multimode_draw_arrays;
14707 procedure Read_GL_IBM_vertex_array_lists;
14708 procedure Read_GL_INGR_blend_func_separate;
14709 procedure Read_GL_INTEL_parallel_arrays;
14710 procedure Read_GL_MESA_resize_buffers;
14711 procedure Read_GL_MESA_window_pos;
14712 procedure Read_GL_NV_evaluators;
14713 procedure Read_GL_NV_fence;
14714 procedure Read_GL_NV_fragment_program;
14715 procedure Read_GL_NV_half_float;
14716 procedure Read_GL_NV_occlusion_query;
14717 procedure Read_GL_NV_pixel_data_range;
14718 procedure Read_GL_NV_point_sprite;
14719 procedure Read_GL_NV_primitive_restart;
14720 procedure Read_GL_NV_register_combiners;
14721 procedure Read_GL_NV_register_combiners2;
14722 procedure Read_GL_NV_vertex_array_range;
14723 procedure Read_GL_NV_vertex_program;
14724 procedure Read_GL_NV_depth_buffer_float;
14725 procedure Read_GL_NV_framebuffer_multisample_coverage;
14726 procedure Read_GL_NV_geometry_program4;
14727 procedure Read_GL_NV_gpu_program4;
14728 procedure Read_GL_NV_parameter_buffer_object;
14729 procedure Read_GL_NV_transform_feedback;
14730 procedure Read_GL_NV_conditional_render;
14731 procedure Read_GL_NV_present_video;
14732 procedure Read_GL_NV_explicit_multisample;
14733 procedure Read_GL_NV_transform_feedback2;
14734 procedure Read_GL_NV_video_capture;
14735 procedure Read_GL_NV_copy_image;
14736 procedure Read_GL_NV_shader_buffer_load;
14737 procedure Read_GL_NV_vertex_buffer_unified_memory;
14738 procedure Read_GL_NV_gpu_program5;
14739 procedure Read_GL_NV_gpu_shader5;
14740 procedure Read_GL_NV_vertex_attrib_integer_64bit;
14741 procedure Read_GL_NV_vdpau_interop;
14742 procedure Read_GL_NV_texture_barrier;
14743 procedure Read_GL_PGI_misc_hints;
14744 procedure Read_GL_SGIS_detail_texture;
14745 procedure Read_GL_SGIS_fog_function;
14746 procedure Read_GL_SGIS_multisample;
14747 procedure Read_GL_SGIS_pixel_texture;
14748 procedure Read_GL_SGIS_point_parameters;
14749 procedure Read_GL_SGIS_sharpen_texture;
14750 procedure Read_GL_SGIS_texture4D;
14751 procedure Read_GL_SGIS_texture_color_mask;
14752 procedure Read_GL_SGIS_texture_filter4;
14753 procedure Read_GL_SGIX_async;
14754 procedure Read_GL_SGIX_flush_raster;
14755 procedure Read_GL_SGIX_fragment_lighting;
14756 procedure Read_GL_SGIX_framezoom;
14757 procedure Read_GL_SGIX_igloo_interface;
14758 procedure Read_GL_SGIX_instruments;
14759 procedure Read_GL_SGIX_list_priority;
14760 procedure Read_GL_SGIX_pixel_texture;
14761 procedure Read_GL_SGIX_polynomial_ffd;
14762 procedure Read_GL_SGIX_reference_plane;
14763 procedure Read_GL_SGIX_sprite;
14764 procedure Read_GL_SGIX_tag_sample_buffer;
14765 procedure Read_GL_SGI_color_table;
14766 procedure Read_GL_SUNX_constant_data;
14767 procedure Read_GL_SUN_global_alpha;
14768 procedure Read_GL_SUN_mesh_array;
14769 procedure Read_GL_SUN_triangle_list;
14770 procedure Read_GL_SUN_vertex;
14771
14772 {$IFDEF DGL_WIN}
14773 procedure Read_WGL_ARB_buffer_region;
14774 procedure Read_WGL_ARB_extensions_string;
14775 procedure Read_WGL_ARB_make_current_read;
14776 procedure Read_WGL_ARB_pbuffer;
14777 procedure Read_WGL_ARB_pixel_format;
14778 procedure Read_WGL_ARB_pixel_format_float;
14779 procedure Read_WGL_ARB_render_texture;
14780 procedure Read_WGL_ARB_create_context;
14781 procedure Read_WGL_AMD_gpu_association;
14782 procedure Read_WGL_EXT_display_color_table;
14783 procedure Read_WGL_EXT_extensions_string;
14784 procedure Read_WGL_EXT_make_current_read;
14785 procedure Read_WGL_EXT_pbuffer;
14786 procedure Read_WGL_EXT_pixel_format;
14787 procedure Read_WGL_EXT_swap_control;
14788 procedure Read_WGL_I3D_digital_video_control;
14789 procedure Read_WGL_I3D_gamma;
14790 procedure Read_WGL_I3D_genlock;
14791 procedure Read_WGL_I3D_image_buffer;
14792 procedure Read_WGL_I3D_swap_frame_lock;
14793 procedure Read_WGL_I3D_swap_frame_usage;
14794 procedure Read_WGL_NV_vertex_array_range;
14795 procedure Read_WGL_NV_present_video;
14796 procedure Read_WGL_NV_video_output;
14797 procedure Read_WGL_NV_swap_group;
14798 procedure Read_WGL_NV_gpu_affinity;
14799 procedure Read_WGL_NV_video_capture;
14800 procedure Read_WGL_NV_copy_image;
14801 procedure Read_WGL_OML_sync_control;
14802 procedure Read_WGL_3DL_stereo_control;
14803
14804 procedure Read_WIN_draw_range_elements;
14805 procedure Read_WIN_swap_hint;
14806 {$ENDIF}
14807
14808
14809 implementation
14810
14811
14812 {$IFDEF DGL_LINUX}
14813 const
14814   RTLD_LAZY = $001;
14815   RTLD_NOW = $002;
14816   RTLD_BINDING_MASK = $003;
14817
14818   // Seems to work on Debian / Fedora
14819   LibraryLib = {$IFDEF Linux} 'libdl.so.2'{$ELSE} 'c'{$ENDIF};
14820
14821 function dlopen(Name: PAnsiChar; Flags: LongInt): Pointer; cdecl; external LibraryLib name 'dlopen';
14822 function dlclose(Lib: Pointer): LongInt; cdecl; external LibraryLib name 'dlclose';
14823
14824 function dlsym(Lib: Pointer; Name: PAnsiChar): Pointer; cdecl; external LibraryLib name 'dlsym';
14825 {$ENDIF}
14826
14827 {$IFDEF DGL_MAC}{$IFDEF OPENGL_FRAMEWORK}  // OpenGL framework used
14828 const
14829   RTLD_DEFAULT = Pointer(-2);
14830 {$ENDIF}{$ENDIF}
14831
14832 function dglLoadLibrary(Name: PChar): Pointer;
14833 begin
14834   {$IFDEF DGL_WIN}
14835   Result := {%H-}Pointer(LoadLibrary(Name));
14836   {$ENDIF}
14837
14838   {$IFDEF DGL_LINUX}
14839   Result := dlopen(Name, RTLD_LAZY);
14840   {$ENDIF}
14841   
14842   {$IFDEF DGL_MAC}
14843   {$IFDEF OPENGL_FRAMEWORK}
14844   Result := RTLD_DEFAULT;
14845   {$ELSE}
14846   Result := Pointer(LoadLibrary(Name));
14847   {$ENDIF}  
14848   {$ENDIF}  
14849 end;
14850
14851
14852 function dglFreeLibrary(LibHandle: Pointer): Boolean;
14853 begin
14854   if LibHandle = nil then
14855     Result := False
14856   else
14857     {$IFDEF DGL_WIN}
14858     Result := FreeLibrary({%H-}HMODULE(LibHandle));
14859     {$ENDIF}
14860
14861     {$IFDEF DGL_LINUX}
14862     Result := dlclose(LibHandle) = 0;
14863     {$ENDIF}
14864         
14865     {$IFDEF DGL_MAC}
14866     {$IFDEF OPENGL_FRAMEWORK}
14867         Result := true;
14868         {$ELSE}
14869     Result := FreeLibrary(HMODULE(LibHandle));
14870     {$ENDIF}    
14871         {$ENDIF}
14872 end;
14873
14874
14875 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14876 begin
14877   if LibHandle = nil then
14878     LibHandle := GL_LibHandle;
14879
14880   Result :=  nil;
14881
14882   {$IFDEF DGL_WIN}
14883     Result := GetProcAddress({%H-}HMODULE(LibHandle), ProcName);
14884
14885     if result <> nil then
14886       exit;
14887
14888     if Addr(wglGetProcAddress) <> nil then
14889       Result := wglGetProcAddress(ProcName);
14890   {$ENDIF}
14891
14892   {$IFDEF DGL_LINUX}
14893     if not ForceDLSym then begin
14894       if Addr(glXGetProcAddress) <> nil then
14895         Result := glXGetProcAddress(ProcName);
14896
14897       if result <> nil then
14898         exit;
14899
14900       if Addr(glXGetProcAddressARB) <> nil then
14901         Result := glXGetProcAddressARB(ProcName);
14902
14903       if result <> nil then
14904         exit;
14905     end;
14906
14907     Result := dlsym(LibHandle, ProcName);
14908   {$ENDIF}
14909   
14910   {$IFDEF DGL_MAC}
14911     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14912   {$ENDIF}  
14913 end;
14914
14915
14916 function Int_GetExtensionString: AnsiString;
14917 var
14918         ExtensionCount : GLint;
14919   i : Integer;
14920 begin
14921   if GL_VERSION_3_0
14922     then
14923       begin
14924         if not Assigned(@glGetIntegerv) then glGetIntegerv := dglGetProcAddress('glGetIntegerv');
14925         if not Assigned(@glGetStringi)  then glGetStringi  := dglGetProcAddress('glGetStringi');
14926
14927         result := '';
14928
14929         if Assigned(@glGetIntegerv) and Assigned(@glGetStringi)
14930           then
14931             begin
14932               glGetIntegerv(GL_NUM_EXTENSIONS, @extensionCount);
14933
14934               For I := 0 to extensionCount - 1 do
14935                 result := result + #32 + PAnsiChar(glGetStringi(GL_EXTENSIONS, I));
14936             end;
14937       end
14938     else
14939       begin
14940         if not Assigned(@glGetString) then glGetString := dglGetProcAddress('glGetString');
14941
14942         if Assigned(@glGetString)
14943           then result := glGetString(GL_EXTENSIONS)
14944           else result := '';
14945       end;
14946
14947   if (GL_LibHandle <> nil) then begin
14948     {$IFDEF DGL_WIN}
14949       // wglGetExtensionsStringEXT
14950       if not Assigned(@wglGetExtensionsStringEXT) then
14951         wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
14952
14953       if Assigned(@wglGetExtensionsStringEXT) then
14954         Result := Result + #32 + wglGetExtensionsStringEXT;
14955
14956       // wglGetExtensionsStringARB
14957       if not Assigned(@wglGetExtensionsStringARB) then
14958         wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
14959
14960       if Assigned(@wglGetExtensionsStringARB) then
14961         Result := Result + #32 + wglGetExtensionsStringARB(wglGetCurrentDC);
14962     {$ENDIF}
14963   end;
14964
14965   Result := #32 + Result + #32;
14966 end;
14967
14968
14969 function Int_CheckExtension(AllExtensions, CheckExtension: AnsiString): Boolean;
14970 begin
14971   Result := Pos(#32 + CheckExtension + #32, AllExtensions) > 0;
14972 end;
14973
14974
14975 function dglCheckExtension(Extension: AnsiString): Boolean;
14976 var
14977   Extensions: AnsiString;
14978 begin
14979   Extensions := Int_GetExtensionString;
14980   Result := Int_CheckExtension(Extensions, Extension);
14981 end;
14982
14983
14984
14985 function InitOpenGL(LibName: String; GLULibName: String): Boolean;
14986 begin
14987   Result := False;
14988
14989   // free opened libraries
14990   if GL_LibHandle <> nil then
14991     dglFreeLibrary(GL_LibHandle);
14992
14993   if GLU_LibHandle <> nil then
14994     dglFreeLibrary(GLU_LibHandle);
14995
14996   // load library
14997   GL_LibHandle := dglLoadLibrary(PChar(LibName));
14998   GLU_LibHandle := dglLoadLibrary(PChar(GLULibName));
14999
15000   // load GL functions
15001   if (GL_LibHandle <> nil) then begin
15002     {$IFDEF DGL_WIN}
15003       wglCopyContext := dglGetProcAddress('wglCopyContext');
15004       wglCreateLayerContext := dglGetProcAddress('wglCreateLayerContext');
15005       wglCreateContext := dglGetProcAddress('wglCreateContext');
15006       wglDeleteContext := dglGetProcAddress('wglDeleteContext');
15007       wglDescribeLayerPlane := dglGetProcAddress('wglDescribeLayerPlane');
15008       wglGetCurrentContext := dglGetProcAddress('wglGetCurrentContext');
15009       wglGetCurrentDC := dglGetProcAddress('wglGetCurrentDC');
15010       wglGetLayerPaletteEntries := dglGetProcAddress('wglGetLayerPaletteEntries');
15011       wglGetProcAddress := dglGetProcAddress('wglGetProcAddress');
15012       wglMakeCurrent := dglGetProcAddress('wglMakeCurrent');
15013       wglRealizeLayerPalette := dglGetProcAddress('wglRealizeLayerPalette');
15014       wglSetLayerPaletteEntries := dglGetProcAddress('wglSetLayerPaletteEntries');
15015       wglShareLists := dglGetProcAddress('wglShareLists');
15016       wglSwapLayerBuffers := dglGetProcAddress('wglSwapLayerBuffers');
15017       wglSwapMultipleBuffers := dglGetProcAddress('wglSwapMultipleBuffers');
15018       wglUseFontBitmapsA := dglGetProcAddress('wglUseFontBitmapsA');
15019       wglUseFontOutlinesA := dglGetProcAddress('wglUseFontOutlinesA');
15020       wglUseFontBitmapsW := dglGetProcAddress('wglUseFontBitmapsW');
15021       wglUseFontOutlinesW := dglGetProcAddress('wglUseFontOutlinesW');
15022       wglUseFontBitmaps := dglGetProcAddress('wglUseFontBitmapsA');
15023       wglUseFontOutlines := dglGetProcAddress('wglUseFontOutlinesA');
15024     {$ENDIF}
15025
15026     {$IFDEF DGL_LINUX}
15027       // GLX_VERSION_1_4 (needs to be first)
15028       glXGetProcAddress := dglGetProcAddress('glXGetProcAddress', nil, True);
15029
15030       // GLX_ARB_get_proc_address  (also needs to be first)
15031       glXGetProcAddressARB := dglGetProcAddress('glXGetProcAddressARB', nil, True);
15032
15033       glXChooseVisual := dglGetProcAddress('glXChooseVisual');
15034       glXCopyContext := dglGetProcAddress('glXCopyContext');
15035       glXCreateContext := dglGetProcAddress('glXCreateContext');
15036       glXCreateGLXPixmap := dglGetProcAddress('glXCreateGLXPixmap');
15037       glXDestroyContext := dglGetProcAddress('glXDestroyContext');
15038       glXDestroyGLXPixmap := dglGetProcAddress('glXDestroyGLXPixmap');
15039       glXGetConfig := dglGetProcAddress('glXGetConfig');
15040       glXGetCurrentContext := dglGetProcAddress('glXGetCurrentContext');
15041       glXGetCurrentDrawable := dglGetProcAddress('glXGetCurrentDrawable');
15042       glXIsDirect := dglGetProcAddress('glXIsDirect');
15043       glXMakeCurrent := dglGetProcAddress('glXMakeCurrent');
15044       glXQueryExtension := dglGetProcAddress('glXQueryExtension');
15045       glXQueryVersion := dglGetProcAddress('glXQueryVersion');
15046       glXSwapBuffers := dglGetProcAddress('glXSwapBuffers');
15047       glXUseXFont := dglGetProcAddress('glXUseXFont');
15048       glXWaitGL := dglGetProcAddress('glXWaitGL');
15049       glXWaitX := dglGetProcAddress('glXWaitX');
15050
15051       glXGetClientString := dglGetProcAddress('glXGetClientString');
15052       glXQueryServerString := dglGetProcAddress('glXQueryServerString');
15053       glXQueryExtensionsString := dglGetProcAddress('glXQueryExtensionsString');
15054
15055       // GLX_VERSION_1_3
15056       glXGetFBConfigs := dglGetProcAddress('glXGetFBConfigs');
15057       glXChooseFBConfig := dglGetProcAddress('glXChooseFBConfig');
15058       glXGetFBConfigAttrib := dglGetProcAddress('glXGetFBConfigAttrib');
15059       glXGetVisualFromFBConfig := dglGetProcAddress('glXGetVisualFromFBConfig');
15060       glXCreateWindow := dglGetProcAddress('glXCreateWindow');
15061       glXDestroyWindow := dglGetProcAddress('glXDestroyWindow');
15062       glXCreatePixmap := dglGetProcAddress('glXCreatePixmap');
15063
15064       glXDestroyPixmap := dglGetProcAddress('glXDestroyPixmap');
15065       glXCreatePbuffer := dglGetProcAddress('glXCreatePbuffer');
15066       glXDestroyPbuffer := dglGetProcAddress('glXDestroyPbuffer');
15067       glXQueryDrawable := dglGetProcAddress('glXQueryDrawable');
15068       glXCreateNewContext := dglGetProcAddress('glXCreateNewContext');
15069       glXMakeContextCurrent := dglGetProcAddress('glXMakeContextCurrent');
15070       glXGetCurrentReadDrawable := dglGetProcAddress('glXGetCurrentReadDrawable');
15071       glXGetCurreentDisplay := dglGetProcAddress('glXGetCurreentDisplay');
15072
15073       glXQueryContext := dglGetProcAddress('glXQueryContext');
15074       glXSelectEvent := dglGetProcAddress('glXSelectEvent');
15075       glXGetSelectedEvent := dglGetProcAddress('glXGetSelectedEvent');
15076
15077       // GLX_ARB_create_context
15078       glXCreateContextAttribsARB := dglGetProcAddress('glXCreateContextAttribsARB');
15079
15080       // GLX_EXT_import_context
15081       glXGetCurrentDisplayEXT := dglGetProcAddress('glXGetCurrentDisplayEXT');
15082       glXQueryContextInfoEXT := dglGetProcAddress('glXQueryContextInfoEXT');
15083       glXGetContextIDEXT := dglGetProcAddress('glXGetContextIDEXT');
15084       glXImportContextEXT := dglGetProcAddress('glXImportContextEXT');
15085       glXFreeContextEXT := dglGetProcAddress('glXFreeContextEXT');
15086       
15087       // GLX_EXT_texture_from_pixmap
15088       glXBindTexImageEXT := dglGetProcAddress('glXBindTexImageEXT');
15089       glXReleaseTexImageEXT := dglGetProcAddress('glXReleaseTexImageEXT');
15090
15091       // GLX_EXT_swap_control
15092       glXSwapIntervalEXT := dglGetProcAddress('glXSwapIntervalEXT');
15093     {$ENDIF}
15094
15095     Result := True;
15096   end;
15097
15098   // load GLU functions
15099   if GLU_LibHandle <> nil then begin
15100     // GLU ========================================================================
15101     gluBeginCurve := dglGetProcAddress('gluBeginCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15102     gluBeginPolygon := dglGetProcAddress('gluBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15103     gluBeginSurface := dglGetProcAddress('gluBeginSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15104     gluBeginTrim := dglGetProcAddress('gluBeginTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15105     gluBuild1DMipmaps := dglGetProcAddress('gluBuild1DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15106     gluBuild2DMipmaps := dglGetProcAddress('gluBuild2DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15107     gluCylinder := dglGetProcAddress('gluCylinder', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15108     gluDeleteNurbsRenderer := dglGetProcAddress('gluDeleteNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15109     gluDeleteQuadric := dglGetProcAddress('gluDeleteQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15110     gluDeleteTess := dglGetProcAddress('gluDeleteTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15111     gluDisk := dglGetProcAddress('gluDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15112     gluEndCurve := dglGetProcAddress('gluEndCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15113     gluEndPolygon := dglGetProcAddress('gluEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15114     gluEndSurface := dglGetProcAddress('gluEndSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15115     gluEndTrim := dglGetProcAddress('gluEndTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15116     gluErrorString := dglGetProcAddress('gluErrorString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15117     gluGetNurbsProperty := dglGetProcAddress('gluGetNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15118     gluGetString := dglGetProcAddress('gluGetString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15119     gluGetTessProperty := dglGetProcAddress('gluGetTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15120     gluLoadSamplingMatrices := dglGetProcAddress('gluLoadSamplingMatrices', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15121     gluLookAt := dglGetProcAddress('gluLookAt', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15122     gluNewNurbsRenderer := dglGetProcAddress('gluNewNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15123     gluNewQuadric := dglGetProcAddress('gluNewQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15124     gluNewTess := dglGetProcAddress('gluNewTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15125     gluNextContour := dglGetProcAddress('gluNextContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15126     gluNurbsCallback := dglGetProcAddress('gluNurbsCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15127     gluNurbsCurve := dglGetProcAddress('gluNurbsCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15128     gluNurbsProperty := dglGetProcAddress('gluNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15129     gluNurbsSurface := dglGetProcAddress('gluNurbsSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15130     gluOrtho2D := dglGetProcAddress('gluOrtho2D', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15131     gluPartialDisk := dglGetProcAddress('gluPartialDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15132     gluPerspective := dglGetProcAddress('gluPerspective', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15133     gluPickMatrix := dglGetProcAddress('gluPickMatrix', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15134     gluProject := dglGetProcAddress('gluProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15135     gluPwlCurve := dglGetProcAddress('gluPwlCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15136     gluQuadricCallback := dglGetProcAddress('gluQuadricCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15137     gluQuadricDrawStyle := dglGetProcAddress('gluQuadricDrawStyle', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15138     gluQuadricNormals := dglGetProcAddress('gluQuadricNormals', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15139     gluQuadricOrientation := dglGetProcAddress('gluQuadricOrientation', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15140     gluQuadricTexture := dglGetProcAddress('gluQuadricTexture', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15141     gluScaleImage := dglGetProcAddress('gluScaleImage', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15142     gluSphere := dglGetProcAddress('gluSphere', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15143     gluTessBeginContour := dglGetProcAddress('gluTessBeginContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15144     gluTessBeginPolygon := dglGetProcAddress('gluTessBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15145     gluTessCallback := dglGetProcAddress('gluTessCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15146     gluTessEndContour := dglGetProcAddress('gluTessEndContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15147     gluTessEndPolygon := dglGetProcAddress('gluTessEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15148     gluTessNormal := dglGetProcAddress('gluTessNormal', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15149     gluTessProperty := dglGetProcAddress('gluTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15150     gluTessVertex := dglGetProcAddress('gluTessVertex', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15151     gluUnProject := dglGetProcAddress('gluUnProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15152   end;
15153 end;
15154
15155 procedure ReadOpenGLCore;
15156 begin
15157   // GL_VERSION_1_0
15158   glCullFace := dglGetProcAddress('glCullFace');
15159   glFrontFace := dglGetProcAddress('glFrontFace');
15160   glHint := dglGetProcAddress('glHint');
15161   glLineWidth := dglGetProcAddress('glLineWidth');
15162   glPointSize := dglGetProcAddress('glPointSize');
15163   glPolygonMode := dglGetProcAddress('glPolygonMode');
15164   glScissor := dglGetProcAddress('glScissor');
15165   glTexParameterf := dglGetProcAddress('glTexParameterf');
15166   glTexParameterfv := dglGetProcAddress('glTexParameterfv');
15167   glTexParameteri := dglGetProcAddress('glTexParameteri');
15168   glTexParameteriv := dglGetProcAddress('glTexParameteriv');
15169   glTexImage1D := dglGetProcAddress('glTexImage1D');
15170   glTexImage2D := dglGetProcAddress('glTexImage2D');
15171   glDrawBuffer := dglGetProcAddress('glDrawBuffer');
15172   glClear := dglGetProcAddress('glClear');
15173   glClearColor := dglGetProcAddress('glClearColor');
15174   glClearStencil := dglGetProcAddress('glClearStencil');
15175   glClearDepth := dglGetProcAddress('glClearDepth');
15176   glStencilMask := dglGetProcAddress('glStencilMask');
15177   glColorMask := dglGetProcAddress('glColorMask');
15178   glDepthMask := dglGetProcAddress('glDepthMask');
15179   glDisable := dglGetProcAddress('glDisable');
15180   glEnable := dglGetProcAddress('glEnable');
15181   glFinish := dglGetProcAddress('glFinish');
15182   glFlush := dglGetProcAddress('glFlush');
15183   glBlendFunc := dglGetProcAddress('glBlendFunc');
15184   glLogicOp := dglGetProcAddress('glLogicOp');
15185   glStencilFunc := dglGetProcAddress('glStencilFunc');
15186   glStencilOp := dglGetProcAddress('glStencilOp');
15187   glDepthFunc := dglGetProcAddress('glDepthFunc');
15188   glPixelStoref := dglGetProcAddress('glPixelStoref');
15189   glPixelStorei := dglGetProcAddress('glPixelStorei');
15190   glReadBuffer := dglGetProcAddress('glReadBuffer');
15191   glReadPixels := dglGetProcAddress('glReadPixels');
15192   glGetBooleanv := dglGetProcAddress('glGetBooleanv');
15193   glGetDoublev := dglGetProcAddress('glGetDoublev');
15194   glGetError := dglGetProcAddress('glGetError');
15195   glGetFloatv := dglGetProcAddress('glGetFloatv');
15196   glGetIntegerv := dglGetProcAddress('glGetIntegerv');
15197   glGetString := dglGetProcAddress('glGetString');
15198   glGetTexImage := dglGetProcAddress('glGetTexImage');
15199   glGetTexParameteriv := dglGetProcAddress('glGetTexParameteriv');
15200   glGetTexParameterfv := dglGetProcAddress('glGetTexParameterfv');
15201   glGetTexLevelParameterfv := dglGetProcAddress('glGetTexLevelParameterfv');
15202   glGetTexLevelParameteriv := dglGetProcAddress('glGetTexLevelParameteriv');
15203   glIsEnabled := dglGetProcAddress('glIsEnabled');
15204   glDepthRange := dglGetProcAddress('glDepthRange');
15205   glViewport := dglGetProcAddress('glViewport');
15206
15207   // GL_VERSION_1_1
15208   glDrawArrays := dglGetProcAddress('glDrawArrays');
15209   glDrawElements := dglGetProcAddress('glDrawElements');
15210   glGetPointerv := dglGetProcAddress('glGetPointerv');
15211   glPolygonOffset := dglGetProcAddress('glPolygonOffset');
15212   glCopyTexImage1D := dglGetProcAddress('glCopyTexImage1D');
15213   glCopyTexImage2D := dglGetProcAddress('glCopyTexImage2D');
15214   glCopyTexSubImage1D := dglGetProcAddress('glCopyTexSubImage1D');
15215   glCopyTexSubImage2D := dglGetProcAddress('glCopyTexSubImage2D');
15216   glTexSubImage1D := dglGetProcAddress('glTexSubImage1D');
15217   glTexSubImage2D := dglGetProcAddress('glTexSubImage2D');
15218   glBindTexture := dglGetProcAddress('glBindTexture');
15219   glDeleteTextures := dglGetProcAddress('glDeleteTextures');
15220   glGenTextures := dglGetProcAddress('glGenTextures');
15221
15222 {$ifdef DGL_DEPRECATED}
15223   glAccum := dglGetProcAddress('glAccum');
15224   glAlphaFunc := dglGetProcAddress('glAlphaFunc');
15225   glAreTexturesResident := dglGetProcAddress('glAreTexturesResident');
15226   glArrayElement := dglGetProcAddress('glArrayElement');
15227   glBegin := dglGetProcAddress('glBegin');
15228   glBitmap := dglGetProcAddress('glBitmap');
15229   glCallList := dglGetProcAddress('glCallList');
15230   glCallLists := dglGetProcAddress('glCallLists');
15231   glClearAccum := dglGetProcAddress('glClearAccum');
15232   glClearIndex := dglGetProcAddress('glClearIndex');
15233   glClipPlane := dglGetProcAddress('glClipPlane');
15234   glColor3b := dglGetProcAddress('glColor3b');
15235   glColor3bv := dglGetProcAddress('glColor3bv');
15236   glColor3d := dglGetProcAddress('glColor3d');
15237   glColor3dv := dglGetProcAddress('glColor3dv');
15238   glColor3f := dglGetProcAddress('glColor3f');
15239   glColor3fv := dglGetProcAddress('glColor3fv');
15240   glColor3i := dglGetProcAddress('glColor3i');
15241   glColor3iv := dglGetProcAddress('glColor3iv');
15242   glColor3s := dglGetProcAddress('glColor3s');
15243   glColor3sv := dglGetProcAddress('glColor3sv');
15244   glColor3ub := dglGetProcAddress('glColor3ub');
15245   glColor3ubv := dglGetProcAddress('glColor3ubv');
15246   glColor3ui := dglGetProcAddress('glColor3ui');
15247   glColor3uiv := dglGetProcAddress('glColor3uiv');
15248   glColor3us := dglGetProcAddress('glColor3us');
15249   glColor3usv := dglGetProcAddress('glColor3usv');
15250   glColor4b := dglGetProcAddress('glColor4b');
15251   glColor4bv := dglGetProcAddress('glColor4bv');
15252   glColor4d := dglGetProcAddress('glColor4d');
15253   glColor4dv := dglGetProcAddress('glColor4dv');
15254   glColor4f := dglGetProcAddress('glColor4f');
15255   glColor4fv := dglGetProcAddress('glColor4fv');
15256   glColor4i := dglGetProcAddress('glColor4i');
15257   glColor4iv := dglGetProcAddress('glColor4iv');
15258   glColor4s := dglGetProcAddress('glColor4s');
15259   glColor4sv := dglGetProcAddress('glColor4sv');
15260   glColor4ub := dglGetProcAddress('glColor4ub');
15261   glColor4ubv := dglGetProcAddress('glColor4ubv');
15262   glColor4ui := dglGetProcAddress('glColor4ui');
15263   glColor4uiv := dglGetProcAddress('glColor4uiv');
15264   glColor4us := dglGetProcAddress('glColor4us');
15265   glColor4usv := dglGetProcAddress('glColor4usv');
15266   glColorMaterial := dglGetProcAddress('glColorMaterial');
15267   glColorPointer := dglGetProcAddress('glColorPointer');
15268   glCopyPixels := dglGetProcAddress('glCopyPixels');
15269   glDeleteLists := dglGetProcAddress('glDeleteLists');
15270   glDisableClientState := dglGetProcAddress('glDisableClientState');
15271   glDrawPixels := dglGetProcAddress('glDrawPixels');
15272   glEdgeFlag := dglGetProcAddress('glEdgeFlag');
15273   glEdgeFlagPointer := dglGetProcAddress('glEdgeFlagPointer');
15274   glEdgeFlagv := dglGetProcAddress('glEdgeFlagv');
15275   glEnableClientState := dglGetProcAddress('glEnableClientState');
15276   glEnd := dglGetProcAddress('glEnd');
15277   glEndList := dglGetProcAddress('glEndList');
15278   glEvalCoord1d := dglGetProcAddress('glEvalCoord1d');
15279   glEvalCoord1dv := dglGetProcAddress('glEvalCoord1dv');
15280   glEvalCoord1f := dglGetProcAddress('glEvalCoord1f');
15281   glEvalCoord1fv := dglGetProcAddress('glEvalCoord1fv');
15282   glEvalCoord2d := dglGetProcAddress('glEvalCoord2d');
15283   glEvalCoord2dv := dglGetProcAddress('glEvalCoord2dv');
15284   glEvalCoord2f := dglGetProcAddress('glEvalCoord2f');
15285   glEvalCoord2fv := dglGetProcAddress('glEvalCoord2fv');
15286   glEvalMesh1 := dglGetProcAddress('glEvalMesh1');
15287   glEvalMesh2 := dglGetProcAddress('glEvalMesh2');
15288   glEvalPoint1 := dglGetProcAddress('glEvalPoint1');
15289   glEvalPoint2 := dglGetProcAddress('glEvalPoint2');
15290   glFeedbackBuffer := dglGetProcAddress('glFeedbackBuffer');
15291   glFogf := dglGetProcAddress('glFogf');
15292   glFogfv := dglGetProcAddress('glFogfv');
15293   glFogi := dglGetProcAddress('glFogi');
15294   glFogiv := dglGetProcAddress('glFogiv');
15295   glFrustum := dglGetProcAddress('glFrustum');
15296   glGenLists := dglGetProcAddress('glGenLists');
15297   glGetClipPlane := dglGetProcAddress('glGetClipPlane');
15298   glGetLightfv := dglGetProcAddress('glGetLightfv');
15299   glGetLightiv := dglGetProcAddress('glGetLightiv');
15300   glGetMapdv := dglGetProcAddress('glGetMapdv');
15301   glGetMapfv := dglGetProcAddress('glGetMapfv');
15302   glGetMapiv := dglGetProcAddress('glGetMapiv');
15303   glGetMaterialfv := dglGetProcAddress('glGetMaterialfv');
15304   glGetMaterialiv := dglGetProcAddress('glGetMaterialiv');
15305   glGetPixelMapfv := dglGetProcAddress('glGetPixelMapfv');
15306   glGetPixelMapuiv := dglGetProcAddress('glGetPixelMapuiv');
15307   glGetPixelMapusv := dglGetProcAddress('glGetPixelMapusv');
15308   glGetPolygonStipple := dglGetProcAddress('glGetPolygonStipple');
15309   glGetTexEnvfv := dglGetProcAddress('glGetTexEnvfv');
15310   glGetTexEnviv := dglGetProcAddress('glGetTexEnviv');
15311   glGetTexGendv := dglGetProcAddress('glGetTexGendv');
15312   glGetTexGenfv := dglGetProcAddress('glGetTexGenfv');
15313   glGetTexGeniv := dglGetProcAddress('glGetTexGeniv');
15314   glIndexMask := dglGetProcAddress('glIndexMask');
15315   glIndexPointer := dglGetProcAddress('glIndexPointer');
15316   glIndexd := dglGetProcAddress('glIndexd');
15317   glIndexdv := dglGetProcAddress('glIndexdv');
15318   glIndexf := dglGetProcAddress('glIndexf');
15319   glIndexfv := dglGetProcAddress('glIndexfv');
15320   glIndexi := dglGetProcAddress('glIndexi');
15321   glIndexiv := dglGetProcAddress('glIndexiv');
15322   glIndexs := dglGetProcAddress('glIndexs');
15323   glIndexsv := dglGetProcAddress('glIndexsv');
15324   glIndexub := dglGetProcAddress('glIndexub');
15325   glIndexubv := dglGetProcAddress('glIndexubv');
15326   glInitNames := dglGetProcAddress('glInitNames');
15327   glInterleavedArrays := dglGetProcAddress('glInterleavedArrays');
15328   glIsList := dglGetProcAddress('glIsList');
15329   glIsTexture := dglGetProcAddress('glIsTexture');
15330   glLightModelf := dglGetProcAddress('glLightModelf');
15331   glLightModelfv := dglGetProcAddress('glLightModelfv');
15332   glLightModeli := dglGetProcAddress('glLightModeli');
15333   glLightModeliv := dglGetProcAddress('glLightModeliv');
15334   glLightf := dglGetProcAddress('glLightf');
15335   glLightfv := dglGetProcAddress('glLightfv');
15336   glLighti := dglGetProcAddress('glLighti');
15337   glLightiv := dglGetProcAddress('glLightiv');
15338   glLineStipple := dglGetProcAddress('glLineStipple');
15339   glListBase := dglGetProcAddress('glListBase');
15340   glLoadIdentity := dglGetProcAddress('glLoadIdentity');
15341   glLoadMatrixd := dglGetProcAddress('glLoadMatrixd');
15342   glLoadMatrixf := dglGetProcAddress('glLoadMatrixf');
15343   glLoadName := dglGetProcAddress('glLoadName');
15344   glMap1d := dglGetProcAddress('glMap1d');
15345   glMap1f := dglGetProcAddress('glMap1f');
15346   glMap2d := dglGetProcAddress('glMap2d');
15347   glMap2f := dglGetProcAddress('glMap2f');
15348   glMapGrid1d := dglGetProcAddress('glMapGrid1d');
15349   glMapGrid1f := dglGetProcAddress('glMapGrid1f');
15350   glMapGrid2d := dglGetProcAddress('glMapGrid2d');
15351   glMapGrid2f := dglGetProcAddress('glMapGrid2f');
15352   glMaterialf := dglGetProcAddress('glMaterialf');
15353   glMaterialfv := dglGetProcAddress('glMaterialfv');
15354   glMateriali := dglGetProcAddress('glMateriali');
15355   glMaterialiv := dglGetProcAddress('glMaterialiv');
15356   glMatrixMode := dglGetProcAddress('glMatrixMode');
15357   glMultMatrixd := dglGetProcAddress('glMultMatrixd');
15358   glMultMatrixf := dglGetProcAddress('glMultMatrixf');
15359   glNewList := dglGetProcAddress('glNewList');
15360   glNormal3b := dglGetProcAddress('glNormal3b');
15361   glNormal3bv := dglGetProcAddress('glNormal3bv');
15362   glNormal3d := dglGetProcAddress('glNormal3d');
15363   glNormal3dv := dglGetProcAddress('glNormal3dv');
15364   glNormal3f := dglGetProcAddress('glNormal3f');
15365   glNormal3fv := dglGetProcAddress('glNormal3fv');
15366   glNormal3i := dglGetProcAddress('glNormal3i');
15367   glNormal3iv := dglGetProcAddress('glNormal3iv');
15368   glNormal3s := dglGetProcAddress('glNormal3s');
15369   glNormal3sv := dglGetProcAddress('glNormal3sv');
15370   glNormalPointer := dglGetProcAddress('glNormalPointer');
15371   glOrtho := dglGetProcAddress('glOrtho');
15372   glPassThrough := dglGetProcAddress('glPassThrough');
15373   glPixelMapfv := dglGetProcAddress('glPixelMapfv');
15374   glPixelMapuiv := dglGetProcAddress('glPixelMapuiv');
15375   glPixelMapusv := dglGetProcAddress('glPixelMapusv');
15376   glPixelTransferf := dglGetProcAddress('glPixelTransferf');
15377   glPixelTransferi := dglGetProcAddress('glPixelTransferi');
15378   glPixelZoom := dglGetProcAddress('glPixelZoom');
15379   glPolygonStipple := dglGetProcAddress('glPolygonStipple');
15380   glPopAttrib := dglGetProcAddress('glPopAttrib');
15381   glPopClientAttrib := dglGetProcAddress('glPopClientAttrib');
15382   glPopMatrix := dglGetProcAddress('glPopMatrix');
15383   glPopName := dglGetProcAddress('glPopName');
15384   glPrioritizeTextures := dglGetProcAddress('glPrioritizeTextures');
15385   glPushAttrib := dglGetProcAddress('glPushAttrib');
15386   glPushClientAttrib := dglGetProcAddress('glPushClientAttrib');
15387   glPushMatrix := dglGetProcAddress('glPushMatrix');
15388   glPushName := dglGetProcAddress('glPushName');
15389   glRasterPos2d := dglGetProcAddress('glRasterPos2d');
15390   glRasterPos2dv := dglGetProcAddress('glRasterPos2dv');
15391   glRasterPos2f := dglGetProcAddress('glRasterPos2f');
15392   glRasterPos2fv := dglGetProcAddress('glRasterPos2fv');
15393   glRasterPos2i := dglGetProcAddress('glRasterPos2i');
15394   glRasterPos2iv := dglGetProcAddress('glRasterPos2iv');
15395   glRasterPos2s := dglGetProcAddress('glRasterPos2s');
15396   glRasterPos2sv := dglGetProcAddress('glRasterPos2sv');
15397   glRasterPos3d := dglGetProcAddress('glRasterPos3d');
15398   glRasterPos3dv := dglGetProcAddress('glRasterPos3dv');
15399   glRasterPos3f := dglGetProcAddress('glRasterPos3f');
15400   glRasterPos3fv := dglGetProcAddress('glRasterPos3fv');
15401   glRasterPos3i := dglGetProcAddress('glRasterPos3i');
15402   glRasterPos3iv := dglGetProcAddress('glRasterPos3iv');
15403   glRasterPos3s := dglGetProcAddress('glRasterPos3s');
15404   glRasterPos3sv := dglGetProcAddress('glRasterPos3sv');
15405   glRasterPos4d := dglGetProcAddress('glRasterPos4d');
15406   glRasterPos4dv := dglGetProcAddress('glRasterPos4dv');
15407   glRasterPos4f := dglGetProcAddress('glRasterPos4f');
15408   glRasterPos4fv := dglGetProcAddress('glRasterPos4fv');
15409   glRasterPos4i := dglGetProcAddress('glRasterPos4i');
15410   glRasterPos4iv := dglGetProcAddress('glRasterPos4iv');
15411   glRasterPos4s := dglGetProcAddress('glRasterPos4s');
15412   glRasterPos4sv := dglGetProcAddress('glRasterPos4sv');
15413   glRectd := dglGetProcAddress('glRectd');
15414   glRectdv := dglGetProcAddress('glRectdv');
15415   glRectf := dglGetProcAddress('glRectf');
15416   glRectfv := dglGetProcAddress('glRectfv');
15417   glRecti := dglGetProcAddress('glRecti');
15418   glRectiv := dglGetProcAddress('glRectiv');
15419   glRects := dglGetProcAddress('glRects');
15420   glRectsv := dglGetProcAddress('glRectsv');
15421   glRenderMode := dglGetProcAddress('glRenderMode');
15422   glRotated := dglGetProcAddress('glRotated');
15423   glRotatef := dglGetProcAddress('glRotatef');
15424   glScaled := dglGetProcAddress('glScaled');
15425   glScalef := dglGetProcAddress('glScalef');
15426   glSelectBuffer := dglGetProcAddress('glSelectBuffer');
15427   glShadeModel := dglGetProcAddress('glShadeModel');
15428   glTexCoord1d := dglGetProcAddress('glTexCoord1d');
15429   glTexCoord1dv := dglGetProcAddress('glTexCoord1dv');
15430   glTexCoord1f := dglGetProcAddress('glTexCoord1f');
15431   glTexCoord1fv := dglGetProcAddress('glTexCoord1fv');
15432   glTexCoord1i := dglGetProcAddress('glTexCoord1i');
15433   glTexCoord1iv := dglGetProcAddress('glTexCoord1iv');
15434   glTexCoord1s := dglGetProcAddress('glTexCoord1s');
15435   glTexCoord1sv := dglGetProcAddress('glTexCoord1sv');
15436   glTexCoord2d := dglGetProcAddress('glTexCoord2d');
15437   glTexCoord2dv := dglGetProcAddress('glTexCoord2dv');
15438   glTexCoord2f := dglGetProcAddress('glTexCoord2f');
15439   glTexCoord2fv := dglGetProcAddress('glTexCoord2fv');
15440   glTexCoord2i := dglGetProcAddress('glTexCoord2i');
15441   glTexCoord2iv := dglGetProcAddress('glTexCoord2iv');
15442   glTexCoord2s := dglGetProcAddress('glTexCoord2s');
15443   glTexCoord2sv := dglGetProcAddress('glTexCoord2sv');
15444   glTexCoord3d := dglGetProcAddress('glTexCoord3d');
15445   glTexCoord3dv := dglGetProcAddress('glTexCoord3dv');
15446   glTexCoord3f := dglGetProcAddress('glTexCoord3f');
15447   glTexCoord3fv := dglGetProcAddress('glTexCoord3fv');
15448   glTexCoord3i := dglGetProcAddress('glTexCoord3i');
15449   glTexCoord3iv := dglGetProcAddress('glTexCoord3iv');
15450   glTexCoord3s := dglGetProcAddress('glTexCoord3s');
15451   glTexCoord3sv := dglGetProcAddress('glTexCoord3sv');
15452   glTexCoord4d := dglGetProcAddress('glTexCoord4d');
15453   glTexCoord4dv := dglGetProcAddress('glTexCoord4dv');
15454   glTexCoord4f := dglGetProcAddress('glTexCoord4f');
15455   glTexCoord4fv := dglGetProcAddress('glTexCoord4fv');
15456   glTexCoord4i := dglGetProcAddress('glTexCoord4i');
15457   glTexCoord4iv := dglGetProcAddress('glTexCoord4iv');
15458   glTexCoord4s := dglGetProcAddress('glTexCoord4s');
15459   glTexCoord4sv := dglGetProcAddress('glTexCoord4sv');
15460   glTexCoordPointer := dglGetProcAddress('glTexCoordPointer');
15461   glTexEnvf := dglGetProcAddress('glTexEnvf');
15462   glTexEnvfv := dglGetProcAddress('glTexEnvfv');
15463   glTexEnvi := dglGetProcAddress('glTexEnvi');
15464   glTexEnviv := dglGetProcAddress('glTexEnviv');
15465   glTexGend := dglGetProcAddress('glTexGend');
15466   glTexGendv := dglGetProcAddress('glTexGendv');
15467   glTexGenf := dglGetProcAddress('glTexGenf');
15468   glTexGenfv := dglGetProcAddress('glTexGenfv');
15469   glTexGeni := dglGetProcAddress('glTexGeni');
15470   glTexGeniv := dglGetProcAddress('glTexGeniv');
15471   glTranslated := dglGetProcAddress('glTranslated');
15472   glTranslatef := dglGetProcAddress('glTranslatef');
15473   glVertex2d := dglGetProcAddress('glVertex2d');
15474   glVertex2dv := dglGetProcAddress('glVertex2dv');
15475   glVertex2f := dglGetProcAddress('glVertex2f');
15476   glVertex2fv := dglGetProcAddress('glVertex2fv');
15477   glVertex2i := dglGetProcAddress('glVertex2i');
15478   glVertex2iv := dglGetProcAddress('glVertex2iv');
15479   glVertex2s := dglGetProcAddress('glVertex2s');
15480   glVertex2sv := dglGetProcAddress('glVertex2sv');
15481   glVertex3d := dglGetProcAddress('glVertex3d');
15482   glVertex3dv := dglGetProcAddress('glVertex3dv');
15483   glVertex3f := dglGetProcAddress('glVertex3f');
15484   glVertex3fv := dglGetProcAddress('glVertex3fv');
15485   glVertex3i := dglGetProcAddress('glVertex3i');
15486   glVertex3iv := dglGetProcAddress('glVertex3iv');
15487   glVertex3s := dglGetProcAddress('glVertex3s');
15488   glVertex3sv := dglGetProcAddress('glVertex3sv');
15489   glVertex4d := dglGetProcAddress('glVertex4d');
15490   glVertex4dv := dglGetProcAddress('glVertex4dv');
15491   glVertex4f := dglGetProcAddress('glVertex4f');
15492   glVertex4fv := dglGetProcAddress('glVertex4fv');
15493   glVertex4i := dglGetProcAddress('glVertex4i');
15494   glVertex4iv := dglGetProcAddress('glVertex4iv');
15495   glVertex4s := dglGetProcAddress('glVertex4s');
15496   glVertex4sv := dglGetProcAddress('glVertex4sv');
15497   glVertexPointer := dglGetProcAddress('glVertexPointer');
15498 {$endif}
15499
15500   // GL_VERSION_1_2
15501   glBlendColor := dglGetProcAddress('glBlendColor');
15502   glBlendEquation := dglGetProcAddress('glBlendEquation');
15503   glDrawRangeElements := dglGetProcAddress('glDrawRangeElements');
15504   glTexImage3D := dglGetProcAddress('glTexImage3D');
15505   glTexSubImage3D := dglGetProcAddress('glTexSubImage3D');
15506   glCopyTexSubImage3D := dglGetProcAddress('glCopyTexSubImage3D');
15507 {$ifdef DGL_DEPRECATED}
15508   glColorTable := dglGetProcAddress('glColorTable');
15509   glColorTableParameterfv := dglGetProcAddress('glColorTableParameterfv');
15510   glColorTableParameteriv := dglGetProcAddress('glColorTableParameteriv');
15511   glCopyColorTable := dglGetProcAddress('glCopyColorTable');
15512   glGetColorTable := dglGetProcAddress('glGetColorTable');
15513   glGetColorTableParameterfv := dglGetProcAddress('glGetColorTableParameterfv');
15514   glGetColorTableParameteriv := dglGetProcAddress('glGetColorTableParameteriv');
15515   glColorSubTable := dglGetProcAddress('glColorSubTable');
15516   glCopyColorSubTable := dglGetProcAddress('glCopyColorSubTable');
15517   glConvolutionFilter1D := dglGetProcAddress('glConvolutionFilter1D');
15518   glConvolutionFilter2D := dglGetProcAddress('glConvolutionFilter2D');
15519   glConvolutionParameterf := dglGetProcAddress('glConvolutionParameterf');
15520   glConvolutionParameterfv := dglGetProcAddress('glConvolutionParameterfv');
15521   glConvolutionParameteri := dglGetProcAddress('glConvolutionParameteri');
15522   glConvolutionParameteriv := dglGetProcAddress('glConvolutionParameteriv');
15523   glCopyConvolutionFilter1D := dglGetProcAddress('glCopyConvolutionFilter1D');
15524   glCopyConvolutionFilter2D := dglGetProcAddress('glCopyConvolutionFilter2D');
15525   glGetConvolutionFilter := dglGetProcAddress('glGetConvolutionFilter');
15526   glGetConvolutionParameterfv := dglGetProcAddress('glGetConvolutionParameterfv');
15527   glGetConvolutionParameteriv := dglGetProcAddress('glGetConvolutionParameteriv');
15528   glGetSeparableFilter := dglGetProcAddress('glGetSeparableFilter');
15529   glSeparableFilter2D := dglGetProcAddress('glSeparableFilter2D');
15530   glGetHistogram := dglGetProcAddress('glGetHistogram');
15531   glGetHistogramParameterfv := dglGetProcAddress('glGetHistogramParameterfv');
15532   glGetHistogramParameteriv := dglGetProcAddress('glGetHistogramParameteriv');
15533   glGetMinmax := dglGetProcAddress('glGetMinmax');
15534   glGetMinmaxParameterfv := dglGetProcAddress('glGetMinmaxParameterfv');
15535   glGetMinmaxParameteriv := dglGetProcAddress('glGetMinmaxParameteriv');
15536   glHistogram := dglGetProcAddress('glHistogram');
15537   glMinmax := dglGetProcAddress('glMinmax');
15538   glResetHistogram := dglGetProcAddress('glResetHistogram');
15539   glResetMinmax := dglGetProcAddress('glResetMinmax');
15540 {$endif}
15541
15542   // GL_VERSION_1_3
15543   glActiveTexture := dglGetProcAddress('glActiveTexture');
15544   glSampleCoverage := dglGetProcAddress('glSampleCoverage');
15545   glCompressedTexImage3D := dglGetProcAddress('glCompressedTexImage3D');
15546   glCompressedTexImage2D := dglGetProcAddress('glCompressedTexImage2D');
15547   glCompressedTexImage1D := dglGetProcAddress('glCompressedTexImage1D');
15548   glCompressedTexSubImage3D := dglGetProcAddress('glCompressedTexSubImage3D');
15549   glCompressedTexSubImage2D := dglGetProcAddress('glCompressedTexSubImage2D');
15550   glCompressedTexSubImage1D := dglGetProcAddress('glCompressedTexSubImage1D');
15551   glGetCompressedTexImage := dglGetProcAddress('glGetCompressedTexImage');
15552 {$ifdef DGL_DEPRECATED}
15553   glClientActiveTexture := dglGetProcAddress('glClientActiveTexture');
15554   glMultiTexCoord1d := dglGetProcAddress('glMultiTexCoord1d');
15555   glMultiTexCoord1dv := dglGetProcAddress('glMultiTexCoord1dv');
15556   glMultiTexCoord1f := dglGetProcAddress('glMultiTexCoord1f');
15557   glMultiTexCoord1fv := dglGetProcAddress('glMultiTexCoord1fv');
15558   glMultiTexCoord1i := dglGetProcAddress('glMultiTexCoord1i');
15559   glMultiTexCoord1iv := dglGetProcAddress('glMultiTexCoord1iv');
15560   glMultiTexCoord1s := dglGetProcAddress('glMultiTexCoord1s');
15561   glMultiTexCoord1sv := dglGetProcAddress('glMultiTexCoord1sv');
15562   glMultiTexCoord2d := dglGetProcAddress('glMultiTexCoord2d');
15563   glMultiTexCoord2dv := dglGetProcAddress('glMultiTexCoord2dv');
15564   glMultiTexCoord2f := dglGetProcAddress('glMultiTexCoord2f');
15565   glMultiTexCoord2fv := dglGetProcAddress('glMultiTexCoord2fv');
15566   glMultiTexCoord2i := dglGetProcAddress('glMultiTexCoord2i');
15567   glMultiTexCoord2iv := dglGetProcAddress('glMultiTexCoord2iv');
15568   glMultiTexCoord2s := dglGetProcAddress('glMultiTexCoord2s');
15569   glMultiTexCoord2sv := dglGetProcAddress('glMultiTexCoord2sv');
15570   glMultiTexCoord3d := dglGetProcAddress('glMultiTexCoord3d');
15571   glMultiTexCoord3dv := dglGetProcAddress('glMultiTexCoord3dv');
15572   glMultiTexCoord3f := dglGetProcAddress('glMultiTexCoord3f');
15573   glMultiTexCoord3fv := dglGetProcAddress('glMultiTexCoord3fv');
15574   glMultiTexCoord3i := dglGetProcAddress('glMultiTexCoord3i');
15575   glMultiTexCoord3iv := dglGetProcAddress('glMultiTexCoord3iv');
15576   glMultiTexCoord3s := dglGetProcAddress('glMultiTexCoord3s');
15577   glMultiTexCoord3sv := dglGetProcAddress('glMultiTexCoord3sv');
15578   glMultiTexCoord4d := dglGetProcAddress('glMultiTexCoord4d');
15579   glMultiTexCoord4dv := dglGetProcAddress('glMultiTexCoord4dv');
15580   glMultiTexCoord4f := dglGetProcAddress('glMultiTexCoord4f');
15581   glMultiTexCoord4fv := dglGetProcAddress('glMultiTexCoord4fv');
15582   glMultiTexCoord4i := dglGetProcAddress('glMultiTexCoord4i');
15583   glMultiTexCoord4iv := dglGetProcAddress('glMultiTexCoord4iv');
15584   glMultiTexCoord4s := dglGetProcAddress('glMultiTexCoord4s');
15585   glMultiTexCoord4sv := dglGetProcAddress('glMultiTexCoord4sv');
15586   glLoadTransposeMatrixf := dglGetProcAddress('glLoadTransposeMatrixf');
15587   glLoadTransposeMatrixd := dglGetProcAddress('glLoadTransposeMatrixd');
15588   glMultTransposeMatrixf := dglGetProcAddress('glMultTransposeMatrixf');
15589   glMultTransposeMatrixd := dglGetProcAddress('glMultTransposeMatrixd');
15590 {$endif}
15591
15592   // GL_VERSION_1_4
15593   glBlendFuncSeparate := dglGetProcAddress('glBlendFuncSeparate');
15594   glMultiDrawArrays := dglGetProcAddress('glMultiDrawArrays');
15595   glMultiDrawElements := dglGetProcAddress('glMultiDrawElements');
15596   glPointParameterf := dglGetProcAddress('glPointParameterf');
15597   glPointParameterfv := dglGetProcAddress('glPointParameterfv');
15598   glPointParameteri := dglGetProcAddress('glPointParameteri');
15599   glPointParameteriv := dglGetProcAddress('glPointParameteriv');
15600 {$ifdef DGL_DEPRECATED}
15601   glFogCoordf := dglGetProcAddress('glFogCoordf');
15602   glFogCoordfv := dglGetProcAddress('glFogCoordfv');
15603   glFogCoordd := dglGetProcAddress('glFogCoordd');
15604   glFogCoorddv := dglGetProcAddress('glFogCoorddv');
15605   glFogCoordPointer := dglGetProcAddress('glFogCoordPointer');
15606   glSecondaryColor3b := dglGetProcAddress('glSecondaryColor3b');
15607   glSecondaryColor3bv := dglGetProcAddress('glSecondaryColor3bv');
15608   glSecondaryColor3d := dglGetProcAddress('glSecondaryColor3d');
15609   glSecondaryColor3dv := dglGetProcAddress('glSecondaryColor3dv');
15610   glSecondaryColor3f := dglGetProcAddress('glSecondaryColor3f');
15611   glSecondaryColor3fv := dglGetProcAddress('glSecondaryColor3fv');
15612   glSecondaryColor3i := dglGetProcAddress('glSecondaryColor3i');
15613   glSecondaryColor3iv := dglGetProcAddress('glSecondaryColor3iv');
15614   glSecondaryColor3s := dglGetProcAddress('glSecondaryColor3s');
15615   glSecondaryColor3sv := dglGetProcAddress('glSecondaryColor3sv');
15616   glSecondaryColor3ub := dglGetProcAddress('glSecondaryColor3ub');
15617   glSecondaryColor3ubv := dglGetProcAddress('glSecondaryColor3ubv');
15618   glSecondaryColor3ui := dglGetProcAddress('glSecondaryColor3ui');
15619   glSecondaryColor3uiv := dglGetProcAddress('glSecondaryColor3uiv');
15620   glSecondaryColor3us := dglGetProcAddress('glSecondaryColor3us');
15621   glSecondaryColor3usv := dglGetProcAddress('glSecondaryColor3usv');
15622   glSecondaryColorPointer := dglGetProcAddress('glSecondaryColorPointer');
15623   glWindowPos2d := dglGetProcAddress('glWindowPos2d');
15624   glWindowPos2dv := dglGetProcAddress('glWindowPos2dv');
15625   glWindowPos2f := dglGetProcAddress('glWindowPos2f');
15626   glWindowPos2fv := dglGetProcAddress('glWindowPos2fv');
15627   glWindowPos2i := dglGetProcAddress('glWindowPos2i');
15628   glWindowPos2iv := dglGetProcAddress('glWindowPos2iv');
15629   glWindowPos2s := dglGetProcAddress('glWindowPos2s');
15630   glWindowPos2sv := dglGetProcAddress('glWindowPos2sv');
15631   glWindowPos3d := dglGetProcAddress('glWindowPos3d');
15632   glWindowPos3dv := dglGetProcAddress('glWindowPos3dv');
15633   glWindowPos3f := dglGetProcAddress('glWindowPos3f');
15634   glWindowPos3fv := dglGetProcAddress('glWindowPos3fv');
15635   glWindowPos3i := dglGetProcAddress('glWindowPos3i');
15636   glWindowPos3iv := dglGetProcAddress('glWindowPos3iv');
15637   glWindowPos3s := dglGetProcAddress('glWindowPos3s');
15638   glWindowPos3sv := dglGetProcAddress('glWindowPos3sv');
15639 {$endif}
15640
15641   // GL_VERSION_1_5
15642   glGenQueries := dglGetProcAddress('glGenQueries');
15643   glDeleteQueries := dglGetProcAddress('glDeleteQueries');
15644   glIsQuery := dglGetProcAddress('glIsQuery');
15645   glBeginQuery := dglGetProcAddress('glBeginQuery');
15646   glEndQuery := dglGetProcAddress('glEndQuery');
15647   glGetQueryiv := dglGetProcAddress('glGetQueryiv');
15648   glGetQueryObjectiv := dglGetProcAddress('glGetQueryObjectiv');
15649   glGetQueryObjectuiv := dglGetProcAddress('glGetQueryObjectuiv');
15650   glBindBuffer := dglGetProcAddress('glBindBuffer');
15651   glDeleteBuffers := dglGetProcAddress('glDeleteBuffers');
15652   glGenBuffers := dglGetProcAddress('glGenBuffers');
15653   glIsBuffer := dglGetProcAddress('glIsBuffer');
15654   glBufferData := dglGetProcAddress('glBufferData');
15655   glBufferSubData := dglGetProcAddress('glBufferSubData');
15656   glGetBufferSubData := dglGetProcAddress('glGetBufferSubData');
15657   glMapBuffer := dglGetProcAddress('glMapBuffer');
15658   glUnmapBuffer := dglGetProcAddress('glUnmapBuffer');
15659   glGetBufferParameteriv := dglGetProcAddress('glGetBufferParameteriv');
15660   glGetBufferPointerv := dglGetProcAddress('glGetBufferPointerv');
15661
15662   // GL_VERSION_2_0
15663   glBlendEquationSeparate := dglGetProcAddress('glBlendEquationSeparate');
15664   glDrawBuffers := dglGetProcAddress('glDrawBuffers');
15665   glStencilOpSeparate := dglGetProcAddress('glStencilOpSeparate');
15666   glStencilFuncSeparate := dglGetProcAddress('glStencilFuncSeparate');
15667   glStencilMaskSeparate := dglGetProcAddress('glStencilMaskSeparate');
15668   glAttachShader := dglGetProcAddress('glAttachShader');
15669   glBindAttribLocation := dglGetProcAddress('glBindAttribLocation');
15670   glCompileShader := dglGetProcAddress('glCompileShader');
15671   glCreateProgram := dglGetProcAddress('glCreateProgram');
15672   glCreateShader := dglGetProcAddress('glCreateShader');
15673   glDeleteProgram := dglGetProcAddress('glDeleteProgram');
15674   glDeleteShader := dglGetProcAddress('glDeleteShader');
15675   glDetachShader := dglGetProcAddress('glDetachShader');
15676   glDisableVertexAttribArray := dglGetProcAddress('glDisableVertexAttribArray');
15677   glEnableVertexAttribArray := dglGetProcAddress('glEnableVertexAttribArray');
15678   glGetActiveAttrib := dglGetProcAddress('glGetActiveAttrib');
15679   glGetActiveUniform := dglGetProcAddress('glGetActiveUniform');
15680   glGetAttachedShaders := dglGetProcAddress('glGetAttachedShaders');
15681   glGetAttribLocation := dglGetProcAddress('glGetAttribLocation');
15682   glGetProgramiv := dglGetProcAddress('glGetProgramiv');
15683   glGetProgramInfoLog := dglGetProcAddress('glGetProgramInfoLog');
15684   glGetShaderiv := dglGetProcAddress('glGetShaderiv');
15685   glGetShaderInfoLog := dglGetProcAddress('glGetShaderInfoLog');
15686   glGetShaderSource := dglGetProcAddress('glGetShaderSource');
15687   glGetUniformLocation := dglGetProcAddress('glGetUniformLocation');
15688   glGetUniformfv := dglGetProcAddress('glGetUniformfv');
15689   glGetUniformiv := dglGetProcAddress('glGetUniformiv');
15690   glGetVertexAttribfv := dglGetProcAddress('glGetVertexAttribfv');
15691   glGetVertexAttribiv := dglGetProcAddress('glGetVertexAttribiv');
15692   glGetVertexAttribPointerv := dglGetProcAddress('glGetVertexAttribPointerv');
15693   glIsProgram := dglGetProcAddress('glIsProgram');
15694   glIsShader := dglGetProcAddress('glIsShader');
15695   glLinkProgram := dglGetProcAddress('glLinkProgram');
15696   glShaderSource := dglGetProcAddress('glShaderSource');
15697   glUseProgram := dglGetProcAddress('glUseProgram');
15698   glUniform1f := dglGetProcAddress('glUniform1f');
15699   glUniform2f := dglGetProcAddress('glUniform2f');
15700   glUniform3f := dglGetProcAddress('glUniform3f');
15701   glUniform4f := dglGetProcAddress('glUniform4f');
15702   glUniform1i := dglGetProcAddress('glUniform1i');
15703   glUniform2i := dglGetProcAddress('glUniform2i');
15704   glUniform3i := dglGetProcAddress('glUniform3i');
15705   glUniform4i := dglGetProcAddress('glUniform4i');
15706   glUniform1fv := dglGetProcAddress('glUniform1fv');
15707   glUniform2fv := dglGetProcAddress('glUniform2fv');
15708   glUniform3fv := dglGetProcAddress('glUniform3fv');
15709   glUniform4fv := dglGetProcAddress('glUniform4fv');
15710   glUniform1iv := dglGetProcAddress('glUniform1iv');
15711   glUniform2iv := dglGetProcAddress('glUniform2iv');
15712   glUniform3iv := dglGetProcAddress('glUniform3iv');
15713   glUniform4iv := dglGetProcAddress('glUniform4iv');
15714   glUniformMatrix2fv := dglGetProcAddress('glUniformMatrix2fv');
15715   glUniformMatrix3fv := dglGetProcAddress('glUniformMatrix3fv');
15716   glUniformMatrix4fv := dglGetProcAddress('glUniformMatrix4fv');
15717   glValidateProgram := dglGetProcAddress('glValidateProgram');
15718   glVertexAttrib1d := dglGetProcAddress('glVertexAttrib1d');
15719   glVertexAttrib1dv := dglGetProcAddress('glVertexAttrib1dv');
15720   glVertexAttrib1f := dglGetProcAddress('glVertexAttrib1f');
15721   glVertexAttrib1fv := dglGetProcAddress('glVertexAttrib1fv');
15722   glVertexAttrib1s := dglGetProcAddress('glVertexAttrib1s');
15723   glVertexAttrib1sv := dglGetProcAddress('glVertexAttrib1sv');
15724   glVertexAttrib2d := dglGetProcAddress('glVertexAttrib2d');
15725   glVertexAttrib2dv := dglGetProcAddress('glVertexAttrib2dv');
15726   glVertexAttrib2f := dglGetProcAddress('glVertexAttrib2f');
15727   glVertexAttrib2fv := dglGetProcAddress('glVertexAttrib2fv');
15728   glVertexAttrib2s := dglGetProcAddress('glVertexAttrib2s');
15729   glVertexAttrib2sv := dglGetProcAddress('glVertexAttrib2sv');
15730   glVertexAttrib3d := dglGetProcAddress('glVertexAttrib3d');
15731   glVertexAttrib3dv := dglGetProcAddress('glVertexAttrib3dv');
15732   glVertexAttrib3f := dglGetProcAddress('glVertexAttrib3f');
15733   glVertexAttrib3fv := dglGetProcAddress('glVertexAttrib3fv');
15734   glVertexAttrib3s := dglGetProcAddress('glVertexAttrib3s');
15735   glVertexAttrib3sv := dglGetProcAddress('glVertexAttrib3sv');
15736   glVertexAttrib4Nbv := dglGetProcAddress('glVertexAttrib4Nbv');
15737   glVertexAttrib4Niv := dglGetProcAddress('glVertexAttrib4Niv');
15738   glVertexAttrib4Nsv := dglGetProcAddress('glVertexAttrib4Nsv');
15739   glVertexAttrib4Nub := dglGetProcAddress('glVertexAttrib4Nub');
15740   glVertexAttrib4Nubv := dglGetProcAddress('glVertexAttrib4Nubv');
15741   glVertexAttrib4Nuiv := dglGetProcAddress('glVertexAttrib4Nuiv');
15742   glVertexAttrib4Nusv := dglGetProcAddress('glVertexAttrib4Nusv');
15743   glVertexAttrib4bv := dglGetProcAddress('glVertexAttrib4bv');
15744   glVertexAttrib4d := dglGetProcAddress('glVertexAttrib4d');
15745   glVertexAttrib4dv := dglGetProcAddress('glVertexAttrib4dv');
15746   glVertexAttrib4f := dglGetProcAddress('glVertexAttrib4f');
15747   glVertexAttrib4fv := dglGetProcAddress('glVertexAttrib4fv');
15748   glVertexAttrib4iv := dglGetProcAddress('glVertexAttrib4iv');
15749   glVertexAttrib4s := dglGetProcAddress('glVertexAttrib4s');
15750   glVertexAttrib4sv := dglGetProcAddress('glVertexAttrib4sv');
15751   glVertexAttrib4ubv := dglGetProcAddress('glVertexAttrib4ubv');
15752   glVertexAttrib4uiv := dglGetProcAddress('glVertexAttrib4uiv');
15753   glVertexAttrib4usv := dglGetProcAddress('glVertexAttrib4usv');
15754   glVertexAttribPointer := dglGetProcAddress('glVertexAttribPointer');
15755
15756   // GL_VERSION_2_1
15757   glUniformMatrix2x3fv := dglGetProcAddress('glUniformMatrix2x3fv');
15758   glUniformMatrix3x2fv := dglGetProcAddress('glUniformMatrix3x2fv');
15759   glUniformMatrix2x4fv := dglGetProcAddress('glUniformMatrix2x4fv');
15760   glUniformMatrix4x2fv := dglGetProcAddress('glUniformMatrix4x2fv');
15761   glUniformMatrix3x4fv := dglGetProcAddress('glUniformMatrix3x4fv');
15762   glUniformMatrix4x3fv := dglGetProcAddress('glUniformMatrix4x3fv');
15763   
15764   // GL_VERSION_3_0
15765   { OpenGL 3.0 also reuses entry points from these extensions: }
15766   Read_GL_ARB_framebuffer_object;
15767   Read_GL_ARB_map_buffer_range;
15768   Read_GL_ARB_vertex_array_object;
15769
15770   glColorMaski := dglGetProcAddress('glColorMaski');
15771   glGetBooleani_v := dglGetProcAddress('glGetBooleani_v');
15772   glGetIntegeri_v := dglGetProcAddress('glGetIntegeri_v');
15773   glEnablei := dglGetProcAddress('glEnablei');
15774   glDisablei := dglGetProcAddress('glDisablei');
15775   glIsEnabledi := dglGetProcAddress('glIsEnabledi');
15776   glBeginTransformFeedback := dglGetProcAddress('glBeginTransformFeedback');
15777   glEndTransformFeedback := dglGetProcAddress('glEndTransformFeedback');
15778   glBindBufferRange := dglGetProcAddress('glBindBufferRange');
15779   glBindBufferBase := dglGetProcAddress('glBindBufferBase');
15780   glTransformFeedbackVaryings := dglGetProcAddress('glTransformFeedbackVaryings');
15781   glGetTransformFeedbackVarying := dglGetProcAddress('glGetTransformFeedbackVarying');
15782   glClampColor := dglGetProcAddress('glClampColor');
15783   glBeginConditionalRender := dglGetProcAddress('glBeginConditionalRender');
15784   glEndConditionalRender := dglGetProcAddress('glEndConditionalRender');
15785   glVertexAttribI1i := dglGetProcAddress('glVertexAttribI1i');
15786   glVertexAttribI2i := dglGetProcAddress('glVertexAttribI2i');
15787   glVertexAttribI3i := dglGetProcAddress('glVertexAttribI3i');
15788   glVertexAttribI4i := dglGetProcAddress('glVertexAttribI4i');
15789   glVertexAttribI1ui := dglGetProcAddress('glVertexAttribI1ui');
15790   glVertexAttribI2ui := dglGetProcAddress('glVertexAttribI2ui');
15791   glVertexAttribI3ui := dglGetProcAddress('glVertexAttribI3ui');
15792   glVertexAttribI4ui := dglGetProcAddress('glVertexAttribI4ui');
15793   glVertexAttribI1iv := dglGetProcAddress('glVertexAttribI1iv');
15794   glVertexAttribI2iv := dglGetProcAddress('glVertexAttribI2iv');
15795   glVertexAttribI3iv := dglGetProcAddress('glVertexAttribI3iv');
15796   glVertexAttribI4iv := dglGetProcAddress('glVertexAttribI4iv');
15797   glVertexAttribI1uiv := dglGetProcAddress('glVertexAttribI1uiv');
15798   glVertexAttribI2uiv := dglGetProcAddress('glVertexAttribI2uiv');
15799   glVertexAttribI3uiv := dglGetProcAddress('glVertexAttribI3uiv');
15800   glVertexAttribI4uiv := dglGetProcAddress('glVertexAttribI4uiv');
15801   glVertexAttribI4bv := dglGetProcAddress('glVertexAttribI4bv');
15802   glVertexAttribI4sv := dglGetProcAddress('glVertexAttribI4sv');
15803   glVertexAttribI4ubv := dglGetProcAddress('glVertexAttribI4ubv');
15804   glVertexAttribI4usv := dglGetProcAddress('glVertexAttribI4usv');
15805   glVertexAttribIPointer := dglGetProcAddress('glVertexAttribIPointer');
15806   glGetVertexAttribIiv := dglGetProcAddress('glGetVertexAttribIiv');
15807   glGetVertexAttribIuiv := dglGetProcAddress('glGetVertexAttribIuiv');
15808   glGetUniformuiv := dglGetProcAddress('glGetUniformuiv');
15809   glBindFragDataLocation := dglGetProcAddress('glBindFragDataLocation');
15810   glGetFragDataLocation := dglGetProcAddress('glGetFragDataLocation');
15811   glUniform1ui := dglGetProcAddress('glUniform1ui');
15812   glUniform2ui := dglGetProcAddress('glUniform2ui');
15813   glUniform3ui := dglGetProcAddress('glUniform3ui');
15814   glUniform4ui := dglGetProcAddress('glUniform4ui');
15815   glUniform1uiv := dglGetProcAddress('glUniform1uiv');
15816   glUniform2uiv := dglGetProcAddress('glUniform2uiv');
15817   glUniform3uiv := dglGetProcAddress('glUniform3uiv');
15818   glUniform4uiv := dglGetProcAddress('glUniform4uiv');
15819   glTexParameterIiv := dglGetProcAddress('glTexParameterIiv');
15820   glTexParameterIuiv := dglGetProcAddress('glTexParameterIuiv');
15821   glGetTexParameterIiv := dglGetProcAddress('glGetTexParameterIiv');
15822   glGetTexParameterIuiv := dglGetProcAddress('glGetTexParameterIuiv');
15823   glClearBufferiv := dglGetProcAddress('glClearBufferiv');
15824   glClearBufferuiv := dglGetProcAddress('glClearBufferuiv');
15825   glClearBufferfv := dglGetProcAddress('glClearBufferfv');
15826   glClearBufferfi := dglGetProcAddress('glClearBufferfi');
15827   glGetStringi := dglGetProcAddress('glGetStringi');
15828
15829   // GL_VERSION_2_1
15830   glEnableVertexArrayEXT := dglGetProcAddress('glEnableVertexArrayEXT');
15831   glEnableVertexArrayAttribEXT := dglGetProcAddress('glEnableVertexArrayAttribEXT');
15832   glVertexArrayVertexAttribOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribOffsetEXT');
15833
15834   // GL_VERSION_3_1
15835   { OpenGL 3.1 also reuses entry points from these extensions: }
15836   Read_GL_ARB_copy_buffer;
15837   Read_GL_ARB_uniform_buffer_object;
15838
15839   glDrawArraysInstanced := dglGetProcAddress('glDrawArraysInstanced');
15840   glDrawElementsInstanced := dglGetProcAddress('glDrawElementsInstanced');
15841   glTexBuffer := dglGetProcAddress('glTexBuffer');
15842   glPrimitiveRestartIndex := dglGetProcAddress('glPrimitiveRestartIndex');
15843
15844   // GL_VERSION_3_2
15845   { OpenGL 3.2 also reuses entry points from these extensions: }
15846   Read_GL_ARB_draw_elements_base_vertex;
15847   Read_GL_ARB_provoking_vertex;
15848   Read_GL_ARB_sync;
15849   Read_GL_ARB_texture_multisample;
15850
15851   glGetInteger64i_v := dglGetProcAddress('glGetInteger64i_v');
15852   glGetBufferParameteri64v := dglGetProcAddress('glGetBufferParameteri64v');
15853   glFramebufferTexture := dglGetProcAddress('glFramebufferTexture');
15854 //  glFramebufferTextureFace := dglGetProcAddress('glFramebufferTextureFace');
15855
15856   // GL_VERSION_3_3
15857   { OpenGL 3.3 also reuses entry points from these extensions: }
15858   Read_GL_ARB_blend_func_extended;
15859   Read_GL_ARB_sampler_objects;
15860   { ARB_explicit_attrib_location, but it has none }
15861   { ARB_occlusion_query2 (no entry points) }
15862   { ARB_shader_bit_encoding (no entry points) }
15863   { ARB_texture_rgb10_a2ui (no entry points) }
15864   { ARB_texture_swizzle (no entry points) }
15865   Read_GL_ARB_timer_query;
15866   Read_GL_ARB_vertex_type_2_10_10_10_rev;
15867
15868   glVertexAttribDivisor := dglGetProcAddress('glVertexAttribDivisor');
15869
15870   // GL_VERSION_4_0
15871   { OpenGL 4.0 also reuses entry points from these extensions: }
15872   { ARB_texture_query_lod (no entry points) }
15873   Read_GL_ARB_draw_indirect;
15874   { ARB_gpu_shader5 (no entry points) }
15875   Read_GL_ARB_gpu_shader_fp64;
15876   Read_GL_ARB_shader_subroutine;
15877   Read_GL_ARB_tessellation_shader;
15878   { ARB_texture_buffer_object_rgb32 (no entry points) }
15879   { ARB_texture_cube_map_array (no entry points) }
15880   { ARB_texture_gather (no entry points) }
15881   Read_GL_ARB_transform_feedback2;
15882   Read_GL_ARB_transform_feedback3;
15883
15884   glMinSampleShading := dglGetProcAddress('glMinSampleShading');
15885   glBlendEquationi := dglGetProcAddress('glBlendEquationi');
15886   glBlendEquationSeparatei := dglGetProcAddress('glBlendEquationSeparatei');
15887   glBlendFunci := dglGetProcAddress('glBlendFunci');
15888   glBlendFuncSeparatei := dglGetProcAddress('glBlendFuncSeparatei');
15889
15890   // GL_VERSION_4_1
15891   { OpenGL 4.1 also reuses entry points from these extensions: }
15892   Read_GL_ARB_ES2_compatibility;
15893   Read_GL_ARB_get_program_binary;
15894   Read_GL_ARB_separate_shader_objects;
15895   { ARB_shader_precision (no entry points) }
15896   Read_GL_ARB_vertex_attrib_64bit;
15897   Read_GL_ARB_viewport_array;
15898
15899   // GL_VERSION_4_2
15900   { OpenGL 4.2 reuses entry points from these extensions: }
15901   Read_GL_ARB_base_instance;
15902   //Read_GL_ARB_shading_language_420pack (no entry points)
15903   Read_GL_ARB_transform_feedback_instanced;
15904   //Read_GL_ARB_compressed_texture_pixel_storage (no entry points)
15905   //Read_GL_ARB_conservative_depth;
15906   Read_GL_ARB_internalformat_query;
15907   //Read_GL_ARB_map_buffer_alignment;
15908   Read_GL_ARB_shader_atomic_counters;
15909   Read_GL_ARB_shader_image_load_store;
15910   //Read_GL_ARB_shading_language_packing;
15911   Read_GL_ARB_texture_storage;
15912
15913   // GL_VERSION_4_3
15914   // OpenGL 4.3 reuses entry points from these extensions:
15915   // Read_GL_ARB_arrays_of_arrays (none, GLSL only) (no entry points)
15916   // Read_GL_ARB_fragment_layer_viewport (none, GLSL only) (no entry points)
15917   // Read_GL_ARB_shader_image_size (none, GLSL only) (no entry points)
15918   // Read_GL_ARB_ES3_compatibility (no entry points)
15919   Read_GL_ARB_clear_buffer_object;
15920   Read_GL_ARB_compute_shader;
15921   Read_GL_ARB_copy_image;
15922   Read_GL_KHR_debug;
15923   // Read_GL_ARB_explicit_uniform_location  (no entry points)
15924   Read_GL_ARB_framebuffer_no_attachments;
15925   Read_GL_ARB_internalformat_query2;
15926   Read_GL_ARB_invalidate_subdata;
15927   Read_GL_ARB_multi_draw_indirect;
15928   Read_GL_ARB_program_interface_query;
15929   // Read_GL_ARB_robust_buffer_access_behavior (none)  (no entry points)
15930   Read_GL_ARB_shader_storage_buffer_object;
15931   // Read_GL_ARB_stencil_texturing  (no entry points)
15932   Read_GL_ARB_texture_buffer_range;
15933   // Read_GL_ARB_texture_query_levels (none)  (no entry points)
15934   Read_GL_ARB_texture_storage_multisample;
15935   Read_GL_ARB_texture_view;
15936   Read_GL_ARB_vertex_attrib_binding;
15937
15938   // GL_VERSION_4_4
15939   //  Note (Due to Khronos' change in header conventions, no more single read_ functions)
15940   Read_GL_4_4;
15941 end;
15942
15943 procedure Read_GL_3DFX_tbuffer;
15944 begin
15945   glTbufferMask3DFX := dglGetProcAddress('glTbufferMask3DFX');
15946 end;
15947
15948 procedure Read_GL_APPLE_element_array;
15949 begin
15950   glElementPointerAPPLE := dglGetProcAddress('glElementPointerAPPLE');
15951   glDrawElementArrayAPPLE := dglGetProcAddress('glDrawElementArrayAPPLE');
15952   glDrawRangeElementArrayAPPLE := dglGetProcAddress('glDrawRangeElementArrayAPPLE');
15953   glMultiDrawElementArrayAPPLE := dglGetProcAddress('glMultiDrawElementArrayAPPLE');
15954   glMultiDrawRangeElementArrayAPPLE := dglGetProcAddress('glMultiDrawRangeElementArrayAPPLE');
15955 end;
15956
15957 procedure Read_GL_APPLE_fence;
15958 begin
15959   glGenFencesAPPLE := dglGetProcAddress('glGenFencesAPPLE');
15960   glDeleteFencesAPPLE := dglGetProcAddress('glDeleteFencesAPPLE');
15961   glSetFenceAPPLE := dglGetProcAddress('glSetFenceAPPLE');
15962   glIsFenceAPPLE := dglGetProcAddress('glIsFenceAPPLE');
15963   glTestFenceAPPLE := dglGetProcAddress('glTestFenceAPPLE');
15964   glFinishFenceAPPLE := dglGetProcAddress('glFinishFenceAPPLE');
15965   glTestObjectAPPLE := dglGetProcAddress('glTestObjectAPPLE');
15966   glFinishObjectAPPLE := dglGetProcAddress('glFinishObjectAPPLE');
15967 end;
15968
15969 procedure Read_GL_APPLE_vertex_array_object;
15970 begin
15971   glBindVertexArrayAPPLE := dglGetProcAddress('glBindVertexArrayAPPLE');
15972   glDeleteVertexArraysAPPLE := dglGetProcAddress('glDeleteVertexArraysAPPLE');
15973   glGenVertexArraysAPPLE := dglGetProcAddress('glGenVertexArraysAPPLE');
15974   glIsVertexArrayAPPLE := dglGetProcAddress('glIsVertexArrayAPPLE');
15975 end;
15976
15977 procedure Read_GL_APPLE_vertex_array_range;
15978 begin
15979   glVertexArrayRangeAPPLE := dglGetProcAddress('glVertexArrayRangeAPPLE');
15980   glFlushVertexArrayRangeAPPLE := dglGetProcAddress('glFlushVertexArrayRangeAPPLE');
15981   glVertexArrayParameteriAPPLE := dglGetProcAddress('glVertexArrayParameteriAPPLE');
15982 end;
15983
15984 procedure Read_GL_APPLE_texture_range;
15985 begin
15986   glTextureRangeAPPLE := dglGetProcAddress('glTextureRangeAPPLE');
15987   glGetTexParameterPointervAPPLE := dglGetProcAddress('glGetTexParameterPointervAPPLE');
15988 end;
15989
15990 procedure Read_GL_APPLE_vertex_program_evaluators;
15991 begin
15992   glEnableVertexAttribAPPLE := dglGetProcAddress('glEnableVertexAttribAPPLE');
15993   glDisableVertexAttribAPPLE := dglGetProcAddress('glDisableVertexAttribAPPLE');
15994   glIsVertexAttribEnabledAPPLE := dglGetProcAddress('glIsVertexAttribEnabledAPPLE');
15995   glMapVertexAttrib1dAPPLE := dglGetProcAddress('glMapVertexAttrib1dAPPLE');
15996   glMapVertexAttrib1fAPPLE := dglGetProcAddress('glMapVertexAttrib1fAPPLE');
15997   glMapVertexAttrib2dAPPLE := dglGetProcAddress('glMapVertexAttrib2dAPPLE');
15998   glMapVertexAttrib2fAPPLE := dglGetProcAddress('glMapVertexAttrib2fAPPLE');
15999 end;
16000
16001 procedure Read_GL_APPLE_object_purgeable;
16002 begin
16003   glObjectPurgeableAPPLE := dglGetProcAddress('glObjectPurgeableAPPLE');
16004   glObjectUnpurgeableAPPLE := dglGetProcAddress('glObjectUnpurgeableAPPLE');
16005   glGetObjectParameterivAPPLE := dglGetProcAddress('glGetObjectParameterivAPPLE');
16006 end;
16007
16008 procedure Read_GL_ARB_matrix_palette;
16009 begin
16010   glCurrentPaletteMatrixARB := dglGetProcAddress('glCurrentPaletteMatrixARB');
16011   glMatrixIndexubvARB := dglGetProcAddress('glMatrixIndexubvARB');
16012   glMatrixIndexusvARB := dglGetProcAddress('glMatrixIndexusvARB');
16013   glMatrixIndexuivARB := dglGetProcAddress('glMatrixIndexuivARB');
16014   glMatrixIndexPointerARB := dglGetProcAddress('glMatrixIndexPointerARB');
16015 end;
16016
16017 procedure Read_GL_ARB_multisample;
16018 begin
16019   glSampleCoverageARB := dglGetProcAddress('glSampleCoverageARB');
16020 end;
16021
16022 procedure Read_GL_ARB_multitexture;
16023 begin
16024   glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
16025   glClientActiveTextureARB := dglGetProcAddress('glClientActiveTextureARB');
16026   glMultiTexCoord1dARB := dglGetProcAddress('glMultiTexCoord1dARB');
16027   glMultiTexCoord1dvARB := dglGetProcAddress('glMultiTexCoord1dvARB');
16028   glMultiTexCoord1fARB := dglGetProcAddress('glMultiTexCoord1fARB');
16029   glMultiTexCoord1fvARB := dglGetProcAddress('glMultiTexCoord1fvARB');
16030   glMultiTexCoord1iARB := dglGetProcAddress('glMultiTexCoord1iARB');
16031   glMultiTexCoord1ivARB := dglGetProcAddress('glMultiTexCoord1ivARB');
16032   glMultiTexCoord1sARB := dglGetProcAddress('glMultiTexCoord1sARB');
16033   glMultiTexCoord1svARB := dglGetProcAddress('glMultiTexCoord1svARB');
16034   glMultiTexCoord2dARB := dglGetProcAddress('glMultiTexCoord2dARB');
16035   glMultiTexCoord2dvARB := dglGetProcAddress('glMultiTexCoord2dvARB');
16036   glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
16037   glMultiTexCoord2fvARB := dglGetProcAddress('glMultiTexCoord2fvARB');
16038   glMultiTexCoord2iARB := dglGetProcAddress('glMultiTexCoord2iARB');
16039   glMultiTexCoord2ivARB := dglGetProcAddress('glMultiTexCoord2ivARB');
16040   glMultiTexCoord2sARB := dglGetProcAddress('glMultiTexCoord2sARB');
16041   glMultiTexCoord2svARB := dglGetProcAddress('glMultiTexCoord2svARB');
16042   glMultiTexCoord3dARB := dglGetProcAddress('glMultiTexCoord3dARB');
16043   glMultiTexCoord3dvARB := dglGetProcAddress('glMultiTexCoord3dvARB');
16044   glMultiTexCoord3fARB := dglGetProcAddress('glMultiTexCoord3fARB');
16045   glMultiTexCoord3fvARB := dglGetProcAddress('glMultiTexCoord3fvARB');
16046   glMultiTexCoord3iARB := dglGetProcAddress('glMultiTexCoord3iARB');
16047   glMultiTexCoord3ivARB := dglGetProcAddress('glMultiTexCoord3ivARB');
16048   glMultiTexCoord3sARB := dglGetProcAddress('glMultiTexCoord3sARB');
16049   glMultiTexCoord3svARB := dglGetProcAddress('glMultiTexCoord3svARB');
16050   glMultiTexCoord4dARB := dglGetProcAddress('glMultiTexCoord4dARB');
16051   glMultiTexCoord4dvARB := dglGetProcAddress('glMultiTexCoord4dvARB');
16052   glMultiTexCoord4fARB := dglGetProcAddress('glMultiTexCoord4fARB');
16053   glMultiTexCoord4fvARB := dglGetProcAddress('glMultiTexCoord4fvARB');
16054   glMultiTexCoord4iARB := dglGetProcAddress('glMultiTexCoord4iARB');
16055   glMultiTexCoord4ivARB := dglGetProcAddress('glMultiTexCoord4ivARB');
16056   glMultiTexCoord4sARB := dglGetProcAddress('glMultiTexCoord4sARB');
16057   glMultiTexCoord4svARB := dglGetProcAddress('glMultiTexCoord4svARB');
16058 end;
16059
16060 procedure Read_GL_ARB_point_parameters;
16061 begin
16062   glPointParameterfARB := dglGetProcAddress('glPointParameterfARB');
16063   glPointParameterfvARB := dglGetProcAddress('glPointParameterfvARB');
16064 end;
16065
16066 procedure Read_GL_ARB_texture_compression;
16067 begin
16068   glCompressedTexImage3DARB := dglGetProcAddress('glCompressedTexImage3DARB');
16069   glCompressedTexImage2DARB := dglGetProcAddress('glCompressedTexImage2DARB');
16070   glCompressedTexImage1DARB := dglGetProcAddress('glCompressedTexImage1DARB');
16071   glCompressedTexSubImage3DARB := dglGetProcAddress('glCompressedTexSubImage3DARB');
16072   glCompressedTexSubImage2DARB := dglGetProcAddress('glCompressedTexSubImage2DARB');
16073   glCompressedTexSubImage1DARB := dglGetProcAddress('glCompressedTexSubImage1DARB');
16074   glGetCompressedTexImageARB := dglGetProcAddress('glGetCompressedTexImageARB');
16075 end;
16076
16077 procedure Read_GL_ARB_transpose_matrix;
16078 begin
16079   glLoadTransposeMatrixfARB := dglGetProcAddress('glLoadTransposeMatrixfARB');
16080   glLoadTransposeMatrixdARB := dglGetProcAddress('glLoadTransposeMatrixdARB');
16081   glMultTransposeMatrixfARB := dglGetProcAddress('glMultTransposeMatrixfARB');
16082   glMultTransposeMatrixdARB := dglGetProcAddress('glMultTransposeMatrixdARB');
16083 end;
16084
16085 procedure Read_GL_ARB_vertex_blend;
16086 begin
16087   glWeightbvARB := dglGetProcAddress('glWeightbvARB');
16088   glWeightsvARB := dglGetProcAddress('glWeightsvARB');
16089   glWeightivARB := dglGetProcAddress('glWeightivARB');
16090   glWeightfvARB := dglGetProcAddress('glWeightfvARB');
16091   glWeightdvARB := dglGetProcAddress('glWeightdvARB');
16092   glWeightubvARB := dglGetProcAddress('glWeightubvARB');
16093   glWeightusvARB := dglGetProcAddress('glWeightusvARB');
16094   glWeightuivARB := dglGetProcAddress('glWeightuivARB');
16095   glWeightPointerARB := dglGetProcAddress('glWeightPointerARB');
16096   glVertexBlendARB := dglGetProcAddress('glVertexBlendARB');
16097 end;
16098
16099 procedure Read_GL_ARB_vertex_buffer_object;
16100 begin
16101   glBindBufferARB := dglGetProcAddress('glBindBufferARB');
16102   glDeleteBuffersARB := dglGetProcAddress('glDeleteBuffersARB');
16103   glGenBuffersARB := dglGetProcAddress('glGenBuffersARB');
16104   glIsBufferARB := dglGetProcAddress('glIsBufferARB');
16105   glBufferDataARB := dglGetProcAddress('glBufferDataARB');
16106   glBufferSubDataARB := dglGetProcAddress('glBufferSubDataARB');
16107   glGetBufferSubDataARB := dglGetProcAddress('glGetBufferSubDataARB');
16108   glMapBufferARB := dglGetProcAddress('glMapBufferARB');
16109   glUnmapBufferARB := dglGetProcAddress('glUnmapBufferARB');
16110   glGetBufferParameterivARB := dglGetProcAddress('glGetBufferParameterivARB');
16111   glGetBufferPointervARB := dglGetProcAddress('glGetBufferPointervARB');
16112 end;
16113
16114 procedure Read_GL_ARB_vertex_program;
16115 begin
16116   glVertexAttrib1dARB := dglGetProcAddress('glVertexAttrib1dARB');
16117   glVertexAttrib1dvARB := dglGetProcAddress('glVertexAttrib1dvARB');
16118   glVertexAttrib1fARB := dglGetProcAddress('glVertexAttrib1fARB');
16119   glVertexAttrib1fvARB := dglGetProcAddress('glVertexAttrib1fvARB');
16120   glVertexAttrib1sARB := dglGetProcAddress('glVertexAttrib1sARB');
16121   glVertexAttrib1svARB := dglGetProcAddress('glVertexAttrib1svARB');
16122   glVertexAttrib2dARB := dglGetProcAddress('glVertexAttrib2dARB');
16123   glVertexAttrib2dvARB := dglGetProcAddress('glVertexAttrib2dvARB');
16124   glVertexAttrib2fARB := dglGetProcAddress('glVertexAttrib2fARB');
16125   glVertexAttrib2fvARB := dglGetProcAddress('glVertexAttrib2fvARB');
16126   glVertexAttrib2sARB := dglGetProcAddress('glVertexAttrib2sARB');
16127   glVertexAttrib2svARB := dglGetProcAddress('glVertexAttrib2svARB');
16128   glVertexAttrib3dARB := dglGetProcAddress('glVertexAttrib3dARB');
16129   glVertexAttrib3dvARB := dglGetProcAddress('glVertexAttrib3dvARB');
16130   glVertexAttrib3fARB := dglGetProcAddress('glVertexAttrib3fARB');
16131   glVertexAttrib3fvARB := dglGetProcAddress('glVertexAttrib3fvARB');
16132   glVertexAttrib3sARB := dglGetProcAddress('glVertexAttrib3sARB');
16133   glVertexAttrib3svARB := dglGetProcAddress('glVertexAttrib3svARB');
16134   glVertexAttrib4NbvARB := dglGetProcAddress('glVertexAttrib4NbvARB');
16135   glVertexAttrib4NivARB := dglGetProcAddress('glVertexAttrib4NivARB');
16136   glVertexAttrib4NsvARB := dglGetProcAddress('glVertexAttrib4NsvARB');
16137   glVertexAttrib4NubARB := dglGetProcAddress('glVertexAttrib4NubARB');
16138   glVertexAttrib4NubvARB := dglGetProcAddress('glVertexAttrib4NubvARB');
16139   glVertexAttrib4NuivARB := dglGetProcAddress('glVertexAttrib4NuivARB');
16140   glVertexAttrib4NusvARB := dglGetProcAddress('glVertexAttrib4NusvARB');
16141   glVertexAttrib4bvARB := dglGetProcAddress('glVertexAttrib4bvARB');
16142   glVertexAttrib4dARB := dglGetProcAddress('glVertexAttrib4dARB');
16143   glVertexAttrib4dvARB := dglGetProcAddress('glVertexAttrib4dvARB');
16144   glVertexAttrib4fARB := dglGetProcAddress('glVertexAttrib4fARB');
16145   glVertexAttrib4fvARB := dglGetProcAddress('glVertexAttrib4fvARB');
16146   glVertexAttrib4ivARB := dglGetProcAddress('glVertexAttrib4ivARB');
16147   glVertexAttrib4sARB := dglGetProcAddress('glVertexAttrib4sARB');
16148   glVertexAttrib4svARB := dglGetProcAddress('glVertexAttrib4svARB');
16149   glVertexAttrib4ubvARB := dglGetProcAddress('glVertexAttrib4ubvARB');
16150   glVertexAttrib4uivARB := dglGetProcAddress('glVertexAttrib4uivARB');
16151   glVertexAttrib4usvARB := dglGetProcAddress('glVertexAttrib4usvARB');
16152   glVertexAttribPointerARB := dglGetProcAddress('glVertexAttribPointerARB');
16153   glEnableVertexAttribArrayARB := dglGetProcAddress('glEnableVertexAttribArrayARB');
16154   glDisableVertexAttribArrayARB := dglGetProcAddress('glDisableVertexAttribArrayARB');
16155   glProgramStringARB := dglGetProcAddress('glProgramStringARB');
16156   glBindProgramARB := dglGetProcAddress('glBindProgramARB');
16157   glDeleteProgramsARB := dglGetProcAddress('glDeleteProgramsARB');
16158   glGenProgramsARB := dglGetProcAddress('glGenProgramsARB');
16159   glProgramEnvParameter4dARB := dglGetProcAddress('glProgramEnvParameter4dARB');
16160   glProgramEnvParameter4dvARB := dglGetProcAddress('glProgramEnvParameter4dvARB');
16161   glProgramEnvParameter4fARB := dglGetProcAddress('glProgramEnvParameter4fARB');
16162   glProgramEnvParameter4fvARB := dglGetProcAddress('glProgramEnvParameter4fvARB');
16163   glProgramLocalParameter4dARB := dglGetProcAddress('glProgramLocalParameter4dARB');
16164   glProgramLocalParameter4dvARB := dglGetProcAddress('glProgramLocalParameter4dvARB');
16165   glProgramLocalParameter4fARB := dglGetProcAddress('glProgramLocalParameter4fARB');
16166   glProgramLocalParameter4fvARB := dglGetProcAddress('glProgramLocalParameter4fvARB');
16167   glGetProgramEnvParameterdvARB := dglGetProcAddress('glGetProgramEnvParameterdvARB');
16168   glGetProgramEnvParameterfvARB := dglGetProcAddress('glGetProgramEnvParameterfvARB');
16169   glGetProgramLocalParameterdvARB := dglGetProcAddress('glGetProgramLocalParameterdvARB');
16170   glGetProgramLocalParameterfvARB := dglGetProcAddress('glGetProgramLocalParameterfvARB');
16171   glGetProgramivARB := dglGetProcAddress('glGetProgramivARB');
16172   glGetProgramStringARB := dglGetProcAddress('glGetProgramStringARB');
16173   glGetVertexAttribdvARB := dglGetProcAddress('glGetVertexAttribdvARB');
16174   glGetVertexAttribfvARB := dglGetProcAddress('glGetVertexAttribfvARB');
16175   glGetVertexAttribivARB := dglGetProcAddress('glGetVertexAttribivARB');
16176   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16177   glIsProgramARB := dglGetProcAddress('glIsProgramARB');
16178 end;
16179
16180 procedure Read_GL_ARB_window_pos;
16181 begin
16182   glWindowPos2dARB := dglGetProcAddress('glWindowPos2dARB');
16183   glWindowPos2dvARB := dglGetProcAddress('glWindowPos2dvARB');
16184   glWindowPos2fARB := dglGetProcAddress('glWindowPos2fARB');
16185   glWindowPos2fvARB := dglGetProcAddress('glWindowPos2fvARB');
16186   glWindowPos2iARB := dglGetProcAddress('glWindowPos2iARB');
16187   glWindowPos2ivARB := dglGetProcAddress('glWindowPos2ivARB');
16188   glWindowPos2sARB := dglGetProcAddress('glWindowPos2sARB');
16189   glWindowPos2svARB := dglGetProcAddress('glWindowPos2svARB');
16190   glWindowPos3dARB := dglGetProcAddress('glWindowPos3dARB');
16191   glWindowPos3dvARB := dglGetProcAddress('glWindowPos3dvARB');
16192   glWindowPos3fARB := dglGetProcAddress('glWindowPos3fARB');
16193   glWindowPos3fvARB := dglGetProcAddress('glWindowPos3fvARB');
16194   glWindowPos3iARB := dglGetProcAddress('glWindowPos3iARB');
16195   glWindowPos3ivARB := dglGetProcAddress('glWindowPos3ivARB');
16196   glWindowPos3sARB := dglGetProcAddress('glWindowPos3sARB');
16197   glWindowPos3svARB := dglGetProcAddress('glWindowPos3svARB');
16198 end;
16199
16200 procedure Read_GL_ARB_draw_buffers;
16201 begin
16202   glDrawBuffersARB := dglGetProcAddress('glDrawBuffersARB');
16203 end;
16204
16205 procedure Read_GL_ARB_color_buffer_float;
16206 begin
16207   glClampColorARB := dglGetProcAddress('glClampColorARB');
16208 end;
16209
16210 procedure Read_GL_ARB_Shader_Objects;
16211 begin
16212   // GL_ARB_Shader_Objects
16213   glCreateShaderObjectARB := dglGetProcAddress('glCreateShaderObjectARB');
16214   glShaderSourceARB := dglGetProcAddress('glShaderSourceARB');
16215   glCompileShaderARB := dglGetProcAddress('glCompileShaderARB');
16216   glDeleteObjectARB := dglGetProcAddress('glDeleteObjectARB');
16217   glGetHandleARB := dglGetProcAddress('glGetHandleARB');
16218   glDetachObjectARB := dglGetProcAddress('glDetachObjectARB');
16219   glCreateProgramObjectARB := dglGetProcAddress('glCreateProgramObjectARB');
16220   glAttachObjectARB := dglGetProcAddress('glAttachObjectARB');
16221   glLinkProgramARB := dglGetProcAddress('glLinkProgramARB');
16222   glUseProgramObjectARB := dglGetProcAddress('glUseProgramObjectARB');
16223   glValidateProgramARB := dglGetProcAddress('glValidateProgramARB');
16224   glGetObjectParameterfvARB := dglGetProcAddress('glGetObjectParameterfvARB');
16225   glGetObjectParameterivARB := dglGetProcAddress('glGetObjectParameterivARB');
16226   glGetActiveUniformARB := dglGetProcAddress('glGetActiveUniformARB');
16227   glGetAttachedObjectsARB := dglGetProcAddress('glGetAttachedObjectsARB');
16228   glGetShaderSourceARB := dglGetProcAddress('glGetShaderSourceARB');
16229   glGetUniformfvARB := dglGetProcAddress('glGetUniformfvARB');
16230   glGetUniformivARB := dglGetProcAddress('glGetUniformivARB');
16231   glGetUniformLocationARB := dglGetProcAddress('glGetUniformLocationARB');
16232   glGetInfoLogARB := dglGetProcAddress('glGetInfoLogARB');
16233   glUniform1fARB := dglGetProcAddress('glUniform1fARB');
16234   glUniform2fARB := dglGetProcAddress('glUniform2fARB');
16235   glUniform3fARB := dglGetProcAddress('glUniform3fARB');
16236   glUniform4fARB := dglGetProcAddress('glUniform4fARB');
16237   glUniform1iARB := dglGetProcAddress('glUniform1iARB');
16238   glUniform2iARB := dglGetProcAddress('glUniform2iARB');
16239   glUniform3iARB := dglGetProcAddress('glUniform3iARB');
16240   glUniform4iARB := dglGetProcAddress('glUniform4iARB');
16241   glUniform1fvARB := dglGetProcAddress('glUniform1fvARB');
16242   glUniform2fvARB := dglGetProcAddress('glUniform2fvARB');
16243   glUniform3fvARB := dglGetProcAddress('glUniform3fvARB');
16244   glUniform4fvARB := dglGetProcAddress('glUniform4fvARB');
16245   glUniform1ivARB := dglGetProcAddress('glUniform1ivARB');
16246   glUniform2ivARB := dglGetProcAddress('glUniform2ivARB');
16247   glUniform3ivARB := dglGetProcAddress('glUniform3ivARB');
16248   glUniform4ivARB := dglGetProcAddress('glUniform4ivARB');
16249   glUniformMatrix2fvARB := dglGetProcAddress('glUniformMatrix2fvARB');
16250   glUniformMatrix3fvARB := dglGetProcAddress('glUniformMatrix3fvARB');
16251   glUniformMatrix4fvARB := dglGetProcAddress('glUniformMatrix4fvARB');
16252
16253   // GL_ARB_vertex_shader
16254   glGetActiveAttribARB := dglGetProcAddress('glGetActiveAttribARB');
16255   glGetAttribLocationARB := dglGetProcAddress('glGetAttribLocationARB');
16256   glBindAttribLocationARB := dglGetProcAddress('glBindAttribLocationARB');
16257   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16258 end;
16259
16260 procedure Read_GL_ARB_occlusion_query;
16261 begin
16262   glGenQueriesARB := dglGetProcAddress('glGenQueriesARB');
16263   glDeleteQueriesARB := dglGetProcAddress('glDeleteQueriesARB');
16264   glIsQueryARB := dglGetProcAddress('glIsQueryARB');
16265   glBeginQueryARB := dglGetProcAddress('glBeginQueryARB');
16266   glEndQueryARB := dglGetProcAddress('glEndQueryARB');
16267   glGetQueryivARB := dglGetProcAddress('glGetQueryivARB');
16268   glGetQueryObjectivARB := dglGetProcAddress('glGetQueryObjectivARB');
16269   glGetQueryObjectuivARB := dglGetProcAddress('glGetQueryObjectuivARB');
16270 end;
16271
16272 procedure Read_GL_ARB_draw_instanced;
16273 begin
16274   glDrawArraysInstancedARB := dglGetProcAddress('glDrawArraysInstancedARB');
16275   glDrawElementsInstancedARB := dglGetProcAddress('glDrawElementsInstancedARB');
16276 end;
16277
16278 procedure Read_GL_ARB_framebuffer_object;
16279 begin
16280   glIsRenderbuffer := dglGetProcAddress('glIsRenderbuffer');
16281   glBindRenderbuffer := dglGetProcAddress('glBindRenderbuffer');
16282   glDeleteRenderbuffers := dglGetProcAddress('glDeleteRenderbuffers');
16283   glGenRenderbuffers := dglGetProcAddress('glGenRenderbuffers');
16284   glRenderbufferStorage := dglGetProcAddress('glRenderbufferStorage');
16285   glGetRenderbufferParameteriv := dglGetProcAddress('glGetRenderbufferParameteriv');
16286   glIsFramebuffer := dglGetProcAddress('glIsFramebuffer');
16287   glBindFramebuffer := dglGetProcAddress('glBindFramebuffer');
16288   glDeleteFramebuffers := dglGetProcAddress('glDeleteFramebuffers');
16289   glGenFramebuffers := dglGetProcAddress('glGenFramebuffers');
16290   glCheckFramebufferStatus := dglGetProcAddress('glCheckFramebufferStatus');
16291   glFramebufferTexture1D := dglGetProcAddress('glFramebufferTexture1D');
16292   glFramebufferTexture2D := dglGetProcAddress('glFramebufferTexture2D');
16293   glFramebufferTexture3D := dglGetProcAddress('glFramebufferTexture3D');
16294   glFramebufferRenderbuffer := dglGetProcAddress('glFramebufferRenderbuffer');
16295   glGetFramebufferAttachmentParameteriv := dglGetProcAddress('glGetFramebufferAttachmentParameteriv');
16296   glGenerateMipmap := dglGetProcAddress('glGenerateMipmap');
16297   glBlitFramebuffer := dglGetProcAddress('glBlitFramebuffer');
16298   glRenderbufferStorageMultisample := dglGetProcAddress('glRenderbufferStorageMultisample');
16299   glFramebufferTextureLayer := dglGetProcAddress('glFramebufferTextureLayer');
16300 end;
16301
16302 procedure Read_GL_ARB_geometry_shader4;
16303 begin
16304   glProgramParameteriARB := dglGetProcAddress('glProgramParameteriARB');
16305   glFramebufferTextureARB := dglGetProcAddress('glFramebufferTextureARB');
16306   glFramebufferTextureLayerARB := dglGetProcAddress('glFramebufferTextureLayerARB');
16307   glFramebufferTextureFaceARB := dglGetProcAddress('glFramebufferTextureFaceARB');
16308 end;
16309
16310 procedure Read_GL_ARB_instanced_arrays;
16311 begin
16312   glVertexAttribDivisorARB := dglGetProcAddress('glVertexAttribDivisorARB');
16313 end;
16314
16315 procedure Read_GL_ARB_map_buffer_range;
16316 begin
16317   glMapBufferRange := dglGetProcAddress('glMapBufferRange');
16318   glFlushMappedBufferRange := dglGetProcAddress('glFlushMappedBufferRange');
16319 end;
16320
16321 procedure Read_GL_ARB_texture_buffer_object;
16322 begin
16323   glTexBufferARB := dglGetProcAddress('glTexBufferARB');
16324 end;
16325
16326 procedure Read_GL_ARB_vertex_array_object;
16327 begin
16328   glBindVertexArray := dglGetProcAddress('glBindVertexArray');
16329   glDeleteVertexArrays := dglGetProcAddress('glDeleteVertexArrays');
16330   glGenVertexArrays := dglGetProcAddress('glGenVertexArrays');
16331   glIsVertexArray := dglGetProcAddress('glIsVertexArray');
16332 end;
16333
16334 procedure Read_GL_ARB_uniform_buffer_object;
16335 begin
16336   glGetUniformIndices := dglGetProcAddress('glGetUniformIndices');
16337   glGetActiveUniformsiv := dglGetProcAddress('glGetActiveUniformsiv');
16338   glGetActiveUniformName := dglGetProcAddress('glGetActiveUniformName');
16339   glGetUniformBlockIndex := dglGetProcAddress('glGetUniformBlockIndex');
16340   glGetActiveUniformBlockiv := dglGetProcAddress('glGetActiveUniformBlockiv');
16341   glGetActiveUniformBlockName := dglGetProcAddress('glGetActiveUniformBlockName');
16342   glUniformBlockBinding := dglGetProcAddress('glUniformBlockBinding');
16343 end;
16344
16345 procedure Read_GL_ARB_copy_buffer;
16346 begin
16347   glCopyBufferSubData := dglGetProcAddress('glCopyBufferSubData');
16348 end;
16349
16350 procedure Read_GL_ARB_draw_elements_base_vertex;
16351 begin
16352   glDrawElementsBaseVertex := dglGetProcAddress('glDrawElementsBaseVertex');
16353   glDrawRangeElementsBaseVertex := dglGetProcAddress('glDrawRangeElementsBaseVertex');
16354   glDrawElementsInstancedBaseVertex := dglGetProcAddress('glDrawElementsInstancedBaseVertex');
16355   glMultiDrawElementsBaseVertex := dglGetProcAddress('glMultiDrawElementsBaseVertex');
16356 end;
16357
16358 procedure Read_GL_ARB_provoking_vertex;
16359 begin
16360   glProvokingVertex := dglGetProcAddress('glProvokingVertex');
16361 end;
16362
16363 procedure Read_GL_ARB_sync;
16364 begin
16365   glFenceSync := dglGetProcAddress('glFenceSync');
16366   glIsSync := dglGetProcAddress('glIsSync');
16367   glDeleteSync := dglGetProcAddress('glDeleteSync');
16368   glClientWaitSync := dglGetProcAddress('glClientWaitSync');
16369   glWaitSync := dglGetProcAddress('glWaitSync');
16370   glGetInteger64v := dglGetProcAddress('glGetInteger64v');
16371   glGetSynciv := dglGetProcAddress('glGetSynciv');
16372 end;
16373
16374 procedure Read_GL_ARB_texture_multisample;
16375 begin
16376   glTexImage2DMultisample := dglGetProcAddress('glTexImage2DMultisample');
16377   glTexImage3DMultisample := dglGetProcAddress('glTexImage3DMultisample');
16378   glGetMultisamplefv := dglGetProcAddress('glGetMultisamplefv');
16379   glSampleMaski := dglGetProcAddress('glSampleMaski');
16380 end;
16381
16382 procedure Read_GL_ARB_draw_buffers_blend;
16383 begin
16384   glBlendEquationiARB := dglGetProcAddress('glBlendEquationiARB');
16385   glBlendEquationSeparateiARB := dglGetProcAddress('glBlendEquationSeparateiARB');
16386   glBlendFunciARB := dglGetProcAddress('glBlendFunciARB');
16387   glBlendFuncSeparateiARB := dglGetProcAddress('glBlendFuncSeparateiARB');
16388 end;
16389
16390 procedure Read_GL_ARB_sample_shading;
16391 begin
16392   glMinSampleShadingARB := dglGetProcAddress('glMinSampleShadingARB');
16393 end;
16394
16395 procedure Read_GL_ARB_shading_language_include;
16396 begin
16397   glNamedStringARB := dglGetProcAddress('glNamedStringARB');
16398   glDeleteNamedStringARB := dglGetProcAddress('glDeleteNamedStringARB');
16399   glCompileShaderIncludeARB := dglGetProcAddress('glCompileShaderIncludeARB');
16400   glIsNamedStringARB := dglGetProcAddress('glIsNamedStringARB');
16401   glGetNamedStringARB := dglGetProcAddress('glGetNamedStringARB');
16402   glGetNamedStringivARB := dglGetProcAddress('glGetNamedStringivARB');
16403 end;
16404
16405 procedure Read_GL_ARB_blend_func_extended;
16406 begin
16407   glBindFragDataLocationIndexed := dglGetProcAddress('glBindFragDataLocationIndexed');
16408   glGetFragDataIndex := dglGetProcAddress('glGetFragDataIndex');
16409 end;
16410
16411 procedure Read_GL_ARB_sampler_objects;
16412 begin
16413   glGenSamplers := dglGetProcAddress('glGenSamplers');
16414   glDeleteSamplers := dglGetProcAddress('glDeleteSamplers');
16415   glIsSampler := dglGetProcAddress('glIsSampler');
16416   glBindSampler := dglGetProcAddress('glBindSampler');
16417   glSamplerParameteri := dglGetProcAddress('glSamplerParameteri');
16418   glSamplerParameteriv := dglGetProcAddress('glSamplerParameteriv');
16419   glSamplerParameterf := dglGetProcAddress('glSamplerParameterf');
16420   glSamplerParameterfv := dglGetProcAddress('glSamplerParameterfv');
16421   glSamplerParameterIiv := dglGetProcAddress('glSamplerParameterIiv');
16422   glSamplerParameterIuiv := dglGetProcAddress('glSamplerParameterIuiv');
16423   glGetSamplerParameteriv := dglGetProcAddress('glGetSamplerParameteriv');
16424   glGetSamplerParameterIiv := dglGetProcAddress('glGetSamplerParameterIiv');
16425   glGetSamplerParameterfv := dglGetProcAddress('glGetSamplerParameterfv');
16426   glGetSamplerParameterIuiv := dglGetProcAddress('glGetSamplerParameterIuiv');
16427 end;
16428
16429 procedure Read_GL_ARB_timer_query;
16430 begin
16431   glQueryCounter := dglGetProcAddress('glQueryCounter');
16432   glGetQueryObjecti64v := dglGetProcAddress('glGetQueryObjecti64v');
16433   glGetQueryObjectui64v := dglGetProcAddress('glGetQueryObjectui64v');
16434 end;
16435
16436 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
16437 begin
16438   glVertexP2ui := dglGetProcAddress('glVertexP2ui');
16439   glVertexP2uiv := dglGetProcAddress('glVertexP2uiv');
16440   glVertexP3ui := dglGetProcAddress('glVertexP3ui');
16441   glVertexP3uiv := dglGetProcAddress('glVertexP3uiv');
16442   glVertexP4ui := dglGetProcAddress('glVertexP4ui');
16443   glVertexP4uiv := dglGetProcAddress('glVertexP4uiv');
16444   glTexCoordP1ui := dglGetProcAddress('glTexCoordP1ui');
16445   glTexCoordP1uiv := dglGetProcAddress('glTexCoordP1uiv');
16446   glTexCoordP2ui := dglGetProcAddress('glTexCoordP2ui');
16447   glTexCoordP2uiv := dglGetProcAddress('glTexCoordP2uiv');
16448   glTexCoordP3ui := dglGetProcAddress('glTexCoordP3ui');
16449   glTexCoordP3uiv := dglGetProcAddress('glTexCoordP3uiv');
16450   glTexCoordP4ui := dglGetProcAddress('glTexCoordP4ui');
16451   glTexCoordP4uiv := dglGetProcAddress('glTexCoordP4uiv');
16452   glMultiTexCoordP1ui := dglGetProcAddress('glMultiTexCoordP1ui');
16453   glMultiTexCoordP1uiv := dglGetProcAddress('glMultiTexCoordP1uiv');
16454   glMultiTexCoordP2ui := dglGetProcAddress('glMultiTexCoordP2ui');
16455   glMultiTexCoordP2uiv := dglGetProcAddress('glMultiTexCoordP2uiv');
16456   glMultiTexCoordP3ui := dglGetProcAddress('glMultiTexCoordP3ui');
16457   glMultiTexCoordP3uiv := dglGetProcAddress('glMultiTexCoordP3uiv');
16458   glMultiTexCoordP4ui := dglGetProcAddress('glMultiTexCoordP4ui');
16459   glMultiTexCoordP4uiv := dglGetProcAddress('glMultiTexCoordP4uiv');
16460   glNormalP3ui := dglGetProcAddress('glNormalP3ui');
16461   glNormalP3uiv := dglGetProcAddress('glNormalP3uiv');
16462   glColorP3ui := dglGetProcAddress('glColorP3ui');
16463   glColorP3uiv := dglGetProcAddress('glColorP3uiv');
16464   glColorP4ui := dglGetProcAddress('glColorP4ui');
16465   glColorP4uiv := dglGetProcAddress('glColorP4uiv');
16466   glSecondaryColorP3ui := dglGetProcAddress('glSecondaryColorP3ui');
16467   glSecondaryColorP3uiv := dglGetProcAddress('glSecondaryColorP3uiv');
16468   glVertexAttribP1ui := dglGetProcAddress('glVertexAttribP1ui');
16469   glVertexAttribP1uiv := dglGetProcAddress('glVertexAttribP1uiv');
16470   glVertexAttribP2ui := dglGetProcAddress('glVertexAttribP2ui');
16471   glVertexAttribP2uiv := dglGetProcAddress('glVertexAttribP2uiv');
16472   glVertexAttribP3ui := dglGetProcAddress('glVertexAttribP3ui');
16473   glVertexAttribP3uiv := dglGetProcAddress('glVertexAttribP3uiv');
16474   glVertexAttribP4ui := dglGetProcAddress('glVertexAttribP4ui');
16475   glVertexAttribP4uiv := dglGetProcAddress('glVertexAttribP4uiv');
16476 end;
16477
16478 procedure Read_GL_ARB_draw_indirect;
16479 begin
16480   glDrawArraysIndirect := dglGetProcAddress('glDrawArraysIndirect');
16481   glDrawElementsIndirect := dglGetProcAddress('glDrawElementsIndirect');
16482 end;
16483
16484 procedure Read_GL_ARB_gpu_shader_fp64;
16485 begin
16486   glUniform1d := dglGetProcAddress('glUniform1d');
16487   glUniform2d := dglGetProcAddress('glUniform2d');
16488   glUniform3d := dglGetProcAddress('glUniform3d');
16489   glUniform4d := dglGetProcAddress('glUniform4d');
16490   glUniform1dv := dglGetProcAddress('glUniform1dv');
16491   glUniform2dv := dglGetProcAddress('glUniform2dv');
16492   glUniform3dv := dglGetProcAddress('glUniform3dv');
16493   glUniform4dv := dglGetProcAddress('glUniform4dv');
16494   glUniformMatrix2dv := dglGetProcAddress('glUniformMatrix2dv');
16495   glUniformMatrix3dv := dglGetProcAddress('glUniformMatrix3dv');
16496   glUniformMatrix4dv := dglGetProcAddress('glUniformMatrix4dv');
16497   glUniformMatrix2x3dv := dglGetProcAddress('glUniformMatrix2x3dv');
16498   glUniformMatrix2x4dv := dglGetProcAddress('glUniformMatrix2x4dv');
16499   glUniformMatrix3x2dv := dglGetProcAddress('glUniformMatrix3x2dv');
16500   glUniformMatrix3x4dv := dglGetProcAddress('glUniformMatrix3x4dv');
16501   glUniformMatrix4x2dv := dglGetProcAddress('glUniformMatrix4x2dv');
16502   glUniformMatrix4x3dv := dglGetProcAddress('glUniformMatrix4x3dv');
16503   glGetUniformdv := dglGetProcAddress('glGetUniformdv');
16504 end;
16505
16506 procedure Read_GL_ARB_shader_subroutine;
16507 begin
16508   glGetSubroutineUniformLocation := dglGetProcAddress('glGetSubroutineUniformLocation');
16509   glGetSubroutineIndex := dglGetProcAddress('glGetSubroutineIndex');
16510   glGetActiveSubroutineUniformiv := dglGetProcAddress('glGetActiveSubroutineUniformiv');
16511   glGetActiveSubroutineUniformName := dglGetProcAddress('glGetActiveSubroutineUniformName');
16512   glGetActiveSubroutineName := dglGetProcAddress('glGetActiveSubroutineName');
16513   glUniformSubroutinesuiv := dglGetProcAddress('glUniformSubroutinesuiv');
16514   glGetUniformSubroutineuiv := dglGetProcAddress('glGetUniformSubroutineuiv');
16515   glGetProgramStageiv := dglGetProcAddress('glGetProgramStageiv');
16516 end;
16517
16518 procedure Read_GL_ARB_tessellation_shader;
16519 begin
16520   glPatchParameteri := dglGetProcAddress('glPatchParameteri');
16521   glPatchParameterfv := dglGetProcAddress('glPatchParameterfv');
16522 end;
16523
16524 procedure Read_GL_ARB_transform_feedback2;
16525 begin
16526   glBindTransformFeedback := dglGetProcAddress('glBindTransformFeedback');
16527   glDeleteTransformFeedbacks := dglGetProcAddress('glDeleteTransformFeedbacks');
16528   glGenTransformFeedbacks := dglGetProcAddress('glGenTransformFeedbacks');
16529   glIsTransformFeedback := dglGetProcAddress('glIsTransformFeedback');
16530   glPauseTransformFeedback := dglGetProcAddress('glPauseTransformFeedback');
16531   glResumeTransformFeedback := dglGetProcAddress('glResumeTransformFeedback');
16532   glDrawTransformFeedback := dglGetProcAddress('glDrawTransformFeedback');
16533 end;
16534
16535 procedure Read_GL_ARB_transform_feedback3;
16536 begin
16537   glDrawTransformFeedbackStream := dglGetProcAddress('glDrawTransformFeedbackStream');
16538   glBeginQueryIndexed := dglGetProcAddress('glBeginQueryIndexed');
16539   glEndQueryIndexed := dglGetProcAddress('glEndQueryIndexed');
16540   glGetQueryIndexediv := dglGetProcAddress('glGetQueryIndexediv');
16541 end;
16542
16543 procedure Read_GL_ARB_ES2_compatibility;
16544 begin
16545   glReleaseShaderCompiler := dglGetProcAddress('glReleaseShaderCompiler');
16546   glShaderBinary := dglGetProcAddress('glShaderBinary');
16547   glGetShaderPrecisionFormat := dglGetProcAddress('glGetShaderPrecisionFormat');
16548   glDepthRangef := dglGetProcAddress('glDepthRangef');
16549   glClearDepthf := dglGetProcAddress('glClearDepthf');
16550 end;
16551
16552 procedure Read_GL_ARB_get_program_binary;
16553 begin
16554   glGetProgramBinary := dglGetProcAddress('glGetProgramBinary');
16555   glProgramBinary := dglGetProcAddress('glProgramBinary');
16556   glProgramParameteri := dglGetProcAddress('glProgramParameteri');
16557 end;
16558
16559 procedure Read_GL_ARB_separate_shader_objects;
16560 begin
16561   glUseProgramStages := dglGetProcAddress('glUseProgramStages');
16562   glActiveShaderProgram := dglGetProcAddress('glActiveShaderProgram');
16563   glCreateShaderProgramv := dglGetProcAddress('glCreateShaderProgramv');
16564   glBindProgramPipeline := dglGetProcAddress('glBindProgramPipeline');
16565   glDeleteProgramPipelines := dglGetProcAddress('glDeleteProgramPipelines');
16566   glGenProgramPipelines := dglGetProcAddress('glGenProgramPipelines');
16567   glIsProgramPipeline := dglGetProcAddress('glIsProgramPipeline');
16568   glGetProgramPipelineiv := dglGetProcAddress('glGetProgramPipelineiv');
16569   glProgramUniform1i := dglGetProcAddress('glProgramUniform1i');
16570   glProgramUniform1iv := dglGetProcAddress('glProgramUniform1iv');
16571   glProgramUniform1f := dglGetProcAddress('glProgramUniform1f');
16572   glProgramUniform1fv := dglGetProcAddress('glProgramUniform1fv');
16573   glProgramUniform1d := dglGetProcAddress('glProgramUniform1d');
16574   glProgramUniform1dv := dglGetProcAddress('glProgramUniform1dv');
16575   glProgramUniform1ui := dglGetProcAddress('glProgramUniform1ui');
16576   glProgramUniform1uiv := dglGetProcAddress('glProgramUniform1uiv');
16577   glProgramUniform2i := dglGetProcAddress('glProgramUniform2i');
16578   glProgramUniform2iv := dglGetProcAddress('glProgramUniform2iv');
16579   glProgramUniform2f := dglGetProcAddress('glProgramUniform2f');
16580   glProgramUniform2fv := dglGetProcAddress('glProgramUniform2fv');
16581   glProgramUniform2d := dglGetProcAddress('glProgramUniform2d');
16582   glProgramUniform2dv := dglGetProcAddress('glProgramUniform2dv');
16583   glProgramUniform2ui := dglGetProcAddress('glProgramUniform2ui');
16584   glProgramUniform2uiv := dglGetProcAddress('glProgramUniform2uiv');
16585   glProgramUniform3i := dglGetProcAddress('glProgramUniform3i');
16586   glProgramUniform3iv := dglGetProcAddress('glProgramUniform3iv');
16587   glProgramUniform3f := dglGetProcAddress('glProgramUniform3f');
16588   glProgramUniform3fv := dglGetProcAddress('glProgramUniform3fv');
16589   glProgramUniform3d := dglGetProcAddress('glProgramUniform3d');
16590   glProgramUniform3dv := dglGetProcAddress('glProgramUniform3dv');
16591   glProgramUniform3ui := dglGetProcAddress('glProgramUniform3ui');
16592   glProgramUniform3uiv := dglGetProcAddress('glProgramUniform3uiv');
16593   glProgramUniform4i := dglGetProcAddress('glProgramUniform4i');
16594   glProgramUniform4iv := dglGetProcAddress('glProgramUniform4iv');
16595   glProgramUniform4f := dglGetProcAddress('glProgramUniform4f');
16596   glProgramUniform4fv := dglGetProcAddress('glProgramUniform4fv');
16597   glProgramUniform4d := dglGetProcAddress('glProgramUniform4d');
16598   glProgramUniform4dv := dglGetProcAddress('glProgramUniform4dv');
16599   glProgramUniform4ui := dglGetProcAddress('glProgramUniform4ui');
16600   glProgramUniform4uiv := dglGetProcAddress('glProgramUniform4uiv');
16601   glProgramUniformMatrix2fv := dglGetProcAddress('glProgramUniformMatrix2fv');
16602   glProgramUniformMatrix3fv := dglGetProcAddress('glProgramUniformMatrix3fv');
16603   glProgramUniformMatrix4fv := dglGetProcAddress('glProgramUniformMatrix4fv');
16604   glProgramUniformMatrix2dv := dglGetProcAddress('glProgramUniformMatrix2dv');
16605   glProgramUniformMatrix3dv := dglGetProcAddress('glProgramUniformMatrix3dv');
16606   glProgramUniformMatrix4dv := dglGetProcAddress('glProgramUniformMatrix4dv');
16607   glProgramUniformMatrix2x3fv := dglGetProcAddress('glProgramUniformMatrix2x3fv');
16608   glProgramUniformMatrix3x2fv := dglGetProcAddress('glProgramUniformMatrix3x2fv');
16609   glProgramUniformMatrix2x4fv := dglGetProcAddress('glProgramUniformMatrix2x4fv');
16610   glProgramUniformMatrix4x2fv := dglGetProcAddress('glProgramUniformMatrix4x2fv');
16611   glProgramUniformMatrix3x4fv := dglGetProcAddress('glProgramUniformMatrix3x4fv');
16612   glProgramUniformMatrix4x3fv := dglGetProcAddress('glProgramUniformMatrix4x3fv');
16613   glProgramUniformMatrix2x3dv := dglGetProcAddress('glProgramUniformMatrix2x3dv');
16614   glProgramUniformMatrix3x2dv := dglGetProcAddress('glProgramUniformMatrix3x2dv');
16615   glProgramUniformMatrix2x4dv := dglGetProcAddress('glProgramUniformMatrix2x4dv');
16616   glProgramUniformMatrix4x2dv := dglGetProcAddress('glProgramUniformMatrix4x2dv');
16617   glProgramUniformMatrix3x4dv := dglGetProcAddress('glProgramUniformMatrix3x4dv');
16618   glProgramUniformMatrix4x3dv := dglGetProcAddress('glProgramUniformMatrix4x3dv');
16619   glValidateProgramPipeline := dglGetProcAddress('glValidateProgramPipeline');
16620   glGetProgramPipelineInfoLog := dglGetProcAddress('glGetProgramPipelineInfoLog');
16621 end;
16622
16623 procedure Read_GL_ARB_vertex_attrib_64bit;
16624 begin
16625   glVertexAttribL1d := dglGetProcAddress('glVertexAttribL1d');
16626   glVertexAttribL2d := dglGetProcAddress('glVertexAttribL2d');
16627   glVertexAttribL3d := dglGetProcAddress('glVertexAttribL3d');
16628   glVertexAttribL4d := dglGetProcAddress('glVertexAttribL4d');
16629   glVertexAttribL1dv := dglGetProcAddress('glVertexAttribL1dv');
16630   glVertexAttribL2dv := dglGetProcAddress('glVertexAttribL2dv');
16631   glVertexAttribL3dv := dglGetProcAddress('glVertexAttribL3dv');
16632   glVertexAttribL4dv := dglGetProcAddress('glVertexAttribL4dv');
16633   glVertexAttribLPointer := dglGetProcAddress('glVertexAttribLPointer');
16634   glGetVertexAttribLdv := dglGetProcAddress('glGetVertexAttribLdv');
16635 end;
16636
16637 procedure Read_GL_ARB_viewport_array;
16638 begin
16639   glViewportArrayv := dglGetProcAddress('glViewportArrayv');
16640   glViewportIndexedf := dglGetProcAddress('glViewportIndexedf');
16641   glViewportIndexedfv := dglGetProcAddress('glViewportIndexedfv');
16642   glScissorArrayv := dglGetProcAddress('glScissorArrayv');
16643   glScissorIndexed := dglGetProcAddress('glScissorIndexed');
16644   glScissorIndexedv := dglGetProcAddress('glScissorIndexedv');
16645   glDepthRangeArrayv := dglGetProcAddress('glDepthRangeArrayv');
16646   glDepthRangeIndexed := dglGetProcAddress('glDepthRangeIndexed');
16647   glGetFloati_v := dglGetProcAddress('glGetFloati_v');
16648   glGetDoublei_v := dglGetProcAddress('glGetDoublei_v');
16649 end;
16650
16651 // GL 4.2
16652
16653 procedure Read_GL_ARB_base_instance;
16654 begin
16655 glDrawArraysInstancedBaseInstance := dglGetProcAddress('glDrawArraysInstancedBaseInstance');
16656 glDrawElementsInstancedBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseInstance');
16657 glDrawElementsInstancedBaseVertexBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseVertexBaseInstance');
16658 end;
16659
16660 procedure Read_GL_ARB_transform_feedback_instanced;
16661 begin
16662 glDrawTransformFeedbackInstanced := dglGetProcAddress('glDrawTransformFeedbackInstanced');
16663 glDrawTransformFeedbackStreamInstanced := dglGetProcAddress('glDrawTransformFeedbackStreamInstanced');
16664 end;
16665
16666 procedure Read_GL_ARB_internalformat_query;
16667 begin
16668 glGetInternalformativ := dglGetProcAddress('glGetInternalformativ');
16669 end;
16670
16671 procedure Read_GL_ARB_shader_atomic_counters;
16672 begin
16673 glGetActiveAtomicCounterBufferiv := dglGetProcAddress('glGetActiveAtomicCounterBufferiv');
16674 end;
16675
16676 procedure Read_GL_ARB_shader_image_load_store;
16677 begin
16678 glBindImageTexture := dglGetProcAddress('glBindImageTexture');
16679 glMemoryBarrier := dglGetProcAddress('glMemoryBarrier');
16680 end;
16681
16682 procedure Read_GL_ARB_texture_storage;
16683 begin
16684 glTexStorage1D := dglGetProcAddress('glTexStorage1D');
16685 glTexStorage2D := dglGetProcAddress('glTexStorage2D');
16686 glTexStorage3D := dglGetProcAddress('glTexStorage3D');
16687 glTextureStorage1DEXT := dglGetProcAddress('glTextureStorage1DEXT');
16688 glTextureStorage2DEXT := dglGetProcAddress('glTextureStorage2DEXT');
16689 glTextureStorage3DEXT := dglGetProcAddress('glTextureStorage3DEXT');
16690 end;
16691
16692
16693 // GL 4.3
16694 procedure Read_GL_KHR_debug;
16695 begin
16696   glDebugMessageControl := dglGetProcAddress('glDebugMessageControl');
16697   glDebugMessageInsert := dglGetProcAddress('glDebugMessageInsert');
16698   glDebugMessageCallback := dglGetProcAddress('glDebugMessageCallback');
16699   glGetDebugMessageLog := dglGetProcAddress('glGetDebugMessageLog');
16700   glPushDebugGroup := dglGetProcAddress('glPushDebugGroup');
16701   glPopDebugGroup := dglGetProcAddress('glPopDebugGroup');
16702   glObjectLabel := dglGetProcAddress('glObjectLabel');
16703   glGetObjectLabel := dglGetProcAddress('glGetObjectLabel');
16704   glObjectPtrLabel := dglGetProcAddress('glObjectPtrLabel');
16705   glGetObjectPtrLabel := dglGetProcAddress('glGetObjectPtrLabel');
16706 end;
16707
16708 procedure Read_GL_ARB_clear_buffer_object;
16709 begin
16710   glClearBufferData := dglGetProcAddress('glClearBufferData');
16711   glClearBufferSubData := dglGetProcAddress('glClearBufferSubData');
16712   glClearNamedBufferDataEXT := dglGetProcAddress('glClearNamedBufferDataEXT');
16713   glClearNamedBufferSubDataEXT := dglGetProcAddress('glClearNamedBufferSubDataEXT');
16714 end;
16715
16716 procedure Read_GL_ARB_compute_shader;
16717 begin
16718   glDispatchCompute := dglGetProcAddress('glDispatchCompute');
16719   glDispatchComputeIndirect := dglGetProcAddress('glDispatchComputeIndirect');
16720 end;
16721
16722 procedure Read_GL_ARB_copy_image;
16723 begin
16724   glCopyImageSubData := dglGetProcAddress('glCopyImageSubData');
16725 end;
16726
16727 procedure Read_GL_ARB_framebuffer_no_attachments;
16728 begin
16729   glFramebufferParameteri := dglGetProcAddress('glFramebufferParameteri');
16730   glGetFramebufferParameteriv := dglGetProcAddress('glGetFramebufferParameteriv');
16731   glNamedFramebufferParameteriEXT := dglGetProcAddress('glNamedFramebufferParameteriEXT');
16732   glGetNamedFramebufferParameterivEXT := dglGetProcAddress('glGetNamedFramebufferParameterivEXT');
16733 end;
16734
16735 procedure Read_GL_ARB_internalformat_query2;
16736 begin
16737   glGetInternalformati64v := dglGetProcAddress('glGetInternalformati64v');;
16738 end;
16739
16740 procedure Read_GL_ARB_invalidate_subdata;
16741 begin
16742   glInvalidateTexSubImage := dglGetProcAddress('glInvalidateTexSubImage');
16743   glInvalidateTexImage := dglGetProcAddress('glInvalidateTexImage');
16744   glInvalidateBufferSubData := dglGetProcAddress('glInvalidateBufferSubData');
16745   glInvalidateBufferData := dglGetProcAddress('glInvalidateBufferData');
16746   glInvalidateFramebuffer := dglGetProcAddress('glInvalidateFramebuffer');
16747   glInvalidateSubFramebuffer := dglGetProcAddress('glInvalidateSubFramebuffer');
16748 end;
16749
16750 procedure Read_GL_ARB_multi_draw_indirect;
16751 begin
16752   glMultiDrawArraysIndirect := dglGetProcAddress('glMultiDrawArraysIndirect');
16753   glMultiDrawElementsIndirect := dglGetProcAddress('glMultiDrawElementsIndirect');
16754 end;
16755
16756 procedure Read_GL_ARB_program_interface_query;
16757 begin
16758   glGetProgramInterfaceiv := dglGetProcAddress('glGetProgramInterfaceiv');
16759   glGetProgramResourceIndex := dglGetProcAddress('glGetProgramResourceIndex');
16760   glGetProgramResourceName := dglGetProcAddress('glGetProgramResourceName');
16761   glGetProgramResourceiv := dglGetProcAddress('glGetProgramResourceiv');
16762   glGetProgramResourceLocation := dglGetProcAddress('glGetProgramResourceLocation');
16763   glGetProgramResourceLocationIndex := dglGetProcAddress('glGetProgramResourceLocationIndex');
16764 end;
16765
16766 procedure Read_GL_ARB_shader_storage_buffer_object;
16767 begin
16768   glShaderStorageBlockBinding := dglGetProcAddress('glShaderStorageBlockBinding');
16769 end;
16770
16771 procedure Read_GL_ARB_texture_buffer_range;
16772 begin
16773   glTexBufferRange := dglGetProcAddress('glTexBufferRange');
16774   glTextureBufferRangeEXT := dglGetProcAddress('glTextureBufferRangeEXT');
16775 end;
16776
16777 procedure Read_GL_ARB_texture_storage_multisample;
16778 begin
16779   glTexStorage2DMultisample := dglGetProcAddress('glTexStorage2DMultisample');
16780   glTexStorage3DMultisample := dglGetProcAddress('glTexStorage3DMultisample');
16781   glTextureStorage2DMultisampleEXT := dglGetProcAddress('glTextureStorage2DMultisampleEXT');
16782   glTextureStorage3DMultisampleEXT := dglGetProcAddress('glTextureStorage3DMultisampleEXT');
16783 end;
16784
16785 procedure Read_GL_ARB_texture_view;
16786 begin
16787   glTextureView := dglGetProcAddress('glTextureView');
16788 end;
16789
16790 procedure Read_GL_ARB_vertex_attrib_binding;
16791 begin
16792   glBindVertexBuffer := dglGetProcAddress('glBindVertexBuffer');
16793   glVertexAttribFormat := dglGetProcAddress('glVertexAttribFormat');
16794   glVertexAttribIFormat := dglGetProcAddress('glVertexAttribIFormat');
16795   glVertexAttribLFormat := dglGetProcAddress('glVertexAttribLFormat');
16796   glVertexAttribBinding := dglGetProcAddress('glVertexAttribBinding');
16797   glVertexBindingDivisor := dglGetProcAddress('glVertexBindingDivisor');
16798   glVertexArrayBindVertexBufferEXT := dglGetProcAddress('glVertexArrayBindVertexBufferEXT');
16799   glVertexArrayVertexAttribFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribFormatEXT');
16800   glVertexArrayVertexAttribIFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribIFormatEXT');
16801   glVertexArrayVertexAttribLFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribLFormatEXT');
16802   glVertexArrayVertexAttribBindingEXT := dglGetProcAddress('glVertexArrayVertexAttribBindingEXT');
16803   glVertexArrayVertexBindingDivisorEXT := dglGetProcAddress('glVertexArrayVertexBindingDivisorEXT');
16804 end;
16805
16806 procedure Read_GL_4_4;
16807 begin
16808   glBufferStorage     := dglGetProcAddress('glBufferStorage');
16809   glClearTexImage     := dglGetProcAddress('glClearTexImage');
16810   glClearTexSubImage  := dglGetProcAddress('glClearTexSubImage');
16811   glBindBuffersBase   := dglGetProcAddress('glBindBuffersBase');
16812   glBindBuffersRange  := dglGetProcAddress('glBindBuffersRange');
16813   glBindTextures      := dglGetProcAddress('glBindTextures');
16814   glBindSamplers      := dglGetProcAddress('glBindSamplers');
16815   glBindImageTextures := dglGetProcAddress('glBindImageTextures');
16816   glBindVertexBuffers := dglGetProcAddress('glBindVertexBuffers');
16817 end;
16818
16819
16820 procedure Read_GL_NV_path_rendering;
16821 begin
16822   glGenPathsNV := dglGetProcAddress('glGenPathsNV');
16823   glDeletePathsNV := dglGetProcAddress('glDeletePathsNV');
16824   glIsPathNV := dglGetProcAddress('glIsPathNV');
16825   glPathCommandsNV := dglGetProcAddress('glPathCommandsNV');
16826   glPathCoordsNV := dglGetProcAddress('glPathCoordsNV');
16827   glPathSubCommandsNV := dglGetProcAddress('glPathSubCommandsNV');
16828   glPathSubCoordsNV := dglGetProcAddress('glPathSubCoordsNV');
16829   glPathStringNV := dglGetProcAddress('glPathStringNV');
16830   glPathGlyphsNV := dglGetProcAddress('glPathGlyphsNV');
16831   glPathGlyphRangeNV := dglGetProcAddress('glPathGlyphRangeNV');
16832   glWeightPathsNV := dglGetProcAddress('glWeightPathsNV');
16833   glCopyPathNV := dglGetProcAddress('glCopyPathNV');
16834   glInterpolatePathsNV := dglGetProcAddress('glInterpolatePathsNV');
16835   glTransformPathNV := dglGetProcAddress('glTransformPathNV');
16836   glPathParameterivNV := dglGetProcAddress('glPathParameterivNV');
16837   glPathParameteriNV := dglGetProcAddress('glPathParameteriNV');
16838   glPathParameterfvNV := dglGetProcAddress('glPathParameterfvNV');
16839   glPathParameterfNV := dglGetProcAddress('glPathParameterfNV');
16840   glPathDashArrayNV := dglGetProcAddress('glPathDashArrayNV');
16841   glPathStencilFuncNV := dglGetProcAddress('glPathStencilFuncNV');
16842   glPathStencilDepthOffsetNV := dglGetProcAddress('glPathStencilDepthOffsetNV');
16843   glStencilFillPathNV := dglGetProcAddress('glStencilFillPathNV');
16844   glStencilStrokePathNV := dglGetProcAddress('glStencilStrokePathNV');
16845   glStencilFillPathInstancedNV := dglGetProcAddress('glStencilFillPathInstancedNV');
16846   glStencilStrokePathInstancedNV := dglGetProcAddress('glStencilStrokePathInstancedNV');
16847   glPathCoverDepthFuncNV := dglGetProcAddress('glPathCoverDepthFuncNV');
16848   glPathColorGenNV := dglGetProcAddress('glPathColorGenNV');
16849   glPathTexGenNV := dglGetProcAddress('glPathTexGenNV');
16850   glPathFogGenNV := dglGetProcAddress('glPathFogGenNV');
16851   glCoverFillPathNV := dglGetProcAddress('glCoverFillPathNV');
16852   glCoverStrokePathNV := dglGetProcAddress('glCoverStrokePathNV');
16853   glCoverFillPathInstancedNV := dglGetProcAddress('glCoverFillPathInstancedNV');
16854   glCoverStrokePathInstancedNV := dglGetProcAddress('glCoverStrokePathInstancedNV');
16855   glGetPathParameterivNV := dglGetProcAddress('glGetPathParameterivNV');
16856   glGetPathParameterfvNV := dglGetProcAddress('glGetPathParameterfvNV');
16857   glGetPathCommandsNV := dglGetProcAddress('glGetPathCommandsNV');
16858   glGetPathCoordsNV := dglGetProcAddress('glGetPathCoordsNV');
16859   glGetPathDashArrayNV := dglGetProcAddress('glGetPathDashArrayNV');
16860   glGetPathMetricsNV := dglGetProcAddress('glGetPathMetricsNV');
16861   glGetPathMetricRangeNV := dglGetProcAddress('glGetPathMetricRangeNV');
16862   glGetPathSpacingNV := dglGetProcAddress('glGetPathSpacingNV');
16863   glGetPathColorGenivNV := dglGetProcAddress('glGetPathColorGenivNV');
16864   glGetPathColorGenfvNV := dglGetProcAddress('glGetPathColorGenfvNV');
16865   glGetPathTexGenivNV := dglGetProcAddress('glGetPathTexGenivNV');
16866   glGetPathTexGenfvNV := dglGetProcAddress('glGetPathTexGenfvNV');
16867   glIsPointInFillPathNV := dglGetProcAddress('glIsPointInFillPathNV');
16868   glIsPointInStrokePathNV := dglGetProcAddress('glIsPointInStrokePathNV');
16869   glGetPathLengthNV := dglGetProcAddress('glGetPathLengthNV');
16870   glPointAlongPathNV := dglGetProcAddress('glPointAlongPathNV');
16871 end;
16872
16873 procedure Read_GL_AMD_stencil_operation_extended;
16874 begin
16875         glStencilOpValueAMD := dglGetProcAddress('glStencilOpValueAMD');
16876 end;
16877
16878 procedure Read_GL_NV_bindless_texture;
16879 begin
16880   glGetTextureHandleNV := dglGetProcAddress('glGetTextureHandleNV');
16881   glGetTextureSamplerHandleNV := dglGetProcAddress('glGetTextureSamplerHandleNV');
16882   glMakeTextureHandleResidentNV := dglGetProcAddress('glMakeTextureHandleResidentNV');
16883   glMakeTextureHandleNonResidentNV := dglGetProcAddress('glMakeTextureHandleNonResidentNV');
16884   glGetImageHandleNV := dglGetProcAddress('glGetImageHandleNV');
16885   glMakeImageHandleResidentNV := dglGetProcAddress('glMakeImageHandleResidentNV');
16886   glMakeImageHandleNonResidentNV := dglGetProcAddress('glMakeImageHandleNonResidentNV');
16887   glUniformHandleui64NV := dglGetProcAddress('glUniformHandleui64NV');
16888   glUniformHandleui64vNV := dglGetProcAddress('glUniformHandleui64vNV');
16889   glProgramUniformHandleui64NV := dglGetProcAddress('glProgramUniformHandleui64NV');
16890   glProgramUniformHandleui64vNV := dglGetProcAddress('glProgramUniformHandleui64vNV');
16891   glIsTextureHandleResidentNV := dglGetProcAddress('glIsTextureHandleResidentNV');
16892   glIsImageHandleResidentNV := dglGetProcAddress('glIsImageHandleResidentNV');
16893 end;
16894
16895 procedure Read_GL_ARB_cl_event;
16896 begin
16897   glCreateSyncFromCLeventARB := dglGetProcAddress('glCreateSyncFromCLeventARB');
16898 end;
16899
16900 procedure Read_GL_ARB_debug_output;
16901 begin
16902   glDebugMessageControlARB := dglGetProcAddress('glDebugMessageControlARB');
16903   glDebugMessageInsertARB := dglGetProcAddress('glDebugMessageInsertARB');
16904   glDebugMessageCallbackARB := dglGetProcAddress('glDebugMessageCallbackARB');
16905   glGetDebugMessageLogARB := dglGetProcAddress('glGetDebugMessageLogARB');
16906 end;
16907
16908 procedure Read_GL_ARB_robustness;
16909 begin
16910   glGetGraphicsResetStatusARB := dglGetProcAddress('glGetGraphicsResetStatusARB');
16911   glGetnMapdvARB := dglGetProcAddress('glGetnMapdvARB');
16912   glGetnMapfvARB := dglGetProcAddress('glGetnMapfvARB');
16913   glGetnMapivARB := dglGetProcAddress('glGetnMapivARB');
16914   glGetnPixelMapfvARB := dglGetProcAddress('glGetnPixelMapfvARB');
16915   glGetnPixelMapuivARB := dglGetProcAddress('glGetnPixelMapuivARB');
16916   glGetnPixelMapusvARB := dglGetProcAddress('glGetnPixelMapusvARB');
16917   glGetnPolygonStippleARB := dglGetProcAddress('glGetnPolygonStippleARB');
16918   glGetnColorTableARB := dglGetProcAddress('glGetnColorTableARB');
16919   glGetnConvolutionFilterARB := dglGetProcAddress('glGetnConvolutionFilterARB');
16920   glGetnSeparableFilterARB := dglGetProcAddress('glGetnSeparableFilterARB');
16921   glGetnHistogramARB := dglGetProcAddress('glGetnHistogramARB');
16922   glGetnMinmaxARB := dglGetProcAddress('glGetnMinmaxARB');
16923   glGetnTexImageARB := dglGetProcAddress('glGetnTexImageARB');
16924   glReadnPixelsARB := dglGetProcAddress('glReadnPixelsARB');
16925   glGetnCompressedTexImageARB := dglGetProcAddress('glGetnCompressedTexImageARB');
16926   glGetnUniformfvARB := dglGetProcAddress('glGetnUniformfvARB');
16927   glGetnUniformivARB := dglGetProcAddress('glGetnUniformivARB');
16928   glGetnUniformuivARB := dglGetProcAddress('glGetnUniformuivARB');
16929   glGetnUniformdvARB := dglGetProcAddress('glGetnUniformdvARB');
16930 end;
16931   
16932 procedure Read_GL_ATI_draw_buffers;
16933 begin
16934   glDrawBuffersATI := dglGetProcAddress('glDrawBuffersATI');
16935 end;
16936
16937 procedure Read_GL_ATI_element_array;
16938 begin
16939   glElementPointerATI := dglGetProcAddress('glElementPointerATI');
16940   glDrawElementArrayATI := dglGetProcAddress('glDrawElementArrayATI');
16941   glDrawRangeElementArrayATI := dglGetProcAddress('glDrawRangeElementArrayATI');
16942 end;
16943
16944 procedure Read_GL_ATI_envmap_bumpmap;
16945 begin
16946   glTexBumpParameterivATI := dglGetProcAddress('glTexBumpParameterivATI');
16947   glTexBumpParameterfvATI := dglGetProcAddress('glTexBumpParameterfvATI');
16948   glGetTexBumpParameterivATI := dglGetProcAddress('glGetTexBumpParameterivATI');
16949   glGetTexBumpParameterfvATI := dglGetProcAddress('glGetTexBumpParameterfvATI');
16950 end;
16951
16952 procedure Read_GL_ATI_fragment_shader;
16953 begin
16954   glGenFragmentShadersATI := dglGetProcAddress('glGenFragmentShadersATI');
16955   glBindFragmentShaderATI := dglGetProcAddress('glBindFragmentShaderATI');
16956   glDeleteFragmentShaderATI := dglGetProcAddress('glDeleteFragmentShaderATI');
16957   glBeginFragmentShaderATI := dglGetProcAddress('glBeginFragmentShaderATI');
16958   glEndFragmentShaderATI := dglGetProcAddress('glEndFragmentShaderATI');
16959   glPassTexCoordATI := dglGetProcAddress('glPassTexCoordATI');
16960   glSampleMapATI := dglGetProcAddress('glSampleMapATI');
16961   glColorFragmentOp1ATI := dglGetProcAddress('glColorFragmentOp1ATI');
16962   glColorFragmentOp2ATI := dglGetProcAddress('glColorFragmentOp2ATI');
16963   glColorFragmentOp3ATI := dglGetProcAddress('glColorFragmentOp3ATI');
16964   glAlphaFragmentOp1ATI := dglGetProcAddress('glAlphaFragmentOp1ATI');
16965   glAlphaFragmentOp2ATI := dglGetProcAddress('glAlphaFragmentOp2ATI');
16966   glAlphaFragmentOp3ATI := dglGetProcAddress('glAlphaFragmentOp3ATI');
16967   glSetFragmentShaderConstantATI := dglGetProcAddress('glSetFragmentShaderConstantATI');
16968 end;
16969
16970 procedure Read_GL_ATI_map_object_buffer;
16971 begin
16972   glMapObjectBufferATI := dglGetProcAddress('glMapObjectBufferATI');
16973   glUnmapObjectBufferATI := dglGetProcAddress('glUnmapObjectBufferATI');
16974 end;
16975
16976 procedure Read_GL_ATI_pn_triangles;
16977 begin
16978   glPNTrianglesiATI := dglGetProcAddress('glPNTrianglesiATI');
16979   glPNTrianglesfATI := dglGetProcAddress('glPNTrianglesfATI');
16980 end;
16981
16982 procedure Read_GL_ATI_separate_stencil;
16983 begin
16984   glStencilOpSeparateATI := dglGetProcAddress('glStencilOpSeparateATI');
16985   glStencilFuncSeparateATI := dglGetProcAddress('glStencilFuncSeparateATI');
16986 end;
16987
16988 procedure Read_GL_ATI_vertex_array_object;
16989 begin
16990   glNewObjectBufferATI := dglGetProcAddress('glNewObjectBufferATI');
16991   glIsObjectBufferATI := dglGetProcAddress('glIsObjectBufferATI');
16992   glUpdateObjectBufferATI := dglGetProcAddress('glUpdateObjectBufferATI');
16993   glGetObjectBufferfvATI := dglGetProcAddress('glGetObjectBufferfvATI');
16994   glGetObjectBufferivATI := dglGetProcAddress('glGetObjectBufferivATI');
16995   glFreeObjectBufferATI := dglGetProcAddress('glFreeObjectBufferATI');
16996   glArrayObjectATI := dglGetProcAddress('glArrayObjectATI');
16997   glGetArrayObjectfvATI := dglGetProcAddress('glGetArrayObjectfvATI');
16998   glGetArrayObjectivATI := dglGetProcAddress('glGetArrayObjectivATI');
16999   glVariantArrayObjectATI := dglGetProcAddress('glVariantArrayObjectATI');
17000   glGetVariantArrayObjectfvATI := dglGetProcAddress('glGetVariantArrayObjectfvATI');
17001   glGetVariantArrayObjectivATI := dglGetProcAddress('glGetVariantArrayObjectivATI');
17002
17003 end;
17004
17005 procedure Read_GL_ATI_vertex_attrib_array_object;
17006 begin
17007   glVertexAttribArrayObjectATI := dglGetProcAddress('glVertexAttribArrayObjectATI');
17008   glGetVertexAttribArrayObjectfvATI := dglGetProcAddress('glGetVertexAttribArrayObjectfvATI');
17009   glGetVertexAttribArrayObjectivATI := dglGetProcAddress('glGetVertexAttribArrayObjectivATI');
17010 end;
17011
17012 procedure Read_GL_ATI_vertex_streams;
17013 begin
17014   glVertexStream1sATI := dglGetProcAddress('glVertexStream1sATI');
17015   glVertexStream1svATI := dglGetProcAddress('glVertexStream1svATI');
17016   glVertexStream1iATI := dglGetProcAddress('glVertexStream1iATI');
17017   glVertexStream1ivATI := dglGetProcAddress('glVertexStream1ivATI');
17018   glVertexStream1fATI := dglGetProcAddress('glVertexStream1fATI');
17019   glVertexStream1fvATI := dglGetProcAddress('glVertexStream1fvATI');
17020   glVertexStream1dATI := dglGetProcAddress('glVertexStream1dATI');
17021   glVertexStream1dvATI := dglGetProcAddress('glVertexStream1dvATI');
17022   glVertexStream2sATI := dglGetProcAddress('glVertexStream2sATI');
17023   glVertexStream2svATI := dglGetProcAddress('glVertexStream2svATI');
17024   glVertexStream2iATI := dglGetProcAddress('glVertexStream2iATI');
17025   glVertexStream2ivATI := dglGetProcAddress('glVertexStream2ivATI');
17026   glVertexStream2fATI := dglGetProcAddress('glVertexStream2fATI');
17027   glVertexStream2fvATI := dglGetProcAddress('glVertexStream2fvATI');
17028   glVertexStream2dATI := dglGetProcAddress('glVertexStream2dATI');
17029   glVertexStream2dvATI := dglGetProcAddress('glVertexStream2dvATI');
17030   glVertexStream3sATI := dglGetProcAddress('glVertexStream3sATI');
17031   glVertexStream3svATI := dglGetProcAddress('glVertexStream3svATI');
17032   glVertexStream3iATI := dglGetProcAddress('glVertexStream3iATI');
17033   glVertexStream3ivATI := dglGetProcAddress('glVertexStream3ivATI');
17034   glVertexStream3fATI := dglGetProcAddress('glVertexStream3fATI');
17035   glVertexStream3fvATI := dglGetProcAddress('glVertexStream3fvATI');
17036   glVertexStream3dATI := dglGetProcAddress('glVertexStream3dATI');
17037   glVertexStream3dvATI := dglGetProcAddress('glVertexStream3dvATI');
17038   glVertexStream4sATI := dglGetProcAddress('glVertexStream4sATI');
17039   glVertexStream4svATI := dglGetProcAddress('glVertexStream4svATI');
17040   glVertexStream4iATI := dglGetProcAddress('glVertexStream4iATI');
17041   glVertexStream4ivATI := dglGetProcAddress('glVertexStream4ivATI');
17042   glVertexStream4fATI := dglGetProcAddress('glVertexStream4fATI');
17043   glVertexStream4fvATI := dglGetProcAddress('glVertexStream4fvATI');
17044   glVertexStream4dATI := dglGetProcAddress('glVertexStream4dATI');
17045   glVertexStream4dvATI := dglGetProcAddress('glVertexStream4dvATI');
17046   glNormalStream3bATI := dglGetProcAddress('glNormalStream3bATI');
17047   glNormalStream3bvATI := dglGetProcAddress('glNormalStream3bvATI');
17048   glNormalStream3sATI := dglGetProcAddress('glNormalStream3sATI');
17049   glNormalStream3svATI := dglGetProcAddress('glNormalStream3svATI');
17050   glNormalStream3iATI := dglGetProcAddress('glNormalStream3iATI');
17051   glNormalStream3ivATI := dglGetProcAddress('glNormalStream3ivATI');
17052   glNormalStream3fATI := dglGetProcAddress('glNormalStream3fATI');
17053   glNormalStream3fvATI := dglGetProcAddress('glNormalStream3fvATI');
17054   glNormalStream3dATI := dglGetProcAddress('glNormalStream3dATI');
17055   glNormalStream3dvATI := dglGetProcAddress('glNormalStream3dvATI');
17056   glClientActiveVertexStreamATI := dglGetProcAddress('glClientActiveVertexStreamATI');
17057   glVertexBlendEnviATI := dglGetProcAddress('glVertexBlendEnviATI');
17058   glVertexBlendEnvfATI := dglGetProcAddress('glVertexBlendEnvfATI');
17059 end;
17060
17061 procedure Read_GL_AMD_performance_monitor;
17062 begin
17063   glGetPerfMonitorGroupsAMD := dglGetProcAddress('glGetPerfMonitorGroupsAMD');
17064   glGetPerfMonitorCountersAMD := dglGetProcAddress('glGetPerfMonitorCountersAMD');
17065   glGetPerfMonitorGroupStringAMD := dglGetProcAddress('glGetPerfMonitorGroupStringAMD');
17066   glGetPerfMonitorCounterStringAMD := dglGetProcAddress('glGetPerfMonitorCounterStringAMD');
17067   glGetPerfMonitorCounterInfoAMD := dglGetProcAddress('glGetPerfMonitorCounterInfoAMD');
17068   glGenPerfMonitorsAMD := dglGetProcAddress('glGenPerfMonitorsAMD');
17069   glDeletePerfMonitorsAMD := dglGetProcAddress('glDeletePerfMonitorsAMD');
17070   glSelectPerfMonitorCountersAMD := dglGetProcAddress('glSelectPerfMonitorCountersAMD');
17071   glBeginPerfMonitorAMD := dglGetProcAddress('glBeginPerfMonitorAMD');
17072   glEndPerfMonitorAMD := dglGetProcAddress('glEndPerfMonitorAMD');
17073   glGetPerfMonitorCounterDataAMD := dglGetProcAddress('glGetPerfMonitorCounterDataAMD');
17074 end;
17075
17076 procedure Read_GL_AMD_vertex_shader_tesselator;
17077 begin
17078   glTessellationFactorAMD := dglGetProcAddress('glTessellationFactorAMD');
17079   glTessellationModeAMD := dglGetProcAddress('glTessellationModeAMD');
17080 end;
17081
17082 procedure Read_GL_AMD_draw_buffers_blend;
17083 begin
17084   glBlendFuncIndexedAMD := dglGetProcAddress('glBlendFuncIndexedAMD');
17085   glBlendFuncSeparateIndexedAMD := dglGetProcAddress('glBlendFuncSeparateIndexedAMD');
17086   glBlendEquationIndexedAMD := dglGetProcAddress('glBlendEquationIndexedAMD');
17087   glBlendEquationSeparateIndexedAMD := dglGetProcAddress('glBlendEquationSeparateIndexedAMD');
17088 end;
17089
17090 procedure Read_GL_AMD_name_gen_delete;
17091 begin
17092   glGenNamesAMD := dglGetProcAddress('glGenNamesAMD');
17093   glDeleteNamesAMD := dglGetProcAddress('glDeleteNamesAMD');
17094   glIsNameAMD := dglGetProcAddress('glIsNameAMD');
17095 end;
17096
17097 procedure Read_GL_AMD_debug_output;
17098 begin
17099   glDebugMessageEnableAMD := dglGetProcAddress('glDebugMessageEnableAMD');
17100   glDebugMessageInsertAMD := dglGetProcAddress('glDebugMessageInsertAMD');
17101   glDebugMessageCallbackAMD := dglGetProcAddress('glDebugMessageCallbackAMD');
17102   glGetDebugMessageLogAMD := dglGetProcAddress('glGetDebugMessageLogAMD');
17103 end;
17104  
17105 procedure Read_GL_EXT_blend_color;
17106 begin
17107   glBlendColorEXT := dglGetProcAddress('glBlendColorEXT');
17108 end;
17109
17110 procedure Read_GL_EXT_blend_func_separate;
17111 begin
17112   glBlendFuncSeparateEXT := dglGetProcAddress('glBlendFuncSeparateEXT');
17113 end;
17114
17115 procedure Read_GL_EXT_blend_minmax;
17116 begin
17117   glBlendEquationEXT := dglGetProcAddress('glBlendEquationEXT');
17118 end;
17119
17120 procedure Read_GL_EXT_color_subtable;
17121 begin
17122   glColorSubTableEXT := dglGetProcAddress('glColorSubTableEXT');
17123   glCopyColorSubTableEXT := dglGetProcAddress('glCopyColorSubTableEXT');
17124 end;
17125
17126 procedure Read_GL_EXT_compiled_vertex_array;
17127 begin
17128   glLockArraysEXT := dglGetProcAddress('glLockArraysEXT');
17129   glUnlockArraysEXT := dglGetProcAddress('glUnlockArraysEXT');
17130 end;
17131
17132 procedure Read_GL_EXT_convolution;
17133 begin
17134   glConvolutionFilter1DEXT := dglGetProcAddress('glConvolutionFilter1DEXT');
17135   glConvolutionFilter2DEXT := dglGetProcAddress('glConvolutionFilter2DEXT');
17136   glConvolutionParameterfEXT := dglGetProcAddress('glConvolutionParameterfEXT');
17137   glConvolutionParameterfvEXT := dglGetProcAddress('glConvolutionParameterfvEXT');
17138   glConvolutionParameteriEXT := dglGetProcAddress('glConvolutionParameteriEXT');
17139   glConvolutionParameterivEXT := dglGetProcAddress('glConvolutionParameterivEXT');
17140   glCopyConvolutionFilter1DEXT := dglGetProcAddress('glCopyConvolutionFilter1DEXT');
17141   glCopyConvolutionFilter2DEXT := dglGetProcAddress('glCopyConvolutionFilter2DEXT');
17142   glGetConvolutionFilterEXT := dglGetProcAddress('glGetConvolutionFilterEXT');
17143   glGetConvolutionParameterfvEXT := dglGetProcAddress('glGetConvolutionParameterfvEXT');
17144   glGetConvolutionParameterivEXT := dglGetProcAddress('glGetConvolutionParameterivEXT');
17145   glGetSeparableFilterEXT := dglGetProcAddress('glGetSeparableFilterEXT');
17146   glSeparableFilter2DEXT := dglGetProcAddress('glSeparableFilter2DEXT');
17147 end;
17148
17149 procedure Read_GL_EXT_coordinate_frame;
17150 begin
17151   glTangent3bEXT := dglGetProcAddress('glTangent3bEXT');
17152   glTangent3bvEXT := dglGetProcAddress('glTangent3bvEXT');
17153   glTangent3dEXT := dglGetProcAddress('glTangent3dEXT');
17154   glTangent3dvEXT := dglGetProcAddress('glTangent3dvEXT');
17155   glTangent3fEXT := dglGetProcAddress('glTangent3fEXT');
17156   glTangent3fvEXT := dglGetProcAddress('glTangent3fvEXT');
17157   glTangent3iEXT := dglGetProcAddress('glTangent3iEXT');
17158   glTangent3ivEXT := dglGetProcAddress('glTangent3ivEXT');
17159   glTangent3sEXT := dglGetProcAddress('glTangent3sEXT');
17160   glTangent3svEXT := dglGetProcAddress('glTangent3svEXT');
17161   glBinormal3bEXT := dglGetProcAddress('glBinormal3bEXT');
17162   glBinormal3bvEXT := dglGetProcAddress('glBinormal3bvEXT');
17163   glBinormal3dEXT := dglGetProcAddress('glBinormal3dEXT');
17164   glBinormal3dvEXT := dglGetProcAddress('glBinormal3dvEXT');
17165   glBinormal3fEXT := dglGetProcAddress('glBinormal3fEXT');
17166   glBinormal3fvEXT := dglGetProcAddress('glBinormal3fvEXT');
17167   glBinormal3iEXT := dglGetProcAddress('glBinormal3iEXT');
17168   glBinormal3ivEXT := dglGetProcAddress('glBinormal3ivEXT');
17169   glBinormal3sEXT := dglGetProcAddress('glBinormal3sEXT');
17170   glBinormal3svEXT := dglGetProcAddress('glBinormal3svEXT');
17171   glTangentPointerEXT := dglGetProcAddress('glTangentPointerEXT');
17172   glBinormalPointerEXT := dglGetProcAddress('glBinormalPointerEXT');
17173 end;
17174
17175 procedure Read_GL_EXT_copy_texture;
17176 begin
17177   glCopyTexImage1DEXT := dglGetProcAddress('glCopyTexImage1DEXT');
17178   glCopyTexImage2DEXT := dglGetProcAddress('glCopyTexImage2DEXT');
17179   glCopyTexSubImage1DEXT := dglGetProcAddress('glCopyTexSubImage1DEXT');
17180   glCopyTexSubImage2DEXT := dglGetProcAddress('glCopyTexSubImage2DEXT');
17181   glCopyTexSubImage3DEXT := dglGetProcAddress('glCopyTexSubImage3DEXT');
17182 end;
17183
17184 procedure Read_GL_EXT_cull_vertex;
17185 begin
17186   glCullParameterdvEXT := dglGetProcAddress('glCullParameterdvEXT');
17187   glCullParameterfvEXT := dglGetProcAddress('glCullParameterfvEXT');
17188 end;
17189
17190 procedure Read_GL_EXT_draw_range_elements;
17191 begin
17192   glDrawRangeElementsEXT := dglGetProcAddress('glDrawRangeElementsEXT');
17193 end;
17194
17195 procedure Read_GL_EXT_fog_coord;
17196 begin
17197   glFogCoordfEXT := dglGetProcAddress('glFogCoordfEXT');
17198   glFogCoordfvEXT := dglGetProcAddress('glFogCoordfvEXT');
17199   glFogCoorddEXT := dglGetProcAddress('glFogCoorddEXT');
17200   glFogCoorddvEXT := dglGetProcAddress('glFogCoorddvEXT');
17201   glFogCoordPointerEXT := dglGetProcAddress('glFogCoordPointerEXT');
17202 end;
17203
17204 procedure Read_GL_EXT_framebuffer_object;
17205 begin
17206   glIsRenderbufferEXT := dglGetProcAddress('glIsRenderbufferEXT');
17207   glBindRenderbufferEXT := dglGetProcAddress('glBindRenderbufferEXT');
17208   glDeleteRenderbuffersEXT := dglGetProcAddress('glDeleteRenderbuffersEXT');
17209   glGenRenderbuffersEXT := dglGetProcAddress('glGenRenderbuffersEXT');
17210   glRenderbufferStorageEXT := dglGetProcAddress('glRenderbufferStorageEXT');
17211   glGetRenderbufferParameterivEXT := dglGetProcAddress('glGetRenderbufferParameterivEXT');
17212   glIsFramebufferEXT := dglGetProcAddress('glIsFramebufferEXT');
17213   glBindFramebufferEXT := dglGetProcAddress('glBindFramebufferEXT');
17214   glDeleteFramebuffersEXT := dglGetProcAddress('glDeleteFramebuffersEXT');
17215   glGenFramebuffersEXT := dglGetProcAddress('glGenFramebuffersEXT');
17216   glCheckFramebufferStatusEXT := dglGetProcAddress('glCheckFramebufferStatusEXT');
17217   glFramebufferTexture1DEXT := dglGetProcAddress('glFramebufferTexture1DEXT');
17218   glFramebufferTexture2DEXT := dglGetProcAddress('glFramebufferTexture2DEXT');
17219   glFramebufferTexture3DEXT := dglGetProcAddress('glFramebufferTexture3DEXT');
17220   glFramebufferRenderbufferEXT := dglGetProcAddress('glFramebufferRenderbufferEXT');
17221   glGetFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetFramebufferAttachmentParameterivEXT');
17222   glGenerateMipmapEXT := dglGetProcAddress('glGenerateMipmapEXT');
17223 end;
17224
17225 procedure Read_GL_EXT_histogram;
17226 begin
17227   glGetHistogramEXT := dglGetProcAddress('glGetHistogramEXT');
17228   glGetHistogramParameterfvEXT := dglGetProcAddress('glGetHistogramParameterfvEXT');
17229   glGetHistogramParameterivEXT := dglGetProcAddress('glGetHistogramParameterivEXT');
17230   glGetMinmaxEXT := dglGetProcAddress('glGetMinmaxEXT');
17231   glGetMinmaxParameterfvEXT := dglGetProcAddress('glGetMinmaxParameterfvEXT');
17232   glGetMinmaxParameterivEXT := dglGetProcAddress('glGetMinmaxParameterivEXT');
17233   glHistogramEXT := dglGetProcAddress('glHistogramEXT');
17234   glMinmaxEXT := dglGetProcAddress('glMinmaxEXT');
17235   glResetHistogramEXT := dglGetProcAddress('glResetHistogramEXT');
17236   glResetMinmaxEXT := dglGetProcAddress('glResetMinmaxEXT');
17237 end;
17238
17239 procedure Read_GL_EXT_index_func;
17240 begin
17241   glIndexFuncEXT := dglGetProcAddress('glIndexFuncEXT');
17242 end;
17243
17244 procedure Read_GL_EXT_index_material;
17245 begin
17246   glIndexMaterialEXT := dglGetProcAddress('glIndexMaterialEXT');
17247 end;
17248
17249 procedure Read_GL_EXT_light_texture;
17250 begin
17251   glApplyTextureEXT := dglGetProcAddress('glApplyTextureEXT');
17252   glTextureLightEXT := dglGetProcAddress('glTextureLightEXT');
17253   glTextureMaterialEXT := dglGetProcAddress('glTextureMaterialEXT');
17254 end;
17255
17256 procedure Read_GL_EXT_multi_draw_arrays;
17257 begin
17258   glMultiDrawArraysEXT := dglGetProcAddress('glMultiDrawArraysEXT');
17259   glMultiDrawElementsEXT := dglGetProcAddress('glMultiDrawElementsEXT');
17260 end;
17261
17262 procedure Read_GL_EXT_multisample;
17263 begin
17264   glSampleMaskEXT := dglGetProcAddress('glSampleMaskEXT');
17265   glSamplePatternEXT := dglGetProcAddress('glSamplePatternEXT');
17266 end;
17267
17268 procedure Read_GL_EXT_paletted_texture;
17269 begin
17270   glColorTableEXT := dglGetProcAddress('glColorTableEXT');
17271   glGetColorTableEXT := dglGetProcAddress('glGetColorTableEXT');
17272   glGetColorTableParameterivEXT := dglGetProcAddress('glGetColorTableParameterivEXT');
17273   glGetColorTableParameterfvEXT := dglGetProcAddress('glGetColorTableParameterfvEXT');
17274 end;
17275
17276 procedure Read_GL_EXT_pixel_transform;
17277 begin
17278   glPixelTransformParameteriEXT := dglGetProcAddress('glPixelTransformParameteriEXT');
17279   glPixelTransformParameterfEXT := dglGetProcAddress('glPixelTransformParameterfEXT');
17280   glPixelTransformParameterivEXT := dglGetProcAddress('glPixelTransformParameterivEXT');
17281   glPixelTransformParameterfvEXT := dglGetProcAddress('glPixelTransformParameterfvEXT');
17282 end;
17283
17284 procedure Read_GL_EXT_point_parameters;
17285 begin
17286   glPointParameterfEXT := dglGetProcAddress('glPointParameterfEXT');
17287   glPointParameterfvEXT := dglGetProcAddress('glPointParameterfvEXT');
17288 end;
17289
17290 procedure Read_GL_EXT_polygon_offset;
17291 begin
17292   glPolygonOffsetEXT := dglGetProcAddress('glPolygonOffsetEXT');
17293 end;
17294
17295 procedure Read_GL_EXT_secondary_color;
17296 begin
17297   glSecondaryColor3bEXT := dglGetProcAddress('glSecondaryColor3bEXT');
17298   glSecondaryColor3bvEXT := dglGetProcAddress('glSecondaryColor3bvEXT');
17299   glSecondaryColor3dEXT := dglGetProcAddress('glSecondaryColor3dEXT');
17300   glSecondaryColor3dvEXT := dglGetProcAddress('glSecondaryColor3dvEXT');
17301   glSecondaryColor3fEXT := dglGetProcAddress('glSecondaryColor3fEXT');
17302   glSecondaryColor3fvEXT := dglGetProcAddress('glSecondaryColor3fvEXT');
17303   glSecondaryColor3iEXT := dglGetProcAddress('glSecondaryColor3iEXT');
17304   glSecondaryColor3ivEXT := dglGetProcAddress('glSecondaryColor3ivEXT');
17305   glSecondaryColor3sEXT := dglGetProcAddress('glSecondaryColor3sEXT');
17306   glSecondaryColor3svEXT := dglGetProcAddress('glSecondaryColor3svEXT');
17307   glSecondaryColor3ubEXT := dglGetProcAddress('glSecondaryColor3ubEXT');
17308   glSecondaryColor3ubvEXT := dglGetProcAddress('glSecondaryColor3ubvEXT');
17309   glSecondaryColor3uiEXT := dglGetProcAddress('glSecondaryColor3uiEXT');
17310   glSecondaryColor3uivEXT := dglGetProcAddress('glSecondaryColor3uivEXT');
17311   glSecondaryColor3usEXT := dglGetProcAddress('glSecondaryColor3usEXT');
17312   glSecondaryColor3usvEXT := dglGetProcAddress('glSecondaryColor3usvEXT');
17313   glSecondaryColorPointerEXT := dglGetProcAddress('glSecondaryColorPointerEXT');
17314 end;
17315
17316 procedure Read_GL_EXT_stencil_two_side;
17317 begin
17318   glActiveStencilFaceEXT := dglGetProcAddress('glActiveStencilFaceEXT');
17319 end;
17320
17321 procedure Read_GL_EXT_subtexture;
17322 begin
17323   glTexSubImage1DEXT := dglGetProcAddress('glTexSubImage1DEXT');
17324   glTexSubImage2DEXT := dglGetProcAddress('glTexSubImage2DEXT');
17325 end;
17326
17327 procedure Read_GL_EXT_texture3D;
17328 begin
17329   glTexImage3DEXT := dglGetProcAddress('glTexImage3DEXT');
17330   glTexSubImage3DEXT := dglGetProcAddress('glTexSubImage3DEXT');
17331 end;
17332
17333 procedure Read_GL_EXT_texture_object;
17334 begin
17335   glAreTexturesResidentEXT := dglGetProcAddress('glAreTexturesResidentEXT');
17336   glBindTextureEXT := dglGetProcAddress('glBindTextureEXT');
17337   glDeleteTexturesEXT := dglGetProcAddress('glDeleteTexturesEXT');
17338   glGenTexturesEXT := dglGetProcAddress('glGenTexturesEXT');
17339   glIsTextureEXT := dglGetProcAddress('glIsTextureEXT');
17340   glPrioritizeTexturesEXT := dglGetProcAddress('glPrioritizeTexturesEXT');
17341 end;
17342
17343 procedure Read_GL_EXT_texture_perturb_normal;
17344 begin
17345   glTextureNormalEXT := dglGetProcAddress('glTextureNormalEXT');
17346 end;
17347
17348 procedure Read_GL_EXT_vertex_array;
17349 begin
17350   glArrayElementEXT := dglGetProcAddress('glArrayElementEXT');
17351   glColorPointerEXT := dglGetProcAddress('glColorPointerEXT');
17352   glDrawArraysEXT := dglGetProcAddress('glDrawArraysEXT');
17353   glEdgeFlagPointerEXT := dglGetProcAddress('glEdgeFlagPointerEXT');
17354   glGetPointervEXT := dglGetProcAddress('glGetPointervEXT');
17355   glIndexPointerEXT := dglGetProcAddress('glIndexPointerEXT');
17356   glNormalPointerEXT := dglGetProcAddress('glNormalPointerEXT');
17357   glTexCoordPointerEXT := dglGetProcAddress('glTexCoordPointerEXT');
17358   glVertexPointerEXT := dglGetProcAddress('glVertexPointerEXT');
17359 end;
17360
17361 procedure Read_GL_EXT_vertex_shader;
17362 begin
17363   glBeginVertexShaderEXT := dglGetProcAddress('glBeginVertexShaderEXT');
17364   glEndVertexShaderEXT := dglGetProcAddress('glEndVertexShaderEXT');
17365   glBindVertexShaderEXT := dglGetProcAddress('glBindVertexShaderEXT');
17366   glGenVertexShadersEXT := dglGetProcAddress('glGenVertexShadersEXT');
17367   glDeleteVertexShaderEXT := dglGetProcAddress('glDeleteVertexShaderEXT');
17368   glShaderOp1EXT := dglGetProcAddress('glShaderOp1EXT');
17369   glShaderOp2EXT := dglGetProcAddress('glShaderOp2EXT');
17370   glShaderOp3EXT := dglGetProcAddress('glShaderOp3EXT');
17371   glSwizzleEXT := dglGetProcAddress('glSwizzleEXT');
17372   glWriteMaskEXT := dglGetProcAddress('glWriteMaskEXT');
17373   glInsertComponentEXT := dglGetProcAddress('glInsertComponentEXT');
17374   glExtractComponentEXT := dglGetProcAddress('glExtractComponentEXT');
17375   glGenSymbolsEXT := dglGetProcAddress('glGenSymbolsEXT');
17376   glSetInvariantEXT := dglGetProcAddress('glSetInvariantEXT');
17377   glSetLocalConstantEXT := dglGetProcAddress('glSetLocalConstantEXT');
17378   glVariantbvEXT := dglGetProcAddress('glVariantbvEXT');
17379   glVariantsvEXT := dglGetProcAddress('glVariantsvEXT');
17380   glVariantivEXT := dglGetProcAddress('glVariantivEXT');
17381   glVariantfvEXT := dglGetProcAddress('glVariantfvEXT');
17382   glVariantdvEXT := dglGetProcAddress('glVariantdvEXT');
17383   glVariantubvEXT := dglGetProcAddress('glVariantubvEXT');
17384   glVariantusvEXT := dglGetProcAddress('glVariantusvEXT');
17385   glVariantuivEXT := dglGetProcAddress('glVariantuivEXT');
17386   glVariantPointerEXT := dglGetProcAddress('glVariantPointerEXT');
17387   glEnableVariantClientStateEXT := dglGetProcAddress('glEnableVariantClientStateEXT');
17388   glDisableVariantClientStateEXT := dglGetProcAddress('glDisableVariantClientStateEXT');
17389   glBindLightParameterEXT := dglGetProcAddress('glBindLightParameterEXT');
17390   glBindMaterialParameterEXT := dglGetProcAddress('glBindMaterialParameterEXT');
17391   glBindTexGenParameterEXT := dglGetProcAddress('glBindTexGenParameterEXT');
17392   glBindTextureUnitParameterEXT := dglGetProcAddress('glBindTextureUnitParameterEXT');
17393   glBindParameterEXT := dglGetProcAddress('glBindParameterEXT');
17394   glIsVariantEnabledEXT := dglGetProcAddress('glIsVariantEnabledEXT');
17395   glGetVariantBooleanvEXT := dglGetProcAddress('glGetVariantBooleanvEXT');
17396   glGetVariantIntegervEXT := dglGetProcAddress('glGetVariantIntegervEXT');
17397   glGetVariantFloatvEXT := dglGetProcAddress('glGetVariantFloatvEXT');
17398   glGetVariantPointervEXT := dglGetProcAddress('glGetVariantPointervEXT');
17399   glGetInvariantBooleanvEXT := dglGetProcAddress('glGetInvariantBooleanvEXT');
17400   glGetInvariantIntegervEXT := dglGetProcAddress('glGetInvariantIntegervEXT');
17401   glGetInvariantFloatvEXT := dglGetProcAddress('glGetInvariantFloatvEXT');
17402   glGetLocalConstantBooleanvEXT := dglGetProcAddress('glGetLocalConstantBooleanvEXT');
17403   glGetLocalConstantIntegervEXT := dglGetProcAddress('glGetLocalConstantIntegervEXT');
17404   glGetLocalConstantFloatvEXT := dglGetProcAddress('glGetLocalConstantFloatvEXT');
17405 end;
17406
17407 procedure Read_GL_EXT_vertex_weighting;
17408 begin
17409   glVertexWeightfEXT := dglGetProcAddress('glVertexWeightfEXT');
17410   glVertexWeightfvEXT := dglGetProcAddress('glVertexWeightfvEXT');
17411   glVertexWeightPointerEXT := dglGetProcAddress('glVertexWeightPointerEXT');
17412 end;
17413
17414 procedure Read_GL_EXT_depth_bounds_test;
17415 begin
17416   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
17417   glDepthBoundsEXT := dglGetProcAddress('glDepthBoundsEXT');
17418 end;
17419
17420 procedure Read_GL_EXT_blend_equation_separate;
17421 begin
17422   glBlendEquationSeparateEXT := dglGetProcAddress('glBlendEquationSeparateEXT');
17423 end;
17424
17425 procedure Read_GL_EXT_stencil_clear_tag;
17426 begin
17427   glStencilClearTagEXT := dglGetProcAddress('glStencilClearTagEXT');
17428 end;
17429
17430 procedure Read_GL_EXT_framebuffer_blit;
17431 begin
17432   glBlitFramebufferEXT := dglGetProcAddress('glBlitFramebufferEXT');
17433 end;
17434
17435 procedure Read_GL_EXT_framebuffer_multisample;
17436 begin
17437   glRenderbufferStorageMultisampleEXT := dglGetProcAddress('glRenderbufferStorageMultisampleEXT');
17438 end;
17439
17440 procedure Read_GL_EXT_timer_query;
17441 begin
17442   glGetQueryObjecti64vEXT := dglGetProcAddress('glGetQueryObjecti64vEXT');
17443   glGetQueryObjectui64vEXT := dglGetProcAddress('glGetQueryObjectui64vEXT');
17444 end;
17445
17446 procedure Read_GL_EXT_gpu_program_parameters;
17447 begin
17448   glProgramEnvParameters4fvEXT := dglGetProcAddress('glProgramEnvParameters4fvEXT');
17449   glProgramLocalParameters4fvEXT := dglGetProcAddress('glProgramLocalParameters4fvEXT');
17450 end;
17451
17452 procedure Read_GL_EXT_bindable_uniform;
17453 begin
17454   glUniformBufferEXT := dglGetProcAddress('glUniformBufferEXT');
17455   glGetUniformBufferSizeEXT := dglGetProcAddress('glGetUniformBufferSizeEXT');
17456   glGetUniformOffsetEXT := dglGetProcAddress('glGetUniformOffsetEXT');
17457 end;
17458
17459 procedure Read_GL_EXT_draw_buffers2;
17460 begin
17461   glColorMaskIndexedEXT := dglGetProcAddress('glColorMaskIndexedEXT');
17462   glGetBooleanIndexedvEXT := dglGetProcAddress('glGetBooleanIndexedvEXT');
17463   glGetIntegerIndexedvEXT := dglGetProcAddress('glGetIntegerIndexedvEXT');
17464   glEnableIndexedEXT := dglGetProcAddress('glEnableIndexedEXT');
17465   glDisableIndexedEXT := dglGetProcAddress('glDisableIndexedEXT');
17466   glIsEnabledIndexedEXT := dglGetProcAddress('glIsEnabledIndexedEXT');
17467 end;
17468
17469 procedure Read_GL_EXT_draw_instanced;
17470 begin
17471   glDrawArraysInstancedEXT := dglGetProcAddress('glDrawArraysInstancedEXT');
17472   glDrawElementsInstancedEXT := dglGetProcAddress('glDrawElementsInstancedEXT');
17473 end;
17474
17475 procedure Read_GL_EXT_geometry_shader4;
17476 begin
17477   glProgramParameteriEXT := dglGetProcAddress('glProgramParameteriEXT');
17478   glFramebufferTextureEXT := dglGetProcAddress('glFramebufferTextureEXT');
17479 //  glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17480   glFramebufferTextureFaceEXT := dglGetProcAddress('glFramebufferTextureFaceEXT');
17481 end;
17482
17483 procedure Read_GL_EXT_gpu_shader4;
17484 begin
17485   glVertexAttribI1iEXT := dglGetProcAddress('glVertexAttribI1iEXT');
17486   glVertexAttribI2iEXT := dglGetProcAddress('glVertexAttribI2iEXT');
17487   glVertexAttribI3iEXT := dglGetProcAddress('glVertexAttribI3iEXT');
17488   glVertexAttribI4iEXT := dglGetProcAddress('glVertexAttribI4iEXT');
17489   glVertexAttribI1uiEXT := dglGetProcAddress('glVertexAttribI1uiEXT');
17490   glVertexAttribI2uiEXT := dglGetProcAddress('glVertexAttribI2uiEXT');
17491   glVertexAttribI3uiEXT := dglGetProcAddress('glVertexAttribI3uiEXT');
17492   glVertexAttribI4uiEXT := dglGetProcAddress('glVertexAttribI4uiEXT');
17493   glVertexAttribI1ivEXT := dglGetProcAddress('glVertexAttribI1ivEXT');
17494   glVertexAttribI2ivEXT := dglGetProcAddress('glVertexAttribI2ivEXT');
17495   glVertexAttribI3ivEXT := dglGetProcAddress('glVertexAttribI3ivEXT');
17496   glVertexAttribI4ivEXT := dglGetProcAddress('glVertexAttribI4ivEXT');
17497   glVertexAttribI1uivEXT := dglGetProcAddress('glVertexAttribI1uivEXT');
17498   glVertexAttribI2uivEXT := dglGetProcAddress('glVertexAttribI2uivEXT');
17499   glVertexAttribI3uivEXT := dglGetProcAddress('glVertexAttribI3uivEXT');
17500   glVertexAttribI4uivEXT := dglGetProcAddress('glVertexAttribI4uivEXT');
17501   glVertexAttribI4bvEXT := dglGetProcAddress('glVertexAttribI4bvEXT');
17502   glVertexAttribI4svEXT := dglGetProcAddress('glVertexAttribI4svEXT');
17503   glVertexAttribI4ubvEXT := dglGetProcAddress('glVertexAttribI4ubvEXT');
17504   glVertexAttribI4usvEXT := dglGetProcAddress('glVertexAttribI4usvEXT');
17505   glVertexAttribIPointerEXT := dglGetProcAddress('glVertexAttribIPointerEXT');
17506   glGetVertexAttribIivEXT := dglGetProcAddress('glGetVertexAttribIivEXT');
17507   glGetVertexAttribIuivEXT := dglGetProcAddress('glGetVertexAttribIuivEXT');
17508   glUniform1uiEXT := dglGetProcAddress('glUniform1uiEXT');
17509   glUniform2uiEXT := dglGetProcAddress('glUniform2uiEXT');
17510   glUniform3uiEXT := dglGetProcAddress('glUniform3uiEXT');
17511   glUniform4uiEXT := dglGetProcAddress('glUniform4uiEXT');
17512   glUniform1uivEXT := dglGetProcAddress('glUniform1uivEXT');
17513   glUniform2uivEXT := dglGetProcAddress('glUniform2uivEXT');
17514   glUniform3uivEXT := dglGetProcAddress('glUniform3uivEXT');
17515   glUniform4uivEXT := dglGetProcAddress('glUniform4uivEXT');
17516   glGetUniformuivEXT := dglGetProcAddress('glGetUniformuivEXT');
17517   glBindFragDataLocationEXT := dglGetProcAddress('glBindFragDataLocationEXT');
17518   glGetFragDataLocationEXT := dglGetProcAddress('glGetFragDataLocationEXT');
17519 end;
17520
17521 procedure Read_GL_EXT_texture_array;
17522 begin
17523   glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17524 end;
17525
17526 procedure Read_GL_EXT_texture_buffer_object;
17527 begin
17528   glTexBufferEXT := dglGetProcAddress('glTexBufferEXT');
17529 end;
17530
17531 procedure Read_GL_EXT_texture_integer;
17532 begin
17533   glClearColorIiEXT := dglGetProcAddress('glClearColorIiEXT');
17534   glClearColorIuiEXT := dglGetProcAddress('glClearColorIuiEXT');
17535   glTexParameterIivEXT := dglGetProcAddress('glTexParameterIivEXT');
17536   glTexParameterIuivEXT := dglGetProcAddress('glTexParameterIuivEXT');
17537   glGetTexParameterIivEXT := dglGetProcAddress('glGetTexParameterIivEXT');
17538   glGetTexParameterIiuvEXT := dglGetProcAddress('glGetTexParameterIiuvEXT');
17539 end;
17540
17541 procedure Read_GL_EXT_transform_feedback;
17542 begin
17543   glBeginTransformFeedbackEXT := dglGetProcAddress('lBeginTransformFeedbackEXT');
17544   glEndTransformFeedbackEXT := dglGetProcAddress('glEndTransformFeedbackEXT');
17545   glBindBufferRangeEXT := dglGetProcAddress('glBindBufferRangeEXT');
17546   glBindBufferOffsetEXT := dglGetProcAddress('glBindBufferOffsetEXT');
17547   glBindBufferBaseEXT := dglGetProcAddress('glBindBufferBaseEXT');
17548   glTransformFeedbackVaryingsEXT := dglGetProcAddress('glTransformFeedbackVaryingsEXT');
17549   glGetTransformFeedbackVaryingEXT := dglGetProcAddress('glGetTransformFeedbackVaryingEXT');
17550 end;
17551
17552 procedure Read_GL_EXT_direct_state_access;
17553 begin
17554   glClientAttribDefaultEXT := dglGetProcAddress('glClientAttribDefaultEXT');
17555   glPushClientAttribDefaultEXT := dglGetProcAddress('glPushClientAttribDefaultEXT');
17556   glMatrixLoadfEXT := dglGetProcAddress('glMatrixLoadfEXT');
17557   glMatrixLoaddEXT := dglGetProcAddress('glMatrixLoaddEXT');
17558   glMatrixMultfEXT := dglGetProcAddress('glMatrixMultfEXT');
17559   glMatrixMultdEXT := dglGetProcAddress('glMatrixMultdEXT');
17560   glMatrixLoadIdentityEXT := dglGetProcAddress('glMatrixLoadIdentityEXT');
17561   glMatrixRotatefEXT := dglGetProcAddress('glMatrixRotatefEXT');
17562   glMatrixRotatedEXT := dglGetProcAddress('glMatrixRotatedEXT');
17563   glMatrixScalefEXT := dglGetProcAddress('glMatrixScalefEXT');
17564   glMatrixScaledEXT := dglGetProcAddress('glMatrixScaledEXT');
17565   glMatrixTranslatefEXT := dglGetProcAddress('glMatrixTranslatefEXT');
17566   glMatrixTranslatedEXT := dglGetProcAddress('glMatrixTranslatedEXT');
17567   glMatrixFrustumEXT := dglGetProcAddress('glMatrixFrustumEXT');
17568   glMatrixOrthoEXT := dglGetProcAddress('glMatrixOrthoEXT');
17569   glMatrixPopEXT := dglGetProcAddress('glMatrixPopEXT');
17570   glMatrixPushEXT := dglGetProcAddress('glMatrixPushEXT');
17571   glMatrixLoadTransposefEXT := dglGetProcAddress('glMatrixLoadTransposefEXT');
17572   glMatrixLoadTransposedEXT := dglGetProcAddress('glMatrixLoadTransposedEXT');
17573   glMatrixMultTransposefEXT := dglGetProcAddress('glMatrixMultTransposefEXT');
17574   glMatrixMultTransposedEXT := dglGetProcAddress('glMatrixMultTransposedEXT');
17575   glTextureParameterfEXT := dglGetProcAddress('glTextureParameterfEXT');
17576   glTextureParameterfvEXT := dglGetProcAddress('glTextureParameterfvEXT');
17577   glTextureParameteriEXT := dglGetProcAddress('glTextureParameteriEXT');
17578   glTextureParameterivEXT := dglGetProcAddress('glTextureParameterivEXT');
17579   glTextureImage1DEXT := dglGetProcAddress('glTextureImage1DEXT');
17580   glTextureImage2DEXT := dglGetProcAddress('glTextureImage2DEXT');
17581   glTextureSubImage1DEXT := dglGetProcAddress('glTextureSubImage1DEXT');
17582   glTextureSubImage2DEXT := dglGetProcAddress('glTextureSubImage2DEXT');
17583   glCopyTextureImage1DEXT := dglGetProcAddress('glCopyTextureImage1DEXT');
17584   glCopyTextureImage2DEXT := dglGetProcAddress('glCopyTextureImage2DEXT');
17585   glCopyTextureSubImage1DEXT := dglGetProcAddress('glCopyTextureSubImage1DEXT');
17586   glCopyTextureSubImage2DEXT := dglGetProcAddress('glCopyTextureSubImage2DEXT');
17587   glGetTextureImageEXT := dglGetProcAddress('glGetTextureImageEXT');
17588   glGetTextureParameterfvEXT := dglGetProcAddress('glGetTextureParameterfvEXT');
17589   glGetTextureParameterivEXT := dglGetProcAddress('glGetTextureParameterivEXT');
17590   glGetTextureLevelParameterfvEXT := dglGetProcAddress('glGetTextureLevelParameterfvEXT');
17591   glGetTextureLevelParameterivEXT := dglGetProcAddress('glGetTextureLevelParameterivEXT');
17592   glTextureImage3DEXT := dglGetProcAddress('glTextureImage3DEXT');
17593   glTextureSubImage3DEXT := dglGetProcAddress('glTextureSubImage3DEXT');
17594   glCopyTextureSubImage3DEXT := dglGetProcAddress('glCopyTextureSubImage3DEXT');
17595   glMultiTexParameterfEXT := dglGetProcAddress('glMultiTexParameterfEXT');
17596   glMultiTexParameterfvEXT := dglGetProcAddress('glMultiTexParameterfvEXT');
17597   glMultiTexParameteriEXT := dglGetProcAddress('glMultiTexParameteriEXT');
17598   glMultiTexParameterivEXT := dglGetProcAddress('glMultiTexParameterivEXT');
17599   glMultiTexImage1DEXT := dglGetProcAddress('glMultiTexImage1DEXT');
17600   glMultiTexImage2DEXT := dglGetProcAddress('glMultiTexImage2DEXT');
17601   glMultiTexSubImage1DEXT := dglGetProcAddress('glMultiTexSubImage1DEXT');
17602   glMultiTexSubImage2DEXT := dglGetProcAddress('glMultiTexSubImage2DEXT');
17603   glCopyMultiTexImage1DEXT := dglGetProcAddress('glCopyMultiTexImage1DEXT');
17604   glCopyMultiTexImage2DEXT := dglGetProcAddress('glCopyMultiTexImage2DEXT');
17605   glCopyMultiTexSubImage1DEXT := dglGetProcAddress('glCopyMultiTexSubImage1DEXT');
17606   glCopyMultiTexSubImage2DEXT := dglGetProcAddress('glCopyMultiTexSubImage2DEXT');
17607   glGetMultiTexImageEXT := dglGetProcAddress('glGetMultiTexImageEXT');
17608   glGetMultiTexParameterfvEXT := dglGetProcAddress('glGetMultiTexParameterfvEXT');
17609   glGetMultiTexParameterivEXT := dglGetProcAddress('glGetMultiTexParameterivEXT');
17610   glGetMultiTexLevelParameterfvEXT := dglGetProcAddress('glGetMultiTexLevelParameterfvEXT');
17611   glGetMultiTexLevelParameterivEXT := dglGetProcAddress('glGetMultiTexLevelParameterivEXT');
17612   glMultiTexImage3DEXT := dglGetProcAddress('glMultiTexImage3DEXT');
17613   glMultiTexSubImage3DEXT := dglGetProcAddress('glMultiTexSubImage3DEXT');
17614   glCopyMultiTexSubImage3DEXT := dglGetProcAddress('glCopyMultiTexSubImage3DEXT');
17615   glBindMultiTextureEXT := dglGetProcAddress('glBindMultiTextureEXT');
17616   glEnableClientStateIndexedEXT := dglGetProcAddress('glEnableClientStateIndexedEXT');
17617   glDisableClientStateIndexedEXT := dglGetProcAddress('glDisableClientStateIndexedEXT');
17618   glMultiTexCoordPointerEXT := dglGetProcAddress('glMultiTexCoordPointerEXT');
17619   glMultiTexEnvfEXT := dglGetProcAddress('glMultiTexEnvfEXT');
17620   glMultiTexEnvfvEXT := dglGetProcAddress('glMultiTexEnvfvEXT');
17621   glMultiTexEnviEXT := dglGetProcAddress('glMultiTexEnviEXT');
17622   glMultiTexEnvivEXT := dglGetProcAddress('glMultiTexEnvivEXT');
17623   glMultiTexGendEXT := dglGetProcAddress('glMultiTexGendEXT');
17624   glMultiTexGendvEXT := dglGetProcAddress('glMultiTexGendvEXT');
17625   glMultiTexGenfEXT := dglGetProcAddress('glMultiTexGenfEXT');
17626   glMultiTexGenfvEXT := dglGetProcAddress('glMultiTexGenfvEXT');
17627   glMultiTexGeniEXT := dglGetProcAddress('glMultiTexGeniEXT');
17628   glMultiTexGenivEXT := dglGetProcAddress('glMultiTexGenivEXT');
17629   glGetMultiTexEnvfvEXT := dglGetProcAddress('glGetMultiTexEnvfvEXT');
17630   glGetMultiTexEnvivEXT := dglGetProcAddress('glGetMultiTexEnvivEXT');
17631   glGetMultiTexGendvEXT := dglGetProcAddress('glGetMultiTexGendvEXT');
17632   glGetMultiTexGenfvEXT := dglGetProcAddress('glGetMultiTexGenfvEXT');
17633   glGetMultiTexGenivEXT := dglGetProcAddress('glGetMultiTexGenivEXT');
17634   glGetFloatIndexedvEXT := dglGetProcAddress('glGetFloatIndexedvEXT');
17635   glGetDoubleIndexedvEXT := dglGetProcAddress('glGetDoubleIndexedvEXT');
17636   glGetPointerIndexedvEXT := dglGetProcAddress('glGetPointerIndexedvEXT');
17637   glCompressedTextureImage3DEXT := dglGetProcAddress('glCompressedTextureImage3DEXT');
17638   glCompressedTextureImage2DEXT := dglGetProcAddress('glCompressedTextureImage2DEXT');
17639   glCompressedTextureImage1DEXT := dglGetProcAddress('glCompressedTextureImage1DEXT');
17640   glCompressedTextureSubImage3DEXT := dglGetProcAddress('glCompressedTextureSubImage3DEXT');
17641   glCompressedTextureSubImage2DEXT := dglGetProcAddress('glCompressedTextureSubImage2DEXT');
17642   glCompressedTextureSubImage1DEXT := dglGetProcAddress('glCompressedTextureSubImage1DEXT');
17643   glGetCompressedTextureImageEXT := dglGetProcAddress('glGetCompressedTextureImageEXT');
17644   glCompressedMultiTexImage3DEXT := dglGetProcAddress('glCompressedMultiTexImage3DEXT');
17645   glCompressedMultiTexImage2DEXT := dglGetProcAddress('glCompressedMultiTexImage2DEXT');
17646   glCompressedMultiTexImage1DEXT := dglGetProcAddress('glCompressedMultiTexImage1DEXT');
17647   glCompressedMultiTexSubImage3DEXT := dglGetProcAddress('glCompressedMultiTexSubImage3DEXT');
17648   glCompressedMultiTexSubImage2DEXT := dglGetProcAddress('glCompressedMultiTexSubImage2DEXT');
17649   glCompressedMultiTexSubImage1DEXT := dglGetProcAddress('glCompressedMultiTexSubImage1DEXT');
17650   glGetCompressedMultiTexImageEXT := dglGetProcAddress('glGetCompressedMultiTexImageEXT');
17651   glNamedProgramStringEXT := dglGetProcAddress('glNamedProgramStringEXT');
17652   glNamedProgramLocalParameter4dEXT := dglGetProcAddress('glNamedProgramLocalParameter4dEXT');
17653   glNamedProgramLocalParameter4dvEXT := dglGetProcAddress('glNamedProgramLocalParameter4dvEXT');
17654   glNamedProgramLocalParameter4fEXT := dglGetProcAddress('glNamedProgramLocalParameter4fEXT');
17655   glNamedProgramLocalParameter4fvEXT := dglGetProcAddress('glNamedProgramLocalParameter4fvEXT');
17656   glGetNamedProgramLocalParameterdvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterdvEXT');
17657   glGetNamedProgramLocalParameterfvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterfvEXT');
17658   glGetNamedProgramivEXT := dglGetProcAddress('glGetNamedProgramivEXT');
17659   glGetNamedProgramStringEXT := dglGetProcAddress('glGetNamedProgramStringEXT');
17660   glNamedProgramLocalParameters4fvEXT := dglGetProcAddress('glNamedProgramLocalParameters4fvEXT');
17661   glNamedProgramLocalParameterI4iEXT := dglGetProcAddress('glNamedProgramLocalParameterI4iEXT');
17662   glNamedProgramLocalParameterI4ivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4ivEXT');
17663   glNamedProgramLocalParametersI4ivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4ivEXT');
17664   glNamedProgramLocalParameterI4uiEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uiEXT');
17665   glNamedProgramLocalParameterI4uivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uivEXT');
17666   glNamedProgramLocalParametersI4uivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4uivEXT');
17667   glGetNamedProgramLocalParameterIivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIivEXT');
17668   glGetNamedProgramLocalParameterIuivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIuivEXT');
17669   glTextureParameterIivEXT := dglGetProcAddress('glTextureParameterIivEXT');
17670   glTextureParameterIuivEXT := dglGetProcAddress('glTextureParameterIuivEXT');
17671   glGetTextureParameterIivEXT := dglGetProcAddress('glGetTextureParameterIivEXT');
17672   glGetTextureParameterIuivEXT := dglGetProcAddress('glGetTextureParameterIuivEXT');
17673   glMultiTexParameterIivEXT := dglGetProcAddress('glMultiTexParameterIivEXT');
17674   glMultiTexParameterIuivEXT := dglGetProcAddress('glMultiTexParameterIuivEXT');
17675   glGetMultiTexParameterIivEXT := dglGetProcAddress('glGetMultiTexParameterIivEXT');
17676   glGetMultiTexParameterIuivEXT := dglGetProcAddress('glGetMultiTexParameterIuivEXT');
17677   glProgramUniform1fEXT := dglGetProcAddress('glProgramUniform1fEXT');
17678   glProgramUniform2fEXT := dglGetProcAddress('glProgramUniform2fEXT');
17679   glProgramUniform3fEXT := dglGetProcAddress('glProgramUniform3fEXT');
17680   glProgramUniform4fEXT := dglGetProcAddress('glProgramUniform4fEXT');
17681   glProgramUniform1iEXT := dglGetProcAddress('glProgramUniform1iEXT');
17682   glProgramUniform2iEXT := dglGetProcAddress('glProgramUniform2iEXT');
17683   glProgramUniform3iEXT := dglGetProcAddress('glProgramUniform3iEXT');
17684   glProgramUniform4iEXT := dglGetProcAddress('glProgramUniform4iEXT');
17685   glProgramUniform1fvEXT := dglGetProcAddress('glProgramUniform1fvEXT');
17686   glProgramUniform2fvEXT := dglGetProcAddress('glProgramUniform2fvEXT');
17687   glProgramUniform3fvEXT := dglGetProcAddress('glProgramUniform3fvEXT');
17688   glProgramUniform4fvEXT := dglGetProcAddress('glProgramUniform4fvEXT');
17689   glProgramUniform1ivEXT := dglGetProcAddress('glProgramUniform1ivEXT');
17690   glProgramUniform2ivEXT := dglGetProcAddress('glProgramUniform2ivEXT');
17691   glProgramUniform3ivEXT := dglGetProcAddress('glProgramUniform3ivEXT');
17692   glProgramUniform4ivEXT := dglGetProcAddress('glProgramUniform4ivEXT');
17693   glProgramUniformMatrix2fvEXT := dglGetProcAddress('glProgramUniformMatrix2fvEXT');
17694   glProgramUniformMatrix3fvEXT := dglGetProcAddress('glProgramUniformMatrix3fvEXT');
17695   glProgramUniformMatrix4fvEXT := dglGetProcAddress('glProgramUniformMatrix4fvEXT');
17696   glProgramUniformMatrix2x3fvEXT := dglGetProcAddress('glProgramUniformMatrix2x3fvEXT');
17697   glProgramUniformMatrix3x2fvEXT := dglGetProcAddress('glProgramUniformMatrix3x2fvEXT');
17698   glProgramUniformMatrix2x4fvEXT := dglGetProcAddress('glProgramUniformMatrix2x4fvEXT');
17699   glProgramUniformMatrix4x2fvEXT := dglGetProcAddress('glProgramUniformMatrix4x2fvEXT');
17700   glProgramUniformMatrix3x4fvEXT := dglGetProcAddress('glProgramUniformMatrix3x4fvEXT');
17701   glProgramUniformMatrix4x3fvEXT := dglGetProcAddress('glProgramUniformMatrix4x3fvEXT');
17702   glProgramUniform1uiEXT := dglGetProcAddress('glProgramUniform1uiEXT');
17703   glProgramUniform2uiEXT := dglGetProcAddress('glProgramUniform2uiEXT');
17704   glProgramUniform3uiEXT := dglGetProcAddress('glProgramUniform3uiEXT');
17705   glProgramUniform4uiEXT := dglGetProcAddress('glProgramUniform4uiEXT');
17706   glProgramUniform1uivEXT := dglGetProcAddress('glProgramUniform1uivEXT');
17707   glProgramUniform2uivEXT := dglGetProcAddress('glProgramUniform2uivEXT');
17708   glProgramUniform3uivEXT := dglGetProcAddress('glProgramUniform3uivEXT');
17709   glProgramUniform4uivEXT := dglGetProcAddress('glProgramUniform4uivEXT');
17710   glNamedBufferDataEXT := dglGetProcAddress('glNamedBufferDataEXT');
17711   glNamedBufferSubDataEXT := dglGetProcAddress('glNamedBufferSubDataEXT');
17712   glMapNamedBufferEXT := dglGetProcAddress('glMapNamedBufferEXT');
17713   glUnmapNamedBufferEXT := dglGetProcAddress('glUnmapNamedBufferEXT');
17714   glMapNamedBufferRangeEXT := dglGetProcAddress('glMapNamedBufferRangeEXT');
17715   glFlushMappedNamedBufferRangeEXT := dglGetProcAddress('glFlushMappedNamedBufferRangeEXT');
17716   glNamedCopyBufferSubDataEXT := dglGetProcAddress('glNamedCopyBufferSubDataEXT');
17717   glGetNamedBufferParameterivEXT := dglGetProcAddress('glGetNamedBufferParameterivEXT');
17718   glGetNamedBufferPointervEXT := dglGetProcAddress('glGetNamedBufferPointervEXT');
17719   glGetNamedBufferSubDataEXT := dglGetProcAddress('glGetNamedBufferSubDataEXT');
17720   glTextureBufferEXT := dglGetProcAddress('glTextureBufferEXT');
17721   glMultiTexBufferEXT := dglGetProcAddress('glMultiTexBufferEXT');
17722   glNamedRenderbufferStorageEXT := dglGetProcAddress('glNamedRenderbufferStorageEXT');
17723   glGetNamedRenderbufferParameterivEXT := dglGetProcAddress('glGetNamedRenderbufferParameterivEXT');
17724   glCheckNamedFramebufferStatusEXT := dglGetProcAddress('glCheckNamedFramebufferStatusEXT');
17725   glNamedFramebufferTexture1DEXT := dglGetProcAddress('glNamedFramebufferTexture1DEXT');
17726   glNamedFramebufferTexture2DEXT := dglGetProcAddress('glNamedFramebufferTexture2DEXT');
17727   glNamedFramebufferTexture3DEXT := dglGetProcAddress('glNamedFramebufferTexture3DEXT');
17728   glNamedFramebufferRenderbufferEXT := dglGetProcAddress('glNamedFramebufferRenderbufferEXT');
17729   glGetNamedFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetNamedFramebufferAttachmentParameterivEXT');
17730   glGenerateTextureMipmapEXT := dglGetProcAddress('glGenerateTextureMipmapEXT');
17731   glGenerateMultiTexMipmapEXT := dglGetProcAddress('glGenerateMultiTexMipmapEXT');
17732   glFramebufferDrawBufferEXT := dglGetProcAddress('glFramebufferDrawBufferEXT');
17733   glFramebufferDrawBuffersEXT := dglGetProcAddress('glFramebufferDrawBuffersEXT');
17734   glFramebufferReadBufferEXT := dglGetProcAddress('glFramebufferReadBufferEXT');
17735   glGetFramebufferParameterivEXT := dglGetProcAddress('glGetFramebufferParameterivEXT');
17736   glNamedRenderbufferStorageMultisampleEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleEXT');
17737   glNamedRenderbufferStorageMultisampleCoverageEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleCoverageEXT');
17738   glNamedFramebufferTextureEXT := dglGetProcAddress('glNamedFramebufferTextureEXT');
17739   glNamedFramebufferTextureLayerEXT := dglGetProcAddress('glNamedFramebufferTextureLayerEXT');
17740   glNamedFramebufferTextureFaceEXT := dglGetProcAddress('glNamedFramebufferTextureFaceEXT');
17741   glTextureRenderbufferEXT := dglGetProcAddress('glTextureRenderbufferEXT');
17742   glMultiTexRenderbufferEXT := dglGetProcAddress('glMultiTexRenderbufferEXT');
17743   glProgramUniform1dEXT := dglGetProcAddress('glProgramUniform1dEXT');
17744   glProgramUniform2dEXT := dglGetProcAddress('glProgramUniform2dEXT');
17745   glProgramUniform3dEXT := dglGetProcAddress('glProgramUniform3dEXT');
17746   glProgramUniform4dEXT := dglGetProcAddress('glProgramUniform4dEXT');
17747   glProgramUniform1dvEXT := dglGetProcAddress('glProgramUniform1dvEXT');
17748   glProgramUniform2dvEXT := dglGetProcAddress('glProgramUniform2dvEXT');
17749   glProgramUniform3dvEXT := dglGetProcAddress('glProgramUniform3dvEXT');
17750   glProgramUniform4dvEXT := dglGetProcAddress('glProgramUniform4dvEXT');
17751   glProgramUniformMatrix2dvEXT := dglGetProcAddress('glProgramUniformMatrix2dvEXT');
17752   glProgramUniformMatrix3dvEXT := dglGetProcAddress('glProgramUniformMatrix3dvEXT');
17753   glProgramUniformMatrix4dvEXT := dglGetProcAddress('glProgramUniformMatrix4dvEXT');
17754   glProgramUniformMatrix2x3dvEXT := dglGetProcAddress('glProgramUniformMatrix2x3dvEXT');
17755   glProgramUniformMatrix2x4dvEXT := dglGetProcAddress('glProgramUniformMatrix2x4dvEXT');
17756   glProgramUniformMatrix3x2dvEXT := dglGetProcAddress('glProgramUniformMatrix3x2dvEXT');
17757   glProgramUniformMatrix3x4dvEXT := dglGetProcAddress('glProgramUniformMatrix3x4dvEXT');
17758   glProgramUniformMatrix4x2dvEXT := dglGetProcAddress('glProgramUniformMatrix4x2dvEXT');
17759   glProgramUniformMatrix4x3dvEXT := dglGetProcAddress('glProgramUniformMatrix4x3dvEXT');
17760 end;
17761
17762 procedure Read_GL_EXT_separate_shader_objects;
17763 begin
17764   glUseShaderProgramEXT := dglGetProcAddress('glUseShaderProgramEXT');
17765   glActiveProgramEXT := dglGetProcAddress('glActiveProgramEXT');
17766   glCreateShaderProgramEXT := dglGetProcAddress('glCreateShaderProgramEXT');
17767 end;
17768
17769 procedure Read_GL_EXT_shader_image_load_store;
17770 begin
17771   glBindImageTextureEXT := dglGetProcAddress('glBindImageTextureEXT');
17772   glMemoryBarrierEXT := dglGetProcAddress('glMemoryBarrierEXT');
17773 end;
17774
17775 procedure Read_GL_EXT_vertex_attrib_64bit;
17776 begin
17777   glVertexAttribL1dEXT := dglGetProcAddress('glVertexAttribL1dEXT');
17778   glVertexAttribL2dEXT := dglGetProcAddress('glVertexAttribL2dEXT');
17779   glVertexAttribL3dEXT := dglGetProcAddress('glVertexAttribL3dEXT');
17780   glVertexAttribL4dEXT := dglGetProcAddress('glVertexAttribL4dEXT');
17781   glVertexAttribL1dvEXT := dglGetProcAddress('glVertexAttribL1dvEXT');
17782   glVertexAttribL2dvEXT := dglGetProcAddress('glVertexAttribL2dvEXT');
17783   glVertexAttribL3dvEXT := dglGetProcAddress('glVertexAttribL3dvEXT');
17784   glVertexAttribL4dvEXT := dglGetProcAddress('glVertexAttribL4dvEXT');
17785   glVertexAttribLPointerEXT := dglGetProcAddress('glVertexAttribLPointerEXT');
17786   glGetVertexAttribLdvEXT := dglGetProcAddress('glGetVertexAttribLdvEXT');
17787   glVertexArrayVertexAttribLOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribLOffsetEXT');
17788 end;
17789
17790 procedure Read_GL_HP_image_transform;
17791 begin
17792   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
17793   glImageTransformParameterfHP := dglGetProcAddress('glImageTransformParameterfHP');
17794   glImageTransformParameterivHP := dglGetProcAddress('glImageTransformParameterivHP');
17795   glImageTransformParameterfvHP := dglGetProcAddress('glImageTransformParameterfvHP');
17796   glGetImageTransformParameterivHP := dglGetProcAddress('glGetImageTransformParameterivHP');
17797   glGetImageTransformParameterfvHP := dglGetProcAddress('glGetImageTransformParameterfvHP');
17798 end;
17799
17800 procedure Read_GL_IBM_multimode_draw_arrays;
17801 begin
17802   glMultiModeDrawArraysIBM := dglGetProcAddress('glMultiModeDrawArraysIBM');
17803   glMultiModeDrawElementsIBM := dglGetProcAddress('glMultiModeDrawElementsIBM');
17804 end;
17805
17806 procedure Read_GL_IBM_vertex_array_lists;
17807 begin
17808   glColorPointerListIBM := dglGetProcAddress('glColorPointerListIBM');
17809   glSecondaryColorPointerListIBM := dglGetProcAddress('glSecondaryColorPointerListIBM');
17810   glEdgeFlagPointerListIBM := dglGetProcAddress('glEdgeFlagPointerListIBM');
17811   glFogCoordPointerListIBM := dglGetProcAddress('glFogCoordPointerListIBM');
17812   glIndexPointerListIBM := dglGetProcAddress('glIndexPointerListIBM');
17813   glNormalPointerListIBM := dglGetProcAddress('glNormalPointerListIBM');
17814   glTexCoordPointerListIBM := dglGetProcAddress('glTexCoordPointerListIBM');
17815   glVertexPointerListIBM := dglGetProcAddress('glVertexPointerListIBM');
17816 end;
17817
17818 procedure Read_GL_INGR_blend_func_separate;
17819 begin
17820   glBlendFuncSeparateINGR := dglGetProcAddress('glBlendFuncSeparateINGR');
17821 end;
17822
17823 procedure Read_GL_INTEL_parallel_arrays;
17824 begin
17825   glVertexPointervINTEL := dglGetProcAddress('glVertexPointervINTEL');
17826   glNormalPointervINTEL := dglGetProcAddress('glNormalPointervINTEL');
17827   glColorPointervINTEL := dglGetProcAddress('glColorPointervINTEL');
17828   glTexCoordPointervINTEL := dglGetProcAddress('glTexCoordPointervINTEL');
17829 end;
17830
17831 procedure Read_GL_MESA_resize_buffers;
17832 begin
17833   glResizeBuffersMESA := dglGetProcAddress('glResizeBuffersMESA');
17834 end;
17835
17836 procedure Read_GL_MESA_window_pos;
17837 begin
17838   glWindowPos2dMESA := dglGetProcAddress('glWindowPos2dMESA');
17839   glWindowPos2dvMESA := dglGetProcAddress('glWindowPos2dvMESA');
17840   glWindowPos2fMESA := dglGetProcAddress('glWindowPos2fMESA');
17841   glWindowPos2fvMESA := dglGetProcAddress('glWindowPos2fvMESA');
17842   glWindowPos2iMESA := dglGetProcAddress('glWindowPos2iMESA');
17843   glWindowPos2ivMESA := dglGetProcAddress('glWindowPos2ivMESA');
17844   glWindowPos2sMESA := dglGetProcAddress('glWindowPos2sMESA');
17845   glWindowPos2svMESA := dglGetProcAddress('glWindowPos2svMESA');
17846   glWindowPos3dMESA := dglGetProcAddress('glWindowPos3dMESA');
17847   glWindowPos3dvMESA := dglGetProcAddress('glWindowPos3dvMESA');
17848   glWindowPos3fMESA := dglGetProcAddress('glWindowPos3fMESA');
17849   glWindowPos3fvMESA := dglGetProcAddress('glWindowPos3fvMESA');
17850   glWindowPos3iMESA := dglGetProcAddress('glWindowPos3iMESA');
17851   glWindowPos3ivMESA := dglGetProcAddress('glWindowPos3ivMESA');
17852   glWindowPos3sMESA := dglGetProcAddress('glWindowPos3sMESA');
17853   glWindowPos3svMESA := dglGetProcAddress('glWindowPos3svMESA');
17854   glWindowPos4dMESA := dglGetProcAddress('glWindowPos4dMESA');
17855   glWindowPos4dvMESA := dglGetProcAddress('glWindowPos4dvMESA');
17856   glWindowPos4fMESA := dglGetProcAddress('glWindowPos4fMESA');
17857   glWindowPos4fvMESA := dglGetProcAddress('glWindowPos4fvMESA');
17858   glWindowPos4iMESA := dglGetProcAddress('glWindowPos4iMESA');
17859   glWindowPos4ivMESA := dglGetProcAddress('glWindowPos4ivMESA');
17860   glWindowPos4sMESA := dglGetProcAddress('glWindowPos4sMESA');
17861   glWindowPos4svMESA := dglGetProcAddress('glWindowPos4svMESA');
17862 end;
17863
17864 procedure Read_GL_NV_evaluators;
17865 begin
17866   glMapControlPointsNV := dglGetProcAddress('glMapControlPointsNV');
17867   glMapParameterivNV := dglGetProcAddress('glMapParameterivNV');
17868   glMapParameterfvNV := dglGetProcAddress('glMapParameterfvNV');
17869   glGetMapControlPointsNV := dglGetProcAddress('glGetMapControlPointsNV');
17870   glGetMapParameterivNV := dglGetProcAddress('glGetMapParameterivNV');
17871   glGetMapParameterfvNV := dglGetProcAddress('glGetMapParameterfvNV');
17872   glGetMapAttribParameterivNV := dglGetProcAddress('glGetMapAttribParameterivNV');
17873   glGetMapAttribParameterfvNV := dglGetProcAddress('glGetMapAttribParameterfvNV');
17874   glEvalMapsNV := dglGetProcAddress('glEvalMapsNV');
17875 end;
17876
17877 procedure Read_GL_NV_fence;
17878 begin
17879   glDeleteFencesNV := dglGetProcAddress('glDeleteFencesNV');
17880   glGenFencesNV := dglGetProcAddress('glGenFencesNV');
17881   glIsFenceNV := dglGetProcAddress('glIsFenceNV');
17882   glTestFenceNV := dglGetProcAddress('glTestFenceNV');
17883   glGetFenceivNV := dglGetProcAddress('glGetFenceivNV');
17884   glFinishFenceNV := dglGetProcAddress('glFinishFenceNV');
17885   glSetFenceNV := dglGetProcAddress('glSetFenceNV');
17886 end;
17887
17888 procedure Read_GL_NV_fragment_program;
17889 begin
17890   glProgramNamedParameter4fNV := dglGetProcAddress('glProgramNamedParameter4fNV');
17891   glProgramNamedParameter4dNV := dglGetProcAddress('glProgramNamedParameter4dNV');
17892   glProgramNamedParameter4fvNV := dglGetProcAddress('glProgramNamedParameter4fvNV');
17893   glProgramNamedParameter4dvNV := dglGetProcAddress('glProgramNamedParameter4dvNV');
17894   glGetProgramNamedParameterfvNV := dglGetProcAddress('glGetProgramNamedParameterfvNV');
17895   glGetProgramNamedParameterdvNV := dglGetProcAddress('glGetProgramNamedParameterdvNV');
17896 end;
17897
17898 procedure Read_GL_NV_half_float;
17899 begin
17900   glVertex2hNV := dglGetProcAddress('glVertex2hNV');
17901   glVertex2hvNV := dglGetProcAddress('glVertex2hvNV');
17902   glVertex3hNV := dglGetProcAddress('glVertex3hNV');
17903   glVertex3hvNV := dglGetProcAddress('glVertex3hvNV');
17904   glVertex4hNV := dglGetProcAddress('glVertex4hNV');
17905   glVertex4hvNV := dglGetProcAddress('glVertex4hvNV');
17906   glNormal3hNV := dglGetProcAddress('glNormal3hNV');
17907   glNormal3hvNV := dglGetProcAddress('glNormal3hvNV');
17908   glColor3hNV := dglGetProcAddress('glColor3hNV');
17909   glColor3hvNV := dglGetProcAddress('glColor3hvNV');
17910   glColor4hNV := dglGetProcAddress('glColor4hNV');
17911   glColor4hvNV := dglGetProcAddress('glColor4hvNV');
17912   glTexCoord1hNV := dglGetProcAddress('glTexCoord1hNV');
17913   glTexCoord1hvNV := dglGetProcAddress('glTexCoord1hvNV');
17914   glTexCoord2hNV := dglGetProcAddress('glTexCoord2hNV');
17915   glTexCoord2hvNV := dglGetProcAddress('glTexCoord2hvNV');
17916   glTexCoord3hNV := dglGetProcAddress('glTexCoord3hNV');
17917   glTexCoord3hvNV := dglGetProcAddress('glTexCoord3hvNV');
17918   glTexCoord4hNV := dglGetProcAddress('glTexCoord4hNV');
17919   glTexCoord4hvNV := dglGetProcAddress('glTexCoord4hvNV');
17920   glMultiTexCoord1hNV := dglGetProcAddress('glMultiTexCoord1hNV');
17921   glMultiTexCoord1hvNV := dglGetProcAddress('glMultiTexCoord1hvNV');
17922   glMultiTexCoord2hNV := dglGetProcAddress('glMultiTexCoord2hNV');
17923   glMultiTexCoord2hvNV := dglGetProcAddress('glMultiTexCoord2hvNV');
17924   glMultiTexCoord3hNV := dglGetProcAddress('glMultiTexCoord3hNV');
17925   glMultiTexCoord3hvNV := dglGetProcAddress('glMultiTexCoord3hvNV');
17926   glMultiTexCoord4hNV := dglGetProcAddress('glMultiTexCoord4hNV');
17927   glMultiTexCoord4hvNV := dglGetProcAddress('glMultiTexCoord4hvNV');
17928   glFogCoordhNV := dglGetProcAddress('glFogCoordhNV');
17929   glFogCoordhvNV := dglGetProcAddress('glFogCoordhvNV');
17930   glSecondaryColor3hNV := dglGetProcAddress('glSecondaryColor3hNV');
17931   glSecondaryColor3hvNV := dglGetProcAddress('glSecondaryColor3hvNV');
17932   glVertexWeighthNV := dglGetProcAddress('glVertexWeighthNV');
17933   glVertexWeighthvNV := dglGetProcAddress('glVertexWeighthvNV');
17934   glVertexAttrib1hNV := dglGetProcAddress('glVertexAttrib1hNV');
17935   glVertexAttrib1hvNV := dglGetProcAddress('glVertexAttrib1hvNV');
17936   glVertexAttrib2hNV := dglGetProcAddress('glVertexAttrib2hNV');
17937   glVertexAttrib2hvNV := dglGetProcAddress('glVertexAttrib2hvNV');
17938   glVertexAttrib3hNV := dglGetProcAddress('glVertexAttrib3hNV');
17939   glVertexAttrib3hvNV := dglGetProcAddress('glVertexAttrib3hvNV');
17940   glVertexAttrib4hNV := dglGetProcAddress('glVertexAttrib4hNV');
17941   glVertexAttrib4hvNV := dglGetProcAddress('glVertexAttrib4hvNV');
17942   glVertexAttribs1hvNV := dglGetProcAddress('glVertexAttribs1hvNV');
17943   glVertexAttribs2hvNV := dglGetProcAddress('glVertexAttribs2hvNV');
17944   glVertexAttribs3hvNV := dglGetProcAddress('glVertexAttribs3hvNV');
17945   glVertexAttribs4hvNV := dglGetProcAddress('glVertexAttribs4hvNV');
17946 end;
17947
17948 procedure Read_GL_NV_occlusion_query;
17949 begin
17950   glGenOcclusionQueriesNV := dglGetProcAddress('glGenOcclusionQueriesNV');
17951   glDeleteOcclusionQueriesNV := dglGetProcAddress('glDeleteOcclusionQueriesNV');
17952   glIsOcclusionQueryNV := dglGetProcAddress('glIsOcclusionQueryNV');
17953   glBeginOcclusionQueryNV := dglGetProcAddress('glBeginOcclusionQueryNV');
17954   glEndOcclusionQueryNV := dglGetProcAddress('glEndOcclusionQueryNV');
17955   glGetOcclusionQueryivNV := dglGetProcAddress('glGetOcclusionQueryivNV');
17956   glGetOcclusionQueryuivNV := dglGetProcAddress('glGetOcclusionQueryuivNV');
17957 end;
17958
17959 procedure Read_GL_NV_pixel_data_range;
17960 begin
17961   glPixelDataRangeNV := dglGetProcAddress('glPixelDataRangeNV');
17962   glFlushPixelDataRangeNV := dglGetProcAddress('glFlushPixelDataRangeNV');
17963 end;
17964
17965 procedure Read_GL_NV_point_sprite;
17966 begin
17967   glPointParameteriNV := dglGetProcAddress('glPointParameteriNV');
17968   glPointParameterivNV := dglGetProcAddress('glPointParameterivNV');
17969 end;
17970
17971 procedure Read_GL_NV_primitive_restart;
17972 begin
17973   glPrimitiveRestartNV := dglGetProcAddress('glPrimitiveRestartNV');
17974   glPrimitiveRestartIndexNV := dglGetProcAddress('glPrimitiveRestartIndexNV');
17975 end;
17976
17977 procedure Read_GL_NV_register_combiners;
17978 begin
17979   glCombinerParameterfvNV := dglGetProcAddress('glCombinerParameterfvNV');
17980   glCombinerParameterfNV := dglGetProcAddress('glCombinerParameterfNV');
17981   glCombinerParameterivNV := dglGetProcAddress('glCombinerParameterivNV');
17982   glCombinerParameteriNV := dglGetProcAddress('glCombinerParameteriNV');
17983   glCombinerInputNV := dglGetProcAddress('glCombinerInputNV');
17984   glCombinerOutputNV := dglGetProcAddress('glCombinerOutputNV');
17985   glFinalCombinerInputNV := dglGetProcAddress('glFinalCombinerInputNV');
17986   glGetCombinerInputParameterfvNV := dglGetProcAddress('glGetCombinerInputParameterfvNV');
17987   glGetCombinerInputParameterivNV := dglGetProcAddress('glGetCombinerInputParameterivNV');
17988   glGetCombinerOutputParameterfvNV := dglGetProcAddress('glGetCombinerOutputParameterfvNV');
17989   glGetCombinerOutputParameterivNV := dglGetProcAddress('glGetCombinerOutputParameterivNV');
17990   glGetFinalCombinerInputParameterfvNV := dglGetProcAddress('glGetFinalCombinerInputParameterfvNV');
17991   glGetFinalCombinerInputParameterivNV := dglGetProcAddress('glGetFinalCombinerInputParameterivNV');
17992 end;
17993
17994 procedure Read_GL_NV_register_combiners2;
17995 begin
17996   glCombinerStageParameterfvNV := dglGetProcAddress('glCombinerStageParameterfvNV');
17997   glGetCombinerStageParameterfvNV := dglGetProcAddress('glGetCombinerStageParameterfvNV');
17998 end;
17999
18000 procedure Read_GL_NV_vertex_array_range;
18001 begin
18002   glFlushVertexArrayRangeNV := dglGetProcAddress('glFlushVertexArrayRangeNV');
18003   glVertexArrayRangeNV := dglGetProcAddress('glVertexArrayRangeNV');
18004 end;
18005
18006 procedure Read_GL_NV_vertex_program;
18007 begin
18008   glAreProgramsResidentNV := dglGetProcAddress('glAreProgramsResidentNV');
18009   glBindProgramNV := dglGetProcAddress('glBindProgramNV');
18010   glDeleteProgramsNV := dglGetProcAddress('glDeleteProgramsNV');
18011   glExecuteProgramNV := dglGetProcAddress('glExecuteProgramNV');
18012   glGenProgramsNV := dglGetProcAddress('glGenProgramsNV');
18013   glGetProgramParameterdvNV := dglGetProcAddress('glGetProgramParameterdvNV');
18014   glGetProgramParameterfvNV := dglGetProcAddress('glGetProgramParameterfvNV');
18015   glGetProgramivNV := dglGetProcAddress('glGetProgramivNV');
18016   glGetProgramStringNV := dglGetProcAddress('glGetProgramStringNV');
18017   glGetTrackMatrixivNV := dglGetProcAddress('glGetTrackMatrixivNV');
18018   glGetVertexAttribdvNV := dglGetProcAddress('glGetVertexAttribdvNV');
18019   glGetVertexAttribfvNV := dglGetProcAddress('glGetVertexAttribfvNV');
18020   glGetVertexAttribivNV := dglGetProcAddress('glGetVertexAttribivNV');
18021   glGetVertexAttribPointervNV := dglGetProcAddress('glGetVertexAttribPointervNV');
18022   glIsProgramNV := dglGetProcAddress('glIsProgramNV');
18023   glLoadProgramNV := dglGetProcAddress('glLoadProgramNV');
18024   glProgramParameter4dNV := dglGetProcAddress('glProgramParameter4dNV');
18025   glProgramParameter4dvNV := dglGetProcAddress('glProgramParameter4dvNV');
18026   glProgramParameter4fNV := dglGetProcAddress('glProgramParameter4fNV');
18027   glProgramParameter4fvNV := dglGetProcAddress('glProgramParameter4fvNV');
18028   glProgramParameters4dvNV := dglGetProcAddress('glProgramParameters4dvNV');
18029   glProgramParameters4fvNV := dglGetProcAddress('glProgramParameters4fvNV');
18030   glRequestResidentProgramsNV := dglGetProcAddress('glRequestResidentProgramsNV');
18031   glTrackMatrixNV := dglGetProcAddress('glTrackMatrixNV');
18032   glVertexAttribPointerNV := dglGetProcAddress('glVertexAttribPointerNV');
18033   glVertexAttrib1dNV := dglGetProcAddress('glVertexAttrib1dNV');
18034   glVertexAttrib1dvNV := dglGetProcAddress('glVertexAttrib1dvNV');
18035   glVertexAttrib1fNV := dglGetProcAddress('glVertexAttrib1fNV');
18036   glVertexAttrib1fvNV := dglGetProcAddress('glVertexAttrib1fvNV');
18037   glVertexAttrib1sNV := dglGetProcAddress('glVertexAttrib1sNV');
18038   glVertexAttrib1svNV := dglGetProcAddress('glVertexAttrib1svNV');
18039   glVertexAttrib2dNV := dglGetProcAddress('glVertexAttrib2dNV');
18040   glVertexAttrib2dvNV := dglGetProcAddress('glVertexAttrib2dvNV');
18041   glVertexAttrib2fNV := dglGetProcAddress('glVertexAttrib2fNV');
18042   glVertexAttrib2fvNV := dglGetProcAddress('glVertexAttrib2fvNV');
18043   glVertexAttrib2sNV := dglGetProcAddress('glVertexAttrib2sNV');
18044   glVertexAttrib2svNV := dglGetProcAddress('glVertexAttrib2svNV');
18045   glVertexAttrib3dNV := dglGetProcAddress('glVertexAttrib3dNV');
18046   glVertexAttrib3dvNV := dglGetProcAddress('glVertexAttrib3dvNV');
18047   glVertexAttrib3fNV := dglGetProcAddress('glVertexAttrib3fNV');
18048   glVertexAttrib3fvNV := dglGetProcAddress('glVertexAttrib3fvNV');
18049   glVertexAttrib3sNV := dglGetProcAddress('glVertexAttrib3sNV');
18050   glVertexAttrib3svNV := dglGetProcAddress('glVertexAttrib3svNV');
18051   glVertexAttrib4dNV := dglGetProcAddress('glVertexAttrib4dNV');
18052   glVertexAttrib4dvNV := dglGetProcAddress('glVertexAttrib4dvNV');
18053   glVertexAttrib4fNV := dglGetProcAddress('glVertexAttrib4fNV');
18054   glVertexAttrib4fvNV := dglGetProcAddress('glVertexAttrib4fvNV');
18055   glVertexAttrib4sNV := dglGetProcAddress('glVertexAttrib4sNV');
18056   glVertexAttrib4svNV := dglGetProcAddress('glVertexAttrib4svNV');
18057   glVertexAttrib4ubNV := dglGetProcAddress('glVertexAttrib4ubNV');
18058   glVertexAttrib4ubvNV := dglGetProcAddress('glVertexAttrib4ubvNV');
18059   glVertexAttribs1dvNV := dglGetProcAddress('glVertexAttribs1dvNV');
18060   glVertexAttribs1fvNV := dglGetProcAddress('glVertexAttribs1fvNV');
18061   glVertexAttribs1svNV := dglGetProcAddress('glVertexAttribs1svNV');
18062   glVertexAttribs2dvNV := dglGetProcAddress('glVertexAttribs2dvNV');
18063   glVertexAttribs2fvNV := dglGetProcAddress('glVertexAttribs2fvNV');
18064   glVertexAttribs2svNV := dglGetProcAddress('glVertexAttribs2svNV');
18065   glVertexAttribs3dvNV := dglGetProcAddress('glVertexAttribs3dvNV');
18066   glVertexAttribs3fvNV := dglGetProcAddress('glVertexAttribs3fvNV');
18067   glVertexAttribs3svNV := dglGetProcAddress('glVertexAttribs3svNV');
18068   glVertexAttribs4dvNV := dglGetProcAddress('glVertexAttribs4dvNV');
18069   glVertexAttribs4fvNV := dglGetProcAddress('glVertexAttribs4fvNV');
18070   glVertexAttribs4svNV := dglGetProcAddress('glVertexAttribs4svNV');
18071   glVertexAttribs4ubvNV := dglGetProcAddress('glVertexAttribs4ubvNV');
18072 end;
18073
18074 procedure Read_GL_NV_depth_buffer_float;
18075 begin
18076   glDepthRangedNV := dglGetProcAddress('glDepthRangedNV');
18077   glClearDepthdNV := dglGetProcAddress('glClearDepthdNV');
18078   glDepthBoundsdNV := dglGetProcAddress('glDepthBoundsdNV');
18079 end;
18080
18081 procedure Read_GL_NV_framebuffer_multisample_coverage;
18082 begin
18083   glRenderbufferStorageMultsampleCoverageNV := dglGetProcAddress('glRenderbufferStorageMultsampleCoverageNV');
18084 end;
18085
18086 procedure Read_GL_NV_geometry_program4;
18087 begin
18088   glProgramVertexLimitNV := dglGetProcAddress('glProgramVertexLimitNV');
18089 end;
18090
18091 procedure Read_GL_NV_gpu_program4;
18092 begin
18093   glProgramLocalParameterI4iNV := dglGetProcAddress('glProgramLocalParameterI4iNV');
18094   glProgramLocalParameterI4ivNV := dglGetProcAddress('glProgramLocalParameterI4ivNV');
18095   glProgramLocalParametersI4ivNV := dglGetProcAddress('glProgramLocalParametersI4ivNV');
18096   glProgramLocalParameterI4uiNV := dglGetProcAddress('glProgramLocalParameterI4uiNV');
18097   glProgramLocalParameterI4uivNV := dglGetProcAddress('glProgramLocalParameterI4uivNV');
18098   glProgramLocalParametersI4uivNV := dglGetProcAddress('glProgramLocalParametersI4uivNV');
18099   glProgramEnvParameterI4iNV := dglGetProcAddress('glProgramEnvParameterI4iNV');
18100   glProgramEnvParameterI4ivNV := dglGetProcAddress('glProgramEnvParameterI4ivNV');
18101   glProgramEnvParametersI4ivNV := dglGetProcAddress('glProgramEnvParametersI4ivNV');
18102   glProgramEnvParameterI4uiNV := dglGetProcAddress('glProgramEnvParameterI4uiNV');
18103   glProgramEnvParameterI4uivNV := dglGetProcAddress('glProgramEnvParameterI4uivNV');
18104   glProgramEnvParametersI4uivNV := dglGetProcAddress('glProgramEnvParametersI4uivNV');
18105   glGetProgramLocalParameterIivNV := dglGetProcAddress('glGetProgramLocalParameterIivNV');
18106   glGetProgramLocalParameterIuivNV := dglGetProcAddress('glGetProgramLocalParameterIuivNV');
18107   glGetProgramEnvParameterIivNV := dglGetProcAddress('glGetProgramEnvParameterIivNV');
18108   glGetProgramEnvParameterIuivNV := dglGetProcAddress('glGetProgramEnvParameterIuivNV');
18109 end;
18110
18111 procedure Read_GL_NV_parameter_buffer_object;
18112 begin
18113   glProgramBufferParametersfvNV := dglGetProcAddress('glProgramBufferParametersfvNV');
18114   glProgramBufferParametersIivNV := dglGetProcAddress('glProgramBufferParametersIivNV');
18115   glProgramBufferParametersIuivNV := dglGetProcAddress('glProgramBufferParametersIuivNV');
18116 end;
18117
18118 procedure Read_GL_NV_transform_feedback;
18119 begin
18120   glBeginTransformFeedbackNV := dglGetProcAddress('glBeginTransformFeedbackNV');
18121   glEndTransformFeedbackNV := dglGetProcAddress('glEndTransformFeedbackNV');
18122   glTransformFeedbackAttribsNV := dglGetProcAddress('glTransformFeedbackAttribsNV');
18123   glBindBufferRangeNV := dglGetProcAddress('glBindBufferRangeNV');
18124   glBindBufferOffsetNV := dglGetProcAddress('glBindBufferOffsetNV');
18125   glBindBufferBaseNV := dglGetProcAddress('glBindBufferBaseNV');
18126   glTransformFeedbackVaryingsNV := dglGetProcAddress('glTransformFeedbackVaryingsNV');
18127   glActiveVaryingNV := dglGetProcAddress('glActiveVaryingNV');
18128   glGetVaryingLocationNV := dglGetProcAddress('glGetVaryingLocationNV');
18129   glGetActiveVaryingNV := dglGetProcAddress('glGetActiveVaryingNV');
18130   glGetTransformFeedbackVaryingNV := dglGetProcAddress('glGetTransformFeedbackVaryingNV');
18131   glTransformFeedbackStreamAttribsNV := dglGetProcAddress('glTransformFeedbackStreamAttribsNV');
18132 end;
18133
18134 procedure Read_GL_NV_conditional_render;
18135 begin
18136   glBeginConditionalRenderNV := dglGetProcAddress('glBeginConditionalRenderNV');
18137   glEndConditionalRenderNV := dglGetProcAddress('glEndConditionalRenderNV');
18138 end;
18139
18140 procedure Read_GL_NV_present_video;
18141 begin
18142   glPresentFrameKeyedNV := dglGetProcAddress('glPresentFrameKeyedNV');
18143   glPresentFrameDualFillNV := dglGetProcAddress('glPresentFrameDualFillNV');
18144   glGetVideoivNV := dglGetProcAddress('glGetVideoivNV');
18145   glGetVideouivNV := dglGetProcAddress('glGetVideouivNV');
18146   glGetVideoi64vNV := dglGetProcAddress('glGetVideoi64vNV');
18147   glGetVideoui64vNV := dglGetProcAddress('glGetVideoui64vNV');
18148 //  glVideoParameterivNV := dglGetProcAddress('glVideoParameterivNV');
18149 end;
18150
18151 procedure Read_GL_NV_explicit_multisample;
18152 begin
18153   glGetMultisamplefvNV := dglGetProcAddress('glGetMultisamplefvNV');
18154   glSampleMaskIndexedNV := dglGetProcAddress('glSampleMaskIndexedNV');
18155   glTexRenderbufferNV := dglGetProcAddress('glTexRenderbufferNV');
18156 end;
18157
18158 procedure Read_GL_NV_transform_feedback2;
18159 begin
18160   glBindTransformFeedbackNV := dglGetProcAddress('glBindTransformFeedbackNV');
18161   glDeleteTransformFeedbacksNV := dglGetProcAddress('glDeleteTransformFeedbacksNV');
18162   glGenTransformFeedbacksNV := dglGetProcAddress('glGenTransformFeedbacksNV');
18163   glIsTransformFeedbackNV := dglGetProcAddress('glIsTransformFeedbackNV');
18164   glPauseTransformFeedbackNV := dglGetProcAddress('glPauseTransformFeedbackNV');
18165   glResumeTransformFeedbackNV := dglGetProcAddress('glResumeTransformFeedbackNV');
18166   glDrawTransformFeedbackNV := dglGetProcAddress('glDrawTransformFeedbackNV');
18167 end;
18168
18169 procedure Read_GL_NV_video_capture;
18170 begin
18171   glBeginVideoCaptureNV := dglGetProcAddress('glBeginVideoCaptureNV');
18172   glBindVideoCaptureStreamBufferNV := dglGetProcAddress('glBindVideoCaptureStreamBufferNV');
18173   glBindVideoCaptureStreamTextureNV := dglGetProcAddress('glBindVideoCaptureStreamTextureNV');
18174   glEndVideoCaptureNV := dglGetProcAddress('glEndVideoCaptureNV');
18175   glGetVideoCaptureivNV := dglGetProcAddress('glGetVideoCaptureivNV');
18176   glGetVideoCaptureStreamivNV := dglGetProcAddress('glGetVideoCaptureStreamivNV');
18177   glGetVideoCaptureStreamfvNV := dglGetProcAddress('glGetVideoCaptureStreamfvNV');
18178   glGetVideoCaptureStreamdvNV := dglGetProcAddress('glGetVideoCaptureStreamdvNV');
18179   glVideoCaptureNV := dglGetProcAddress('glVideoCaptureNV');
18180   glVideoCaptureStreamParameterivNV := dglGetProcAddress('glVideoCaptureStreamParameterivNV');
18181   glVideoCaptureStreamParameterfvNV := dglGetProcAddress('glVideoCaptureStreamParameterfvNV');
18182   glVideoCaptureStreamParameterdvNV := dglGetProcAddress('glVideoCaptureStreamParameterdvNV');
18183 end;
18184
18185 procedure Read_GL_NV_copy_image;
18186 begin
18187   glCopyImageSubDataNV := dglGetProcAddress('glCopyImageSubDataNV');
18188 end;
18189
18190 procedure Read_GL_NV_shader_buffer_load;
18191 begin
18192   glMakeBufferResidentNV := dglGetProcAddress('glMakeBufferResidentNV');
18193   glMakeBufferNonResidentNV := dglGetProcAddress('glMakeBufferNonResidentNV');
18194   glIsBufferResidentNV := dglGetProcAddress('glIsBufferResidentNV');
18195   glMakeNamedBufferResidentNV := dglGetProcAddress('glMakeNamedBufferResidentNV');
18196   glMakeNamedBufferNonResidentNV := dglGetProcAddress('glMakeNamedBufferNonResidentNV');
18197   glIsNamedBufferResidentNV := dglGetProcAddress('glIsNamedBufferResidentNV');
18198   glGetBufferParameterui64vNV := dglGetProcAddress('glGetBufferParameterui64vNV');
18199   glGetNamedBufferParameterui64vNV := dglGetProcAddress('glGetNamedBufferParameterui64vNV');
18200   glGetIntegerui64vNV := dglGetProcAddress('glGetIntegerui64vNV');
18201   glUniformui64NV := dglGetProcAddress('glUniformui64NV');
18202   glUniformui64vNV := dglGetProcAddress('glUniformui64vNV');
18203   glGetUniformui64vNV := dglGetProcAddress('glGetUniformui64vNV');
18204   glProgramUniformui64NV := dglGetProcAddress('glProgramUniformui64NV');
18205   glProgramUniformui64vNV := dglGetProcAddress('glProgramUniformui64vNV');
18206 end;
18207
18208 procedure Read_GL_NV_vertex_buffer_unified_memory;
18209 begin
18210   glBufferAddressRangeNV := dglGetProcAddress('glBufferAddressRangeNV');
18211   glVertexFormatNV := dglGetProcAddress('glVertexFormatNV');
18212   glNormalFormatNV := dglGetProcAddress('glNormalFormatNV');
18213   glColorFormatNV := dglGetProcAddress('glColorFormatNV');
18214   glIndexFormatNV := dglGetProcAddress('glIndexFormatNV');
18215   glTexCoordFormatNV := dglGetProcAddress('glTexCoordFormatNV');
18216   glEdgeFlagFormatNV := dglGetProcAddress('glEdgeFlagFormatNV');
18217   glSecondaryColorFormatNV := dglGetProcAddress('glSecondaryColorFormatNV');
18218   glFogCoordFormatNV := dglGetProcAddress('glFogCoordFormatNV');
18219   glVertexAttribFormatNV := dglGetProcAddress('glVertexAttribFormatNV');
18220   glVertexAttribIFormatNV := dglGetProcAddress('glVertexAttribIFormatNV');
18221   glGetIntegerui64i_vNV := dglGetProcAddress('glGetIntegerui64i_vNV');
18222 end;
18223
18224 procedure Read_GL_NV_gpu_program5;
18225 begin
18226   glProgramSubroutineParametersuivNV := dglGetProcAddress('glProgramSubroutineParametersuivNV');
18227   glGetProgramSubroutineParameteruivNV := dglGetProcAddress('glGetProgramSubroutineParameteruivNV');
18228 end;
18229
18230 procedure Read_GL_NV_gpu_shader5;
18231 begin
18232   glUniform1i64NV := dglGetProcAddress('glUniform1i64NV');
18233   glUniform2i64NV := dglGetProcAddress('glUniform2i64NV');
18234   glUniform3i64NV := dglGetProcAddress('glUniform3i64NV');
18235   glUniform4i64NV := dglGetProcAddress('glUniform4i64NV');
18236   glUniform1i64vNV := dglGetProcAddress('glUniform1i64vNV');
18237   glUniform2i64vNV := dglGetProcAddress('glUniform2i64vNV');
18238   glUniform3i64vNV := dglGetProcAddress('glUniform3i64vNV');
18239   glUniform4i64vNV := dglGetProcAddress('glUniform4i64vNV');
18240   glUniform1ui64NV := dglGetProcAddress('glUniform1ui64NV');
18241   glUniform2ui64NV := dglGetProcAddress('glUniform2ui64NV');
18242   glUniform3ui64NV := dglGetProcAddress('glUniform3ui64NV');
18243   glUniform4ui64NV := dglGetProcAddress('glUniform4ui64NV');
18244   glUniform1ui64vNV := dglGetProcAddress('glUniform1ui64vNV');
18245   glUniform2ui64vNV := dglGetProcAddress('glUniform2ui64vNV');
18246   glUniform3ui64vNV := dglGetProcAddress('glUniform3ui64vNV');
18247   glUniform4ui64vNV := dglGetProcAddress('glUniform4ui64vNV');
18248   glGetUniformi64vNV := dglGetProcAddress('glGetUniformi64vNV');
18249   glProgramUniform1i64NV := dglGetProcAddress('glProgramUniform1i64NV');
18250   glProgramUniform2i64NV := dglGetProcAddress('glProgramUniform2i64NV');
18251   glProgramUniform3i64NV := dglGetProcAddress('glProgramUniform3i64NV');
18252   glProgramUniform4i64NV := dglGetProcAddress('glProgramUniform4i64NV');
18253   glProgramUniform1i64vNV := dglGetProcAddress('glProgramUniform1i64vNV');
18254   glProgramUniform2i64vNV := dglGetProcAddress('glProgramUniform2i64vNV');
18255   glProgramUniform3i64vNV := dglGetProcAddress('glProgramUniform3i64vNV');
18256   glProgramUniform4i64vNV := dglGetProcAddress('glProgramUniform4i64vNV');
18257   glProgramUniform1ui64NV := dglGetProcAddress('glProgramUniform1ui64NV');
18258   glProgramUniform2ui64NV := dglGetProcAddress('glProgramUniform2ui64NV');
18259   glProgramUniform3ui64NV := dglGetProcAddress('glProgramUniform3ui64NV');
18260   glProgramUniform4ui64NV := dglGetProcAddress('glProgramUniform4ui64NV');
18261   glProgramUniform1ui64vNV := dglGetProcAddress('glProgramUniform1ui64vNV');
18262   glProgramUniform2ui64vNV := dglGetProcAddress('glProgramUniform2ui64vNV');
18263   glProgramUniform3ui64vNV := dglGetProcAddress('glProgramUniform3ui64vNV');
18264   glProgramUniform4ui64vNV := dglGetProcAddress('glProgramUniform4ui64vNV');
18265 end;
18266
18267 procedure Read_GL_NV_vertex_attrib_integer_64bit;
18268 begin
18269   glVertexAttribL1i64NV := dglGetProcAddress('glVertexAttribL1i64NV');
18270   glVertexAttribL2i64NV := dglGetProcAddress('glVertexAttribL2i64NV');
18271   glVertexAttribL3i64NV := dglGetProcAddress('glVertexAttribL3i64NV');
18272   glVertexAttribL4i64NV := dglGetProcAddress('glVertexAttribL4i64NV');
18273   glVertexAttribL1i64vNV := dglGetProcAddress('glVertexAttribL1i64vNV');
18274   glVertexAttribL2i64vNV := dglGetProcAddress('glVertexAttribL2i64vNV');
18275   glVertexAttribL3i64vNV := dglGetProcAddress('glVertexAttribL3i64vNV');
18276   glVertexAttribL4i64vNV := dglGetProcAddress('glVertexAttribL4i64vNV');
18277   glVertexAttribL1ui64NV := dglGetProcAddress('glVertexAttribL1ui64NV');
18278   glVertexAttribL2ui64NV := dglGetProcAddress('glVertexAttribL2ui64NV');
18279   glVertexAttribL3ui64NV := dglGetProcAddress('glVertexAttribL3ui64NV');
18280   glVertexAttribL4ui64NV := dglGetProcAddress('glVertexAttribL4ui64NV');
18281   glVertexAttribL1ui64vNV := dglGetProcAddress('glVertexAttribL1ui64vNV');
18282   glVertexAttribL2ui64vNV := dglGetProcAddress('glVertexAttribL2ui64vNV');
18283   glVertexAttribL3ui64vNV := dglGetProcAddress('glVertexAttribL3ui64vNV');
18284   glVertexAttribL4ui64vNV := dglGetProcAddress('glVertexAttribL4ui64vNV');
18285   glGetVertexAttribLi64vNV := dglGetProcAddress('glGetVertexAttribLi64vNV');
18286   glGetVertexAttribLui64vNV := dglGetProcAddress('glGetVertexAttribLui64vNV');
18287   glVertexAttribLFormatNV := dglGetProcAddress('glVertexAttribLFormatNV');
18288 end;  
18289
18290 procedure Read_GL_NV_vdpau_interop;
18291 begin
18292   glVDPAUInitNV := dglGetProcAddress('glVDPAUInitNV');
18293   glVDPAUFiniNV := dglGetProcAddress('glVDPAUFiniNV');
18294   glVDPAURegisterVideoSurfaceNV := dglGetProcAddress('glVDPAURegisterVideoSurfaceNV');
18295   glVDPAURegisterOutputSurfaceNV := dglGetProcAddress('glVDPAURegisterOutputSurfaceNV');
18296   glVDPAUIsSurfaceNV := dglGetProcAddress('glVDPAUIsSurfaceNV');
18297   glVDPAUUnregisterSurfaceNV := dglGetProcAddress('glVDPAUUnregisterSurfaceNV');
18298   glVDPAUGetSurfaceivNV := dglGetProcAddress('glVDPAUGetSurfaceivNV');
18299   glVDPAUSurfaceAccessNV := dglGetProcAddress('glVDPAUSurfaceAccessNV');
18300   glVDPAUMapSurfacesNV := dglGetProcAddress('glVDPAUMapSurfacesNV');
18301   glVDPAUUnmapSurfacesNV := dglGetProcAddress('glVDPAUUnmapSurfacesNV');
18302 end;
18303   
18304 procedure Read_GL_NV_texture_barrier;
18305 begin
18306   glTextureBarrierNV := dglGetProcAddress('glTextureBarrierNV');
18307 end;
18308
18309 procedure Read_GL_PGI_misc_hints;
18310 begin
18311   glHintPGI := dglGetProcAddress('glHintPGI');
18312 end;
18313
18314 procedure Read_GL_SGIS_detail_texture;
18315 begin
18316   glDetailTexFuncSGIS := dglGetProcAddress('glDetailTexFuncSGIS');
18317   glGetDetailTexFuncSGIS := dglGetProcAddress('glGetDetailTexFuncSGIS');
18318 end;
18319
18320 procedure Read_GL_SGIS_fog_function;
18321 begin
18322   glFogFuncSGIS := dglGetProcAddress('glFogFuncSGIS');
18323   glGetFogFuncSGIS := dglGetProcAddress('glGetFogFuncSGIS');
18324 end;
18325
18326 procedure Read_GL_SGIS_multisample;
18327 begin
18328   glSampleMaskSGIS := dglGetProcAddress('glSampleMaskSGIS');
18329   glSamplePatternSGIS := dglGetProcAddress('glSamplePatternSGIS');
18330 end;
18331
18332 procedure Read_GL_SGIS_pixel_texture;
18333 begin
18334   glPixelTexGenParameteriSGIS := dglGetProcAddress('glPixelTexGenParameteriSGIS');
18335   glPixelTexGenParameterivSGIS := dglGetProcAddress('glPixelTexGenParameterivSGIS');
18336   glPixelTexGenParameterfSGIS := dglGetProcAddress('glPixelTexGenParameterfSGIS');
18337   glPixelTexGenParameterfvSGIS := dglGetProcAddress('glPixelTexGenParameterfvSGIS');
18338   glGetPixelTexGenParameterivSGIS := dglGetProcAddress('glGetPixelTexGenParameterivSGIS');
18339   glGetPixelTexGenParameterfvSGIS := dglGetProcAddress('glGetPixelTexGenParameterfvSGIS');
18340 end;
18341
18342 procedure Read_GL_SGIS_point_parameters;
18343 begin
18344   glPointParameterfSGIS := dglGetProcAddress('glPointParameterfSGIS');
18345   glPointParameterfvSGIS := dglGetProcAddress('glPointParameterfvSGIS');
18346 end;
18347
18348 procedure Read_GL_SGIS_sharpen_texture;
18349 begin
18350   glSharpenTexFuncSGIS := dglGetProcAddress('glSharpenTexFuncSGIS');
18351   glGetSharpenTexFuncSGIS := dglGetProcAddress('glGetSharpenTexFuncSGIS');
18352 end;
18353
18354 procedure Read_GL_SGIS_texture4D;
18355 begin
18356   glTexImage4DSGIS := dglGetProcAddress('glTexImage4DSGIS');
18357   glTexSubImage4DSGIS := dglGetProcAddress('glTexSubImage4DSGIS');
18358 end;
18359
18360 procedure Read_GL_SGIS_texture_color_mask;
18361 begin
18362   glTextureColorMaskSGIS := dglGetProcAddress('glTextureColorMaskSGIS');
18363 end;
18364
18365 procedure Read_GL_SGIS_texture_filter4;
18366 begin
18367   glGetTexFilterFuncSGIS := dglGetProcAddress('glGetTexFilterFuncSGIS');
18368   glTexFilterFuncSGIS := dglGetProcAddress('glTexFilterFuncSGIS');
18369 end;
18370
18371 procedure Read_GL_SGIX_async;
18372 begin
18373   glAsyncMarkerSGIX := dglGetProcAddress('glAsyncMarkerSGIX');
18374   glFinishAsyncSGIX := dglGetProcAddress('glFinishAsyncSGIX');
18375   glPollAsyncSGIX := dglGetProcAddress('glPollAsyncSGIX');
18376   glGenAsyncMarkersSGIX := dglGetProcAddress('glGenAsyncMarkersSGIX');
18377   glDeleteAsyncMarkersSGIX := dglGetProcAddress('glDeleteAsyncMarkersSGIX');
18378   glIsAsyncMarkerSGIX := dglGetProcAddress('glIsAsyncMarkerSGIX');
18379 end;
18380
18381 procedure Read_GL_SGIX_flush_raster;
18382 begin
18383   glFlushRasterSGIX := dglGetProcAddress('glFlushRasterSGIX');
18384 end;
18385
18386 procedure Read_GL_SGIX_fragment_lighting;
18387 begin
18388   glFragmentColorMaterialSGIX := dglGetProcAddress('glFragmentColorMaterialSGIX');
18389   glFragmentLightfSGIX := dglGetProcAddress('glFragmentLightfSGIX');
18390   glFragmentLightfvSGIX := dglGetProcAddress('glFragmentLightfvSGIX');
18391   glFragmentLightiSGIX := dglGetProcAddress('glFragmentLightiSGIX');
18392   glFragmentLightivSGIX := dglGetProcAddress('glFragmentLightivSGIX');
18393   glFragmentLightModelfSGIX := dglGetProcAddress('glFragmentLightModelfSGIX');
18394   glFragmentLightModelfvSGIX := dglGetProcAddress('glFragmentLightModelfvSGIX');
18395   glFragmentLightModeliSGIX := dglGetProcAddress('glFragmentLightModeliSGIX');
18396   glFragmentLightModelivSGIX := dglGetProcAddress('glFragmentLightModelivSGIX');
18397   glFragmentMaterialfSGIX := dglGetProcAddress('glFragmentMaterialfSGIX');
18398   glFragmentMaterialfvSGIX := dglGetProcAddress('glFragmentMaterialfvSGIX');
18399   glFragmentMaterialiSGIX := dglGetProcAddress('glFragmentMaterialiSGIX');
18400   glFragmentMaterialivSGIX := dglGetProcAddress('glFragmentMaterialivSGIX');
18401   glGetFragmentLightfvSGIX := dglGetProcAddress('glGetFragmentLightfvSGIX');
18402   glGetFragmentLightivSGIX := dglGetProcAddress('glGetFragmentLightivSGIX');
18403   glGetFragmentMaterialfvSGIX := dglGetProcAddress('glGetFragmentMaterialfvSGIX');
18404   glGetFragmentMaterialivSGIX := dglGetProcAddress('glGetFragmentMaterialivSGIX');
18405   glLightEnviSGIX := dglGetProcAddress('glLightEnviSGIX');
18406 end;
18407
18408 procedure Read_GL_SGIX_framezoom;
18409 begin
18410   glFrameZoomSGIX := dglGetProcAddress('glFrameZoomSGIX');
18411 end;
18412
18413 procedure Read_GL_SGIX_igloo_interface;
18414 begin
18415   glIglooInterfaceSGIX := dglGetProcAddress('glIglooInterfaceSGIX');
18416 end;
18417
18418 procedure Read_GL_SGIX_instruments;
18419 begin
18420   glGetInstrumentsSGIX := dglGetProcAddress('glGetInstrumentsSGIX');
18421   glInstrumentsBufferSGIX := dglGetProcAddress('glInstrumentsBufferSGIX');
18422   glPollInstrumentsSGIX := dglGetProcAddress('glPollInstrumentsSGIX');
18423   glReadInstrumentsSGIX := dglGetProcAddress('glReadInstrumentsSGIX');
18424   glStartInstrumentsSGIX := dglGetProcAddress('glStartInstrumentsSGIX');
18425   glStopInstrumentsSGIX := dglGetProcAddress('glStopInstrumentsSGIX');
18426 end;
18427
18428 procedure Read_GL_SGIX_list_priority;
18429 begin
18430   glGetListParameterfvSGIX := dglGetProcAddress('glGetListParameterfvSGIX');
18431   glGetListParameterivSGIX := dglGetProcAddress('glGetListParameterivSGIX');
18432   glListParameterfSGIX := dglGetProcAddress('glListParameterfSGIX');
18433   glListParameterfvSGIX := dglGetProcAddress('glListParameterfvSGIX');
18434   glListParameteriSGIX := dglGetProcAddress('glListParameteriSGIX');
18435   glListParameterivSGIX := dglGetProcAddress('glListParameterivSGIX');
18436 end;
18437
18438 procedure Read_GL_SGIX_pixel_texture;
18439 begin
18440   glPixelTexGenSGIX := dglGetProcAddress('glPixelTexGenSGIX');
18441 end;
18442
18443 procedure Read_GL_SGIX_polynomial_ffd;
18444 begin
18445   glDeformationMap3dSGIX := dglGetProcAddress('glDeformationMap3dSGIX');
18446   glDeformationMap3fSGIX := dglGetProcAddress('glDeformationMap3fSGIX');
18447   glDeformSGIX := dglGetProcAddress('glDeformSGIX');
18448   glLoadIdentityDeformationMapSGIX := dglGetProcAddress('glLoadIdentityDeformationMapSGIX');
18449 end;
18450
18451 procedure Read_GL_SGIX_reference_plane;
18452 begin
18453   glReferencePlaneSGIX := dglGetProcAddress('glReferencePlaneSGIX');
18454 end;
18455
18456 procedure Read_GL_SGIX_sprite;
18457 begin
18458   glSpriteParameterfSGIX := dglGetProcAddress('glSpriteParameterfSGIX');
18459   glSpriteParameterfvSGIX := dglGetProcAddress('glSpriteParameterfvSGIX');
18460   glSpriteParameteriSGIX := dglGetProcAddress('glSpriteParameteriSGIX');
18461   glSpriteParameterivSGIX := dglGetProcAddress('glSpriteParameterivSGIX');
18462 end;
18463
18464 procedure Read_GL_SGIX_tag_sample_buffer;
18465 begin
18466   glTagSampleBufferSGIX := dglGetProcAddress('glTagSampleBufferSGIX');
18467 end;
18468
18469 procedure Read_GL_SGI_color_table;
18470 begin
18471   glColorTableSGI := dglGetProcAddress('glColorTableSGI');
18472   glColorTableParameterfvSGI := dglGetProcAddress('glColorTableParameterfvSGI');
18473   glColorTableParameterivSGI := dglGetProcAddress('glColorTableParameterivSGI');
18474   glCopyColorTableSGI := dglGetProcAddress('glCopyColorTableSGI');
18475   glGetColorTableSGI := dglGetProcAddress('glGetColorTableSGI');
18476   glGetColorTableParameterfvSGI := dglGetProcAddress('glGetColorTableParameterfvSGI');
18477   glGetColorTableParameterivSGI := dglGetProcAddress('glGetColorTableParameterivSGI');
18478 end;
18479
18480 procedure Read_GL_SUNX_constant_data;
18481 begin
18482   glFinishTextureSUNX := dglGetProcAddress('glFinishTextureSUNX');
18483 end;
18484
18485 procedure Read_GL_SUN_global_alpha;
18486 begin
18487   glGlobalAlphaFactorbSUN := dglGetProcAddress('glGlobalAlphaFactorbSUN');
18488   glGlobalAlphaFactorsSUN := dglGetProcAddress('glGlobalAlphaFactorsSUN');
18489   glGlobalAlphaFactoriSUN := dglGetProcAddress('glGlobalAlphaFactoriSUN');
18490   glGlobalAlphaFactorfSUN := dglGetProcAddress('glGlobalAlphaFactorfSUN');
18491   glGlobalAlphaFactordSUN := dglGetProcAddress('glGlobalAlphaFactordSUN');
18492   glGlobalAlphaFactorubSUN := dglGetProcAddress('glGlobalAlphaFactorubSUN');
18493   glGlobalAlphaFactorusSUN := dglGetProcAddress('glGlobalAlphaFactorusSUN');
18494   glGlobalAlphaFactoruiSUN := dglGetProcAddress('glGlobalAlphaFactoruiSUN');
18495 end;
18496
18497 procedure Read_GL_SUN_mesh_array;
18498 begin
18499   glDrawMeshArraysSUN := dglGetProcAddress('glDrawMeshArraysSUN');
18500 end;
18501
18502 procedure Read_GL_SUN_triangle_list;
18503 begin
18504   glReplacementCodeuiSUN := dglGetProcAddress('glReplacementCodeuiSUN');
18505   glReplacementCodeusSUN := dglGetProcAddress('glReplacementCodeusSUN');
18506   glReplacementCodeubSUN := dglGetProcAddress('glReplacementCodeubSUN');
18507   glReplacementCodeuivSUN := dglGetProcAddress('glReplacementCodeuivSUN');
18508   glReplacementCodeusvSUN := dglGetProcAddress('glReplacementCodeusvSUN');
18509   glReplacementCodeubvSUN := dglGetProcAddress('glReplacementCodeubvSUN');
18510   glReplacementCodePointerSUN := dglGetProcAddress('glReplacementCodePointerSUN');
18511 end;
18512
18513 procedure Read_GL_SUN_vertex;
18514 begin
18515   glColor4ubVertex2fSUN := dglGetProcAddress('glColor4ubVertex2fSUN');
18516   glColor4ubVertex2fvSUN := dglGetProcAddress('glColor4ubVertex2fvSUN');
18517   glColor4ubVertex3fSUN := dglGetProcAddress('glColor4ubVertex3fSUN');
18518   glColor4ubVertex3fvSUN := dglGetProcAddress('glColor4ubVertex3fvSUN');
18519   glColor3fVertex3fSUN := dglGetProcAddress('glColor3fVertex3fSUN');
18520   glColor3fVertex3fvSUN := dglGetProcAddress('glColor3fVertex3fvSUN');
18521   glNormal3fVertex3fSUN := dglGetProcAddress('glNormal3fVertex3fSUN');
18522   glNormal3fVertex3fvSUN := dglGetProcAddress('glNormal3fVertex3fvSUN');
18523   glColor4fNormal3fVertex3fSUN := dglGetProcAddress('glColor4fNormal3fVertex3fSUN');
18524   glColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glColor4fNormal3fVertex3fvSUN');
18525   glTexCoord2fVertex3fSUN := dglGetProcAddress('glTexCoord2fVertex3fSUN');
18526   glTexCoord2fVertex3fvSUN := dglGetProcAddress('glTexCoord2fVertex3fvSUN');
18527   glTexCoord4fVertex4fSUN := dglGetProcAddress('glTexCoord4fVertex4fSUN');
18528   glTexCoord4fVertex4fvSUN := dglGetProcAddress('glTexCoord4fVertex4fvSUN');
18529   glTexCoord2fColor4ubVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fSUN');
18530   glTexCoord2fColor4ubVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fvSUN');
18531   glTexCoord2fColor3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fSUN');
18532   glTexCoord2fColor3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fvSUN');
18533   glTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fSUN');
18534   glTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fvSUN');
18535   glTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fSUN');
18536   glTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fvSUN');
18537   glTexCoord4fColor4fNormal3fVertex4fSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fSUN');
18538   glTexCoord4fColor4fNormal3fVertex4fvSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fvSUN');
18539   glReplacementCodeuiVertex3fSUN := dglGetProcAddress('glReplacementCodeuiVertex3fSUN');
18540   glReplacementCodeuiVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiVertex3fvSUN');
18541   glReplacementCodeuiColor4ubVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fSUN');
18542   glReplacementCodeuiColor4ubVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fvSUN');
18543   glReplacementCodeuiColor3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fSUN');
18544   glReplacementCodeuiColor3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fvSUN');
18545   glReplacementCodeuiNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fSUN');
18546   glReplacementCodeuiNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fvSUN');
18547   glReplacementCodeuiColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fSUN');
18548   glReplacementCodeuiColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fvSUN');
18549   glReplacementCodeuiTexCoord2fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fSUN');
18550   glReplacementCodeuiTexCoord2fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fvSUN');
18551   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN');
18552   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN');
18553   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN');
18554   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN');
18555 end;
18556
18557 {$IFDEF DGL_WIN}
18558 procedure Read_WGL_ARB_buffer_region;
18559 begin
18560   wglCreateBufferRegionARB := dglGetProcAddress('wglCreateBufferRegionARB');
18561   wglDeleteBufferRegionARB := dglGetProcAddress('wglDeleteBufferRegionARB');
18562   wglSaveBufferRegionARB := dglGetProcAddress('wglSaveBufferRegionARB');
18563   wglRestoreBufferRegionARB := dglGetProcAddress('wglRestoreBufferRegionARB');
18564 end;
18565
18566 procedure Read_WGL_ARB_extensions_string;
18567 begin
18568   wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
18569 end;
18570
18571 procedure Read_WGL_ARB_make_current_read;
18572 begin
18573   wglMakeContextCurrentARB := dglGetProcAddress('wglMakeContextCurrentARB');
18574   wglGetCurrentReadDCARB := dglGetProcAddress('wglGetCurrentReadDCARB');
18575 end;
18576
18577 procedure Read_WGL_ARB_pbuffer;
18578 begin
18579   wglCreatePbufferARB := dglGetProcAddress('wglCreatePbufferARB');
18580   wglGetPbufferDCARB := dglGetProcAddress('wglGetPbufferDCARB');
18581   wglReleasePbufferDCARB := dglGetProcAddress('wglReleasePbufferDCARB');
18582   wglDestroyPbufferARB := dglGetProcAddress('wglDestroyPbufferARB');
18583   wglQueryPbufferARB := dglGetProcAddress('wglQueryPbufferARB');
18584 end;
18585
18586 procedure Read_WGL_ARB_pixel_format;
18587 begin
18588   wglGetPixelFormatAttribivARB := dglGetProcAddress('wglGetPixelFormatAttribivARB');
18589   wglGetPixelFormatAttribfvARB := dglGetProcAddress('wglGetPixelFormatAttribfvARB');
18590   wglChoosePixelFormatARB := dglGetProcAddress('wglChoosePixelFormatARB');
18591 end;
18592
18593 procedure Read_WGL_ARB_pixel_format_float;
18594 begin
18595   wglClampColorARB := dglGetProcAddress('wglClampColorARB');
18596 end;
18597
18598 procedure Read_WGL_ARB_render_texture;
18599 begin
18600   wglBindTexImageARB := dglGetProcAddress('wglBindTexImageARB');
18601   wglReleaseTexImageARB := dglGetProcAddress('wglReleaseTexImageARB');
18602   wglSetPbufferAttribARB := dglGetProcAddress('wglSetPbufferAttribARB');
18603 end;
18604
18605 procedure Read_WGL_ARB_create_context;
18606 begin
18607   wglCreateContextAttribsARB := dglGetProcAddress('wglCreateContextAttribsARB');
18608 end;
18609
18610 procedure Read_WGL_AMD_gpu_association;
18611 begin
18612   wglGetGPUIDsAMD := dglGetProcAddress('wglGetGPUIDsAMD');
18613   wglGetGPUInfoAMD := dglGetProcAddress('wglGetGPUInfoAMD');
18614   wglGetContextGPUIDAMD := dglGetProcAddress('wglGetContextGPUIDAMD');
18615   wglCreateAssociatedContextAMD := dglGetProcAddress('wglCreateAssociatedContextAMD');
18616   wglCreateAssociatedContextAttribsAMD := dglGetProcAddress('wglCreateAssociatedContextAttribsAMD');
18617   wglDeleteAssociatedContextAMD := dglGetProcAddress('wglDeleteAssociatedContextAMD');
18618   wglMakeAssociatedContextCurrentAMD := dglGetProcAddress('wglMakeAssociatedContextCurrentAMD');
18619   wglGetCurrentAssociatedContextAMD := dglGetProcAddress('wglGetCurrentAssociatedContextAMD');
18620   wglBlitContextFramebufferAMD := dglGetProcAddress('wglBlitContextFramebufferAMD');
18621 end;
18622
18623 procedure Read_WGL_EXT_display_color_table;
18624 begin
18625   wglCreateDisplayColorTableEXT := dglGetProcAddress('wglCreateDisplayColorTableEXT');
18626   wglLoadDisplayColorTableEXT := dglGetProcAddress('wglLoadDisplayColorTableEXT');
18627   wglBindDisplayColorTableEXT := dglGetProcAddress('wglBindDisplayColorTableEXT');
18628   wglDestroyDisplayColorTableEXT := dglGetProcAddress('wglDestroyDisplayColorTableEXT');
18629 end;
18630
18631 procedure Read_WGL_EXT_extensions_string;
18632 begin
18633   wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
18634 end;
18635
18636 procedure Read_WGL_EXT_make_current_read;
18637 begin
18638   wglMakeContextCurrentEXT := dglGetProcAddress('wglMakeContextCurrentEXT');
18639   wglGetCurrentReadDCEXT := dglGetProcAddress('wglGetCurrentReadDCEXT');
18640 end;
18641
18642 procedure Read_WGL_EXT_pbuffer;
18643 begin
18644   wglCreatePbufferEXT := dglGetProcAddress('wglCreatePbufferEXT');
18645   wglGetPbufferDCEXT := dglGetProcAddress('wglGetPbufferDCEXT');
18646   wglReleasePbufferDCEXT := dglGetProcAddress('wglReleasePbufferDCEXT');
18647   wglDestroyPbufferEXT := dglGetProcAddress('wglDestroyPbufferEXT');
18648   wglQueryPbufferEXT := dglGetProcAddress('wglQueryPbufferEXT');
18649 end;
18650
18651 procedure Read_WGL_EXT_pixel_format;
18652 begin
18653   wglGetPixelFormatAttribivEXT := dglGetProcAddress('wglGetPixelFormatAttribivEXT');
18654   wglGetPixelFormatAttribfvEXT := dglGetProcAddress('wglGetPixelFormatAttribfvEXT');
18655   wglChoosePixelFormatEXT := dglGetProcAddress('wglChoosePixelFormatEXT');
18656 end;
18657
18658 procedure Read_WGL_EXT_swap_control;
18659 begin
18660   wglSwapIntervalEXT := dglGetProcAddress('wglSwapIntervalEXT');
18661   wglGetSwapIntervalEXT := dglGetProcAddress('wglGetSwapIntervalEXT');
18662 end;
18663
18664 procedure Read_WGL_I3D_digital_video_control;
18665 begin
18666   wglGetDigitalVideoParametersI3D := dglGetProcAddress('wglGetDigitalVideoParametersI3D');
18667   wglSetDigitalVideoParametersI3D := dglGetProcAddress('wglSetDigitalVideoParametersI3D');
18668 end;
18669
18670 procedure Read_WGL_I3D_gamma;
18671 begin
18672   wglGetGammaTableParametersI3D := dglGetProcAddress('wglGetGammaTableParametersI3D');
18673   wglSetGammaTableParametersI3D := dglGetProcAddress('wglSetGammaTableParametersI3D');
18674   wglGetGammaTableI3D := dglGetProcAddress('wglGetGammaTableI3D');
18675   wglSetGammaTableI3D := dglGetProcAddress('wglSetGammaTableI3D');
18676 end;
18677
18678 procedure Read_WGL_I3D_genlock;
18679 begin
18680   wglEnableGenlockI3D := dglGetProcAddress('wglEnableGenlockI3D');
18681   wglDisableGenlockI3D := dglGetProcAddress('wglDisableGenlockI3D');
18682   wglIsEnabledGenlockI3D := dglGetProcAddress('wglIsEnabledGenlockI3D');
18683   wglGenlockSourceI3D := dglGetProcAddress('wglGenlockSourceI3D');
18684   wglGetGenlockSourceI3D := dglGetProcAddress('wglGetGenlockSourceI3D');
18685   wglGenlockSourceEdgeI3D := dglGetProcAddress('wglGenlockSourceEdgeI3D');
18686   wglGetGenlockSourceEdgeI3D := dglGetProcAddress('wglGetGenlockSourceEdgeI3D');
18687   wglGenlockSampleRateI3D := dglGetProcAddress('wglGenlockSampleRateI3D');
18688   wglGetGenlockSampleRateI3D := dglGetProcAddress('wglGetGenlockSampleRateI3D');
18689   wglGenlockSourceDelayI3D := dglGetProcAddress('wglGenlockSourceDelayI3D');
18690   wglGetGenlockSourceDelayI3D := dglGetProcAddress('wglGetGenlockSourceDelayI3D');
18691   wglQueryGenlockMaxSourceDelayI3D := dglGetProcAddress('wglQueryGenlockMaxSourceDelayI3D');
18692 end;
18693
18694 procedure Read_WGL_I3D_image_buffer;
18695 begin
18696   wglCreateImageBufferI3D := dglGetProcAddress('wglCreateImageBufferI3D');
18697   wglDestroyImageBufferI3D := dglGetProcAddress('wglDestroyImageBufferI3D');
18698   wglAssociateImageBufferEventsI3D := dglGetProcAddress('wglAssociateImageBufferEventsI3D');
18699   wglReleaseImageBufferEventsI3D := dglGetProcAddress('wglReleaseImageBufferEventsI3D');
18700 end;
18701
18702 procedure Read_WGL_I3D_swap_frame_lock;
18703 begin
18704   wglEnableFrameLockI3D := dglGetProcAddress('wglEnableFrameLockI3D');
18705   wglDisableFrameLockI3D := dglGetProcAddress('wglDisableFrameLockI3D');
18706   wglIsEnabledFrameLockI3D := dglGetProcAddress('wglIsEnabledFrameLockI3D');
18707   wglQueryFrameLockMasterI3D := dglGetProcAddress('wglQueryFrameLockMasterI3D');
18708 end;
18709
18710 procedure Read_WGL_I3D_swap_frame_usage;
18711 begin
18712   wglGetFrameUsageI3D := dglGetProcAddress('wglGetFrameUsageI3D');
18713   wglBeginFrameTrackingI3D := dglGetProcAddress('wglBeginFrameTrackingI3D');
18714   wglEndFrameTrackingI3D := dglGetProcAddress('wglEndFrameTrackingI3D');
18715   wglQueryFrameTrackingI3D := dglGetProcAddress('wglQueryFrameTrackingI3D');
18716 end;
18717
18718 procedure Read_WGL_NV_vertex_array_range;
18719 begin
18720   wglAllocateMemoryNV := dglGetProcAddress('wglAllocateMemoryNV');
18721   wglFreeMemoryNV := dglGetProcAddress('wglFreeMemoryNV');
18722 end;
18723
18724 procedure Read_WGL_NV_present_video;
18725 begin
18726   wglEnumerateVideoDevicesNV := dglGetProcAddress('wglEnumerateVideoDevicesNV');
18727   wglBindVideoDeviceNV := dglGetProcAddress('wglBindVideoDeviceNV');
18728   wglQueryCurrentContextNV := dglGetProcAddress('wglQueryCurrentContextNV');
18729 end;
18730
18731 procedure Read_WGL_NV_video_output;
18732 begin
18733   wglGetVideoDeviceNV := dglGetProcAddress('wglGetVideoDeviceNV');
18734   wglReleaseVideoDeviceNV := dglGetProcAddress('wglReleaseVideoDeviceNV');
18735   wglBindVideoImageNV := dglGetProcAddress('wglBindVideoImageNV');
18736   wglReleaseVideoImageNV := dglGetProcAddress('wglReleaseVideoImageNV');
18737   wglSendPbufferToVideoNV := dglGetProcAddress('wglSendPbufferToVideoNV');
18738   wglGetVideoInfoNV := dglGetProcAddress('wglGetVideoInfoNV');
18739 end;
18740
18741 procedure Read_WGL_NV_swap_group;
18742 begin
18743   wglJoinSwapGroupNV := dglGetProcAddress('wglJoinSwapGroupNV');
18744   wglBindSwapBarrierNV := dglGetProcAddress('wglBindSwapBarrierNV');
18745   wglQuerySwapGroupNV := dglGetProcAddress('wglQuerySwapGroupNV');
18746   wglQueryMaxSwapGroupsNV := dglGetProcAddress('wglQueryMaxSwapGroupsNV');
18747   wglQueryFrameCountNV := dglGetProcAddress('wglQueryFrameCountNV');
18748   wglResetFrameCountNV := dglGetProcAddress('wglResetFrameCountNV');
18749 end;
18750
18751 procedure Read_WGL_NV_gpu_affinity;
18752 begin
18753   wglEnumGpusNV := dglGetProcAddress('wglEnumGpusNV');
18754   wglEnumGpuDevicesNV := dglGetProcAddress('wglEnumGpuDevicesNV');
18755   wglCreateAffinityDCNV := dglGetProcAddress('wglCreateAffinityDCNV');
18756   wglEnumGpusFromAffinityDCNV := dglGetProcAddress('wglEnumGpusFromAffinityDCNV');
18757   wglDeleteDCNV := dglGetProcAddress('wglDeleteDCNV');
18758 end;
18759
18760 procedure Read_WGL_NV_video_capture;
18761 begin
18762   wglBindVideoCaptureDeviceNV := dglGetProcAddress('wglBindVideoCaptureDeviceNV');
18763   wglEnumerateVideoCaptureDevicesNV := dglGetProcAddress('wglEnumerateVideoCaptureDevicesNV');
18764   wglLockVideoCaptureDeviceNV := dglGetProcAddress('wglLockVideoCaptureDeviceNV');
18765   wglQueryVideoCaptureDeviceNV := dglGetProcAddress('wglQueryVideoCaptureDeviceNV');
18766   wglReleaseVideoCaptureDeviceNV := dglGetProcAddress('wglReleaseVideoCaptureDeviceNV');
18767 end;
18768
18769 procedure Read_WGL_NV_copy_image;
18770 begin
18771   wglCopyImageSubDataNV := dglGetProcAddress('wglCopyImageSubDataNV');
18772 end;
18773
18774 procedure Read_WGL_NV_DX_interop;
18775 begin
18776   wglDXSetResourceShareHandleNV := dglGetProcAddress('wglDXSetResourceShareHandleNV');
18777   wglDXOpenDeviceNV := dglGetProcAddress('wglDXOpenDeviceNV');
18778   wglDXCloseDeviceNV := dglGetProcAddress('wglDXCloseDeviceNV');
18779   wglDXRegisterObjectNV := dglGetProcAddress('wglDXRegisterObjectNV');
18780   wglDXUnregisterObjectNV := dglGetProcAddress('wglDXUnregisterObjectNV');
18781   wglDXObjectAccessNV := dglGetProcAddress('wglDXObjectAccessNV');
18782   wglDXLockObjectsNV := dglGetProcAddress('wglDXLockObjectsNV');
18783   wglDXUnlockObjectsNV := dglGetProcAddress('wglDXUnlockObjectsNV');
18784 end;
18785
18786
18787 procedure Read_WGL_OML_sync_control;
18788 begin
18789   wglGetSyncValuesOML := dglGetProcAddress('wglGetSyncValuesOML');
18790   wglGetMscRateOML := dglGetProcAddress('wglGetMscRateOML');
18791   wglSwapBuffersMscOML := dglGetProcAddress('wglSwapBuffersMscOML');
18792   wglSwapLayerBuffersMscOML := dglGetProcAddress('wglSwapLayerBuffersMscOML');
18793   wglWaitForMscOML := dglGetProcAddress('wglWaitForMscOML');
18794   wglWaitForSbcOML := dglGetProcAddress('wglWaitForSbcOML');
18795 end;
18796
18797 procedure Read_WGL_3DL_stereo_control;
18798 begin
18799   wglSetStereoEmitterState3DL := dglGetProcAddress('wglSetStereoEmitterState3DL');
18800 end;
18801
18802 procedure Read_WIN_draw_range_elements;
18803 begin
18804   glDrawRangeElementsWIN := dglGetProcAddress('glDrawRangeElementsWIN');
18805 end;
18806
18807 procedure Read_WIN_swap_hint;
18808 begin
18809   glAddSwapHintRectWIN := dglGetProcAddress('glAddSwapHintRectWIN');
18810 end;
18811 {$ENDIF}
18812
18813
18814 procedure ReadExtensions;
18815 begin
18816   ReadOpenGLCore;
18817   
18818   Read_GL_3DFX_tbuffer;
18819   Read_GL_APPLE_element_array;
18820   Read_GL_APPLE_fence;
18821   Read_GL_APPLE_vertex_array_object;
18822   Read_GL_APPLE_vertex_array_range;
18823   Read_GL_APPLE_texture_range;
18824   Read_GL_APPLE_vertex_program_evaluators;
18825   Read_GL_APPLE_object_purgeable;
18826   Read_GL_ARB_matrix_palette;
18827   Read_GL_ARB_multitexture;
18828   Read_GL_ARB_point_parameters;
18829   Read_GL_ARB_texture_compression;
18830   Read_GL_ARB_transpose_matrix;
18831   Read_GL_ARB_vertex_blend;
18832   Read_GL_ARB_vertex_buffer_object;
18833   Read_GL_ARB_vertex_program;
18834   Read_GL_ARB_window_pos;
18835   Read_GL_ARB_color_buffer_float;
18836   Read_GL_ARB_Shader_Objects;
18837   Read_GL_ARB_occlusion_query;
18838   Read_GL_ARB_draw_instanced;
18839   Read_GL_ARB_framebuffer_object;
18840   Read_GL_ARB_geometry_shader4;
18841   Read_GL_ARB_instanced_arrays;
18842   Read_GL_ARB_map_buffer_range;
18843   Read_GL_ARB_texture_buffer_object;
18844   Read_GL_ARB_vertex_array_object;
18845   Read_GL_ARB_uniform_buffer_object;
18846   Read_GL_ARB_copy_buffer;
18847   Read_GL_ARB_draw_elements_base_vertex;
18848   Read_GL_ARB_provoking_vertex;
18849   Read_GL_ARB_sync;
18850   Read_GL_ARB_texture_multisample;
18851   Read_GL_ARB_draw_buffers_blend;
18852   Read_GL_ARB_sample_shading;
18853   Read_GL_ARB_shading_language_include;
18854   Read_GL_ARB_blend_func_extended;
18855   Read_GL_ARB_sampler_objects;
18856   Read_GL_ARB_timer_query;
18857   Read_GL_ARB_vertex_type_2_10_10_10_rev;
18858   Read_GL_ARB_draw_indirect;
18859   Read_GL_ARB_gpu_shader_fp64;
18860   Read_GL_ARB_shader_subroutine;
18861   Read_GL_ARB_tessellation_shader;
18862   Read_GL_ARB_transform_feedback2;
18863   Read_GL_ARB_transform_feedback3;
18864   Read_GL_ARB_ES2_compatibility;
18865   Read_GL_ARB_get_program_binary;
18866   Read_GL_ARB_separate_shader_objects;
18867   Read_GL_ARB_vertex_attrib_64bit;
18868   Read_GL_ARB_viewport_array;
18869   Read_GL_ARB_cl_event;
18870   Read_GL_ARB_debug_output;
18871   Read_GL_ARB_robustness;
18872   //
18873   Read_GL_ATI_draw_buffers;
18874   Read_GL_ATI_element_array;
18875   Read_GL_ATI_envmap_bumpmap;
18876   Read_GL_ATI_fragment_shader;
18877   Read_GL_ATI_map_object_buffer;
18878   Read_GL_ATI_pn_triangles;
18879   Read_GL_ATI_separate_stencil;
18880   Read_GL_ATI_vertex_array_object;
18881   Read_GL_ATI_vertex_attrib_array_object;
18882   Read_GL_ATI_vertex_streams;
18883   Read_GL_AMD_performance_monitor;
18884   Read_GL_AMD_vertex_shader_tesselator;
18885   Read_GL_AMD_draw_buffers_blend;
18886   Read_GL_AMD_name_gen_delete;
18887   Read_GL_AMD_debug_output;
18888   Read_GL_AMD_stencil_operation_extended;
18889   Read_GL_EXT_blend_color;
18890   Read_GL_EXT_blend_func_separate;
18891   Read_GL_EXT_blend_minmax;
18892   Read_GL_EXT_color_subtable;
18893   Read_GL_EXT_compiled_vertex_array;
18894   Read_GL_EXT_convolution;
18895   Read_GL_EXT_coordinate_frame;
18896   Read_GL_EXT_copy_texture;
18897   Read_GL_EXT_cull_vertex;
18898   Read_GL_EXT_draw_range_elements;
18899   Read_GL_EXT_fog_coord;
18900   Read_GL_EXT_framebuffer_object;
18901   Read_GL_EXT_histogram;
18902   Read_GL_EXT_index_func;
18903   Read_GL_EXT_index_material;
18904   Read_GL_EXT_multi_draw_arrays;
18905   Read_GL_EXT_multisample;
18906   Read_GL_EXT_paletted_texture;
18907   Read_GL_EXT_pixel_transform;
18908   Read_GL_EXT_point_parameters;
18909   Read_GL_EXT_polygon_offset;
18910   Read_GL_EXT_secondary_color;
18911   Read_GL_EXT_stencil_two_side;
18912   Read_GL_EXT_subtexture;
18913   Read_GL_EXT_texture3D;
18914   Read_GL_EXT_texture_object;
18915   Read_GL_EXT_texture_perturb_normal;
18916   Read_GL_EXT_vertex_array;
18917   Read_GL_EXT_vertex_shader;
18918   Read_GL_EXT_vertex_weighting;
18919   Read_GL_EXT_depth_bounds_test;
18920   Read_GL_EXT_blend_equation_separate;
18921   Read_GL_EXT_stencil_clear_tag;
18922   Read_GL_EXT_framebuffer_blit;
18923   Read_GL_EXT_framebuffer_multisample;
18924   Read_GL_EXT_timer_query;
18925   Read_GL_EXT_gpu_program_parameters;
18926   Read_GL_EXT_bindable_uniform;
18927   Read_GL_EXT_draw_buffers2;
18928   Read_GL_EXT_draw_instanced;
18929   Read_GL_EXT_geometry_shader4;
18930   Read_GL_EXT_gpu_shader4;
18931   Read_GL_EXT_texture_array;
18932   Read_GL_EXT_texture_buffer_object;
18933   Read_GL_EXT_texture_integer;
18934   Read_GL_EXT_transform_feedback;
18935   Read_GL_EXT_direct_state_access;
18936   Read_GL_EXT_separate_shader_objects;
18937   Read_GL_EXT_shader_image_load_store;
18938   Read_GL_EXT_vertex_attrib_64bit;
18939   Read_GL_HP_image_transform;
18940   Read_GL_IBM_multimode_draw_arrays;
18941   Read_GL_IBM_vertex_array_lists;
18942   Read_GL_INGR_blend_func_separate;
18943   Read_GL_INTEL_parallel_arrays;
18944   Read_GL_MESA_resize_buffers;
18945   Read_GL_MESA_window_pos;
18946   Read_GL_NV_evaluators;
18947   Read_GL_NV_fence;
18948   Read_GL_NV_fragment_program;
18949   Read_GL_NV_half_float;
18950   Read_GL_NV_occlusion_query;
18951   Read_GL_NV_pixel_data_range;
18952   Read_GL_NV_point_sprite;
18953   Read_GL_NV_primitive_restart;
18954   Read_GL_NV_register_combiners;
18955   Read_GL_NV_register_combiners2;
18956   Read_GL_NV_vertex_array_range;
18957   Read_GL_NV_vertex_program;
18958   Read_GL_NV_depth_buffer_float;
18959   Read_GL_NV_framebuffer_multisample_coverage;
18960   Read_GL_NV_geometry_program4;
18961   Read_GL_NV_gpu_program4;
18962   Read_GL_NV_parameter_buffer_object;
18963   Read_GL_NV_transform_feedback;
18964   Read_GL_NV_conditional_render;
18965   Read_GL_NV_present_video;
18966   Read_GL_NV_explicit_multisample;
18967   Read_GL_NV_transform_feedback2;
18968   Read_GL_NV_video_capture;
18969   Read_GL_NV_copy_image;
18970   Read_GL_NV_shader_buffer_load;
18971   Read_GL_NV_vertex_buffer_unified_memory;
18972   Read_GL_NV_gpu_program5;
18973   Read_GL_NV_gpu_shader5;
18974   Read_GL_NV_vertex_attrib_integer_64bit;
18975   Read_GL_NV_vdpau_interop;
18976   Read_GL_NV_texture_barrier;
18977   Read_GL_NV_path_rendering;
18978   Read_GL_NV_bindless_texture;
18979   Read_GL_PGI_misc_hints;
18980   Read_GL_SGIS_detail_texture;
18981   Read_GL_SGIS_fog_function;
18982   Read_GL_SGIS_multisample;
18983   Read_GL_SGIS_pixel_texture;
18984   Read_GL_SGIS_point_parameters;
18985   Read_GL_SGIS_sharpen_texture;
18986   Read_GL_SGIS_texture4D;
18987   Read_GL_SGIS_texture_color_mask;
18988   Read_GL_SGIS_texture_filter4;
18989   Read_GL_SGIX_async;
18990   Read_GL_SGIX_flush_raster;
18991   Read_GL_SGIX_fragment_lighting;
18992   Read_GL_SGIX_framezoom;
18993   Read_GL_SGIX_igloo_interface;
18994   Read_GL_SGIX_instruments;
18995   Read_GL_SGIX_list_priority;
18996   Read_GL_SGIX_pixel_texture;
18997   Read_GL_SGIX_polynomial_ffd;
18998   Read_GL_SGIX_reference_plane;
18999   Read_GL_SGIX_sprite;
19000   Read_GL_SGIX_tag_sample_buffer;
19001   Read_GL_SGI_color_table;
19002   Read_GL_SUNX_constant_data;
19003   Read_GL_SUN_global_alpha;
19004   Read_GL_SUN_mesh_array;
19005   Read_GL_SUN_triangle_list;
19006   Read_GL_SUN_vertex;
19007
19008 {$IFDEF DGL_WIN}
19009   Read_WGL_ARB_buffer_region;
19010   Read_WGL_ARB_extensions_string;
19011   Read_WGL_ARB_make_current_read;
19012   Read_WGL_ARB_pbuffer;
19013   Read_WGL_ARB_pixel_format;
19014   Read_WGL_ARB_pixel_format_float;
19015   Read_WGL_ARB_render_texture;
19016   Read_WGL_ARB_create_context;
19017   Read_WGL_AMD_gpu_association;
19018   Read_WGL_EXT_display_color_table;
19019   Read_WGL_EXT_extensions_string;
19020   Read_WGL_EXT_make_current_read;
19021   Read_WGL_EXT_pbuffer;
19022   Read_WGL_EXT_pixel_format;
19023   Read_WGL_EXT_swap_control;
19024   Read_WGL_I3D_digital_video_control;
19025   Read_WGL_I3D_gamma;
19026   Read_WGL_I3D_genlock;
19027   Read_WGL_I3D_image_buffer;
19028   Read_WGL_I3D_swap_frame_lock;
19029   Read_WGL_I3D_swap_frame_usage;
19030   Read_WGL_NV_vertex_array_range;
19031   Read_WGL_NV_present_video;
19032   Read_WGL_NV_video_output;
19033   Read_WGL_NV_swap_group;
19034   Read_WGL_NV_gpu_affinity;
19035   Read_WGL_NV_video_capture;
19036   Read_WGL_NV_copy_image;
19037   Read_WGL_NV_DX_interop;
19038   Read_WGL_OML_sync_control;
19039   Read_WGL_3DL_stereo_control;
19040
19041   Read_WIN_draw_range_elements;
19042   Read_WIN_swap_hint;
19043 {$ENDIF}
19044
19045   ExtensionsRead := True;
19046 end;
19047
19048 // =============================================================================
19049 //  ReadCoreVersion
19050 // =============================================================================
19051
19052 procedure ReadCoreVersion;
19053 var
19054   AnsiBuffer: AnsiString;
19055   Buffer: String;
19056   MajorVersion, MinorVersion: Integer;
19057
19058   procedure TrimAndSplitVersionString(Buffer: String; out Max, Min: Integer);
19059     // Peels out the X.Y form from the given Buffer which must contain a version string like "text Minor.Major.Build text"
19060     // at least however "Major.Minor".
19061   var
19062     Separator: Integer;
19063   begin
19064     try
19065       // There must be at least one dot to separate major and minor version number.
19066       Separator := Pos('.', Buffer);
19067       // At least one number must be before and one after the dot.
19068       if (Separator > 1) and (Separator < Length(Buffer)) and (AnsiChar(Buffer[Separator - 1]) in ['0'..'9']) and
19069       (AnsiChar(Buffer[Separator + 1]) in ['0'..'9']) then
19070       begin
19071         // OK, it's a valid version string. Now remove unnecessary parts.
19072         Dec(Separator);
19073         // Find last non-numeric character before version number.
19074         while (Separator > 0) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19075           Dec(Separator);
19076         // Delete leading characters which do not belong to the version string.
19077         Delete(Buffer, 1, Separator);
19078         Separator := Pos('.', Buffer) + 1;
19079         // Find first non-numeric character after version number
19080         while (Separator <= Length(Buffer)) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19081           Inc(Separator);
19082         // delete trailing characters not belonging to the version string
19083         Delete(Buffer, Separator, 255);
19084         // Now translate the numbers.
19085         Separator := Pos('.', Buffer); // This is necessary because the buffer length might have changed.
19086         Max := StrToInt(Copy(Buffer, 1, Separator - 1));
19087         Min := StrToInt(Copy(Buffer, Separator + 1, 1));
19088       end
19089       else
19090         Abort;
19091     except
19092       Min := 0;
19093       Max := 0;
19094     end;
19095   end;
19096
19097
19098 begin
19099   // determine version of implementation
19100   // GL
19101   if not Assigned(@glGetString) then
19102     glGetString := dglGetProcAddress('glGetString');
19103
19104   AnsiBuffer := glGetString(GL_VERSION);
19105   Buffer := String(AnsiBuffer);
19106
19107   TrimAndSplitVersionString(Buffer, MajorVersion, MinorVersion);
19108
19109   GL_VERSION_1_0 := True;
19110   GL_VERSION_1_1 := False;
19111   GL_VERSION_1_2 := False;
19112   GL_VERSION_1_3 := False;
19113   GL_VERSION_1_4 := False;
19114   GL_VERSION_1_5 := False;
19115   GL_VERSION_2_0 := False;
19116   GL_VERSION_2_1 := False;
19117   GL_VERSION_3_0 := False;
19118   GL_VERSION_3_1 := False;
19119   GL_VERSION_3_2 := False;
19120   GL_VERSION_3_3 := False;
19121   GL_VERSION_4_0 := False;
19122   GL_VERSION_4_1 := False;
19123   GL_VERSION_4_2 := False;
19124   GL_VERSION_4_3 := False;
19125   GL_VERSION_4_4 := False;
19126
19127   if MajorVersion = 1 then
19128   begin
19129     if MinorVersion >= 1 then
19130       GL_VERSION_1_1 := True;
19131     if MinorVersion >= 2 then
19132       GL_VERSION_1_2 := True;
19133     if MinorVersion >= 3 then
19134       GL_VERSION_1_3 := True;
19135     if MinorVersion >= 4 then
19136       GL_VERSION_1_4 := True;
19137     if MinorVersion >= 5 then
19138       GL_VERSION_1_5 := True;
19139   end;
19140
19141   if MajorVersion >= 2 then
19142   begin
19143     GL_VERSION_1_1 := True;
19144     GL_VERSION_1_2 := True;
19145     GL_VERSION_1_3 := True;
19146     GL_VERSION_1_4 := True;
19147     GL_VERSION_1_5 := True;
19148     GL_VERSION_2_0 := True;
19149
19150     if MinorVersion >= 1 then
19151       GL_VERSION_2_1 := True;
19152   end;
19153
19154   if MajorVersion >= 3 then
19155   begin
19156     GL_VERSION_2_1 := True;
19157     GL_VERSION_3_0 := True;
19158     
19159     if MinorVersion >= 1 then
19160       GL_VERSION_3_1 := True;
19161     if MinorVersion >= 2 then
19162       GL_VERSION_3_2 := True;
19163     if MinorVersion >= 3 then
19164       GL_VERSION_3_3 := True;
19165   end;
19166
19167   if MajorVersion >= 4 then
19168   begin
19169     GL_VERSION_3_1 := True;
19170     GL_VERSION_3_2 := True;
19171     GL_VERSION_3_3 := True;
19172     GL_VERSION_4_0 := True;
19173
19174     if MinorVersion >= 1 then
19175       GL_VERSION_4_1 := True;
19176     if MinorVersion >= 2 then
19177       GL_VERSION_4_2 := True;
19178     if MinorVersion >= 3 then
19179       GL_VERSION_4_3 := True;
19180     if MinorVersion >= 4 then
19181       GL_VERSION_4_4 := True;
19182   end;
19183
19184   // GLU
19185   GLU_VERSION_1_1 := False;
19186   GLU_VERSION_1_2 := False;
19187   GLU_VERSION_1_3 := False;
19188
19189   if Assigned(gluGetString) then begin
19190     AnsiBuffer := gluGetString(GLU_VERSION);
19191     Buffer := String(AnsiBuffer);
19192
19193     TrimAndSplitVersionString(Buffer, Majorversion, MinorVersion);
19194
19195     GLU_VERSION_1_1 := True;
19196
19197     if MinorVersion >= 2 then
19198       GLU_VERSION_1_2 := True;
19199
19200     if MinorVersion >= 3 then
19201       GLU_VERSION_1_3 := True;
19202   end;
19203 end;
19204
19205
19206 // =============================================================================
19207 //  ReadImplementationProperties
19208 // =============================================================================
19209
19210 procedure ReadImplementationProperties;
19211 var
19212   Buffer: Ansistring;
19213 begin
19214   ReadCoreVersion;
19215
19216   // Check all extensions
19217   Buffer := Int_GetExtensionString;
19218
19219   // === 3DFX ====================================================================
19220   GL_3DFX_multisample := Int_CheckExtension(Buffer, 'GL_3DFX_multisample');
19221   GL_3DFX_tbuffer := Int_CheckExtension(Buffer, 'GL_3DFX_tbuffer');
19222   GL_3DFX_texture_compression_FXT1 := Int_CheckExtension(Buffer, 'GL_3DFX_texture_compression_FXT1');
19223
19224   // === APPLE ===================================================================
19225   GL_APPLE_client_storage := Int_CheckExtension(Buffer, 'GL_APPLE_client_storage');
19226   GL_APPLE_element_array := Int_CheckExtension(Buffer, 'GL_APPLE_element_array');
19227   GL_APPLE_fence := Int_CheckExtension(Buffer, 'GL_APPLE_fence');
19228   GL_APPLE_specular_vector := Int_CheckExtension(Buffer, 'GL_APPLE_specular_vector');
19229   GL_APPLE_transform_hint := Int_CheckExtension(Buffer, 'GL_APPLE_transform_hint');
19230   GL_APPLE_vertex_array_object := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_object');
19231   GL_APPLE_vertex_array_range := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_range');
19232   GL_APPLE_ycbcr_422 := Int_CheckExtension(Buffer, 'GL_APPLE_ycbcr_422');
19233   GL_APPLE_texture_range := Int_CheckExtension(Buffer, 'GL_APPLE_texture_range');
19234   GL_APPLE_float_pixels := Int_CheckExtension(Buffer, 'GL_APPLE_float_pixels');
19235   GL_APPLE_vertex_program_evaluators := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_program_evaluators');
19236   GL_APPLE_aux_depth_stencil := Int_CheckExtension(Buffer, 'GL_APPLE_aux_depth_stencil');
19237   GL_APPLE_object_purgeable := Int_CheckExtension(Buffer, 'GL_APPLE_object_purgeable');
19238   GL_APPLE_row_bytes := Int_CheckExtension(Buffer, 'GL_APPLE_row_bytes');
19239   GL_APPLE_rgb_422 := Int_CheckExtension(Buffer, 'GL_APPLE_rgb_422');
19240
19241   // === ARB =====================================================================
19242   GL_ARB_depth_texture := Int_CheckExtension(Buffer, 'GL_ARB_depth_texture');
19243   GL_ARB_fragment_program := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program');
19244   GL_ARB_imaging := Int_CheckExtension(Buffer, 'GL_ARB_imaging');
19245   GL_ARB_matrix_palette := Int_CheckExtension(Buffer, 'GL_ARB_matrix_palette');
19246   GL_ARB_multisample := Int_CheckExtension(Buffer, 'GL_ARB_multisample');
19247   GL_ARB_multitexture := Int_CheckExtension(Buffer, 'GL_ARB_multitexture');
19248   GL_ARB_point_parameters := Int_CheckExtension(Buffer, 'GL_ARB_point_parameters');
19249   GL_ARB_shadow := Int_CheckExtension(Buffer, 'GL_ARB_shadow');
19250   GL_ARB_shadow_ambient := Int_CheckExtension(Buffer, 'GL_ARB_shadow_ambient');
19251   GL_ARB_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_ARB_texture_border_clamp');
19252   GL_ARB_texture_compression := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression');
19253   GL_ARB_texture_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map');
19254   GL_ARB_texture_env_add := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_add');
19255   GL_ARB_texture_env_combine := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_combine');
19256   GL_ARB_texture_env_crossbar := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_crossbar');
19257   GL_ARB_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_dot3');
19258   GL_ARB_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_ARB_texture_mirrored_repeat');
19259   GL_ARB_transpose_matrix := Int_CheckExtension(Buffer, 'GL_ARB_transpose_matrix');
19260   GL_ARB_vertex_blend := Int_CheckExtension(Buffer, 'GL_ARB_vertex_blend');
19261   GL_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_buffer_object');
19262   GL_ARB_vertex_program := Int_CheckExtension(Buffer, 'GL_ARB_vertex_program');
19263   GL_ARB_window_pos := Int_CheckExtension(Buffer, 'GL_ARB_window_pos');
19264   GL_ARB_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_shader_objects');
19265   GL_ARB_vertex_shader := Int_CheckExtension(Buffer, 'GL_ARB_vertex_shader');
19266   GL_ARB_fragment_shader := Int_CheckExtension(Buffer, 'GL_ARB_fragment_shader');
19267   GL_ARB_occlusion_query := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query');
19268   GL_ARB_shading_language_100 := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_100');
19269   GL_ARB_point_sprite := Int_CheckExtension(Buffer, 'GL_ARB_point_sprite');
19270   GL_ARB_texture_non_power_of_two := Int_CheckExtension(Buffer, 'GL_ARB_texture_non_power_of_two');
19271   GL_ARB_fragment_program_shadow := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program_shadow');
19272   GL_ARB_draw_buffers := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers');
19273   GL_ARB_texture_rectangle := Int_CheckExtension(Buffer, 'GL_ARB_texture_rectangle');
19274   GL_ARB_color_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_color_buffer_float');
19275   GL_ARB_half_float_pixel := Int_CheckExtension(Buffer, 'GL_ARB_half_float_pixel');
19276   GL_ARB_texture_float := Int_CheckExtension(Buffer, 'GL_ARB_texture_float');
19277   GL_ARB_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_pixel_buffer_object');
19278   GL_ARB_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_depth_buffer_float');
19279   GL_ARB_draw_instanced := Int_CheckExtension(Buffer, 'GL_ARB_draw_instanced');
19280   GL_ARB_framebuffer_object := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_object');
19281   GL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_sRGB');
19282   GL_ARB_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_ARB_geometry_shader4');
19283   GL_ARB_half_float_vertex := Int_CheckExtension(Buffer, 'GL_ARB_half_float_vertex');
19284   GL_ARB_instanced_arrays := Int_CheckExtension(Buffer, 'GL_ARB_instanced_arrays');
19285   GL_ARB_map_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_range');
19286   GL_ARB_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object');
19287   GL_ARB_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_rgtc');
19288   GL_ARB_texture_rg := Int_CheckExtension(Buffer, 'GL_ARB_texture_rg');
19289   GL_ARB_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_object');
19290   GL_ARB_uniform_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_uniform_buffer_object');
19291   GL_ARB_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_compatibility');
19292   GL_ARB_copy_buffer := Int_CheckExtension(Buffer, 'GL_ARB_copy_buffer');
19293   GL_ARB_shader_texture_lod := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_lod');
19294   GL_ARB_depth_clamp := Int_CheckExtension(Buffer, 'GL_ARB_depth_clamp');
19295   GL_ARB_draw_elements_base_vertex := Int_CheckExtension(Buffer, 'GL_ARB_draw_elements_base_vertex');
19296   GL_ARB_fragment_coord_conventions := Int_CheckExtension(Buffer, 'GL_ARB_fragment_coord_conventions');
19297   GL_ARB_provoking_vertex := Int_CheckExtension(Buffer, 'GL_ARB_provoking_vertex');
19298   GL_ARB_seamless_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_seamless_cube_map');
19299   GL_ARB_sync := Int_CheckExtension(Buffer, 'GL_ARB_sync');
19300   GL_ARB_texture_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_multisample');
19301   GL_ARB_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_bgra');
19302   GL_ARB_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers_blend');
19303   GL_ARB_sample_shading := Int_CheckExtension(Buffer, 'GL_ARB_sample_shading');
19304   GL_ARB_texture_cube_map_array := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map_array');
19305   GL_ARB_texture_gather := Int_CheckExtension(Buffer, 'GL_ARB_texture_gather');
19306   GL_ARB_texture_query_lod := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_lod');
19307   GL_ARB_shading_language_include := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_include');
19308   GL_ARB_texture_compression_bptc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_bptc');
19309   GL_ARB_blend_func_extended := Int_CheckExtension(Buffer, 'GL_ARB_blend_func_extended');
19310   GL_ARB_explicit_attrib_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_attrib_location');
19311   GL_ARB_occlusion_query2 := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query2');
19312   GL_ARB_sampler_objects := Int_CheckExtension(Buffer, 'GL_ARB_sampler_objects');
19313   GL_ARB_shader_bit_encoding := Int_CheckExtension(Buffer, 'GL_ARB_shader_bit_encoding');
19314   GL_ARB_texture_rgb10_a2ui := Int_CheckExtension(Buffer, 'GL_ARB_texture_rgb10_a2ui');
19315   GL_ARB_texture_swizzle := Int_CheckExtension(Buffer, 'GL_ARB_texture_swizzle');
19316   GL_ARB_timer_query := Int_CheckExtension(Buffer, 'GL_ARB_timer_query');
19317   GL_ARB_vertex_type_2_10_10_10_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_2_10_10_10_rev');
19318   GL_ARB_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_draw_indirect');
19319   GL_ARB_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader5');
19320   GL_ARB_gpu_shader_fp64 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader_fp64');
19321   GL_ARB_shader_subroutine := Int_CheckExtension(Buffer, 'GL_ARB_shader_subroutine');
19322   GL_ARB_tessellation_shader := Int_CheckExtension(Buffer, 'GL_ARB_tessellation_shader');
19323   GL_ARB_texture_buffer_object_rgb32 := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object_rgb32');
19324   GL_ARB_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback2');
19325   GL_ARB_transform_feedback3 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback3');
19326   GL_ARB_ES2_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES2_compatibility');
19327   GL_ARB_get_program_binary := Int_CheckExtension(Buffer, 'GL_ARB_get_program_binary');
19328   GL_ARB_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_separate_shader_objects');
19329   GL_ARB_shader_precision := Int_CheckExtension(Buffer, 'GL_ARB_shader_precision');
19330   GL_ARB_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_64bit');
19331   GL_ARB_viewport_array := Int_CheckExtension(Buffer, 'GL_ARB_viewport_array');
19332
19333   // GL 4.2
19334     GL_ARB_base_instance := Int_CheckExtension(Buffer, 'GL_ARB_base_instance');
19335     GL_ARB_shading_language_420pack := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_420pack');
19336     GL_ARB_transform_feedback_instanced := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback_instanced');
19337     GL_ARB_compressed_texture_pixel_storage := Int_CheckExtension(Buffer, 'GL_ARB_compressed_texture_pixel_storage');
19338     GL_ARB_conservative_depth := Int_CheckExtension(Buffer, 'GL_ARB_conservative_depth');
19339     GL_ARB_internalformat_query := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query');
19340     GL_ARB_map_buffer_alignment := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_alignment');
19341     GL_ARB_shader_atomic_counters := Int_CheckExtension(Buffer, 'GL_ARB_shader_atomic_counters');
19342     GL_ARB_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_load_store');
19343     GL_ARB_shading_language_packing := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_packing');
19344     GL_ARB_texture_storage := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage');
19345   // END GL 4.2
19346
19347   // GL 4.3
19348     GL_ARB_arrays_of_arrays := Int_CheckExtension(Buffer, 'GL_ARB_arrays_of_arrays');
19349     GL_ARB_fragment_layer_viewport := Int_CheckExtension(Buffer, 'GL_ARB_fragment_layer_viewport');
19350     GL_ARB_shader_image_size := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_size');
19351     GL_ARB_ES3_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_compatibility');
19352     GL_ARB_clear_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_clear_buffer_object');
19353     GL_ARB_compute_shader := Int_CheckExtension(Buffer, 'GL_ARB_compute_shader');
19354     GL_ARB_copy_image := Int_CheckExtension(Buffer, 'GL_ARB_copy_image');
19355     GL_KHR_debug := Int_CheckExtension(Buffer, 'GL_KHR_debug');
19356     GL_ARB_explicit_uniform_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_uniform_location');
19357     GL_ARB_framebuffer_no_attachments := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_no_attachments');
19358     GL_ARB_internalformat_query2 := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query2');
19359     GL_ARB_invalidate_subdata := Int_CheckExtension(Buffer, 'GL_ARB_invalidate_subdata');
19360     GL_ARB_multi_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_multi_draw_indirect');
19361     GL_ARB_program_interface_query := Int_CheckExtension(Buffer, 'GL_ARB_program_interface_query');
19362     GL_ARB_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_ARB_robust_buffer_access_behavior');
19363     GL_ARB_shader_storage_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_shader_storage_buffer_object');
19364     GL_ARB_stencil_texturing := Int_CheckExtension(Buffer, 'GL_ARB_stencil_texturing');
19365     GL_ARB_texture_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_range');
19366     GL_ARB_texture_query_levels := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_levels');
19367     GL_ARB_texture_storage_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage_multisample');
19368     GL_ARB_texture_view := Int_CheckExtension(Buffer, 'GL_ARB_texture_view');
19369     GL_ARB_vertex_attrib_binding := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_binding');
19370     GL_ARB_cl_event := Int_CheckExtension(Buffer, 'GL_ARB_cl_event');
19371     GL_ARB_debug_output := Int_CheckExtension(Buffer, 'GL_ARB_debug_output');
19372     GL_ARB_robustness := Int_CheckExtension(Buffer, 'GL_ARB_robustness');
19373     GL_ARB_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_ARB_shader_stencil_export');
19374   // END GL 4.3
19375
19376   // GL 4.4
19377     GL_ARB_buffer_storage               := Int_CheckExtension(Buffer, 'GL_ARB_buffer_storage');
19378     GL_ARB_clear_texture                := Int_CheckExtension(Buffer, 'GL_ARB_clear_texture');
19379     GL_ARB_enhanced_layouts             := Int_CheckExtension(Buffer, 'GL_ARB_enhanced_layouts');
19380     GL_ARB_multi_bind                   := Int_CheckExtension(Buffer, 'GL_ARB_multi_bind');
19381     GL_ARB_query_buffer_object          := Int_CheckExtension(Buffer, 'GL_ARB_query_buffer_object');
19382     GL_ARB_texture_mirror_clamp_to_edge := Int_CheckExtension(Buffer, 'GL_ARB_texture_mirror_clamp_to_edge');
19383     GL_ARB_texture_stencil8             := Int_CheckExtension(Buffer, 'GL_ARB_texture_stencil8');
19384     GL_ARB_vertex_type_10f_11f_11f_rev  := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_10f_11f_11f_rev');
19385   // END GL 4.4
19386
19387   // === ATI/AMD ================================================================
19388   GL_ATI_draw_buffers := Int_CheckExtension(Buffer, 'GL_ATI_draw_buffers');
19389   GL_ATI_element_array := Int_CheckExtension(Buffer, 'GL_ATI_element_array');
19390   GL_ATI_envmap_bumpmap := Int_CheckExtension(Buffer, 'GL_ATI_envmap_bumpmap');
19391   GL_ATI_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_fragment_shader');
19392   GL_ATI_map_object_buffer := Int_CheckExtension(Buffer, 'GL_ATI_map_object_buffer');
19393   GL_ATI_pn_triangles := Int_CheckExtension(Buffer, 'GL_ATI_pn_triangles');
19394   GL_ATI_separate_stencil := Int_CheckExtension(Buffer, 'GL_ATI_separate_stencil');
19395   GL_ATI_text_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_text_fragment_shader');
19396   GL_ATI_texture_env_combine3 := Int_CheckExtension(Buffer, 'GL_ATI_texture_env_combine3');
19397   GL_ATI_texture_float := Int_CheckExtension(Buffer, 'GL_ATI_texture_float');
19398   GL_ATI_texture_mirror_once := Int_CheckExtension(Buffer, 'GL_ATI_texture_mirror_once');
19399   GL_ATI_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_array_object');
19400   GL_ATI_vertex_attrib_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_attrib_array_object');
19401   GL_ATI_vertex_streams := Int_CheckExtension(Buffer, 'GL_ATI_vertex_streams');
19402   GL_ATI_meminfo := Int_CheckExtension(Buffer, 'GL_ATI_meminfo');
19403   GL_AMD_performance_monitor := Int_CheckExtension(Buffer, 'GL_AMD_performance_monitor');
19404   GL_AMD_texture_texture4 := Int_CheckExtension(Buffer, 'GL_AMD_texture_texture4');
19405   GL_AMD_vertex_shader_tesselator := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_tesselator');
19406   GL_AMD_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_AMD_draw_buffers_blend');
19407   GL_AMD_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_AMD_shader_stencil_export');
19408   GL_AMD_seamless_cubemap_per_texture := Int_CheckExtension(Buffer, 'GL_AMD_seamless_cubemap_per_texture');
19409   GL_AMD_conservative_depth := Int_CheckExtension(Buffer, 'GL_AMD_conservative_depth');
19410   GL_AMD_name_gen_delete := Int_CheckExtension(Buffer, 'GL_AMD_name_gen_delete');
19411   GL_AMD_debug_output := Int_CheckExtension(Buffer, 'GL_AMD_debug_output');
19412   GL_AMD_transform_feedback3_lines_triangles := Int_CheckExtension(Buffer, 'GL_AMD_transform_feedback3_lines_triangles');
19413   GL_AMD_depth_clamp_separate := Int_CheckExtension(Buffer, 'GL_AMD_depth_clamp_separate');
19414   // 4.3
19415   GL_AMD_pinned_memory := Int_CheckExtension(Buffer, 'GL_AMD_pinned_memory');
19416   GL_AMD_stencil_operation_extended := Int_CheckExtension(Buffer, 'GL_AMD_stencil_operation_extended');
19417   GL_AMD_vertex_shader_viewport_index := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_viewport_index');
19418   GL_AMD_vertex_shader_layer := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_layer');
19419         GL_AMD_query_buffer_object := Int_CheckExtension(Buffer, 'GL_AMD_query_buffer_object');
19420
19421   // === EXT =====================================================================
19422   GL_EXT_422_pixels := Int_CheckExtension(Buffer, 'GL_EXT_422_pixels');
19423   GL_EXT_abgr := Int_CheckExtension(Buffer, 'GL_EXT_abgr');
19424   GL_EXT_bgra := Int_CheckExtension(Buffer, 'GL_EXT_bgra');
19425   GL_EXT_blend_color := Int_CheckExtension(Buffer, 'GL_EXT_blend_color');
19426   GL_EXT_blend_func_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_func_separate');
19427   GL_EXT_blend_logic_op := Int_CheckExtension(Buffer, 'GL_EXT_blend_logic_op');
19428   GL_EXT_blend_minmax := Int_CheckExtension(Buffer, 'GL_EXT_blend_minmax');
19429   GL_EXT_blend_subtract := Int_CheckExtension(Buffer, 'GL_EXT_blend_subtract');
19430   GL_EXT_clip_volume_hint := Int_CheckExtension(Buffer, 'GL_EXT_clip_volume_hint');
19431   GL_EXT_cmyka := Int_CheckExtension(Buffer, 'GL_EXT_cmyka');
19432   GL_EXT_color_matrix := Int_CheckExtension(Buffer, 'GL_EXT_color_matrix');
19433   GL_EXT_color_subtable := Int_CheckExtension(Buffer, 'GL_EXT_color_subtable');
19434   GL_EXT_compiled_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_compiled_vertex_array');
19435   GL_EXT_convolution := Int_CheckExtension(Buffer, 'GL_EXT_convolution');
19436   GL_EXT_coordinate_frame := Int_CheckExtension(Buffer, 'GL_EXT_coordinate_frame');
19437   GL_EXT_copy_texture := Int_CheckExtension(Buffer, 'GL_EXT_copy_texture');
19438   GL_EXT_cull_vertex := Int_CheckExtension(Buffer, 'GL_EXT_cull_vertex');
19439   GL_EXT_draw_range_elements := Int_CheckExtension(Buffer, 'GL_EXT_draw_range_elements');
19440   GL_EXT_fog_coord := Int_CheckExtension(Buffer, 'GL_EXT_fog_coord');
19441   GL_EXT_framebuffer_object := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_object');
19442   GL_EXT_histogram := Int_CheckExtension(Buffer, 'GL_EXT_histogram');
19443   GL_EXT_index_array_formats := Int_CheckExtension(Buffer, 'GL_EXT_index_array_formats');
19444   GL_EXT_index_func := Int_CheckExtension(Buffer, 'GL_EXT_index_func');
19445   GL_EXT_index_material := Int_CheckExtension(Buffer, 'GL_EXT_index_material');
19446   GL_EXT_index_texture := Int_CheckExtension(Buffer, 'GL_EXT_index_texture');
19447   GL_EXT_light_texture := Int_CheckExtension(Buffer, 'GL_EXT_light_texture');
19448   GL_EXT_misc_attribute := Int_CheckExtension(Buffer, 'GL_EXT_misc_attribute');
19449   GL_EXT_multi_draw_arrays := Int_CheckExtension(Buffer, 'GL_EXT_multi_draw_arrays');
19450   GL_EXT_multisample := Int_CheckExtension(Buffer, 'GL_EXT_multisample');
19451   GL_EXT_packed_pixels := Int_CheckExtension(Buffer, 'GL_EXT_packed_pixels');
19452   GL_EXT_paletted_texture := Int_CheckExtension(Buffer, 'GL_EXT_paletted_texture');
19453   GL_EXT_pixel_transform := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform');
19454   GL_EXT_pixel_transform_color_table := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform_color_table');
19455   GL_EXT_point_parameters := Int_CheckExtension(Buffer, 'GL_EXT_point_parameters');
19456   GL_EXT_polygon_offset := Int_CheckExtension(Buffer, 'GL_EXT_polygon_offset');
19457   GL_EXT_rescale_normal := Int_CheckExtension(Buffer, 'GL_EXT_rescale_normal');
19458   GL_EXT_secondary_color := Int_CheckExtension(Buffer, 'GL_EXT_secondary_color');
19459   GL_EXT_separate_specular_color := Int_CheckExtension(Buffer, 'GL_EXT_separate_specular_color');
19460   GL_EXT_shadow_funcs := Int_CheckExtension(Buffer, 'GL_EXT_shadow_funcs');
19461   GL_EXT_shared_texture_palette := Int_CheckExtension(Buffer, 'GL_EXT_shared_texture_palette');
19462   GL_EXT_stencil_two_side := Int_CheckExtension(Buffer, 'GL_EXT_stencil_two_side');
19463   GL_EXT_stencil_wrap := Int_CheckExtension(Buffer, 'GL_EXT_stencil_wrap');
19464   GL_EXT_subtexture := Int_CheckExtension(Buffer, 'GL_EXT_subtexture');
19465   GL_EXT_texture := Int_CheckExtension(Buffer, 'GL_EXT_texture');
19466   GL_EXT_texture3D := Int_CheckExtension(Buffer, 'GL_EXT_texture3D');
19467   GL_EXT_texture_compression_s3tc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_s3tc');
19468   GL_EXT_texture_cube_map := Int_CheckExtension(Buffer, 'GL_EXT_texture_cube_map');
19469   GL_EXT_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_edge_clamp');
19470   GL_EXT_texture_env_add := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_add');
19471   GL_EXT_texture_env_combine := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_combine');
19472   GL_EXT_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_dot3');
19473   GL_EXT_texture_filter_anisotropic := Int_CheckExtension(Buffer, 'GL_EXT_texture_filter_anisotropic');
19474   GL_EXT_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_EXT_texture_lod_bias');
19475   GL_EXT_texture_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_object');
19476   GL_EXT_texture_perturb_normal := Int_CheckExtension(Buffer, 'GL_EXT_texture_perturb_normal');
19477   GL_EXT_texture_rectangle := Int_CheckExtension(Buffer, 'GL_EXT_texture_rectangle');
19478   GL_EXT_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array');
19479   GL_EXT_vertex_shader := Int_CheckExtension(Buffer, 'GL_EXT_vertex_shader');
19480   GL_EXT_vertex_weighting := Int_CheckExtension(Buffer, 'GL_EXT_vertex_weighting');
19481   GL_EXT_depth_bounds_test := Int_CheckExtension(Buffer, 'GL_EXT_depth_bounds_test');
19482   GL_EXT_texture_mirror_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_mirror_clamp');
19483   GL_EXT_blend_equation_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_equation_separate');
19484   GL_EXT_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_pixel_buffer_object');
19485   GL_EXT_texture_compression_dxt1 := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_dxt1');
19486   GL_EXT_stencil_clear_tag := Int_CheckExtension(Buffer, 'GL_EXT_stencil_clear_tag');
19487   GL_EXT_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_EXT_packed_depth_stencil');
19488   GL_EXT_texture_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB');
19489   GL_EXT_framebuffer_blit := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_blit');
19490   GL_EXT_framebuffer_multisample := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_multisample');
19491   GL_EXT_timer_query := Int_CheckExtension(Buffer, 'GL_EXT_timer_query');
19492   GL_EXT_gpu_program_parameters := Int_CheckExtension(Buffer, 'GL_EXT_gpu_program_parameters');
19493   GL_EXT_bindable_uniform := Int_CheckExtension(Buffer, 'GL_EXT_bindable_uniform');
19494   GL_EXT_draw_buffers2 := Int_CheckExtension(Buffer, 'GL_EXT_draw_buffers2');
19495   GL_EXT_draw_instanced := Int_CheckExtension(Buffer, 'GL_EXT_draw_instanced');
19496   GL_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_sRGB');
19497   GL_EXT_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_geometry_shader4');
19498   GL_EXT_gpu_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_gpu_shader4');
19499   GL_EXT_packed_float := Int_CheckExtension(Buffer, 'GL_EXT_packed_float');
19500   GL_EXT_texture_array := Int_CheckExtension(Buffer, 'GL_EXT_texture_array');
19501   GL_EXT_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_buffer_object');
19502   GL_EXT_texture_compression_latc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_latc');
19503   GL_EXT_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_rgtc');
19504   GL_EXT_texture_integer := Int_CheckExtension(Buffer, 'GL_EXT_texture_integer');
19505   GL_EXT_texture_shared_exponent := Int_CheckExtension(Buffer, 'GL_EXT_texture_shared_exponent');
19506   GL_EXT_transform_feedback := Int_CheckExtension(Buffer, 'GL_EXT_transform_feedback');
19507   GL_EXT_direct_state_access := Int_CheckExtension(Buffer, 'GL_EXT_direct_state_access');
19508   GL_EXT_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array_bgra');
19509   GL_EXT_texture_swizzle := Int_CheckExtension(Buffer, 'GL_EXT_texture_swizzle');
19510   GL_EXT_provoking_vertex := Int_CheckExtension(Buffer, 'GL_EXT_provoking_vertex');
19511   GL_EXT_texture_snorm := Int_CheckExtension(Buffer, 'GL_EXT_texture_snorm');
19512   GL_EXT_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_EXT_separate_shader_objects');
19513   GL_EXT_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_EXT_shader_image_load_store');
19514   GL_EXT_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_EXT_vertex_attrib_64bit');
19515   GL_EXT_texture_sRGB_decode := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB_decode');
19516   
19517   // === HP ======================================================================
19518   GL_HP_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_HP_convolution_border_modes');
19519   GL_HP_image_transform := Int_CheckExtension(Buffer, 'GL_HP_image_transform');
19520   GL_HP_occlusion_test := Int_CheckExtension(Buffer, 'GL_HP_occlusion_test');
19521   GL_HP_texture_lighting := Int_CheckExtension(Buffer, 'GL_HP_texture_lighting');
19522
19523   // === IBM =====================================================================
19524   GL_IBM_cull_vertex := Int_CheckExtension(Buffer, 'GL_IBM_cull_vertex');
19525   GL_IBM_multimode_draw_arrays := Int_CheckExtension(Buffer, 'GL_IBM_multimode_draw_arrays');
19526   GL_IBM_rasterpos_clip := Int_CheckExtension(Buffer, 'GL_IBM_rasterpos_clip');
19527   GL_IBM_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_IBM_texture_mirrored_repeat');
19528   GL_IBM_vertex_array_lists := Int_CheckExtension(Buffer, 'GL_IBM_vertex_array_lists');
19529
19530   // === INGR ====================================================================
19531   GL_INGR_blend_func_separate := Int_CheckExtension(Buffer, 'GL_INGR_blend_func_separate');
19532   GL_INGR_color_clamp := Int_CheckExtension(Buffer, 'GL_INGR_color_clamp');
19533   GL_INGR_interlace_read := Int_CheckExtension(Buffer, 'GL_INGR_interlace_read');
19534   GL_INGR_palette_buffer := Int_CheckExtension(Buffer, 'GL_INGR_palette_buffer');
19535
19536   // === INTEL ===================================================================
19537   GL_INTEL_parallel_arrays := Int_CheckExtension(Buffer, 'GL_INTEL_parallel_arrays');
19538   GL_INTEL_texture_scissor := Int_CheckExtension(Buffer, 'GL_INTEL_texture_scissor');
19539
19540   // === MESA ====================================================================
19541   GL_MESA_resize_buffers := Int_CheckExtension(Buffer, 'GL_MESA_resize_buffers');
19542   GL_MESA_window_pos := Int_CheckExtension(Buffer, 'GL_MESA_window_pos');
19543
19544   // === NVIDIA ==================================================================
19545   GL_NV_blend_square := Int_CheckExtension(Buffer, 'GL_NV_blend_square');
19546   GL_NV_copy_depth_to_color := Int_CheckExtension(Buffer, 'GL_NV_copy_depth_to_color');
19547   GL_NV_depth_clamp := Int_CheckExtension(Buffer, 'GL_NV_depth_clamp');
19548   GL_NV_evaluators := Int_CheckExtension(Buffer, 'GL_NV_evaluators');
19549   GL_NV_fence := Int_CheckExtension(Buffer, 'GL_NV_fence');
19550   GL_NV_float_buffer := Int_CheckExtension(Buffer, 'GL_NV_float_buffer');
19551   GL_NV_fog_distance := Int_CheckExtension(Buffer, 'GL_NV_fog_distance');
19552   GL_NV_fragment_program := Int_CheckExtension(Buffer, 'GL_NV_fragment_program');
19553   GL_NV_half_float := Int_CheckExtension(Buffer, 'GL_NV_half_float');
19554   GL_NV_light_max_exponent := Int_CheckExtension(Buffer, 'GL_NV_light_max_exponent');
19555   GL_NV_multisample_filter_hint := Int_CheckExtension(Buffer, 'GL_NV_multisample_filter_hint');
19556   GL_NV_occlusion_query := Int_CheckExtension(Buffer, 'GL_NV_occlusion_query');
19557   GL_NV_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_NV_packed_depth_stencil');
19558   GL_NV_pixel_data_range := Int_CheckExtension(Buffer, 'GL_NV_pixel_data_range');
19559   GL_NV_point_sprite := Int_CheckExtension(Buffer, 'GL_NV_point_sprite');
19560   GL_NV_primitive_restart := Int_CheckExtension(Buffer, 'GL_NV_primitive_restart');
19561   GL_NV_register_combiners := Int_CheckExtension(Buffer, 'GL_NV_register_combiners');
19562   GL_NV_register_combiners2 := Int_CheckExtension(Buffer, 'GL_NV_register_combiners2');
19563   GL_NV_texgen_emboss := Int_CheckExtension(Buffer, 'GL_NV_texgen_emboss');
19564   GL_NV_texgen_reflection := Int_CheckExtension(Buffer, 'GL_NV_texgen_reflection');
19565   GL_NV_texture_compression_vtc := Int_CheckExtension(Buffer, 'GL_NV_texture_compression_vtc');
19566   GL_NV_texture_env_combine4 := Int_CheckExtension(Buffer, 'GL_NV_texture_env_combine4');
19567   GL_NV_texture_expand_normal := Int_CheckExtension(Buffer, 'GL_NV_texture_expand_normal');
19568   GL_NV_texture_rectangle := Int_CheckExtension(Buffer, 'GL_NV_texture_rectangle');
19569   GL_NV_texture_shader := Int_CheckExtension(Buffer, 'GL_NV_texture_shader');
19570   GL_NV_texture_shader2 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader2');
19571   GL_NV_texture_shader3 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader3');
19572   GL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range');
19573   GL_NV_vertex_array_range2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range2');
19574   GL_NV_vertex_program := Int_CheckExtension(Buffer, 'GL_NV_vertex_program');
19575   GL_NV_vertex_program1_1 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program1_1');
19576   GL_NV_vertex_program2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2');
19577   GL_NV_fragment_program_option := Int_CheckExtension(Buffer, 'GL_NV_fragment_program_option');
19578   GL_NV_fragment_program2 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program2');
19579   GL_NV_vertex_program2_option := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2_option');
19580   GL_NV_vertex_program3 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program3');
19581   GL_NV_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_NV_depth_buffer_float');
19582   GL_NV_fragment_program4 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program4');
19583   GL_NV_framebuffer_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_framebuffer_multisample_coverage');
19584   GL_NV_geometry_program4 := Int_CheckExtension(Buffer, 'GL_NV_geometry_program4');
19585   GL_NV_gpu_program4 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program4');
19586   GL_NV_parameter_buffer_object := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object');
19587   GL_NV_transform_feedback := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback');
19588   GL_NV_vertex_program4 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program4');
19589   GL_NV_conditional_render := Int_CheckExtension(Buffer, 'GL_NV_conditional_render');
19590   GL_NV_present_video := Int_CheckExtension(Buffer, 'GL_NV_present_video');
19591   GL_NV_explicit_multisample := Int_CheckExtension(Buffer, 'GL_NV_explicit_multisample');
19592   GL_NV_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback2');
19593   GL_NV_video_capture := Int_CheckExtension(Buffer, 'GL_NV_video_capture');
19594   GL_NV_copy_image := Int_CheckExtension(Buffer, 'GL_NV_copy_image');
19595   GL_NV_parameter_buffer_object2 := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object2');
19596   GL_NV_shader_buffer_load := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_load');
19597   GL_NV_vertex_buffer_unified_memory := Int_CheckExtension(Buffer, 'GL_NV_vertex_buffer_unified_memory');
19598   GL_NV_gpu_program5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program5');
19599   GL_NV_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_shader5');
19600   GL_NV_shader_buffer_store := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_store');
19601   GL_NV_tessellation_program5 := Int_CheckExtension(Buffer, 'GL_NV_tessellation_program5');
19602   GL_NV_vertex_attrib_integer_64bit := Int_CheckExtension(Buffer, 'GL_NV_vertex_attrib_integer_64bit');
19603   GL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_multisample_coverage');
19604   GL_NV_vdpau_interop := Int_CheckExtension(Buffer, 'GL_NV_vdpau_interop');
19605   GL_NV_texture_barrier := Int_CheckExtension(Buffer, 'GL_NV_texture_barrier');
19606   // 4.3
19607         GL_NV_path_rendering := Int_CheckExtension(Buffer, 'GL_NV_path_rendering');
19608   GL_NV_bindless_texture := Int_CheckExtension(Buffer, 'GL_NV_bindless_texture');
19609         GL_NV_shader_atomic_float := Int_CheckExtension(Buffer, 'GL_NV_shader_atomic_float');
19610
19611   // === OML =====================================================================
19612   GL_OML_interlace := Int_CheckExtension(Buffer, 'GL_OML_interlace');
19613   GL_OML_resample := Int_CheckExtension(Buffer, 'GL_OML_resample');
19614   GL_OML_subsample := Int_CheckExtension(Buffer, 'GL_OML_subsample');
19615
19616   // === PGI =====================================================================
19617   GL_PGI_misc_hints := Int_CheckExtension(Buffer, 'GL_PGI_misc_hints');
19618   GL_PGI_vertex_hints := Int_CheckExtension(Buffer, 'GL_PGI_vertex_hints');
19619
19620   // === REND ====================================================================
19621   GL_REND_screen_coordinates := Int_CheckExtension(Buffer, 'GL_REND_screen_coordinates');
19622
19623   // === S3 ======================================================================
19624   GL_S3_s3tc := Int_CheckExtension(Buffer, 'GL_S3_s3tc');
19625
19626   // === SGIS ====================================================================
19627   GL_SGIS_detail_texture := Int_CheckExtension(Buffer, 'GL_SGIS_detail_texture');
19628   GL_SGIS_fog_function := Int_CheckExtension(Buffer, 'GL_SGIS_fog_function');
19629   GL_SGIS_generate_mipmap := Int_CheckExtension(Buffer, 'GL_SGIS_generate_mipmap');
19630   GL_SGIS_multisample := Int_CheckExtension(Buffer, 'GL_SGIS_multisample');
19631   GL_SGIS_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIS_pixel_texture');
19632   GL_SGIS_point_line_texgen := Int_CheckExtension(Buffer, 'GL_SGIS_point_line_texgen');
19633   GL_SGIS_point_parameters := Int_CheckExtension(Buffer, 'GL_SGIS_point_parameters');
19634   GL_SGIS_sharpen_texture := Int_CheckExtension(Buffer, 'GL_SGIS_sharpen_texture');
19635   GL_SGIS_texture4D := Int_CheckExtension(Buffer, 'GL_SGIS_texture4D');
19636   GL_SGIS_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_border_clamp');
19637   GL_SGIS_texture_color_mask := Int_CheckExtension(Buffer, 'GL_SGIS_texture_color_mask');
19638   GL_SGIS_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_edge_clamp');
19639   GL_SGIS_texture_filter4 := Int_CheckExtension(Buffer, 'GL_SGIS_texture_filter4');
19640   GL_SGIS_texture_lod := Int_CheckExtension(Buffer, 'GL_SGIS_texture_lod');
19641   GL_SGIS_texture_select := Int_CheckExtension(Buffer, 'GL_SGIS_texture_select');
19642
19643   // === SGIX ====================================================================
19644   GL_FfdMaskSGIX := Int_CheckExtension(Buffer, 'GL_FfdMaskSGIX');
19645   GL_SGIX_async := Int_CheckExtension(Buffer, 'GL_SGIX_async');
19646   GL_SGIX_async_histogram := Int_CheckExtension(Buffer, 'GL_SGIX_async_histogram');
19647   GL_SGIX_async_pixel := Int_CheckExtension(Buffer, 'GL_SGIX_async_pixel');
19648   GL_SGIX_blend_alpha_minmax := Int_CheckExtension(Buffer, 'GL_SGIX_blend_alpha_minmax');
19649   GL_SGIX_calligraphic_fragment := Int_CheckExtension(Buffer, 'GL_SGIX_calligraphic_fragment');
19650   GL_SGIX_clipmap := Int_CheckExtension(Buffer, 'GL_SGIX_clipmap');
19651   GL_SGIX_convolution_accuracy := Int_CheckExtension(Buffer, 'GL_SGIX_convolution_accuracy');
19652   GL_SGIX_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGIX_depth_pass_instrument');
19653   GL_SGIX_depth_texture := Int_CheckExtension(Buffer, 'GL_SGIX_depth_texture');
19654   GL_SGIX_flush_raster := Int_CheckExtension(Buffer, 'GL_SGIX_flush_raster');
19655   GL_SGIX_fog_offset := Int_CheckExtension(Buffer, 'GL_SGIX_fog_offset');
19656   GL_SGIX_fog_scale := Int_CheckExtension(Buffer, 'GL_SGIX_fog_scale');
19657   GL_SGIX_fragment_lighting := Int_CheckExtension(Buffer, 'GL_SGIX_fragment_lighting');
19658   GL_SGIX_framezoom := Int_CheckExtension(Buffer, 'GL_SGIX_framezoom');
19659   GL_SGIX_igloo_interface := Int_CheckExtension(Buffer, 'GL_SGIX_igloo_interface');
19660   GL_SGIX_impact_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_impact_pixel_texture');
19661   GL_SGIX_instruments := Int_CheckExtension(Buffer, 'GL_SGIX_instruments');
19662   GL_SGIX_interlace := Int_CheckExtension(Buffer, 'GL_SGIX_interlace');
19663   GL_SGIX_ir_instrument1 := Int_CheckExtension(Buffer, 'GL_SGIX_ir_instrument1');
19664   GL_SGIX_list_priority := Int_CheckExtension(Buffer, 'GL_SGIX_list_priority');
19665   GL_SGIX_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_texture');
19666   GL_SGIX_pixel_tiles := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_tiles');
19667   GL_SGIX_polynomial_ffd := Int_CheckExtension(Buffer, 'GL_SGIX_polynomial_ffd');
19668   GL_SGIX_reference_plane := Int_CheckExtension(Buffer, 'GL_SGIX_reference_plane');
19669   GL_SGIX_resample := Int_CheckExtension(Buffer, 'GL_SGIX_resample');
19670   GL_SGIX_scalebias_hint := Int_CheckExtension(Buffer, 'GL_SGIX_scalebias_hint');
19671   GL_SGIX_shadow := Int_CheckExtension(Buffer, 'GL_SGIX_shadow');
19672   GL_SGIX_shadow_ambient := Int_CheckExtension(Buffer, 'GL_SGIX_shadow_ambient');
19673   GL_SGIX_sprite := Int_CheckExtension(Buffer, 'GL_SGIX_sprite');
19674   GL_SGIX_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_subsample');
19675   GL_SGIX_tag_sample_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_tag_sample_buffer');
19676   GL_SGIX_texture_add_env := Int_CheckExtension(Buffer, 'GL_SGIX_texture_add_env');
19677   GL_SGIX_texture_coordinate_clamp := Int_CheckExtension(Buffer, 'GL_SGIX_texture_coordinate_clamp');
19678   GL_SGIX_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_lod_bias');
19679   GL_SGIX_texture_multi_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_texture_multi_buffer');
19680   GL_SGIX_texture_scale_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_scale_bias');
19681   GL_SGIX_texture_select := Int_CheckExtension(Buffer, 'GL_SGIX_texture_select');
19682   GL_SGIX_vertex_preclip := Int_CheckExtension(Buffer, 'GL_SGIX_vertex_preclip');
19683   GL_SGIX_ycrcb := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb');
19684   GL_SGIX_ycrcb_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb_subsample');
19685   GL_SGIX_ycrcba := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcba');
19686
19687   // === SGI =====================================================================
19688   GL_SGI_color_matrix := Int_CheckExtension(Buffer, 'GL_SGI_color_matrix');
19689   GL_SGI_color_table := Int_CheckExtension(Buffer, 'GL_SGI_color_table');
19690   GL_SGI_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGI_depth_pass_instrument');
19691   GL_SGI_texture_color_table := Int_CheckExtension(Buffer, 'GL_SGI_texture_color_table');
19692
19693   // === SUN =====================================================================
19694   GL_SUNX_constant_data := Int_CheckExtension(Buffer, 'GL_SUNX_constant_data');
19695   GL_SUN_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_SUN_convolution_border_modes');
19696   GL_SUN_global_alpha := Int_CheckExtension(Buffer, 'GL_SUN_global_alpha');
19697   GL_SUN_mesh_array := Int_CheckExtension(Buffer, 'GL_SUN_mesh_array');
19698   GL_SUN_slice_accum := Int_CheckExtension(Buffer, 'GL_SUN_slice_accum');
19699   GL_SUN_triangle_list := Int_CheckExtension(Buffer, 'GL_SUN_triangle_list');
19700   GL_SUN_vertex := Int_CheckExtension(Buffer, 'GL_SUN_vertex');
19701
19702   // === WIN =====================================================================
19703   GL_WIN_phong_shading := Int_CheckExtension(Buffer, 'GL_WIN_phong_shading');
19704   GL_WIN_specular_fog := Int_CheckExtension(Buffer, 'GL_WIN_specular_fog');
19705
19706   {$IFDEF DGL_WIN}
19707   // === WGL =====================================================================
19708   WGL_3DFX_multisample := Int_CheckExtension(Buffer, 'WGL_3DFX_multisample');
19709   WGL_ARB_buffer_region := Int_CheckExtension(Buffer, 'WGL_ARB_buffer_region');
19710   WGL_ARB_extensions_string := Int_CheckExtension(Buffer, 'WGL_ARB_extensions_string');
19711   WGL_ARB_make_current_read := Int_CheckExtension(Buffer, 'WGL_ARB_make_current_read');
19712   WGL_ARB_multisample := Int_CheckExtension(Buffer, 'WGL_ARB_multisample');
19713   WGL_ARB_pbuffer := Int_CheckExtension(Buffer, 'WGL_ARB_pbuffer');
19714   WGL_ARB_pixel_format := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format');
19715   WGL_ARB_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format_float');
19716   WGL_ARB_render_texture := Int_CheckExtension(Buffer, 'WGL_ARB_render_texture');
19717   WGL_ARB_create_context := Int_CheckExtension(Buffer, 'WGL_ARB_create_context');
19718   WGL_ARB_create_context_profile := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_profile');
19719   WGL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'WGL_ARB_framebuffer_sRGB');
19720   WGL_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_robustness');
19721   WGL_ATI_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ATI_pixel_format_float');
19722   WGL_AMD_gpu_association := Int_CheckExtension(Buffer, 'WGL_AMD_gpu_association');
19723   WGL_EXT_depth_float := Int_CheckExtension(Buffer, 'WGL_EXT_depth_float');
19724   WGL_EXT_display_color_table := Int_CheckExtension(Buffer, 'WGL_EXT_display_color_table');
19725   WGL_EXT_extensions_string := Int_CheckExtension(Buffer, 'WGL_EXT_extensions_string');
19726   WGL_EXT_make_current_read := Int_CheckExtension(Buffer, 'WGL_EXT_make_current_read');
19727   WGL_EXT_multisample := Int_CheckExtension(Buffer, 'WGL_EXT_multisample');
19728   WGL_EXT_pbuffer := Int_CheckExtension(Buffer, 'WGL_EXT_pbuffer');
19729   WGL_EXT_pixel_format := Int_CheckExtension(Buffer, 'WGL_EXT_pixel_format');
19730   WGL_EXT_swap_control := Int_CheckExtension(Buffer, 'WGL_EXT_swap_control');
19731   WGL_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'WGL_EXT_create_context_es2_profile');
19732   WGL_I3D_digital_video_control := Int_CheckExtension(Buffer, 'WGL_I3D_digital_video_control');
19733   WGL_I3D_gamma := Int_CheckExtension(Buffer, 'WGL_I3D_gamma');
19734   WGL_I3D_genlock := Int_CheckExtension(Buffer, 'WGL_I3D_genlock');
19735   WGL_I3D_image_buffer := Int_CheckExtension(Buffer, 'WGL_I3D_image_buffer');
19736   WGL_I3D_swap_frame_lock := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_lock');
19737   WGL_I3D_swap_frame_usage := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_usage');
19738   WGL_NV_float_buffer := Int_CheckExtension(Buffer, 'WGL_NV_float_buffer');
19739   WGL_NV_render_depth_texture := Int_CheckExtension(Buffer, 'WGL_NV_render_depth_texture');
19740   WGL_NV_render_texture_rectangle := Int_CheckExtension(Buffer, 'WGL_NV_render_texture_rectangle');
19741   WGL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'WGL_NV_vertex_array_range');
19742   WGL_NV_present_video := Int_CheckExtension(Buffer, 'WGL_NV_present_video');
19743   WGL_NV_video_output := Int_CheckExtension(Buffer, 'WGL_NV_video_output');
19744   WGL_NV_swap_group := Int_CheckExtension(Buffer, 'WGL_NV_swap_group');
19745   WGL_NV_gpu_affinity := Int_CheckExtension(Buffer, 'WGL_NV_gpu_affinity');
19746   WGL_NV_video_capture := Int_CheckExtension(Buffer, 'WGL_NV_video_capture');
19747   WGL_NV_copy_image := Int_CheckExtension(Buffer, 'WGL_NV_copy_image');
19748   WGL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19749   WGL_NV_DX_interop := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19750   WGL_OML_sync_control := Int_CheckExtension(Buffer, 'WGL_OML_sync_control');
19751   WGL_3DL_stereo_control := Int_CheckExtension(Buffer, 'WGL_3DL_stereo_control');
19752
19753   WIN_draw_range_elements := Int_CheckExtension(Buffer, 'WIN_draw_range_elements');
19754   WIN_swap_hint := Int_CheckExtension(Buffer, 'WIN_swap_hint');
19755   {$ENDIF}
19756
19757   {$IFDEF DGL_LINUX}
19758   // === GLX =====================================================================
19759   GLX_ARB_multisample := Int_CheckExtension(Buffer, 'GLX_ARB_multisample');
19760   GLX_ARB_fbconfig_float := Int_CheckExtension(Buffer, 'GLX_ARB_fbconfig_float');
19761   GLX_ARB_get_proc_address := Int_CheckExtension(Buffer, 'GLX_ARB_get_proc_address');
19762   GLX_ARB_create_context := Int_CheckExtension(Buffer, 'GLX_ARB_create_context');
19763   GLX_ARB_create_context_profile := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_profile');
19764   GLX_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GLX_ARB_vertex_buffer_object');
19765   GLX_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_ARB_framebuffer_sRGB');
19766   GLX_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_robustness');
19767   GLX_EXT_visual_info := Int_CheckExtension(Buffer, 'GLX_EXT_visual_info');
19768   GLX_EXT_visual_rating := Int_CheckExtension(Buffer, 'GLX_EXT_visual_rating');
19769   GLX_EXT_import_context := Int_CheckExtension(Buffer, 'GLX_EXT_import_context');
19770   GLX_EXT_fbconfig_packed_float := Int_CheckExtension(Buffer, 'GLX_EXT_fbconfig_packed_float');
19771   GLX_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_EXT_framebuffer_sRGB');
19772   GLX_EXT_texture_from_pixmap := Int_CheckExtension(Buffer, 'GLX_EXT_texture_from_pixmap');
19773   GLX_EXT_swap_control := Int_CheckExtension(Buffer, 'GLX_EXT_swap_control');
19774   GLX_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'GLX_EXT_create_context_es2_profile');
19775   {$ENDIF}
19776   ImplementationRead := True;
19777 end;
19778
19779 {$IFDEF DGL_WIN}
19780 // =============================================================================
19781 // RaiseLastOSError
19782 // =============================================================================
19783 // Needed for compatibility with older Delphiversions
19784 // =============================================================================
19785
19786 procedure RaiseLastOSError;
19787 begin
19788 {$IFDEF FPC}
19789   raise Exception.Create('RaiseLastOSError!'); // To-Do: find a better solution
19790 {$ELSE}
19791   {$IFDEF DELPHI6_AND_DOWN} // If Delphi 6 or later
19792     SysUtils.RaiseLastWin32Error;
19793   {$ELSE}
19794     SysUtils.RaiseLastOSError;
19795   {$ENDIF}
19796 {$ENDIF}
19797 end;
19798
19799 // =============================================================================
19800 // CreateRenderingContext
19801 // =============================================================================
19802
19803 function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
19804 const
19805   OBJ_MEMDC = 10;
19806   OBJ_ENHMETADC = 12;
19807   OBJ_METADC = 4;
19808   PFD_DOUBLEBUFFER = $00000001;
19809   PFD_STEREO = $00000002;
19810   PFD_DRAW_TO_WINDOW = $00000004;
19811   PFD_DRAW_TO_BITMAP = $00000008;
19812   PFD_SUPPORT_GDI = $00000010;
19813   PFD_SUPPORT_OPENGL = $00000020;
19814   PFD_TYPE_RGBA = 0;
19815   PFD_MAIN_PLANE = 0;
19816   PFD_OVERLAY_PLANE = 1;
19817   PFD_UNDERLAY_PLANE = LongWord(-1);
19818   MemoryDCs = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
19819 var
19820   PFDescriptor: TPixelFormatDescriptor;
19821   PixelFormat: Integer;
19822   AType: DWORD;
19823 begin
19824   if GL_LibHandle = nil then
19825     InitOpenGL;
19826
19827   FillChar(PFDescriptor{%H-}, SizeOf(PFDescriptor), 0);
19828
19829   with PFDescriptor do
19830   begin
19831     nSize := SizeOf(PFDescriptor);
19832     nVersion := 1;
19833     dwFlags := PFD_SUPPORT_OPENGL;
19834
19835     AType := GetObjectType(DC);
19836
19837     if AType = 0 then
19838       RaiseLastOSError;
19839
19840     if AType in MemoryDCs then
19841       dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
19842     else
19843       dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
19844
19845     if opDoubleBuffered in Options then
19846       dwFlags := dwFlags or PFD_DOUBLEBUFFER;
19847
19848     if opGDI in Options then
19849       dwFlags := dwFlags or PFD_SUPPORT_GDI;
19850
19851     if opStereo in Options then
19852       dwFlags := dwFlags or PFD_STEREO;
19853
19854     iPixelType := PFD_TYPE_RGBA;
19855     cColorBits := ColorBits;
19856     cDepthBits := zBits;
19857     cStencilBits := StencilBits;
19858     cAccumBits := AccumBits;
19859     cAuxBuffers := AuxBuffers;
19860
19861     if Layer = 0 then
19862       iLayerType := PFD_MAIN_PLANE
19863     else
19864     if Layer > 0 then
19865       iLayerType := PFD_OVERLAY_PLANE
19866     else
19867       iLayerType := Byte(PFD_UNDERLAY_PLANE);
19868   end;
19869
19870   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
19871
19872   if PixelFormat = 0 then
19873     RaiseLastOSError;
19874
19875   if GetPixelFormat(DC) <> PixelFormat then
19876     if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
19877       RaiseLastOSError;
19878
19879   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
19880
19881   Result := wglCreateContext(DC);
19882
19883   if Result = 0 then
19884     RaiseLastOSError
19885   else
19886     LastPixelFormat := 0;
19887 end;
19888
19889 // =============================================================================
19890 // CreateRenderingContextVersion
19891 // =============================================================================
19892 //  Creates a context for the more recent OpenGL versions (3.0) and up
19893 //  For that we first need to get a normal GL context for getting the
19894 //  function pointer to wglCreateContextAttribsARB first
19895 // =============================================================================
19896 function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
19897 const
19898   OBJ_MEMDC          = 10;
19899   OBJ_ENHMETADC      = 12;
19900   OBJ_METADC         = 4;
19901   PFD_DOUBLEBUFFER   = $00000001;
19902   PFD_STEREO         = $00000002;
19903   PFD_DRAW_TO_WINDOW = $00000004;
19904   PFD_DRAW_TO_BITMAP = $00000008;
19905   PFD_SUPPORT_GDI    = $00000010;
19906   PFD_SUPPORT_OPENGL = $00000020;
19907   PFD_TYPE_RGBA      = 0;
19908   PFD_MAIN_PLANE     = 0;
19909   PFD_OVERLAY_PLANE  = 1;
19910   PFD_UNDERLAY_PLANE = LongWord(-1);
19911   MemoryDCs          = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
19912 var
19913   PFDescriptor : TPixelFormatDescriptor;
19914   PixelFormat  : Integer;
19915   AType        : DWORD;
19916   LegacyRC     : HGLRC;
19917   Attribs      : array of Integer;
19918 begin
19919   if GL_LibHandle = nil then
19920         InitOpenGL;
19921
19922   if not Assigned(GL_LibHandle) then
19923         raise Exception.Create('GL_LibHandle is NIL. Could not load OpenGL library!');
19924
19925   FillChar(PFDescriptor{%H-}, SizeOf(PFDescriptor), 0);
19926
19927   with PFDescriptor do
19928     begin
19929       nSize    := SizeOf(PFDescriptor);
19930       nVersion := 1;
19931       dwFlags  := PFD_SUPPORT_OPENGL;
19932       AType    := GetObjectType(DC);
19933
19934       if AType = 0 then
19935         RaiseLastOSError;
19936
19937       if AType in MemoryDCs then
19938         dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
19939       else
19940         dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
19941
19942       if opDoubleBuffered in Options then
19943         dwFlags := dwFlags or PFD_DOUBLEBUFFER;
19944
19945       if opGDI in Options then
19946         dwFlags := dwFlags or PFD_SUPPORT_GDI;
19947
19948       if opStereo in Options then
19949         dwFlags := dwFlags or PFD_STEREO;
19950
19951       iPixelType   := PFD_TYPE_RGBA;
19952       cColorBits   := ColorBits;
19953       cDepthBits   := zBits;
19954       cStencilBits := StencilBits;
19955       cAccumBits   := AccumBits;
19956       cAuxBuffers  := AuxBuffers;
19957
19958       if Layer = 0 then
19959         iLayerType := PFD_MAIN_PLANE
19960       else
19961         if Layer > 0 then
19962           iLayerType := PFD_OVERLAY_PLANE
19963         else
19964           iLayerType := Byte(PFD_UNDERLAY_PLANE);
19965     end;
19966
19967   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
19968
19969   if PixelFormat = 0 then
19970         RaiseLastOSError;
19971
19972   if GetPixelFormat(DC) <> PixelFormat then
19973         if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
19974                 RaiseLastOSError;
19975
19976   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
19977
19978   // Create legacy render context first for we need function pointers to
19979   // create new OpenGL render contexts
19980   LegacyRC := wglCreateContext(DC);
19981   wglMakeCurrent(DC, LegacyRC);
19982
19983   // Set attributes to describe our requested context
19984   SetLength(Attribs, 5);
19985   Attribs[0] := WGL_CONTEXT_MAJOR_VERSION_ARB;
19986   Attribs[1] := MajorVersion;
19987   Attribs[2] := WGL_CONTEXT_MINOR_VERSION_ARB;
19988   Attribs[3] := MinorVersion;
19989
19990   // Add context flag for forward compatible context
19991   //  Forward compatible means no more support for legacy functions like
19992   //  immediate mode (glvertex, glrotate, gltranslate, etc.)
19993   if ForwardCompatible then
19994     begin
19995       SetLength(Attribs, Length(Attribs)+2);
19996       Attribs[4] := WGL_CONTEXT_FLAGS_ARB;
19997       Attribs[5] := WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
19998     end;
19999
20000   // Attribute flags must be finalized with a zero
20001   Attribs[High(Attribs)] := 0;
20002
20003   // Get function pointer for new context creation function
20004   wglCreateContextAttribsARB := wglGetProcAddress('wglCreateContextAttribsARB');
20005
20006   if not Assigned(wglCreateContextAttribsARB) then
20007     begin
20008       raise Exception.Create('Could not get function pointer adress for wglCreateContextAttribsARB - OpenGL 3.x and above not supported!');
20009       wglDeleteContext(LegacyRC);
20010       exit;
20011     end;
20012
20013   // Create context
20014   Result := wglCreateContextAttribsARB(DC, 0, @Attribs[0]);
20015
20016   if Result = 0 then
20017     begin
20018       raise Exception.Create('Could not create the desired OpenGL rendering context!');
20019       wglDeleteContext(LegacyRC);
20020       exit;
20021     end;
20022
20023   wglDeleteContext(LegacyRC);
20024
20025   if Result = 0 then
20026         RaiseLastOSError
20027   else
20028         LastPixelFormat := 0;
20029 end;
20030
20031 // =============================================================================
20032 // DestroyRenderingContext
20033 // =============================================================================
20034
20035 procedure DestroyRenderingContext(RC: HGLRC);
20036 begin
20037   wglDeleteContext(RC);
20038 end;
20039
20040
20041 // =============================================================================
20042 // ActivateRenderingContext
20043 // =============================================================================
20044
20045 procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
20046 begin
20047   Assert((DC <> 0), 'DC must not be 0');
20048   Assert((RC <> 0), 'RC must not be 0');
20049
20050   wglMakeCurrent(DC, RC);
20051
20052   {$ifdef DGL_TINY_HEADER}
20053   ReadCoreVersion;
20054   {$else}
20055   ReadImplementationProperties;
20056
20057   if (loadext) then
20058     ReadExtensions;
20059   {$endif}
20060 end;
20061
20062 // =============================================================================
20063 // DeactivateRenderingContext
20064 // =============================================================================
20065
20066 procedure DeactivateRenderingContext;
20067 begin
20068   wglMakeCurrent(0, 0);
20069 end;
20070 {$ENDIF}
20071
20072
20073 initialization
20074
20075 {$IFDEF CPU386}
20076   Set8087CW($133F);
20077 {$ENDIF}
20078
20079 finalization
20080
20081 end.