OpenGL 4.5
authorsaschawillems <webmaster@saschawillems.de>
Sun, 24 Aug 2014 10:43:43 +0000 (12:43 +0200)
committersaschawillems <webmaster@saschawillems.de>
Sun, 24 Aug 2014 10:43:43 +0000 (12:43 +0200)
dglOpenGL.pas
readme

index 484bc89..11f59b9 100644 (file)
@@ -1,8 +1,8 @@
 { ============================================================================
 
-       OpenGL 4.4 - Headertranslation
-       Version 4.4b
-       Date : 2014/05/08
+       OpenGL 4.5 - Headertranslation
+       Version 4.5
+       Date : 2014/08/23
 
        Supported environments and targets :
         - (Win32) Delphi 4 and up
 
 ==============================================================================
 
-       Containts the translations of glext.h, gl_1_1.h, glu.h and weglext.h.
-       It also contains some helperfunctions that were inspired by those
-       found in Mike Lischke's OpenGL12.pas.
-
-       Copyright (C) DGL-OpenGL2-Portteam
+       Copyright (C) DGL-OpenGL-Portteam
        All Rights Reserved
 
        Obtained through:
+       Bitbucket source repository - https://bitbucket.org/saschawillems/dglopengl
        Delphi OpenGL Community(DGL) - www.delphigl.com
 
-       Converted and maintained by DGL's GL2.0-Team :
+       Converted and maintained by DGL's OpenGL-Portteam :
          - Sascha Willems             - http://www.saschawillems.de
          - Steffen Xonna (Lossy eX)   - http://www.dev-center.de
        Additional input :
            sigsegv (libdl.so)
 
 ==============================================================================
- You may retrieve the latest version of this file at the Delphi OpenGL
- Community home page, located at http://www.delphigl.com/
 
- The contents of this file are used with permission, subject to
- the Mozilla Public License Version 1.1 (the "License"); you may
- not use this file except in compliance with the License. You may
- obtain a copy of the License at
- http://www.mozilla.org/MPL/MPL-1.1.html
+  You may retrieve the latest version of this file at the Delphi OpenGL
+  Community home page, located at http://www.delphigl.com/
 
- Software distributed under the License is distributed on an
- "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- implied. See the License for the specific language governing
- rights and limitations under the License.
+  The contents of this file are used with permission, subject to
+  the Mozilla Public License Version 1.1 (the "License"); you may
+  not use this file except in compliance with the License. You may
+  obtain a copy of the License at
+  http://www.mozilla.org/MPL/MPL-1.1.html
 
-==============================================================================
- History :
- Version 1.0    Initial Release
- Version 1.1    Added PPointer in Tpyessection for compatiblity with Delphi
-                versions lower than 7                                    (SW)
-                Added a function named RaiseLastOSError including a comment
-                on how to make it run under Delphi versions lower than 7 (SW)
-                Added some data types according to the GL-Syntax         (SW)
- Version 1.2    Fixed some problems with getting the addresses of some
-                Extensions (e.g. glTexImage3D) where the EXT/ARB did work
-                but not the core-functions                               (SW)
- Version 1.3    A second call to ReadimplementationProperties won't
-                revert to the default libs anymore                       (MW)
-                Libraries now will be released if necessary              (MW)
- Version 1.3a   Small fixes for glSlang-functions                        (SW)
- Version 1.3b   Fixed a small bug with GL_ARB_shader_objects, that lead
-                lead to that extension not loaded correctly              (SW)
- Version 1.3c   more GL 1.5 compliance by FOG_COORD_xx and
-                ARB less VBO and occlusion query routines                (MW)
- Version 1.3d   Fixed linebreaks (should now be corrected under D5)      (SW)
- Version 1.4    Changed header to correspond to the OpenGL-Shading
-                Language specification 1.10 :
-                - Added new GL_SAMPLER_*-Constants
-                - Added Constant GL_SHADING_LANGUAGE_VERSION_ARB
-                - Added Constant GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
-                - Added Constant GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB  (SW)
- Version 1.4a   Fixed a missing stdcall for glBindAttribLocationARB      (SW)
- Version 1.4b   Fixed declaration for glUniform*(f/i)vARB (added count)  (MW)
-                glCompileShaderARB changed from function to procedure    (MW)
- Version 1.5    Added support for FreePascal                             (BR)
-                Added type TGLVectorf3/TGLVector3f                       (SW)
- Version 1.6    Added Extension GL_EXT_framebuffer_object                (SX)
- Version 1.7    Added Extension GL_ARB_fragment_program_shadow           (SX)
-                Added Extension GL_ARB_draw_buffers                      (SX)
-                Added Extension GL_ARB_texture_rectangle                 (SX)
-                Added Extension GL_ARB_color_buffer_float                (SX)
-                Added Extension GL_ARB_half_float_pixel                  (SX)
-                Added Extension GL_ARB_texture_float                     (SX)
-                Added Extension GL_ARB_pixel_buffer_object               (SX)
-                Added Extension GL_EXT_depth_bounds_test                 (SX)
-                Added Extension GL_EXT_texture_mirror_clamp              (SX)
-                Added Extension GL_EXT_blend_equation_separate           (SX)
-                Added Extension GL_EXT_pixel_buffer_object               (SX)
-                Added Extension GL_EXT_texture_compression_dxt1          (SX)
-                Added Extension GL_NV_fragment_program_option            (SX)
-                Added Extension GL_NV_fragment_program2                  (SX)
-                Added Extension GL_NV_vertex_program2_option             (SX)
-                Added Extension GL_NV_vertex_program3                    (SX)
- Version 1.8    Added explicit delegate type definitions                 (LM)
-                Added .Net 1.1 Support                                   (LM)
-                Added .Net overloaded functions                          (LM)
-                Added delayed extension loading and stubs                (LM)
-                Added automatic InitOpenGL call in CreateRenderingContext(LM)
-                Added extra Read_* function                              (LM)
- Version 2.0    fixed some Problem with version string and damn drivers.
-                String 1.15 identified as OpenGL 1.5 not as OpenGL 1.1   (SX)
-                Removed unexisting extension GL_ARB_texture_mirror_repeat(SX)
-                Added Extension WGL_ARB_pixel_format_float               (SX)
-                Added Extension GL_EXT_stencil_clear_tag                 (SX)
-                Added Extension GL_EXT_texture_rectangle                 (SX)
-                Added Extension GL_EXT_texture_edge_clamp                (SX)
-                Some 1.5 Core Consts added (now completed)               (SX)
-                gluProject need pointer for not .net                     (SX)
-                gluUnProject need pointer for not .net                   (SX)
-                wglUseFontOutlines* need pointer for not .net            (SX)
-                wglSwapMultipleBuffers need pointer for not .net         (SX)
-                Bug with wglGetExtensionsStringEXT removed
-                different type for .net                                  (SX)
-                Added OpenGL 2.0 Core                                    (SX)
- Version 2.0.1  fixed some problems with glGetActiveAttrib in 2.0 Core   (SX)
-                fixes some problems with gluProject                      (SX)
-                fixes some problems with gluUnProject                    (SX)
-                fixes some problems with gluTessVertex                   (SX)
-                fixes some problems with gluLoadSamplingMatrices         (SX)
- Version 2.1    Removed .NET Support                                     (SX)
-                Better support for Linux                                 (SX)
-                Better Codeformation                                     (SX)
-                Added some more Vector/Matrix types                      (SX)
-                Added OpenGL 2.1 Core                                    (SX)
-                Added Extension GL_EXT_packed_depth_stencil              (SX)
-                Added Extension GL_EXT_texture_sRGB                      (SX)
-                Added Extension GL_EXT_framebuffer_blit                  (SX)
-                Added Extension GL_EXT_framebuffer_multisample           (SX)
-                Added Extension GL_EXT_timer_query                       (SX)
-                Added Extension GL_EXT_gpu_program_parameters            (SX)
-                Added Extension GL_EXT_bindable_uniform                  (SX)
-                Added Extension GL_EXT_draw_buffers2                     (SX)
-                Added Extension GL_EXT_draw_instanced                    (SX)
-                Added Extension GL_EXT_framebuffer_sRGB                  (SX)
-                Added Extension GL_EXT_geometry_shader4                  (SX)
-                Added Extension GL_EXT_gpu_shader4                       (SX)
-                Added Extension GL_EXT_packed_float                      (SX)
-                Added Extension GL_EXT_texture_array                     (SX)
-                Added Extension GL_EXT_texture_buffer_object             (SX)
-                Added Extension GL_EXT_texture_compression_latc          (SX)
-                Added Extension GL_EXT_texture_compression_rgtc          (SX)
-                Added Extension GL_EXT_texture_integer                   (SX)
-                Added Extension GL_EXT_texture_shared_exponent           (SX)
-                Added Extension GL_NV_depth_buffer_float                 (SX)
-                Added Extension GL_NV_fragment_program4                  (SX)
-                Added Extension GL_NV_framebuffer_multisample_coverage   (SX)
-                Added Extension GL_NV_geometry_program4                  (SX)
-                Added Extension GL_NV_gpu_program4                       (SX)
-                Added Extension GL_NV_parameter_buffer_object            (SX)
-                Added Extension GL_NV_transform_feedback                 (SX)
-                Added Extension GL_NV_vertex_program4                    (SX)
- Version 3.0    fixed some const of GL_EXT_texture_shared_exponent       (SX)
-                possible better support for mac                          (SX)
-                Added OpenGL 3.0 Core                                    (SX)
-                Added Extension GL_ARB_depth_buffer_float                (SX)
-                Added Extension GL_ARB_draw_instanced                    (SX)
-                Added Extension GL_ARB_framebuffer_object                (SX)
-                Added Extension GL_ARB_framebuffer_sRGB                  (SX)
-                Added Extension GL_ARB_geometry_shader4                  (SX)
-                Added Extension GL_ARB_half_float_vertex                 (SX)
-                Added Extension GL_ARB_instanced_arrays                  (SX)
-                Added Extension GL_ARB_map_buffer_range                  (SX)
-                Added Extension GL_ARB_texture_buffer_object             (SX)
-                Added Extension GL_ARB_texture_compression_rgtc          (SX)
-                Added Extension GL_ARB_texture_rg                        (SX)
-                Added Extension GL_ARB_vertex_array_object               (SX)
-                Added Extension GL_NV_conditional_render                 (SX)
-                Added Extension GL_NV_present_video                      (SX)
-                Added Extension GL_EXT_transform_feedback                (SX)
-                Added Extension GL_EXT_direct_state_access               (SX)
-                Added Extension GL_EXT_vertex_array_bgra                 (SX)
-                Added Extension GL_EXT_texture_swizzle                   (SX)
-                Added Extension GL_NV_explicit_multisample               (SX)
-                Added Extension GL_NV_transform_feedback2                (SX)
-                Added Extension WGL_ARB_create_context                   (SX)
-                Added Extension WGL_NV_present_video                     (SX)
-                Added Extension WGL_NV_video_out                         (SX)
-                Added Extension WGL_NV_swap_group                        (SX)
-                Added Extension WGL_NV_gpu_affinity                      (SX)
-                Added define DGL_TINY_HEADER to suppress automatic
-                function loading                                         (SX)
-                glProcedure renamed to dglGetProcAddress and now it's
-                visible from outside the unit to custom load functions   (SX)
-                dglCheckExtension added to check if an extension exists  (SX)
-                Read_GL_ARB_buffer_object renamed to
-                Read_GL_ARB_vertex_buffer_object                         (SX)
- Version 3.0.1  fixed an problem with fpc                                (SX)
- Version 3.0.2  fixed an problem with WGL_ARB_create_context             (SX)
- Version 3.2    Functions from GL_VERSION_3_0 where updated              (SX)
-                Functions from GL_ARB_map_buffer_range where updated     (SX)
-                Functions from GL_NV_present_video where added           (SX)
-                Added consts of GL_ARB_instanced_arrays                  (SX)
-                Defines to identify Delphi was changed (prevent for
-                feature maintenance)                                     (SX)
-                Added Extension GL_ATI_meminfo                           (SX)
-                Added Extension GL_AMD_performance_monitor               (SX)
-                Added Extension GL_AMD_texture_texture4                  (SX)
-                Added Extension GL_AMD_vertex_shader_tesselator          (SX)
-                Added Extension GL_EXT_provoking_vertex                  (SX)
-                Added Extension WGL_AMD_gpu_association                  (SX)
-                Added OpenGL 3.1 Core                                    (SX)
-                All deprecated stuff can be disabled if you undef the
-                define DGL_DEPRECATED                                    (SX)
-                Added Extension GL_ARB_uniform_buffer_object             (SX)
-                Added Extension GL_ARB_compatibility                     (SX)
-                Added Extension GL_ARB_copy_buffer                       (SX)
-                Added Extension GL_ARB_shader_texture_lod                (SX)
-                Remove function from GL_NV_present_video                 (SX)
-                Added Extension WGL_3DL_stereo_control                   (SX)
-                Added Extension GL_EXT_texture_snorm                     (SX)
-                Added Extension GL_AMD_draw_buffers_blend                (SX)
-                Added Extension GL_APPLE_texture_range                   (SX)
-                Added Extension GL_APPLE_float_pixels                    (SX)
-                Added Extension GL_APPLE_vertex_program_evaluators       (SX)
-                Added Extension GL_APPLE_aux_depth_stencil               (SX)
-                Added Extension GL_APPLE_object_purgeable                (SX)
-                Added Extension GL_APPLE_row_bytes                       (SX)
-                Added OpenGL 3.2 Core                                    (SX)
-                Added Extension GL_ARB_depth_clamp                       (SX)
-                Added Extension GL_ARB_draw_elements_base_vertex         (SX)
-                Added Extension GL_ARB_fragment_coord_conventions        (SX)
-                Added Extension GL_ARB_provoking_vertex                  (SX)
-                Added Extension GL_ARB_seamless_cube_map                 (SX)
-                Added Extension GL_ARB_sync                              (SX)
-                Added Extension GL_ARB_texture_multisample               (SX)
-                Added Extension GL_ARB_vertex_array_bgra                 (SX)
-                Added Extension GL_ARB_draw_buffers_blend                (SX)
-                Added Extension GL_ARB_sample_shading                    (SX)
-                Added Extension GL_ARB_texture_cube_map_array            (SX)
-                Added Extension GL_ARB_texture_gather                    (SX)
-                Added Extension GL_ARB_texture_query_lod                 (SX)
-                Added Extension WGL_ARB_create_context_profile           (SX)
-                Added GLX Core up to Version 1.4                         (SX)
-                Added Extension GLX_ARB_multisample                      (SX)
-                Added Extension GLX_ARB_fbconfig_float                   (SX)
-                Added Extension GLX_ARB_get_proc_address                 (SX)
-                Added Extension GLX_ARB_create_context                   (SX)
-                Added Extension GLX_ARB_create_context_profile           (SX)
-                Added Extension GLX_EXT_visual_info                      (SX)
-                Added Extension GLX_EXT_visual_rating                    (SX)
-                Added Extension GLX_EXT_import_context                   (SX)
-                Added Extension GLX_EXT_fbconfig_packed_float            (SX)
-                Added Extension GLX_EXT_framebuffer_sRGB                 (SX)
-                Added Extension GLX_EXT_texture_from_pixmap              (SX)
- Version 3.2.1  Fixed some problems with Delphi < 6                      (SX)
- Version 3.2.2  Added Extension GL_APPLE_rgb_422                         (SX)
-                Added Extension GL_EXT_separate_shader_objects           (SX)
-                Added Extension GL_NV_video_capture                      (SX)
-                Added Extension GL_NV_copy_image                         (SX)
-                Added Extension GL_NV_parameter_buffer_object2           (SX)
-                Added Extension GL_NV_shader_buffer_load                 (SX)
-                Added Extension GL_NV_vertex_buffer_unified_memory       (SX)
-                Added Extension GL_NV_texture_barrier                    (SX)
-                Variable GL_EXT_texture_snorm will be filled             (SX)
-                Variable GL_APPLE_row_bytes will be filled               (SX)
-                Added Extension WGL_NV_video_capture                     (SX)
-                Added Extension WGL_NV_copy_image                        (SX)
-                WGL_NV_video_out now named WGL_NV_video_output           (SX)
-                Added Extension GLX_EXT_swap_control                     (SX)
- Version 3.2.3  Fixed an Problem with glGetAttribLocation                (SX)
-                Added const GL_UNIFORM_BUFFER_EXT                        (SX)
-                Functions of GL_NV_texture_barrier now will be loaded    (SX)
- Version 4.0    Changes on Extension GL_ARB_texture_gather               (SX)
-                Changes on Extension GL_NV_shader_buffer_load            (SX)
-                Added OpenGL 3.3 Core                                    (SX)
-                Added OpenGL 4.0 Core                                    (SX)
-                Added Extension GL_AMD_shader_stencil_export             (SX)
-                Added Extension GL_AMD_seamless_cubemap_per_texture      (SX)
-                Added Extension GL_ARB_shading_language_include          (SX)
-                Added Extension GL_ARB_texture_compression_bptc          (SX)
-                Added Extension GL_ARB_blend_func_extended               (SX)
-                Added Extension GL_ARB_explicit_attrib_location          (SX)
-                Added Extension GL_ARB_occlusion_query2                  (SX)
-                Added Extension GL_ARB_sampler_objects                   (SX)
-                Added Extension GL_ARB_shader_bit_encoding               (SX)
-                Added Extension GL_ARB_texture_rgb10_a2ui                (SX)
-                Added Extension GL_ARB_texture_swizzle                   (SX)
-                Added Extension GL_ARB_timer_query                       (SX)
-                Added Extension GL_ARB_vertex_type_2_10_10_10_rev        (SX)
-                Added Extension GL_ARB_draw_indirect                     (SX)
-                Added Extension GL_ARB_gpu_shader5                       (SX)
-                Added Extension GL_ARB_gpu_shader_fp64                   (SX)
-                Added Extension GL_ARB_shader_subroutine                 (SX)
-                Added Extension GL_ARB_tessellation_shader               (SX)
-                Added Extension GL_ARB_texture_buffer_object_rgb32       (SX)
-                Added Extension GL_ARB_transform_feedback2               (SX)
-                Added Extension GL_ARB_transform_feedback3               (SX)
- Version 4.1    Possible fix some strange linux behavior                 (SX)
-                All function uses GL instead of TGL types                (SX)
-                GL_AMD_vertex_shader_tesselator will be read now         (SX)
-                GL_AMD_draw_buffers_blend will be read now               (SX)
-                Changes on glStencilFuncSeparate (GL_2_0)                (SX)
-                Changes on GL_VERSION_3_2                                (SX)
-                Changes on GL_VERSION_3_3                                (SX)
-                Changes on GL_VERSION_4_0                                (SX)
-                Changes on GL_ARB_sample_shading                         (SX)
-                Changes on GL_ARB_texture_cube_map_array                 (SX)
-                Changes on GL_ARB_gpu_shader5                            (SX)
-                Changes on GL_ARB_transform_feedback3                    (SX)
-                Changes on GL_ARB_sampler_objects                        (SX)
-                Changes on GL_ARB_gpu_shader_fp64                        (SX)
-                Changes on GL_APPLE_element_array                        (SX)
-                Changes on GL_APPLE_vertex_array_range                   (SX)
-                Changes on GL_NV_transform_feedback                      (SX)
-                Changes on GL_NV_vertex_buffer_unified_memory            (SX)
-                Changes on GL_EXT_multi_draw_arrays                      (SX)
-                Changes on GL_EXT_direct_state_access                    (SX)
-                Changes on GL_AMD_performance_monitor                    (SX)
-                Changes on GL_AMD_seamless_cubemap_per_texture           (SX)
-                Changes on GL_EXT_geometry_shader4                       (SX)
-                Added OpenGL 4.1 Core                                    (SX)
-                Added Extension GL_ARB_ES2_compatibility                 (SX)
-                Added Extension GL_ARB_get_program_binary                (SX)
-                Added Extension GL_ARB_separate_shader_objects           (SX)
-                Added Extension GL_ARB_shader_precision                  (SX)
-                Added Extension GL_ARB_vertex_attrib_64bit               (SX)
-                Added Extension GL_ARB_viewport_array                    (SX)
-                Added Extension GL_ARB_cl_event                          (SX)
-                Added Extension GL_ARB_debug_output                      (SX)
-                Added Extension GL_ARB_robustness                        (SX)
-                Added Extension GL_ARB_shader_stencil_export             (SX)
-                Added Extension GL_AMD_conservative_depth                (SX)
-                Added Extension GL_EXT_shader_image_load_store           (SX)
-                Added Extension GL_EXT_vertex_attrib_64bit               (SX)
-                Added Extension GL_NV_gpu_program5                       (SX)
-                Added Extension GL_NV_gpu_shader5                        (SX)
-                Added Extension GL_NV_shader_buffer_store                (SX)
-                Added Extension GL_NV_tessellation_program5              (SX)
-                Added Extension GL_NV_vertex_attrib_integer_64bit        (SX)
-                Added Extension GL_NV_multisample_coverage               (SX)
-                Added Extension GL_AMD_name_gen_delete                   (SX)
-                Added Extension GL_AMD_debug_output                      (SX)
-                Added Extension GL_NV_vdpau_interop                      (SX)
-                Added Extension GL_AMD_transform_feedback3_lines_triangles (SX)
-                Added Extension GL_AMD_depth_clamp_separate              (SX)
-                Added Extension GL_EXT_texture_sRGB_decode               (SX)
-                Added Extension WGL_ARB_framebuffer_sRGB                 (SX)
-                Added Extension WGL_ARB_create_context_robustness        (SX)
-                Added Extension WGL_EXT_create_context_es2_profile       (SX)
-                Added Extension WGL_NV_multisample_coverage              (SX)
-                Added Extension GLX_ARB_vertex_buffer_object             (SX)
-                Added Extension GLX_ARB_framebuffer_sRGB                 (SX)
-                Added Extension GLX_ARB_create_context_robustness        (SX)
-                Added Extension GLX_EXT_create_context_es2_profile       (SX)
- Version 4.1a   Fix for dglGetProcAddress with FPC and linux (def param) (SW)
- Version 4.2    Added OpenGL 4.2 Core                                    (SW)
-                Added Extension GL_ARB_base_instance                     (SW)
-                Added Extension GL_ARB_shading_language_420pack          (SW)
-                Added Extension GL_ARB_transform_feedback_instanced      (SW)
-                Added Extension GL_ARB_compressed_texture_pixel_storage  (SW)
-                Added Extension GL_ARB_conservative_depth                (SW)
-                Added Extension GL_ARB_internalformat_query              (SW)
-                Added Extension GL_ARB_map_buffer_alignment              (SW)
-                Added Extension GL_ARB_shader_atomic_counters            (SW)
-                Added Extension GL_ARB_shader_image_load_store           (SW)
-                Added Extension GL_ARB_shading_language_packing          (SW)
-                Added Extension GL_ARB_texture_storage                   (SW)
-                Added Extension WGL_NV_DX_interop                        (SW)
-                Added Define for WGL_EXT_create_context_es2_profile      (SW)
- Version 4.2a   Added Mac OS X patch by Andrey Gruzdev                   (SW)
- Version 4.3    Added OpenGL 4.3 Core                                    (SW)
-                                                       Added GL_ARB_arrays_of_arrays                                    (SW)
-                                                       Added GL_ARB_fragment_layer_viewport                     (SW)
-                                                       Added GL_ARB_shader_image_size                           (SW)
-                                                       Added GL_ARB_ES3_compatibility                           (SW)
-                                                       Added GL_ARB_clear_buffer_object                         (SW)
-                                                       Added GL_ARB_compute_shader                              (SW)
-                                                       Added GL_ARB_copy_image                                  (SW)
-                                                       Added GL_KHR_debug                                       (SW)
-                                                       Added GL_ARB_explicit_uniform_location,                  (SW)
-                                                       Added GL_ARB_framebuffer_no_attachments                  (SW)
-                                                       Added GL_ARB_internalformat_query2                       (SW)
-                                                       Added GL_ARB_invalidate_subdata                          (SW)
-                                                       Added GL_ARB_multi_draw_indirect                         (SW)
-                                                       Added GL_ARB_program_interface_query                     (SW)
-                                                       Added GL_ARB_robust_buffer_access_behavior               (SW)
-                                                       Added GL_ARB_shader_storage_buffer_object                (SW)
-                                                       Added GL_ARB_stencil_texturing                           (SW)
-                                                       Added GL_ARB_texture_buffer_range                        (SW)
-                                                       Added GL_ARB_texture_query_levels                        (SW)
-                                                       Added GL_ARB_texture_storage_multisample                 (SW)
-                                                       Added GL_ARB_texture_view                                (SW)
-                                                       Added GL_ARB_vertex_attrib_binding                       (SW)
-                Added new vendor-specific extensions                                                                            (SW)
-                                                               Added GL_NV_path_rendering                               (SW)
-                                                       Added GL_AMD_pinned_memory                               (SW)
-                Added GL_AMD_stencil_operation_extended                  (SW)
-                Added GL_AMD_vertex_shader_viewport_index                (SW)
-                Added GL_AMD_vertex_shader_layer                         (SW)
-                Added GL_NV_bindless_texture                             (SW)
-                Added GL_NV_shader_atomic_float                          (SW)
-                Added GL_AMD_query_buffer_object                         (SW)
-                Added CreateRenderingContextVersion                      (SW)
- Version 4.4    Added ARB_buffer_storage                                 (SW)
-                Added ARB_clear_texture extension                        (SW)
-                Added ARB_enhanced_layouts extension                     (SW)
-                Added ARB_multi_bind extension                           (SW)
-                Added ARB_query_buffer_object extension                  (SW)
-                Added ARB_texture_mirror_clamp_to_edge extension         (SW)
-                Added ARB_texture_stencil8 extension                     (SW)
-                Added ARB_vertex_type_10f_11f_11f_rev extension          (SW)
-                Added MAX_VERTEX_ATTRIB_STRIDE stat                      (SW)
-                Added missing functions for GL_EXT_direct_state_access   (SW)
-                GL3.0+ uses non-deprecated way of getting extensions
-                (thanks to frenK)                                                                                                 (SW)
-                Added missing cdecl for TglXGetVisualFromFBConfig        (SW)
- Version 4.4a    Fixed parameter type for glGetProgramInfoLog                         (SW)
-                                       (thanks to glAwesome)
- Version 4.4b          Fixed parameter type for glGetShaderInfoLog                            (SW)
-                                       (thanks to glAwesome)
-                                                               Added ARB_sparse_texture                                 (SW)
-                Added ARB_bindless_texture                                                                                                                      (SW)
+  Software distributed under the License is distributed on an
+  "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+  implied. See the License for the specific language governing
+  rights and limitations under the License.
 
 ==============================================================================
- Header based on glext.h  rev 87 (2012-08-06)
- Header based on wglext.h rev 24 (2012/01/04)
- Header based on glxext.h rev 33 (2012/02/29)  (only Core/ARB/EXT)
 
- This is an important notice for maintaining. Dont remove it. And make sure
- to keep it up to date
+
+  History : see readme.md
+
+
 ============================================================================== }
 
 {$define DGL_DEPRECATED}
@@ -525,13 +154,13 @@ interface
 
 {$IFDEF DARWIN}  // Mac OS X and FPC
    {$DEFINE DGL_MAC}
-{$ENDIF}   
+{$ENDIF}
 
-{$IFDEF DELPHI}  // Mac OS X add Delphi 
+{$IFDEF DELPHI}  // Mac OS X add Delphi
 {$IFDEF MACOS}
    {$DEFINE DGL_MAC}
-{$ENDIF}   
-{$ENDIF}   
+{$ENDIF}
+{$ENDIF}
 
 
 // detecting 64 Bit CPU
@@ -542,7 +171,7 @@ interface
 
 
 uses
-  {$IFDEF FPC}{$IFDEF DARWIN}dynlibs,{$ENDIF}{$ENDIF}  // LoadLibrary functions 
+  {$IFDEF FPC}{$IFDEF DARWIN}dynlibs,{$ENDIF}{$ENDIF}  // LoadLibrary functions
   SysUtils
   {$IFDEF DGL_WIN}, Windows{$ENDIF}
   {$IFDEF DGL_LINUX}, X, XLib, XUtil{$ENDIF}
@@ -570,7 +199,7 @@ type
   GLvoid = Pointer;
   GLint64 = Int64;
   GLuint64 = {$IFDEF DELPHI6_AND_DOWN} Int64 {$ELSE} UInt64 {$ENDIF};
-  
+
   TGLenum = GLenum;
   TGLboolean = GLboolean;
   TGLbitfield = GLbitfield;
@@ -621,6 +250,7 @@ type
 
   // GL_VERSION_1_5
   GLintptr = GLint;
+  PGLintptr = ^GLintptr;
   GLsizeiptr = GLsizei;
 
   // GL_ARB_vertex_buffer_object
@@ -662,7 +292,7 @@ type
   // WGL_NV_video_capture
   HVIDEOINPUTDEVICENV = THandle;
   PHVIDEOINPUTDEVICENV = ^HVIDEOINPUTDEVICENV;
-  
+
   HPGPUNV = THandle;
   HGPUNV = THandle;
 
@@ -688,8 +318,8 @@ type
   // GL_NV_vdpau_interop
   GLvdpauSurfaceNV = GLintptr;
   PGLvdpauSurfaceNV = ^GLvdpauSurfaceNV;
-  
-  
+
+
   // GLX
   {$IFDEF DGL_LINUX}
     GLXContext = Pointer;
@@ -773,7 +403,7 @@ type
     Flags: DWORD;
     rcVirtualScreen: TRect;
   end;
-  
+
 
 type
 {$IFDEF FPC}
@@ -848,6 +478,7 @@ var
   GL_VERSION_4_2,
   GL_VERSION_4_3,
   GL_VERSION_4_4,
+  GL_VERSION_4_5,
   GLU_VERSION_1_1,
   GLU_VERSION_1_2,
   GLU_VERSION_1_3,
@@ -961,64 +592,79 @@ var
   GL_ARB_viewport_array,
 
   // GL 4.2
-    GL_ARB_base_instance,
-    GL_ARB_shading_language_420pack,
-    GL_ARB_transform_feedback_instanced,
-    GL_ARB_compressed_texture_pixel_storage,
-    GL_ARB_conservative_depth,
-    GL_ARB_internalformat_query,
-    GL_ARB_map_buffer_alignment,
-    GL_ARB_shader_atomic_counters,
-    GL_ARB_shader_image_load_store,
-    GL_ARB_shading_language_packing,
-    GL_ARB_texture_storage,
-  // END GL 4.2
+  GL_ARB_base_instance,
+  GL_ARB_shading_language_420pack,
+  GL_ARB_transform_feedback_instanced,
+  GL_ARB_compressed_texture_pixel_storage,
+  GL_ARB_conservative_depth,
+  GL_ARB_internalformat_query,
+  GL_ARB_map_buffer_alignment,
+  GL_ARB_shader_atomic_counters,
+  GL_ARB_shader_image_load_store,
+  GL_ARB_shading_language_packing,
+  GL_ARB_texture_storage,
+
 
   // GL 4.3
-    GL_ARB_arrays_of_arrays,
-    GL_ARB_fragment_layer_viewport,
-    GL_ARB_shader_image_size,
-    GL_ARB_ES3_compatibility,
-    GL_ARB_clear_buffer_object,
-    GL_ARB_compute_shader,
-    GL_ARB_copy_image,
-    GL_KHR_debug,
-    GL_ARB_explicit_uniform_location,
-    GL_ARB_framebuffer_no_attachments,
-    GL_ARB_internalformat_query2,
-    GL_ARB_invalidate_subdata,
-    GL_ARB_multi_draw_indirect,
-    GL_ARB_program_interface_query,
-    GL_ARB_robust_buffer_access_behavior,
-    GL_ARB_shader_storage_buffer_object,
-    GL_ARB_stencil_texturing,
-    GL_ARB_texture_buffer_range,
-    GL_ARB_texture_query_levels,
-    GL_ARB_texture_storage_multisample,
-    GL_ARB_texture_view,
-    GL_ARB_vertex_attrib_binding,
-    GL_NV_path_rendering,
-    GL_AMD_pinned_memory,
-    GL_AMD_stencil_operation_extended,
-    GL_AMD_vertex_shader_viewport_index,
-    GL_AMD_vertex_shader_layer,
-    GL_NV_bindless_texture,
-    GL_NV_shader_atomic_float,
-    GL_AMD_query_buffer_object,
-  // END GL 4.3
+  GL_ARB_arrays_of_arrays,
+  GL_ARB_fragment_layer_viewport,
+  GL_ARB_shader_image_size,
+  GL_ARB_ES3_compatibility,
+  GL_ARB_clear_buffer_object,
+  GL_ARB_compute_shader,
+  GL_ARB_copy_image,
+  GL_KHR_debug,
+  GL_ARB_explicit_uniform_location,
+  GL_ARB_framebuffer_no_attachments,
+  GL_ARB_internalformat_query2,
+  GL_ARB_invalidate_subdata,
+  GL_ARB_multi_draw_indirect,
+  GL_ARB_program_interface_query,
+  GL_ARB_robust_buffer_access_behavior,
+  GL_ARB_shader_storage_buffer_object,
+  GL_ARB_stencil_texturing,
+  GL_ARB_texture_buffer_range,
+  GL_ARB_texture_query_levels,
+  GL_ARB_texture_storage_multisample,
+  GL_ARB_texture_view,
+  GL_ARB_vertex_attrib_binding,
+  GL_NV_path_rendering,
+  GL_AMD_pinned_memory,
+  GL_AMD_stencil_operation_extended,
+  GL_AMD_vertex_shader_viewport_index,
+  GL_AMD_vertex_shader_layer,
+  GL_NV_bindless_texture,
+  GL_NV_shader_atomic_float,
+  GL_AMD_query_buffer_object,
+
 
   // GL 4.4
-    GL_ARB_buffer_storage,
-    GL_ARB_clear_texture,
-    GL_ARB_enhanced_layouts,
-    GL_ARB_multi_bind,
-    GL_ARB_query_buffer_object,
-    GL_ARB_texture_mirror_clamp_to_edge,
-    GL_ARB_texture_stencil8,
-    GL_ARB_vertex_type_10f_11f_11f_rev,
-               GL_ARB_bindless_texture,
-       GL_ARB_sparse_texture,
-  // END 4.4
+  GL_ARB_buffer_storage,
+  GL_ARB_clear_texture,
+  GL_ARB_enhanced_layouts,
+  GL_ARB_multi_bind,
+  GL_ARB_query_buffer_object,
+  GL_ARB_texture_mirror_clamp_to_edge,
+  GL_ARB_texture_stencil8,
+  GL_ARB_vertex_type_10f_11f_11f_rev,
+  GL_ARB_bindless_texture,
+  GL_ARB_sparse_texture,
+
+  // GL 4.5
+  GL_ARB_clip_control,
+  GL_ARB_cull_distance,
+  GL_ARB_ES3_1_compatibility,
+  GL_ARB_conditional_render_inverted,
+  GL_KHR_context_flush_control,
+  GL_ARB_derivative_control,
+  GL_ARB_direct_state_access,
+  GL_ARB_get_texture_sub_image,
+  GL_KHR_robustness,
+  GL_KHR_blend_equation_advanced,
+  GL_KHR_blend_equation_advanced_coherent,
+  GL_KHR_robust_buffer_access_behavior,
+  GL_ARB_shader_texture_image_samples,
+  GL_ARB_texture_barrier,
 
   GL_ARB_cl_event,
   GL_ARB_debug_output,
@@ -1298,6 +944,7 @@ var
   GL_SUN_triangle_list,
   GL_SUN_vertex,
 
+  // WGL
   GL_WIN_phong_shading,
   GL_WIN_specular_fog,
   WGL_3DFX_multisample,
@@ -1344,10 +991,11 @@ var
   WGL_NV_DX_interop,
   WGL_OML_sync_control,
   WGL_3DL_stereo_control,
+  WGL_ARB_context_flush_control,
   WIN_draw_range_elements,
   WIN_swap_hint,
-  
-//  GLX_VERSION_1_0,
+
+  // GLX
   GLX_VERSION_1_3,
   GLX_VERSION_1_4,
   GLX_ARB_multisample,
@@ -1365,6 +1013,7 @@ var
   GLX_EXT_framebuffer_sRGB,
   GLX_EXT_texture_from_pixmap,
   GLX_EXT_swap_control,
+  GLX_ARB_context_flush_control,
   GLX_EXT_create_context_es2_profile : Boolean;
 
 const
@@ -3276,6 +2925,7 @@ const
   GL_YCBCR_422_APPLE = $85B9;
   GL_UNSIGNED_SHORT_8_8_APPLE = $85BA;
   GL_UNSIGNED_SHORT_8_8_REV_APPLE = $85BB;
+  GL_RGB_RAW_422_APPLE = $8A51;
 
   // GL_APPLE_texture_range
   GL_TEXTURE_RANGE_LENGTH_APPLE = $85B7;
@@ -3327,11 +2977,11 @@ const
   // GL_APPLE_row_bytes
   GL_PACK_ROW_BYTES_APPLE = $8A15;
   GL_UNPACK_ROW_BYTES_APPLE = $8A16;
-  
+
   // GL_APPLE_rgb_422
   { reuse GL_UNSIGNED_SHORT_8_8_APPLE }
-  { reuse GL_UNSIGNED_SHORT_8_8_REV_APPLE }  
-  
+  { reuse GL_UNSIGNED_SHORT_8_8_REV_APPLE }
+
   // GL_ARB_depth_texture
   GL_DEPTH_COMPONENT16_ARB = $81A5;
   GL_DEPTH_COMPONENT24_ARB = $81A6;
@@ -3509,6 +3159,10 @@ const
   // GL_ARB_shadow_ambient
   GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = $80BF;
 
+  // GL_ARB_sparse_buffer
+  GL_SPARSE_STORAGE_BIT_ARB = $0400;
+  GL_SPARSE_BUFFER_PAGE_SIZE_ARB = $82F8;
+
   // GL_ARB_texture_border_clamp
   GL_CLAMP_TO_BORDER_ARB = $812D;
 
@@ -4232,6 +3886,10 @@ const
   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = GL_TRANSFORM_FEEDBACK_ACTIVE;
   GL_TRANSFORM_FEEDBACK_BINDING = $8E25;
 
+  // GL_ARB_transform_feedback_overflow_query
+  GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB = $82EC;
+  GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = $82ED;
+
   // GL_ARB_transform_feedback3
   GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = $8E70;
   GL_MAX_VERTEX_STREAMS = $8E71;
@@ -4455,314 +4113,338 @@ const
   GL_TEXTURE_IMMUTABLE_FORMAT       = $912F;
 
   // 4.3
-    GL_COMPRESSED_RGBA_ASTC_4x4_KHR = $93B0;
-    GL_COMPRESSED_RGBA_ASTC_5x4_KHR = $93B1;
-    GL_COMPRESSED_RGBA_ASTC_5x5_KHR = $93B2;
-    GL_COMPRESSED_RGBA_ASTC_6x5_KHR = $93B3;
-    GL_COMPRESSED_RGBA_ASTC_6x6_KHR = $93B4;
-    GL_COMPRESSED_RGBA_ASTC_8x5_KHR = $93B5;
-    GL_COMPRESSED_RGBA_ASTC_8x6_KHR = $93B6;
-    GL_COMPRESSED_RGBA_ASTC_8x8_KHR = $93B7;
-    GL_COMPRESSED_RGBA_ASTC_105_KHR = $93B8;
-    GL_COMPRESSED_RGBA_ASTC_106_KHR = $93B9;
-    GL_COMPRESSED_RGBA_ASTC_108_KHR = $93BA;
-    GL_COMPRESSED_RGBA_ASTC_110_KHR = $93BB;
-    GL_COMPRESSED_RGBA_ASTC_12x10_KHR = $93BC;
-    GL_COMPRESSED_RGBA_ASTC_12x12_KHR = $93BD;
-    GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = $93D0;
-    GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = $93D1;
-    GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = $93D2;
-    GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = $93D3;
-    GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = $93D4;
-    GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = $93D5;
-    GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = $93D6;
-    GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = $93D7;
-    GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = $93D8;
-    GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = $93D9;
-    GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = $93DA;
-    GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = $93DB;
-    GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = $93DC;
-    GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = $93DD;
-    // (4.3) GL_KHR_debug
-    GL_DEBUG_OUTPUT_SYNCHRONOUS       = $8242;
-    GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = $8243;
-    GL_DEBUG_CALLBACK_FUNCTION        = $8244;
-    GL_DEBUG_CALLBACK_USER_PARAM      = $8245;
-    GL_DEBUG_SOURCE_API               = $8246;
-    GL_DEBUG_SOURCE_WINDOW_SYSTEM     = $8247;
-    GL_DEBUG_SOURCE_SHADER_COMPILER   = $8248;
-    GL_DEBUG_SOURCE_THIRD_PARTY       = $8249;
-    GL_DEBUG_SOURCE_APPLICATION       = $824A;
-    GL_DEBUG_SOURCE_OTHER             = $824B;
-    GL_DEBUG_TYPE_ERROR               = $824C;
-    GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = $824D;
-    GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR  = $824E;
-    GL_DEBUG_TYPE_PORTABILITY         = $824F;
-    GL_DEBUG_TYPE_PERFORMANCE         = $8250;
-    GL_DEBUG_TYPE_OTHER               = $8251;
-    GL_DEBUG_TYPE_MARKER              = $8268;
-    GL_DEBUG_TYPE_PUSH_GROUP          = $8269;
-    GL_DEBUG_TYPE_POP_GROUP           = $826A;
-    GL_DEBUG_SEVERITY_NOTIFICATION    = $826B;
-    GL_MAX_DEBUG_GROUP_STACK_DEPTH    = $826C;
-    GL_DEBUG_GROUP_STACK_DEPTH        = $826D;
-    GL_BUFFER                         = $82E0;
-    GL_SHADER                         = $82E1;
-    GL_PROGRAM                        = $82E2;
-    GL_QUERY                          = $82E3;
-    GL_PROGRAM_PIPELINE               = $82E4;
-    GL_SAMPLER                        = $82E6;
-    GL_DISPLAY_LIST                   = $82E7;
-    GL_MAX_LABEL_LENGTH               = $82E8;
-    GL_MAX_DEBUG_MESSAGE_LENGTH       = $9143;
-    GL_MAX_DEBUG_LOGGED_MESSAGES      = $9144;
-    GL_DEBUG_LOGGED_MESSAGES          = $9145;
-    GL_DEBUG_SEVERITY_HIGH            = $9146;
-    GL_DEBUG_SEVERITY_MEDIUM          = $9147;
-    GL_DEBUG_SEVERITY_LOW             = $9148;
-    GL_DEBUG_OUTPUT                   = $92E0;
-    GL_CONTEXT_FLAG_DEBUG_BIT         = $00000002;
-    GL_COMPUTE_SHADER                 = $91B9;
-    GL_MAX_COMPUTE_UNIFORM_BLOCKS     = $91BB;
-    GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = $91BC;
-    GL_MAX_COMPUTE_IMAGE_UNIFORMS     = $91BD;
-    GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = $8262;
-    GL_MAX_COMPUTE_UNIFORM_COMPONENTS = $8263;
-    GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = $8264;
-    GL_MAX_COMPUTE_ATOMIC_COUNTERS    = $8265;
-    GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = $8266;
-    GL_MAX_COMPUTE_LOCAL_INVOCATIONS  = $90EB;
-    GL_MAX_COMPUTE_WORK_GROUP_COUNT   = $91BE;
-    GL_MAX_COMPUTE_WORK_GROUP_SIZE    = $91BF;
-    GL_COMPUTE_LOCAL_WORK_SIZE        = $8267;
-    GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = $90EC;
-    GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = $90ED;
-    GL_DISPATCH_INDIRECT_BUFFER       = $90EE;
-    GL_DISPATCH_INDIRECT_BUFFER_BINDING = $90EF;
-    GL_COMPUTE_SHADER_BIT             = $00000020;
-    GL_COMPRESSED_RGB8_ETC2           = $9274;
-    GL_COMPRESSED_SRGB8_ETC2          = $9275;
-    GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9276;
-    GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9277;
-    GL_COMPRESSED_RGBA8_ETC2_EAC      = $9278;
-    GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = $9279;
-    GL_COMPRESSED_R11_EAC             = $9270;
-    GL_COMPRESSED_SIGNED_R11_EAC      = $9271;
-    GL_COMPRESSED_RG11_EAC            = $9272;
-    GL_COMPRESSED_SIGNED_RG11_EAC     = $9273;
-    GL_PRIMITIVE_RESTART_FIXED_INDEX  = $8D69;
-    GL_ANY_SAMPLES_PASSED_CONSERVATIVE = $8D6A;
-    GL_MAX_ELEMENT_INDEX              = $8D6B;
-       GL_MAX_UNIFORM_LOCATIONS          = $826E;
-    GL_FRAMEBUFFER_DEFAULT_WIDTH      = $9310;
-    GL_FRAMEBUFFER_DEFAULT_HEIGHT     = $9311;
-    GL_FRAMEBUFFER_DEFAULT_LAYERS     = $9312;
-    GL_FRAMEBUFFER_DEFAULT_SAMPLES    = $9313;
-    GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = $9314;
-    GL_MAX_FRAMEBUFFER_WIDTH          = $9315;
-    GL_MAX_FRAMEBUFFER_HEIGHT         = $9316;
-    GL_MAX_FRAMEBUFFER_LAYERS         = $9317;
-    GL_MAX_FRAMEBUFFER_SAMPLES        = $9318;
-         GL_INTERNALFORMAT_SUPPORTED       = $826F;
-    GL_INTERNALFORMAT_PREFERRED       = $8270;
-    GL_INTERNALFORMAT_RED_SIZE        = $8271;
-    GL_INTERNALFORMAT_GREEN_SIZE      = $8272;
-    GL_INTERNALFORMAT_BLUE_SIZE       = $8273;
-    GL_INTERNALFORMAT_ALPHA_SIZE      = $8274;
-    GL_INTERNALFORMAT_DEPTH_SIZE      = $8275;
-    GL_INTERNALFORMAT_STENCIL_SIZE    = $8276;
-    GL_INTERNALFORMAT_SHARED_SIZE     = $8277;
-    GL_INTERNALFORMAT_RED_TYPE        = $8278;
-    GL_INTERNALFORMAT_GREEN_TYPE      = $8279;
-    GL_INTERNALFORMAT_BLUE_TYPE       = $827A;
-    GL_INTERNALFORMAT_ALPHA_TYPE      = $827B;
-    GL_INTERNALFORMAT_DEPTH_TYPE      = $827C;
-    GL_INTERNALFORMAT_STENCIL_TYPE    = $827D;
-    GL_MAX_WIDTH                      = $827E;
-    GL_MAX_HEIGHT                     = $827F;
-    GL_MAX_DEPTH                      = $8280;
-    GL_MAX_LAYERS                     = $8281;
-    GL_MAX_COMBINED_DIMENSIONS        = $8282;
-    GL_COLOR_COMPONENTS               = $8283;
-    GL_DEPTH_COMPONENTS               = $8284;
-    GL_STENCIL_COMPONENTS             = $8285;
-    GL_COLOR_RENDERABLE               = $8286;
-    GL_DEPTH_RENDERABLE               = $8287;
-    GL_STENCIL_RENDERABLE             = $8288;
-    GL_FRAMEBUFFER_RENDERABLE         = $8289;
-    GL_FRAMEBUFFER_RENDERABLE_LAYERED = $828A;
-    GL_FRAMEBUFFER_BLEND              = $828B;
-    GL_READ_PIXELS                    = $828C;
-    GL_READ_PIXELS_FORMAT             = $828D;
-    GL_READ_PIXELS_TYPE               = $828E;
-    GL_TEXTURE_IMAGE_FORMAT           = $828F;
-    GL_TEXTURE_IMAGE_TYPE             = $8290;
-    GL_GET_TEXTURE_IMAGE_FORMAT       = $8291;
-    GL_GET_TEXTURE_IMAGE_TYPE         = $8292;
-    GL_MIPMAP                         = $8293;
-    GL_MANUAL_GENERATE_MIPMAP         = $8294;
-    GL_AUTO_GENERATE_MIPMAP           = $8295;
-    GL_COLOR_ENCODING                 = $8296;
-    GL_SRGB_READ                      = $8297;
-    GL_SRGB_WRITE                     = $8298;
-    GL_SRGB_DECODE_ARB                = $8299;
-    GL_FILTER                         = $829A;
-    GL_VERTEX_TEXTURE                 = $829B;
-    GL_TESS_CONTROL_TEXTURE           = $829C;
-    GL_TESS_EVALUATION_TEXTURE        = $829D;
-    GL_GEOMETRY_TEXTURE               = $829E;
-    GL_FRAGMENT_TEXTURE               = $829F;
-    GL_COMPUTE_TEXTURE                = $82A0;
-    GL_TEXTURE_SHADOW                 = $82A1;
-    GL_TEXTURE_GATHER                 = $82A2;
-    GL_TEXTURE_GATHER_SHADOW          = $82A3;
-    GL_SHADER_IMAGE_LOAD              = $82A4;
-    GL_SHADER_IMAGE_STORE             = $82A5;
-    GL_SHADER_IMAGE_ATOMIC            = $82A6;
-    GL_IMAGE_TEXEL_SIZE               = $82A7;
-    GL_IMAGE_COMPATIBILITY_CLASS      = $82A8;
-    GL_IMAGE_PIXEL_FORMAT             = $82A9;
-    GL_IMAGE_PIXEL_TYPE               = $82AA;
-    GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = $82AC;
-    GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = $82AD;
-    GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = $82AE;
-    GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = $82AF;
-    GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = $82B1;
-    GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = $82B2;
-    GL_TEXTURE_COMPRESSED_BLOCK_SIZE  = $82B3;
-    GL_CLEAR_BUFFER                   = $82B4;
-    GL_TEXTURE_VIEW                   = $82B5;
-    GL_VIEW_COMPATIBILITY_CLASS       = $82B6;
-    GL_FULL_SUPPORT                   = $82B7;
-    GL_CAVEAT_SUPPORT                 = $82B8;
-    GL_IMAGE_CLASS_4_X_32             = $82B9;
-    GL_IMAGE_CLASS_2_X_32             = $82BA;
-    GL_IMAGE_CLASS_1_X_32             = $82BB;
-    GL_IMAGE_CLASS_4_X_16             = $82BC;
-    GL_IMAGE_CLASS_2_X_16             = $82BD;
-    GL_IMAGE_CLASS_1_X_16             = $82BE;
-    GL_IMAGE_CLASS_4_X_8              = $82BF;
-    GL_IMAGE_CLASS_2_X_8              = $82C0;
-    GL_IMAGE_CLASS_1_X_8              = $82C1;
-    GL_IMAGE_CLASS_11_11_10           = $82C2;
-    GL_IMAGE_CLASS_10_10_10_2         = $82C3;
-    GL_VIEW_CLASS_128_BITS            = $82C4;
-    GL_VIEW_CLASS_96_BITS             = $82C5;
-    GL_VIEW_CLASS_64_BITS             = $82C6;
-    GL_VIEW_CLASS_48_BITS             = $82C7;
-    GL_VIEW_CLASS_32_BITS             = $82C8;
-    GL_VIEW_CLASS_24_BITS             = $82C9;
-    GL_VIEW_CLASS_16_BITS             = $82CA;
-    GL_VIEW_CLASS_8_BITS              = $82CB;
-    GL_VIEW_CLASS_S3TC_DXT1_RGB       = $82CC;
-    GL_VIEW_CLASS_S3TC_DXT1_RGBA      = $82CD;
-    GL_VIEW_CLASS_S3TC_DXT3_RGBA      = $82CE;
-    GL_VIEW_CLASS_S3TC_DXT5_RGBA      = $82CF;
-    GL_VIEW_CLASS_RGTC1_RED           = $82D0;
-    GL_VIEW_CLASS_RGTC2_RG            = $82D1;
-    GL_VIEW_CLASS_BPTC_UNORM          = $82D2;
-    GL_VIEW_CLASS_BPTC_FLOAT          = $82D3;
-    GL_UNIFORM                        = $92E1;
-    GL_UNIFORM_BLOCK                  = $92E2;
-    GL_PROGRAM_INPUT                  = $92E3;
-    GL_PROGRAM_OUTPUT                 = $92E4;
-    GL_BUFFER_VARIABLE                = $92E5;
-    GL_SHADER_STORAGE_BLOCK           = $92E6;
-    GL_VERTEX_SUBROUTINE              = $92E8;
-    GL_TESS_CONTROL_SUBROUTINE        = $92E9;
-    GL_TESS_EVALUATION_SUBROUTINE     = $92EA;
-    GL_GEOMETRY_SUBROUTINE            = $92EB;
-    GL_FRAGMENT_SUBROUTINE            = $92EC;
-    GL_COMPUTE_SUBROUTINE             = $92ED;
-    GL_VERTEX_SUBROUTINE_UNIFORM      = $92EE;
-    GL_TESS_CONTROL_SUBROUTINE_UNIFORM = $92EF;
-    GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = $92F0;
-    GL_GEOMETRY_SUBROUTINE_UNIFORM    = $92F1;
-    GL_FRAGMENT_SUBROUTINE_UNIFORM    = $92F2;
-    GL_COMPUTE_SUBROUTINE_UNIFORM     = $92F3;
-    GL_TRANSFORM_FEEDBACK_VARYING     = $92F4;
-    GL_ACTIVE_RESOURCES               = $92F5;
-    GL_MAX_NAME_LENGTH                = $92F6;
-    GL_MAX_NUM_ACTIVE_VARIABLES       = $92F7;
-    GL_MAX_NUM_COMPATIBLE_SUBROUTINES = $92F8;
-    GL_NAME_LENGTH                    = $92F9;
-    GL_TYPE                           = $92FA;
-    GL_ARRAY_SIZE                     = $92FB;
-    GL_OFFSET                         = $92FC;
-    GL_BLOCK_INDEX                    = $92FD;
-    GL_ARRAY_STRIDE                   = $92FE;
-    GL_MATRIX_STRIDE                  = $92FF;
-    GL_IS_ROW_MAJOR                   = $9300;
-    GL_ATOMIC_COUNTER_BUFFER_INDEX    = $9301;
-    GL_BUFFER_BINDING                 = $9302;
-    GL_BUFFER_DATA_SIZE               = $9303;
-    GL_NUM_ACTIVE_VARIABLES           = $9304;
-    GL_ACTIVE_VARIABLES               = $9305;
-    GL_REFERENCED_BY_VERTEX_SHADER    = $9306;
-    GL_REFERENCED_BY_TESS_CONTROL_SHADER = $9307;
-    GL_REFERENCED_BY_TESS_EVALUATION_SHADER = $9308;
-    GL_REFERENCED_BY_GEOMETRY_SHADER  = $9309;
-    GL_REFERENCED_BY_FRAGMENT_SHADER  = $930A;
-    GL_REFERENCED_BY_COMPUTE_SHADER   = $930B;
-    GL_TOP_LEVEL_ARRAY_SIZE           = $930C;
-    GL_TOP_LEVEL_ARRAY_STRIDE         = $930D;
-    GL_LOCATION                       = $930E;
-    GL_LOCATION_INDEX                 = $930F;
-    GL_IS_PER_PATCH                   = $92E7;
-    GL_SHADER_STORAGE_BUFFER          = $90D2;
-    GL_SHADER_STORAGE_BUFFER_BINDING  = $90D3;
-    GL_SHADER_STORAGE_BUFFER_START    = $90D4;
-    GL_SHADER_STORAGE_BUFFER_SIZE     = $90D5;
-    GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = $90D6;
-    GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = $90D7;
-    GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = $90D8;
-    GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = $90D9;
-    GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = $90DA;
-    GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = $90DB;
-    GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = $90DC;
-    GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = $90DD;
-    GL_MAX_SHADER_STORAGE_BLOCK_SIZE  = $90DE;
-    GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = $90DF;
-    GL_SHADER_STORAGE_BARRIER_BIT     = $2000;
-    GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS;
-    GL_DEPTH_STENCIL_TEXTURE_MODE     = $90EA;
-
-    GL_TEXTURE_BUFFER_OFFSET          = $919D;
-    GL_TEXTURE_BUFFER_SIZE            = $919E;
-    GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = $919F;
-    GL_TEXTURE_VIEW_MIN_LEVEL         = $82DB;
-    GL_TEXTURE_VIEW_NUM_LEVELS        = $82DC;
-    GL_TEXTURE_VIEW_MIN_LAYER         = $82DD;
-    GL_TEXTURE_VIEW_NUM_LAYERS        = $82DE;
-    GL_TEXTURE_IMMUTABLE_LEVELS       = $82DF;
-    GL_VERTEX_ATTRIB_BINDING          = $82D4;
-    GL_VERTEX_ATTRIB_RELATIVE_OFFSET  = $82D5;
-    GL_VERTEX_BINDING_DIVISOR         = $82D6;
-    GL_VERTEX_BINDING_OFFSET          = $82D7;
-    GL_VERTEX_BINDING_STRIDE          = $82D8;
-    GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D9;
-    GL_MAX_VERTEX_ATTRIB_BINDINGS     = $82DA;
-       // END 4.3
+  // GL_KHR_texture_compression_astc_hdr
+  GL_COMPRESSED_RGBA_ASTC_4x4_KHR = $93B0;
+  GL_COMPRESSED_RGBA_ASTC_5x4_KHR = $93B1;
+  GL_COMPRESSED_RGBA_ASTC_5x5_KHR = $93B2;
+  GL_COMPRESSED_RGBA_ASTC_6x5_KHR = $93B3;
+  GL_COMPRESSED_RGBA_ASTC_6x6_KHR = $93B4;
+  GL_COMPRESSED_RGBA_ASTC_8x5_KHR = $93B5;
+  GL_COMPRESSED_RGBA_ASTC_8x6_KHR = $93B6;
+  GL_COMPRESSED_RGBA_ASTC_8x8_KHR = $93B7;
+  GL_COMPRESSED_RGBA_ASTC_105_KHR = $93B8;
+  GL_COMPRESSED_RGBA_ASTC_106_KHR = $93B9;
+  GL_COMPRESSED_RGBA_ASTC_108_KHR = $93BA;
+  GL_COMPRESSED_RGBA_ASTC_110_KHR = $93BB;
+  GL_COMPRESSED_RGBA_ASTC_12x10_KHR = $93BC;
+  GL_COMPRESSED_RGBA_ASTC_12x12_KHR = $93BD;
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = $93D0;
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = $93D1;
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = $93D2;
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = $93D3;
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = $93D4;
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = $93D5;
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = $93D6;
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = $93D7;
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = $93D8;
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = $93D9;
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = $93DA;
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = $93DB;
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = $93DC;
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = $93DD;
+  // (4.3) GL_KHR_debug
+  GL_DEBUG_OUTPUT_SYNCHRONOUS       = $8242;
+  GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = $8243;
+  GL_DEBUG_CALLBACK_FUNCTION        = $8244;
+  GL_DEBUG_CALLBACK_USER_PARAM      = $8245;
+  GL_DEBUG_SOURCE_API               = $8246;
+  GL_DEBUG_SOURCE_WINDOW_SYSTEM     = $8247;
+  GL_DEBUG_SOURCE_SHADER_COMPILER   = $8248;
+  GL_DEBUG_SOURCE_THIRD_PARTY       = $8249;
+  GL_DEBUG_SOURCE_APPLICATION       = $824A;
+  GL_DEBUG_SOURCE_OTHER             = $824B;
+  GL_DEBUG_TYPE_ERROR               = $824C;
+  GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = $824D;
+  GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR  = $824E;
+  GL_DEBUG_TYPE_PORTABILITY         = $824F;
+  GL_DEBUG_TYPE_PERFORMANCE         = $8250;
+  GL_DEBUG_TYPE_OTHER               = $8251;
+  GL_DEBUG_TYPE_MARKER              = $8268;
+  GL_DEBUG_TYPE_PUSH_GROUP          = $8269;
+  GL_DEBUG_TYPE_POP_GROUP           = $826A;
+  GL_DEBUG_SEVERITY_NOTIFICATION    = $826B;
+  GL_MAX_DEBUG_GROUP_STACK_DEPTH    = $826C;
+  GL_DEBUG_GROUP_STACK_DEPTH        = $826D;
+  GL_BUFFER                         = $82E0;
+  GL_SHADER                         = $82E1;
+  GL_PROGRAM                        = $82E2;
+  GL_QUERY                          = $82E3;
+  GL_PROGRAM_PIPELINE               = $82E4;
+  GL_SAMPLER                        = $82E6;
+  GL_DISPLAY_LIST                   = $82E7;
+  GL_MAX_LABEL_LENGTH               = $82E8;
+  GL_MAX_DEBUG_MESSAGE_LENGTH       = $9143;
+  GL_MAX_DEBUG_LOGGED_MESSAGES      = $9144;
+  GL_DEBUG_LOGGED_MESSAGES          = $9145;
+  GL_DEBUG_SEVERITY_HIGH            = $9146;
+  GL_DEBUG_SEVERITY_MEDIUM          = $9147;
+  GL_DEBUG_SEVERITY_LOW             = $9148;
+  GL_DEBUG_OUTPUT                   = $92E0;
+  GL_CONTEXT_FLAG_DEBUG_BIT         = $00000002;
+  GL_COMPUTE_SHADER                 = $91B9;
+  GL_MAX_COMPUTE_UNIFORM_BLOCKS     = $91BB;
+  GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = $91BC;
+  GL_MAX_COMPUTE_IMAGE_UNIFORMS     = $91BD;
+  GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = $8262;
+  GL_MAX_COMPUTE_UNIFORM_COMPONENTS = $8263;
+  GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = $8264;
+  GL_MAX_COMPUTE_ATOMIC_COUNTERS    = $8265;
+  GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = $8266;
+  GL_MAX_COMPUTE_LOCAL_INVOCATIONS  = $90EB;
+  GL_MAX_COMPUTE_WORK_GROUP_COUNT   = $91BE;
+  GL_MAX_COMPUTE_WORK_GROUP_SIZE    = $91BF;
+  GL_COMPUTE_LOCAL_WORK_SIZE        = $8267;
+  GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = $90EC;
+  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = $90ED;
+  GL_DISPATCH_INDIRECT_BUFFER       = $90EE;
+  GL_DISPATCH_INDIRECT_BUFFER_BINDING = $90EF;
+  GL_COMPUTE_SHADER_BIT             = $00000020;
+  GL_COMPRESSED_RGB8_ETC2           = $9274;
+  GL_COMPRESSED_SRGB8_ETC2          = $9275;
+  GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9276;
+  GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9277;
+  GL_COMPRESSED_RGBA8_ETC2_EAC      = $9278;
+  GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = $9279;
+  GL_COMPRESSED_R11_EAC             = $9270;
+  GL_COMPRESSED_SIGNED_R11_EAC      = $9271;
+  GL_COMPRESSED_RG11_EAC            = $9272;
+  GL_COMPRESSED_SIGNED_RG11_EAC     = $9273;
+  GL_PRIMITIVE_RESTART_FIXED_INDEX  = $8D69;
+  GL_ANY_SAMPLES_PASSED_CONSERVATIVE = $8D6A;
+  GL_MAX_ELEMENT_INDEX              = $8D6B;
+      GL_MAX_UNIFORM_LOCATIONS          = $826E;
+  GL_FRAMEBUFFER_DEFAULT_WIDTH      = $9310;
+  GL_FRAMEBUFFER_DEFAULT_HEIGHT     = $9311;
+  GL_FRAMEBUFFER_DEFAULT_LAYERS     = $9312;
+  GL_FRAMEBUFFER_DEFAULT_SAMPLES    = $9313;
+  GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = $9314;
+  GL_MAX_FRAMEBUFFER_WIDTH          = $9315;
+  GL_MAX_FRAMEBUFFER_HEIGHT         = $9316;
+  GL_MAX_FRAMEBUFFER_LAYERS         = $9317;
+  GL_MAX_FRAMEBUFFER_SAMPLES        = $9318;
+        GL_INTERNALFORMAT_SUPPORTED       = $826F;
+  GL_INTERNALFORMAT_PREFERRED       = $8270;
+  GL_INTERNALFORMAT_RED_SIZE        = $8271;
+  GL_INTERNALFORMAT_GREEN_SIZE      = $8272;
+  GL_INTERNALFORMAT_BLUE_SIZE       = $8273;
+  GL_INTERNALFORMAT_ALPHA_SIZE      = $8274;
+  GL_INTERNALFORMAT_DEPTH_SIZE      = $8275;
+  GL_INTERNALFORMAT_STENCIL_SIZE    = $8276;
+  GL_INTERNALFORMAT_SHARED_SIZE     = $8277;
+  GL_INTERNALFORMAT_RED_TYPE        = $8278;
+  GL_INTERNALFORMAT_GREEN_TYPE      = $8279;
+  GL_INTERNALFORMAT_BLUE_TYPE       = $827A;
+  GL_INTERNALFORMAT_ALPHA_TYPE      = $827B;
+  GL_INTERNALFORMAT_DEPTH_TYPE      = $827C;
+  GL_INTERNALFORMAT_STENCIL_TYPE    = $827D;
+  GL_MAX_WIDTH                      = $827E;
+  GL_MAX_HEIGHT                     = $827F;
+  GL_MAX_DEPTH                      = $8280;
+  GL_MAX_LAYERS                     = $8281;
+  GL_MAX_COMBINED_DIMENSIONS        = $8282;
+  GL_COLOR_COMPONENTS               = $8283;
+  GL_DEPTH_COMPONENTS               = $8284;
+  GL_STENCIL_COMPONENTS             = $8285;
+  GL_COLOR_RENDERABLE               = $8286;
+  GL_DEPTH_RENDERABLE               = $8287;
+  GL_STENCIL_RENDERABLE             = $8288;
+  GL_FRAMEBUFFER_RENDERABLE         = $8289;
+  GL_FRAMEBUFFER_RENDERABLE_LAYERED = $828A;
+  GL_FRAMEBUFFER_BLEND              = $828B;
+  GL_READ_PIXELS                    = $828C;
+  GL_READ_PIXELS_FORMAT             = $828D;
+  GL_READ_PIXELS_TYPE               = $828E;
+  GL_TEXTURE_IMAGE_FORMAT           = $828F;
+  GL_TEXTURE_IMAGE_TYPE             = $8290;
+  GL_GET_TEXTURE_IMAGE_FORMAT       = $8291;
+  GL_GET_TEXTURE_IMAGE_TYPE         = $8292;
+  GL_MIPMAP                         = $8293;
+  GL_MANUAL_GENERATE_MIPMAP         = $8294;
+  GL_AUTO_GENERATE_MIPMAP           = $8295;
+  GL_COLOR_ENCODING                 = $8296;
+  GL_SRGB_READ                      = $8297;
+  GL_SRGB_WRITE                     = $8298;
+  GL_SRGB_DECODE_ARB                = $8299;
+  GL_FILTER                         = $829A;
+  GL_VERTEX_TEXTURE                 = $829B;
+  GL_TESS_CONTROL_TEXTURE           = $829C;
+  GL_TESS_EVALUATION_TEXTURE        = $829D;
+  GL_GEOMETRY_TEXTURE               = $829E;
+  GL_FRAGMENT_TEXTURE               = $829F;
+  GL_COMPUTE_TEXTURE                = $82A0;
+  GL_TEXTURE_SHADOW                 = $82A1;
+  GL_TEXTURE_GATHER                 = $82A2;
+  GL_TEXTURE_GATHER_SHADOW          = $82A3;
+  GL_SHADER_IMAGE_LOAD              = $82A4;
+  GL_SHADER_IMAGE_STORE             = $82A5;
+  GL_SHADER_IMAGE_ATOMIC            = $82A6;
+  GL_IMAGE_TEXEL_SIZE               = $82A7;
+  GL_IMAGE_COMPATIBILITY_CLASS      = $82A8;
+  GL_IMAGE_PIXEL_FORMAT             = $82A9;
+  GL_IMAGE_PIXEL_TYPE               = $82AA;
+  GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = $82AC;
+  GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = $82AD;
+  GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = $82AE;
+  GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = $82AF;
+  GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = $82B1;
+  GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = $82B2;
+  GL_TEXTURE_COMPRESSED_BLOCK_SIZE  = $82B3;
+  GL_CLEAR_BUFFER                   = $82B4;
+  GL_TEXTURE_VIEW                   = $82B5;
+  GL_VIEW_COMPATIBILITY_CLASS       = $82B6;
+  GL_FULL_SUPPORT                   = $82B7;
+  GL_CAVEAT_SUPPORT                 = $82B8;
+  GL_IMAGE_CLASS_4_X_32             = $82B9;
+  GL_IMAGE_CLASS_2_X_32             = $82BA;
+  GL_IMAGE_CLASS_1_X_32             = $82BB;
+  GL_IMAGE_CLASS_4_X_16             = $82BC;
+  GL_IMAGE_CLASS_2_X_16             = $82BD;
+  GL_IMAGE_CLASS_1_X_16             = $82BE;
+  GL_IMAGE_CLASS_4_X_8              = $82BF;
+  GL_IMAGE_CLASS_2_X_8              = $82C0;
+  GL_IMAGE_CLASS_1_X_8              = $82C1;
+  GL_IMAGE_CLASS_11_11_10           = $82C2;
+  GL_IMAGE_CLASS_10_10_10_2         = $82C3;
+  GL_VIEW_CLASS_128_BITS            = $82C4;
+  GL_VIEW_CLASS_96_BITS             = $82C5;
+  GL_VIEW_CLASS_64_BITS             = $82C6;
+  GL_VIEW_CLASS_48_BITS             = $82C7;
+  GL_VIEW_CLASS_32_BITS             = $82C8;
+  GL_VIEW_CLASS_24_BITS             = $82C9;
+  GL_VIEW_CLASS_16_BITS             = $82CA;
+  GL_VIEW_CLASS_8_BITS              = $82CB;
+  GL_VIEW_CLASS_S3TC_DXT1_RGB       = $82CC;
+  GL_VIEW_CLASS_S3TC_DXT1_RGBA      = $82CD;
+  GL_VIEW_CLASS_S3TC_DXT3_RGBA      = $82CE;
+  GL_VIEW_CLASS_S3TC_DXT5_RGBA      = $82CF;
+  GL_VIEW_CLASS_RGTC1_RED           = $82D0;
+  GL_VIEW_CLASS_RGTC2_RG            = $82D1;
+  GL_VIEW_CLASS_BPTC_UNORM          = $82D2;
+  GL_VIEW_CLASS_BPTC_FLOAT          = $82D3;
+  GL_UNIFORM                        = $92E1;
+  GL_UNIFORM_BLOCK                  = $92E2;
+  GL_PROGRAM_INPUT                  = $92E3;
+  GL_PROGRAM_OUTPUT                 = $92E4;
+  GL_BUFFER_VARIABLE                = $92E5;
+  GL_SHADER_STORAGE_BLOCK           = $92E6;
+  GL_VERTEX_SUBROUTINE              = $92E8;
+  GL_TESS_CONTROL_SUBROUTINE        = $92E9;
+  GL_TESS_EVALUATION_SUBROUTINE     = $92EA;
+  GL_GEOMETRY_SUBROUTINE            = $92EB;
+  GL_FRAGMENT_SUBROUTINE            = $92EC;
+  GL_COMPUTE_SUBROUTINE             = $92ED;
+  GL_VERTEX_SUBROUTINE_UNIFORM      = $92EE;
+  GL_TESS_CONTROL_SUBROUTINE_UNIFORM = $92EF;
+  GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = $92F0;
+  GL_GEOMETRY_SUBROUTINE_UNIFORM    = $92F1;
+  GL_FRAGMENT_SUBROUTINE_UNIFORM    = $92F2;
+  GL_COMPUTE_SUBROUTINE_UNIFORM     = $92F3;
+  GL_TRANSFORM_FEEDBACK_VARYING     = $92F4;
+  GL_ACTIVE_RESOURCES               = $92F5;
+  GL_MAX_NAME_LENGTH                = $92F6;
+  GL_MAX_NUM_ACTIVE_VARIABLES       = $92F7;
+  GL_MAX_NUM_COMPATIBLE_SUBROUTINES = $92F8;
+  GL_NAME_LENGTH                    = $92F9;
+  GL_TYPE                           = $92FA;
+  GL_ARRAY_SIZE                     = $92FB;
+  GL_OFFSET                         = $92FC;
+  GL_BLOCK_INDEX                    = $92FD;
+  GL_ARRAY_STRIDE                   = $92FE;
+  GL_MATRIX_STRIDE                  = $92FF;
+  GL_IS_ROW_MAJOR                   = $9300;
+  GL_ATOMIC_COUNTER_BUFFER_INDEX    = $9301;
+  GL_BUFFER_BINDING                 = $9302;
+  GL_BUFFER_DATA_SIZE               = $9303;
+  GL_NUM_ACTIVE_VARIABLES           = $9304;
+  GL_ACTIVE_VARIABLES               = $9305;
+  GL_REFERENCED_BY_VERTEX_SHADER    = $9306;
+  GL_REFERENCED_BY_TESS_CONTROL_SHADER = $9307;
+  GL_REFERENCED_BY_TESS_EVALUATION_SHADER = $9308;
+  GL_REFERENCED_BY_GEOMETRY_SHADER  = $9309;
+  GL_REFERENCED_BY_FRAGMENT_SHADER  = $930A;
+  GL_REFERENCED_BY_COMPUTE_SHADER   = $930B;
+  GL_TOP_LEVEL_ARRAY_SIZE           = $930C;
+  GL_TOP_LEVEL_ARRAY_STRIDE         = $930D;
+  GL_LOCATION                       = $930E;
+  GL_LOCATION_INDEX                 = $930F;
+  GL_IS_PER_PATCH                   = $92E7;
+  GL_SHADER_STORAGE_BUFFER          = $90D2;
+  GL_SHADER_STORAGE_BUFFER_BINDING  = $90D3;
+  GL_SHADER_STORAGE_BUFFER_START    = $90D4;
+  GL_SHADER_STORAGE_BUFFER_SIZE     = $90D5;
+  GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = $90D6;
+  GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = $90D7;
+  GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = $90D8;
+  GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = $90D9;
+  GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = $90DA;
+  GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = $90DB;
+  GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = $90DC;
+  GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = $90DD;
+  GL_MAX_SHADER_STORAGE_BLOCK_SIZE  = $90DE;
+  GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = $90DF;
+  GL_SHADER_STORAGE_BARRIER_BIT     = $2000;
+  GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS;
+  GL_DEPTH_STENCIL_TEXTURE_MODE     = $90EA;
+
+  GL_TEXTURE_BUFFER_OFFSET          = $919D;
+  GL_TEXTURE_BUFFER_SIZE            = $919E;
+  GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = $919F;
+  GL_TEXTURE_VIEW_MIN_LEVEL         = $82DB;
+  GL_TEXTURE_VIEW_NUM_LEVELS        = $82DC;
+  GL_TEXTURE_VIEW_MIN_LAYER         = $82DD;
+  GL_TEXTURE_VIEW_NUM_LAYERS        = $82DE;
+  GL_TEXTURE_IMMUTABLE_LEVELS       = $82DF;
+  GL_VERTEX_ATTRIB_BINDING          = $82D4;
+  GL_VERTEX_ATTRIB_RELATIVE_OFFSET  = $82D5;
+  GL_VERTEX_BINDING_DIVISOR         = $82D6;
+  GL_VERTEX_BINDING_OFFSET          = $82D7;
+  GL_VERTEX_BINDING_STRIDE          = $82D8;
+  GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D9;
+  GL_MAX_VERTEX_ATTRIB_BINDINGS     = $82DA;
 
   // GL 4.4
-    GL_MAX_VERTEX_ATTRIB_STRIDE         = $82E5;
-    GL_MAP_PERSISTENT_BIT               = $0040;
-    GL_MAP_COHERENT_BIT                 = $0080;
-    GL_DYNAMIC_STORAGE_BIT              = $0100;
-    GL_CLIENT_STORAGE_BIT               = $0200;
-    GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = $00004000;
-    GL_BUFFER_IMMUTABLE_STORAGE        = $821F;
-    GL_BUFFER_STORAGE_FLAGS            = $8220;
-    GL_CLEAR_TEXTURE                   = $9365;
-    GL_LOCATION_COMPONENT              = $934A;
-    GL_TRANSFORM_FEEDBACK_BUFFER_INDEX         = $934B;
-    GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = $934C;
-    GL_QUERY_BUFFER                    = $9192;
-    GL_QUERY_BUFFER_BARRIER_BIT        = $00008000;
-    GL_QUERY_BUFFER_BINDING            = $9193;
-    GL_QUERY_RESULT_NO_WAIT            = $9194;
-    GL_MIRROR_CLAMP_TO_EDGE            = $8743;
-  // END GL 4.4
+  GL_MAX_VERTEX_ATTRIB_STRIDE         = $82E5;
+  GL_MAP_PERSISTENT_BIT               = $0040;
+  GL_MAP_COHERENT_BIT                 = $0080;
+  GL_DYNAMIC_STORAGE_BIT              = $0100;
+  GL_CLIENT_STORAGE_BIT               = $0200;
+  GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = $00004000;
+  GL_BUFFER_IMMUTABLE_STORAGE          = $821F;
+  GL_BUFFER_STORAGE_FLAGS              = $8220;
+  GL_CLEAR_TEXTURE                     = $9365;
+  GL_LOCATION_COMPONENT                = $934A;
+  GL_TRANSFORM_FEEDBACK_BUFFER_INDEX   = $934B;
+  GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = $934C;
+  GL_QUERY_BUFFER                      = $9192;
+  GL_QUERY_BUFFER_BARRIER_BIT          = $00008000;
+  GL_QUERY_BUFFER_BINDING              = $9193;
+  GL_QUERY_RESULT_NO_WAIT              = $9194;
+  GL_MIRROR_CLAMP_TO_EDGE              = $8743;
+
+  // GL 4.5
+  GL_CONTEXT_LOST                   = $0507;
+  GL_NEGATIVE_ONE_TO_ONE            = $935E;
+  GL_ZERO_TO_ONE                    = $935F;
+  GL_CLIP_ORIGIN                    = $935C;
+  GL_CLIP_DEPTH_MODE                = $935D;
+  GL_QUERY_WAIT_INVERTED            = $8E17;
+  GL_QUERY_NO_WAIT_INVERTED         = $8E18;
+  GL_QUERY_BY_REGION_WAIT_INVERTED  = $8E19;
+  GL_QUERY_BY_REGION_NO_WAIT_INVERTED = $8E1A;
+  GL_MAX_CULL_DISTANCES             = $82F9;
+  GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = $82FA;
+  GL_TEXTURE_TARGET                 = $1006;
+  GL_QUERY_TARGET                   = $82EA;
+  GL_TEXTURE_BINDING                = $82EB;
+  GL_GUILTY_CONTEXT_RESET           = $8253;
+  GL_INNOCENT_CONTEXT_RESET         = $8254;
+  GL_UNKNOWN_CONTEXT_RESET          = $8255;
+  GL_RESET_NOTIFICATION_STRATEGY    = $8256;
+  GL_LOSE_CONTEXT_ON_RESET          = $8252;
+  GL_NO_RESET_NOTIFICATION          = $8261;
+  GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = $00000004;
+  GL_CONTEXT_RELEASE_BEHAVIOR       = $82FB;
+  GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = $82FC;
 
   // GL_ATI_draw_buffers
   GL_MAX_DRAW_BUFFERS_ATI = $8824;
@@ -4982,7 +4664,7 @@ const
   GL_PERFMON_RESULT_AVAILABLE_AMD = $8BC4;
   GL_PERFMON_RESULT_SIZE_AMD = $8BC5;
   GL_PERFMON_RESULT_AMD = $8BC6;
-  
+
   // GL_AMD_vertex_shader_tesselator
   GL_SAMPLER_BUFFER_AMD = $9001;
   GL_INT_SAMPLER_BUFFER_AMD = $9002;
@@ -5612,7 +5294,7 @@ const
   GL_MIRROR_CLAMP_TO_BORDER_EXT = $8912;
 
   // GL_EXT_blend_equation_separate
-  GL_BLEND_EQUATION_RGB_EXT = $8009; 
+  GL_BLEND_EQUATION_RGB_EXT = $8009;
   GL_BLEND_EQUATION_ALPHA_EXT = $883D;
 
   // GL_EXT_pixel_buffer_object
@@ -5854,7 +5536,7 @@ const
   GL_FIRST_VERTEX_CONVENTION_EXT = $8E4D;
   GL_LAST_VERTEX_CONVENTION_EXT = $8E4E;
   GL_PROVOKING_VERTEX_EXT = $8E4F;
-  
+
   // GL_EXT_texture_snorm
   GL_ALPHA_SNORM = $9010;
   GL_LUMINANCE_SNORM = $9011;
@@ -5881,10 +5563,10 @@ const
   { reuse GL_RGB16_SNORM }
   { reuse GL_RGBA16_SNORM }
   { reuse GL_SIGNED_NORMALIZED }
-  
+
   // GL_EXT_separate_shader_objects
   GL_ACTIVE_PROGRAM_EXT = $8B8D;
-  
+
   // GL_EXT_shader_image_load_store
   GL_MAX_IMAGE_UNITS_EXT = $8F38;
   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = $8F39;
@@ -5941,7 +5623,7 @@ const
   GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = $00000800;
   GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = $00001000;
   GL_ALL_BARRIER_BITS_EXT = $FFFFFFFF;
-  
+
   // GL_EXT_vertex_attrib_64bit
   { reuse GL_DOUBLE }
   GL_DOUBLE_VEC2_EXT = $8FFC;
@@ -5962,7 +5644,7 @@ const
   GL_DECODE_EXT = $8A49;
   GL_SKIP_DECODE_EXT = $8A4A;
 
-  // GL_NV_texture_multisample 
+  // GL_NV_texture_multisample
   GL_TEXTURE_COVERAGE_SAMPLES_NV    = $9045;
   GL_TEXTURE_COLOR_SAMPLES_NV       = $9046;
 
@@ -6704,7 +6386,7 @@ const
   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = $8E23;
   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = $8E24;
   GL_TRANSFORM_FEEDBACK_BINDING_NV = $8E25;
-  
+
   // GL_NV_video_capture
   GL_VIDEO_BUFFER_NV = $9020;
   GL_VIDEO_BUFFER_BINDING_NV = $9021;
@@ -6735,7 +6417,7 @@ const
   GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = $903A;
   GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = $903B;
   GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = $903C;
-  
+
   // GL_NV_shader_buffer_load
   GL_BUFFER_GPU_ADDRESS_NV = $8F1D;
   GL_GPU_ADDRESS_NV = $8F34;
@@ -7302,7 +6984,7 @@ const
   // GL_WIN_specular_fog
   GL_FOG_SPECULAR_TEXTURE_WIN = $80EC;
 
-   // GL_ARB_vertex_shader
+  // GL_ARB_vertex_shader
   GL_VERTEX_SHADER_ARB = $8B31;
   GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = $8B4A;
   GL_MAX_VARYING_FLOATS_ARB = $8B4B;
@@ -7311,6 +6993,29 @@ const
   GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = $8B89;
   GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = $8B8A;
 
+  // GL_KHR_blend_equation_advanced
+  GL_MULTIPLY_KHR = $9294;
+  GL_SCREEN_KHR = $9295;
+  GL_OVERLAY_KHR = $9296;
+  GL_DARKEN_KHR = $9297;
+  GL_LIGHTEN_KHR = $9298;
+  GL_COLORDODGE_KHR = $9299;
+  GL_COLORBURN_KHR = $929A;
+  GL_HARDLIGHT_KHR = $929B;
+  GL_SOFTLIGHT_KHR = $929C;
+  GL_DIFFERENCE_KHR = $929E;
+  GL_EXCLUSION_KHR = $92A0;
+  GL_HSL_HUE_KHR = $92AD;
+  GL_HSL_SATURATION_KHR = $92AE;
+  GL_HSL_COLOR_KHR = $92AF;
+  GL_HSL_LUMINOSITY_KHR = $92B0;
+
+  // GL_KHR_blend_equation_advanced_coherent
+  GL_BLEND_ADVANCED_COHERENT_KHR = $9285;
+
+  // GL_KHR_robustness
+  GL_CONTEXT_ROBUST_ACCESS = $90F3;
+
   // GL_ARB_fragment_shader
   GL_FRAGMENT_SHADER_ARB = $8B30;
   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = $8B49; // 1.4
@@ -7323,6 +7028,18 @@ const
   GL_QUERY_RESULT_ARB = $8866;
   GL_QUERY_RESULT_AVAILABLE_ARB = $8867;
 
+  // GL_ARB_pipeline_statistics_query
+  GL_VERTICES_SUBMITTED_ARB         = $82EE;
+  GL_PRIMITIVES_SUBMITTED_ARB       = $82EF;
+  GL_VERTEX_SHADER_INVOCATIONS_ARB  = $82F0;
+  GL_TESS_CONTROL_SHADER_PATCHES_ARB = $82F1;
+  GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB = $82F2;
+  GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = $82F3;
+  GL_FRAGMENT_SHADER_INVOCATIONS_ARB = $82F4;
+  GL_COMPUTE_SHADER_INVOCATIONS_ARB = $82F5;
+  GL_CLIPPING_INPUT_PRIMITIVES_ARB  = $82F6;
+  GL_CLIPPING_OUTPUT_PRIMITIVES_ARB = $82F7;
+
   // GL_ARB_point_sprite
   GL_POINT_SPRITE_ARB = $8861;
   GL_COORD_REPLACE_ARB = $8862;
@@ -7379,6 +7096,11 @@ const
   WGL_DEPTH_BUFFER_BIT_ARB = $00000004;
   WGL_STENCIL_BUFFER_BIT_ARB = $00000008;
 
+  // WGL_ARB_context_flush_control
+  WGL_CONTEXT_RELEASE_BEHAVIOR_ARB = $2097;
+  WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0;
+  WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = $2098;
+
   // WGL_ARB_make_current_read
   ERROR_INVALID_PIXEL_TYPE_ARB = $2043;
   ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB = $2054;
@@ -7649,7 +7371,7 @@ const
 
   // WGL_NV_present_video
   WGL_NUM_VIDEO_SLOTS_NV = $20F0;
-  
+
   // WGL_NV_video_output
   WGL_BIND_TO_VIDEO_RGB_NV = $20C0;
   WGL_BIND_TO_VIDEO_RGBA_NV = $20C1;
@@ -7672,7 +7394,7 @@ const
   // WGL_NV_video_capture
   WGL_UNIQUE_ID_NV = $20CE;
   WGL_NUM_VIDEO_CAPTURE_SLOTS_NV = $20CF;
-  
+
   // WGL_NV_multisample_coverage
   WGL_COVERAGE_SAMPLES_NV = $2042;
   WGL_COLOR_SAMPLES_NV = $20B9;
@@ -7782,6 +7504,11 @@ const
   GLX_RGBA_FLOAT_TYPE_ARB = $20B9;
   GLX_RGBA_FLOAT_BIT_ARB = $00000004;
 
+  // GLX_ARB_context_flush_control
+  GLX_CONTEXT_RELEASE_BEHAVIOR_ARB = $2097;
+  GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0;
+  GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = $2098;
+
   // GLX_ARB_create_context
   GLX_CONTEXT_DEBUG_BIT_ARB = $00000001;
   GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
@@ -7823,13 +7550,13 @@ const
   GLX_STATIC_GRAY_EXT = $8007;
   GLX_TRANSPARENT_RGB_EXT = $8008;
   GLX_TRANSPARENT_INDEX_EXT = $8009;
-  
+
   // GLX_EXT_visual_rating
   GLX_VISUAL_CAVEAT_EXT = $20;
   GLX_SLOW_VISUAL_EXT = $8001;
   GLX_NON_CONFORMANT_VISUAL_EXT = $800D;
   (* reuse GLX_NONE_EXT *)
-  
+
   // GLX_EXT_import_context
   GLX_SHARE_CONTEXT_EXT = $800A;
   GLX_VISUAL_ID_EXT = $800B;
@@ -8068,7 +7795,7 @@ type
   TglBindTexture = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
   TglDeleteTextures = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
   TglGenTextures = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
-  
+
 {$ifdef DGL_DEPRECATED}
   TglAccum = procedure(op: GLenum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
   TglAlphaFunc = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
@@ -8532,9 +8259,9 @@ type
   TglGetAttachedShaders = procedure(programObj: GLhandle; MaxCount: GLsizei; var Count: GLint; shaders: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
   TglGetAttribLocation = function(programObj: GLhandle; char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
   TglGetProgramiv = procedure(programObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
-  TglGetProgramInfoLog = procedure(programObj: GLHandle; maxLength: glsizei; length: PGLsizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetProgramInfoLog = procedure(programObj: GLHandle; maxLength: glsizei; var length: GLint; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
   TglGetShaderiv = procedure(shaderObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
-  TglGetShaderInfoLog = procedure(shaderObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetShaderInfoLog = procedure(shaderObj: GLHandle; maxLength: glsizei; var length: glsizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
   TglGetShaderSource = procedure(shaderObj: GLhandle; maxlength: GLsizei; var length: GLsizei; source: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
   TglGetUniformLocation = function(programObj: GLhandle; const char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
   TglGetUniformfv = procedure(programObj: GLhandle; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
@@ -8714,7 +8441,7 @@ type
   { ARB_timer_query }
   { ARB_vertex_type_2_10_10_10_rev }
   TglVertexAttribDivisor = procedure(index: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
-  
+
   // GL_VERSION_4_0
   { OpenGL 4.0 also reuses entry points from these extensions: }
   { ARB_texture_query_lod (no entry points) }
@@ -9256,7 +8983,7 @@ type
   TglGetProgramBinary = procedure(program_: GLuint; bufSize: GLsizei; length: PGLsizei; binaryFormat: PGLenum; binary: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
   TglProgramBinary = procedure(program_: GLuint; binaryFormat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
   TglProgramParameteri = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
-  
+
   // GL_ARB_separate_shader_objects
   TglUseProgramStages = procedure(pipeline: GLuint; stages: GLbitfield; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
   TglActiveShaderProgram = procedure(pipeline: GLuint; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
@@ -9467,19 +9194,143 @@ type
   // GL 4.4
 
   TglBufferStorage = procedure(target : GLenum; size : GLsizeiptr; const data : pointer; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
-       TglClearTexImage = procedure(texture : GLuint; level : GLint; format : GLenum; _type : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
-       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}
-       TglBindBuffersBase = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
-       TglBindBuffersRange = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : GLintptr; const sizes : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
-       TglBindTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
-       TglBindSamplers = procedure(first : GLuint; count : GLsizei; const samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
-       TglBindImageTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
-       TglBindVertexBuffers = procedure(first : GLuint; count : GLsizei; const buffers : GLuint; const offsets : GLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
-
+  TglClearTexImage = procedure(texture : GLuint; level : GLint; format : GLenum; _type : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  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}
+  TglBindBuffersBase = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglBindBuffersRange = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : GLintptr; const sizes : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglBindTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglBindSamplers = procedure(first : GLuint; count : GLsizei; const samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglBindImageTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglBindVertexBuffers = procedure(first : GLuint; count : GLsizei; const buffers : GLuint; const offsets : GLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
   TglTexPageCommitmentARB = procedure(target : glenum; level : glint; xoffset : glint; yoffset : glint; zoffset : glint; width : glsizei; height : glsizei; depth : glsizei; resident : glboolean);  {$IFDEF DGL_WIN} stdcall; {$ELSE}cdecl; {$ENDIF}
 
-  // END GL 4.4
-
+  // GL 4.5
+  TglClipControl = procedure(origin : GLenum; depth : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglCreateTransformFeedbacks = procedure(n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTransformFeedbackBufferBase = procedure (xfb : GLuint; index : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTransformFeedbackBufferRange = procedure (xfb : GLuint; index : GLuint; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetTransformFeedbackiv = procedure (xfb : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetTransformFeedbacki_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetTransformFeedbacki64_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglCreateBuffers = procedure (n : GLsizei; buffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglNamedBufferStorage = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglNamedBufferData = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; usage : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglCopyNamedBufferSubData = procedure (readBuffer : GLuint; writeBuffer : GLuint; readOffset : GLintptr; writeOffset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglClearNamedBufferData = procedure (buffer : GLuint; internalformat : GLenum; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglClearNamedBufferSubData = procedure (buffer : GLuint; internalformat : GLenum; offset : GLintptr; size : GLsizei; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglMapNamedBuffer = function(buffer : GLuint; access : GLenum) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglMapNamedBufferRange = function(buffer : GLuint; offset : GLintptr; length : GLsizei; access : GLbitfield) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglUnmapNamedBuffer = function(buffer : GLuint) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglFlushMappedNamedBufferRange = procedure (buffer : GLuint; offset : GLintptr; length : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetNamedBufferParameteriv = procedure (buffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetNamedBufferParameteri64v = procedure (buffer : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetNamedBufferPointerv = procedure (buffer : GLuint; pname : GLenum; params : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglCreateFramebuffers = procedure (n : GLsizei; framebuffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglNamedFramebufferRenderbuffer = procedure (framebuffer : GLuint; attachment : GLenum ; renderbuffertarget : GLEnum; renderbuffer : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglNamedFramebufferParameteri = procedure (framebuffer : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglNamedFramebufferTexture = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglNamedFramebufferTextureLayer = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint; layer : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglNamedFramebufferDrawBuffer = procedure (framebuffer : GLuint; buf : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglNamedFramebufferDrawBuffers = procedure (framebuffer : GLuint; n : GLsizei; bufs : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglNamedFramebufferReadBuffer = procedure (framebuffer : GLuint; src : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglInvalidateNamedFramebufferData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglInvalidateNamedFramebufferSubData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglClearNamedFramebufferiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglClearNamedFramebufferuiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglClearNamedFramebufferfv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglClearNamedFramebufferfi = procedure (framebuffer : GLuint; buffer : GLenum; const depth : GLfloat; stencil : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglBlitNamedFramebuffer = procedure (readFramebuffer : GLuint; drawFramebuffer : GLuint; srcX0 : GLint; srcY0 : GLint; srcX1 : GLint; srcY1 : GLint; dstX0 : GLint; dstY0 : GLint; dstX1 : GLint; dstY1 : GLint ; mask : GLbitfield; filter : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglCheckNamedFramebufferStatus = function(framebuffer : GLuint; target : GLenum) : GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetNamedFramebufferParameteriv = procedure (framebuffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetNamedFramebufferAttachmentParameteriv = procedure (framebuffer : GLuint; attachment : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglCreateRenderbuffers = procedure (n : GLsizei; renderbuffers : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglNamedRenderbufferStorage = procedure (renderbuffer : GLUInt; internalformat : GLenum ; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglNamedRenderbufferStorageMultisample = procedure (renderbuffer : GLUInt; samples : GLSizei; internalformat : GLenum ; width : GLSizei; height : GLSizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetNamedRenderbufferParameteriv = procedure (renderbuffer : GLUInt; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglCreateTextures = procedure (target : GLenum ; n : GLsizei; textures : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTextureBuffer = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTextureBufferRange = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTextureStorage1D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTextureStorage2D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTextureStorage3D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTextureStorage2DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTextureStorage3DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; _type : GLenum; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTextureSubImage2D = procedure (texture : GLuint; level : GLint; xoffset : GLint; yoffset : GLint; width : GLsizei; height : GLsizei; format : GLenum; _type : GLenum; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTextureSubImage3D = procedure (texture : GLuint; level : GLint; xoffset : GLint; yoffset : GLint; zoffset : GLint; width : GLsizei; height : GLsizei; depth : GLsizei; format : GLenum; _type : GLenum; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglCompressedTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; imageSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglCompressedTextureSubImage2D = procedure (texture : GLuint; level : GLint; xoffset : GLint; yoffset : GLint; width : GLsizei; height : GLsizei; format : GLenum; mageSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglCompressedTextureSubImage3D = procedure (texture : GLuint; level : GLint; xoffset : GLint; yoffset : GLint; zoffset : GLint; width : GLsizei; height : GLsizei; depth : GLsizei; format : GLenum; imageSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglCopyTextureSubImage1D = procedure (texture : GLuint; level : GLint ; xoffset : GLint; x : GLint; y : GLint; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglCopyTextureSubImage2D = procedure (texture : GLuint; level : GLint ; xoffset : GLint; yoffset : GLint; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglCopyTextureSubImage3D = procedure (texture : GLuint; level : GLint ; xoffset : GLint; yoffset : GLint; zoffset : GLint; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTextureParameterf = procedure (texture : GLuint; pname : GLenum; param : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTextureParameterfv = procedure (texture : GLuint; pname : GLenum; const param : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTextureParameteri = procedure (texture : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; const params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; const params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTextureParameteriv = procedure (texture : GLuint; pname : GLenum; const param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGenerateTextureMipmap = procedure(texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglBindTextureUnit = procedure (_unit : GLuint; texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetTextureImage = procedure (texture : GLuint; level : GLint ; format : GLenum; _type : GLenum; bufSize : GLsizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetCompressedTextureImage = procedure (texture : GLuint; level : GLint; bufSize : GLSizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetTextureLevelParameterfv = procedure (texture : GLuint; level : GLint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetTextureLevelParameteriv = procedure (texture : GLuint; level : GLint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetTextureParameterfv = procedure (texture : GLuint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; params : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetTextureParameteriv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglCreateVertexArrays = procedure (n : GLsizei; arrays : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglDisableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglEnableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglVertexArrayElementBuffer = procedure (vaobj : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglVertexArrayVertexBuffer = procedure (vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglVertexArrayVertexBuffers = procedure (vaobj : GLuint; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : PGLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglVertexArrayAttribBinding = procedure (vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglVertexArrayAttribFormat = procedure(vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; normalized : GLboolean; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglVertexArrayAttribIFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglVertexArrayAttribLFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglVertexArrayBindingDivisor = procedure (vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetVertexArrayiv = procedure (vaobj : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetVertexArrayIndexediv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetVertexArrayIndexed64iv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglCreateSamplers = procedure (n : GLsizei; samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglCreateProgramPipelines = procedure (n : GLsizei; pipelines : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglCreateQueries = procedure (target : GLenum; n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglMemoryBarrierByRegion = procedure (barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetTextureSubImage = procedure (texture : GLuint; level : GLint ; xoffset : GLint; yoffset : GLint; zoffset : GLint; width : GLsizei; height : GLsizei; depth : GLsizei; format : GLenum; _type : GLenum; bufSize : GLsizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetCompressedTextureSubImage = procedure (texture : GLuint; level : GLint ; xoffset : GLint; yoffset : GLint; zoffset : GLint; width : GLsizei; height : GLsizei; depth : GLsizei; bufSize : GLsizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetGraphicsResetStatus = function : GLEnum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnCompressedTexImage = procedure (target : GLenum; lod : GLint; bufSize : GLsizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnTexImage = procedure (target : GLenum; level : GLint; format : GLenum; _type : GLenum; bufSize : GLSizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnUniformdv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnUniformfv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnUniformiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnUniformuiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglReadnPixels = procedure (x : GLint; y : GLint; width : GLsizei; height : GLsizei; format : GLenum; _type : GLenum; bufSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnMapdv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnMapfv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnMapiv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnPixelMapfv = procedure (map : GLenum; bufSize : GLsizei; values : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnPixelMapuiv = procedure (map : GLenum; bufSize : GLsizei; values : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnPixelMapusv = procedure (map : GLenum; bufSize : GLsizei; values : PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnPolygonStipple = procedure (bufSize : GLsizei; pattern : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnColorTable = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; table : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnConvolutionFilter = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; image : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnSeparableFilter = procedure (target : GLenum; format : GLenum; _type : GLenum; rowBufSize : GLsizei; row : PGLvoid; columnBufSize : GLsizei; column : PGLvoid; span : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnHistogram = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglGetnMinmax = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglTextureBarrier = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+
+  // GL_ARB_sparse_buffer
+  TglBufferPageCommitmentARB = procedure (target : GLenum; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglNamedBufferPageCommitmentEXT = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+  TglNamedBufferPageCommitmentARB = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+
+  // GL_KHR_blend_equation_advanced
+  TglBlendBarrierKHR = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
 
   // GL_ARB_texture_view
   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}
@@ -9959,7 +9810,7 @@ type
   // GL_EXT_geometry_shader4
   TglProgramParameteriEXT = procedure (_program: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
   TglFramebufferTextureEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
-//  TglFramebufferTextureLayerEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
+
   TglFramebufferTextureFaceEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
 
   // GL_EXT_gpu_shader4
@@ -10563,7 +10414,7 @@ type
   TglGetVideoi64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
   TglGetVideoui64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
 //  TglVideoParameterivNV = procedure(video_slot: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
-  
+
   // GL_NV_explicit_multisample
   TglGetMultisamplefvNV = procedure (pname: GLenum; index: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
   TglSampleMaskIndexedNV = procedure (index: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
@@ -11199,7 +11050,7 @@ type
 
   // WGL_3DL_stereo_control
   TwglSetStereoEmitterState3DL = function(hDC: HDC; uState: UINT): Boolean; stdcall;
-  
+
   // WIN_draw_range_elements
   TglDrawRangeElementsWIN = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); stdcall;
 
@@ -11223,7 +11074,7 @@ type
   TglXQueryVersion = function(dpy: PDisplay; major: PGLint; minor: PGLint): GLboolean cdecl;
   TglXSwapBuffers = procedure(dpy: PDisplay; drawable: GLXDrawable); cdecl;
   TglXUseXFont = procedure(font: Font; first: GLint; count: GLint; listBase: GLint); cdecl;
-  TglXWaitGL = procedure; cdecl; 
+  TglXWaitGL = procedure; cdecl;
   TglXWaitX = procedure; cdecl;
 
   TglXGetClientString = function(dpy: PDisplay; name: GLint): PGLchar; cdecl;
@@ -11267,7 +11118,7 @@ type
   TglXGetContextIDEXT = function(const context: GLXContext): GLXContextID; cdecl;
   TglXImportContextEXT = function(dpy: PDisplay; contextID: GLXContextID): GLXContext; cdecl;
   TglXFreeContextEXT = procedure(dpy: PDisplay; context: GLXContext); cdecl;
-  
+
   // GLX_EXT_texture_from_pixmap
   TglXBindTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint; const attrib_list: PGLint); cdecl;
   TglXReleaseTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint); cdecl;
@@ -12011,7 +11862,7 @@ var
 
   // GL_VERSION_3_3
   glVertexAttribDivisor: TglVertexAttribDivisor;
-  
+
   // GL_VERSION_4_0
   { OpenGL 4.0 also reuses entry points from these extensions: }
   { ARB_texture_query_lod (no entry points) }
@@ -12545,7 +12396,7 @@ var
   glGetProgramBinary: TglGetProgramBinary;
   glProgramBinary: TglProgramBinary;
   glProgramParameteri: TglProgramParameteri;
-  
+
   // GL_ARB_separate_shader_objects
   glUseProgramStages: TglUseProgramStages;
   glActiveShaderProgram: TglActiveShaderProgram;
@@ -12747,8 +12598,134 @@ var
     glBindImageTextures : TglBindImageTextures;
     glBindVertexBuffers : TglBindVertexBuffers;
     glTexPageCommitmentARB : TglTexPageCommitmentARB;
-  // END GL 4.4
 
+  // GL 4.5
+  glClipControl : TglClipControl;
+  glCreateTransformFeedbacks : TglCreateTransformFeedbacks;
+  glTransformFeedbackBufferBase : TglTransformFeedbackBufferBase;
+  glTransformFeedbackBufferRange : TglTransformFeedbackBufferRange;
+  glGetTransformFeedbackiv : TglGetTransformFeedbackiv;
+  glGetTransformFeedbacki_v : TglGetTransformFeedbacki_v;
+  glGetTransformFeedbacki64_v : TglGetTransformFeedbacki64_v;
+  glCreateBuffers : TglCreateBuffers;
+  glNamedBufferStorage : TglNamedBufferStorage;
+  glNamedBufferData : TglNamedBufferData;
+  glNamedBufferSubData : TglNamedBufferSubData;
+  glCopyNamedBufferSubData : TglCopyNamedBufferSubData;
+  glClearNamedBufferData : TglClearNamedBufferData;
+  glClearNamedBufferSubData : TglClearNamedBufferSubData;
+  glMapNamedBuffer : TglMapNamedBuffer;
+  glMapNamedBufferRange : TglMapNamedBufferRange;
+  glUnmapNamedBuffer : TglUnmapNamedBuffer;
+  glFlushMappedNamedBufferRange : TglFlushMappedNamedBufferRange;
+  glGetNamedBufferParameteriv : TglGetNamedBufferParameteriv;
+  glGetNamedBufferParameteri64v : TglGetNamedBufferParameteri64v;
+  glGetNamedBufferPointerv : TglGetNamedBufferPointerv;
+  glGetNamedBufferSubData : TglGetNamedBufferSubData;
+  glCreateFramebuffers : TglCreateFramebuffers;
+  glNamedFramebufferRenderbuffer : TglNamedFramebufferRenderbuffer;
+  glNamedFramebufferParameteri : TglNamedFramebufferParameteri;
+  glNamedFramebufferTexture : TglNamedFramebufferTexture;
+  glNamedFramebufferTextureLayer : TglNamedFramebufferTextureLayer;
+  glNamedFramebufferDrawBuffer : TglNamedFramebufferDrawBuffer;
+  glNamedFramebufferDrawBuffers : TglNamedFramebufferDrawBuffers;
+  glNamedFramebufferReadBuffer : TglNamedFramebufferReadBuffer;
+  glInvalidateNamedFramebufferData : TglInvalidateNamedFramebufferData;
+  glInvalidateNamedFramebufferSubData : TglInvalidateNamedFramebufferSubData;
+  glClearNamedFramebufferiv : TglClearNamedFramebufferiv;
+  glClearNamedFramebufferuiv : TglClearNamedFramebufferuiv;
+  glClearNamedFramebufferfv : TglClearNamedFramebufferfv;
+  glClearNamedFramebufferfi : TglClearNamedFramebufferfi;
+  glBlitNamedFramebuffer : TglBlitNamedFramebuffer;
+  glCheckNamedFramebufferStatus : TglCheckNamedFramebufferStatus;
+  glGetNamedFramebufferParameteriv : TglGetNamedFramebufferParameteriv;
+  glGetNamedFramebufferAttachmentParameteriv : TglGetNamedFramebufferAttachmentParameteriv;
+  glCreateRenderbuffers : TglCreateRenderbuffers;
+  glNamedRenderbufferStorage : TglNamedRenderbufferStorage;
+  glNamedRenderbufferStorageMultisample : TglNamedRenderbufferStorageMultisample;
+  glGetNamedRenderbufferParameteriv : TglGetNamedRenderbufferParameteriv;
+  glCreateTextures : TglCreateTextures;
+  glTextureBuffer : TglTextureBuffer;
+  glTextureBufferRange : TglTextureBufferRange;
+  glTextureStorage1D : TglTextureStorage1D;
+  glTextureStorage2D : TglTextureStorage2D;
+  glTextureStorage3D : TglTextureStorage3D;
+  glTextureStorage2DMultisample : TglTextureStorage2DMultisample;
+  glTextureStorage3DMultisample : TglTextureStorage3DMultisample;
+  glTextureSubImage1D : TglTextureSubImage1D;
+  glTextureSubImage2D : TglTextureSubImage2D;
+  glTextureSubImage3D : TglTextureSubImage3D;
+  glCompressedTextureSubImage1D : TglCompressedTextureSubImage1D;
+  glCompressedTextureSubImage2D : TglCompressedTextureSubImage2D;
+  glCompressedTextureSubImage3D : TglCompressedTextureSubImage3D;
+  glCopyTextureSubImage1D : TglCopyTextureSubImage1D;
+  glCopyTextureSubImage2D : TglCopyTextureSubImage2D;
+  glCopyTextureSubImage3D : TglCopyTextureSubImage3D;
+  glTextureParameterf : TglTextureParameterf;
+  glTextureParameterfv : TglTextureParameterfv;
+  glTextureParameteri : TglTextureParameteri;
+  glTextureParameterIiv : TglTextureParameterIiv;
+  glTextureParameterIuiv : TglTextureParameterIuiv;
+  glTextureParameteriv : TglTextureParameteriv;
+  glGenerateTextureMipmap : TglGenerateTextureMipmap;
+  glBindTextureUnit : TglBindTextureUnit;
+  glGetTextureImage : TglGetTextureImage;
+  glGetCompressedTextureImage : TglGetCompressedTextureImage;
+  glGetTextureLevelParameterfv : TglGetTextureLevelParameterfv;
+  glGetTextureLevelParameteriv : TglGetTextureLevelParameteriv;
+  glGetTextureParameterfv : TglGetTextureParameterfv;
+  glGetTextureParameterIiv : TglGetTextureParameterIiv;
+  glGetTextureParameterIuiv : TglGetTextureParameterIuiv;
+  glGetTextureParameteriv : TglGetTextureParameteriv;
+  glCreateVertexArrays : TglCreateVertexArrays;
+  glDisableVertexArrayAttrib : TglDisableVertexArrayAttrib;
+  glEnableVertexArrayAttrib : TglEnableVertexArrayAttrib;
+  glVertexArrayElementBuffer : TglVertexArrayElementBuffer;
+  glVertexArrayVertexBuffer : TglVertexArrayVertexBuffer;
+  glVertexArrayVertexBuffers : TglVertexArrayVertexBuffers;
+  glVertexArrayAttribBinding : TglVertexArrayAttribBinding;
+  glVertexArrayAttribFormat : TglVertexArrayAttribFormat;
+  glVertexArrayAttribIFormat : TglVertexArrayAttribIFormat;
+  glVertexArrayAttribLFormat : TglVertexArrayAttribLFormat;
+  glVertexArrayBindingDivisor : TglVertexArrayBindingDivisor;
+  glGetVertexArrayiv : TglGetVertexArrayiv;
+  glGetVertexArrayIndexediv : TglGetVertexArrayIndexediv;
+  glGetVertexArrayIndexed64iv : TglGetVertexArrayIndexed64iv;
+  glCreateSamplers : TglCreateSamplers;
+  glCreateProgramPipelines : TglCreateProgramPipelines;
+  glCreateQueries : TglCreateQueries;
+  glMemoryBarrierByRegion : TglMemoryBarrierByRegion;
+  glGetTextureSubImage : TglGetTextureSubImage;
+  glGetCompressedTextureSubImage : TglGetCompressedTextureSubImage;
+  glGetGraphicsResetStatus : TglGetGraphicsResetStatus;
+  glGetnCompressedTexImage : TglGetnCompressedTexImage;
+  glGetnTexImage : TglGetnTexImage;
+  glGetnUniformdv : TglGetnUniformdv;
+  glGetnUniformfv : TglGetnUniformfv;
+  glGetnUniformiv : TglGetnUniformiv;
+  glGetnUniformuiv : TglGetnUniformuiv;
+  glReadnPixels : TglReadnPixels;
+  glGetnMapdv : TglGetnMapdv;
+  glGetnMapfv : TglGetnMapfv;
+  glGetnMapiv : TglGetnMapiv;
+  glGetnPixelMapfv : TglGetnPixelMapfv;
+  glGetnPixelMapuiv : TglGetnPixelMapuiv;
+  glGetnPixelMapusv : TglGetnPixelMapusv;
+  glGetnPolygonStipple : TglGetnPolygonStipple;
+  glGetnColorTable : TglGetnColorTable;
+  glGetnConvolutionFilter : TglGetnConvolutionFilter;
+  glGetnSeparableFilter : TglGetnSeparableFilter;
+  glGetnHistogram : TglGetnHistogram;
+  glGetnMinmax : TglGetnMinmax;
+  glTextureBarrier : TglTextureBarrier;
+
+  // GL_ARB_sparse_buffer
+  glBufferPageCommitmentARB : TglBufferPageCommitmentARB;
+  glNamedBufferPageCommitmentEXT : TglNamedBufferPageCommitmentEXT;
+  glNamedBufferPageCommitmentARB : TglNamedBufferPageCommitmentARB;
+
+  // GL_KHR_blend_equation_advanced
+  glBlendBarrierKHR : TglBlendBarrierKHR;
 
   // GL_ARB_cl_event
   glCreateSyncFromCLeventARB: TglCreateSyncFromCLeventARB;
@@ -12903,7 +12880,7 @@ var
   // GL_AMD_vertex_shader_tesselator
   glTessellationFactorAMD: TglTessellationFactorAMD;
   glTessellationModeAMD: TglTessellationModeAMD;
-  
+
   // GL_AMD_draw_buffers_blend
   glBlendFuncIndexedAMD: TglBlendFuncIndexedAMD;
   glBlendFuncSeparateIndexedAMD: TglBlendFuncSeparateIndexedAMD;
@@ -13496,7 +13473,7 @@ var
   glVertexAttribLPointerEXT: TglVertexAttribLPointerEXT;
   glGetVertexAttribLdvEXT: TglGetVertexAttribLdvEXT;
   glVertexArrayVertexAttribLOffsetEXT: TglVertexArrayVertexAttribLOffsetEXT;
-  
+
   // GL_HP_image_transform
   glImageTransformParameteriHP: TglImageTransformParameteriHP;
   glImageTransformParameterfHP: TglImageTransformParameterfHP;
@@ -14494,14 +14471,14 @@ var
 
   // GLX_ARB_create_context
   glXCreateContextAttribsARB: TglXCreateContextAttribsARB;
-  
+
   // GLX_EXT_import_context
   glXGetCurrentDisplayEXT: TglXGetCurrentDisplayEXT;
   glXQueryContextInfoEXT: TglXQueryContextInfoEXT;
   glXGetContextIDEXT: TglXGetContextIDEXT;
   glXImportContextEXT: TglXImportContextEXT;
   glXFreeContextEXT: TglXFreeContextEXT;
-  
+
   // GLX_EXT_texture_from_pixmap
   glXBindTexImageEXT: TglXBindTexImageEXT;
   glXReleaseTexImageEXT: TglXReleaseTexImageEXT;
@@ -14683,8 +14660,9 @@ procedure Read_GL_ARB_texture_storage_multisample;
 procedure Read_GL_ARB_texture_view;
 procedure Read_GL_ARB_vertex_attrib_binding;
 
-// GL 4.4
+
 procedure Read_GL_4_4;
+procedure Read_GL_4_5;
 
 //
 procedure Read_GL_ARB_cl_event;
@@ -14891,14 +14869,14 @@ begin
   {$IFDEF DGL_LINUX}
   Result := dlopen(Name, RTLD_LAZY);
   {$ENDIF}
-  
+
   {$IFDEF DGL_MAC}
   {$IFDEF OPENGL_FRAMEWORK}
   Result := RTLD_DEFAULT;
   {$ELSE}
   Result := Pointer(LoadLibrary(Name));
-  {$ENDIF}  
-  {$ENDIF}  
+  {$ENDIF}
+  {$ENDIF}
 end;
 
 
@@ -14914,13 +14892,13 @@ begin
     {$IFDEF DGL_LINUX}
     Result := dlclose(LibHandle) = 0;
     {$ENDIF}
-       
+
     {$IFDEF DGL_MAC}
     {$IFDEF OPENGL_FRAMEWORK}
        Result := true;
        {$ELSE}
     Result := FreeLibrary(HMODULE(LibHandle));
-    {$ENDIF}   
+    {$ENDIF}
        {$ENDIF}
 end;
 
@@ -14930,6 +14908,7 @@ begin
   if LibHandle = nil then
     LibHandle := GL_LibHandle;
 
+
   {$IFDEF DGL_WIN}
     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
 
@@ -14957,10 +14936,10 @@ begin
 
     Result := dlsym(LibHandle, ProcName);
   {$ENDIF}
-  
+
   {$IFDEF DGL_MAC}
     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
-  {$ENDIF}  
+  {$ENDIF}
 end;
 
 
@@ -15134,7 +15113,7 @@ begin
       glXGetContextIDEXT := dglGetProcAddress('glXGetContextIDEXT');
       glXImportContextEXT := dglGetProcAddress('glXImportContextEXT');
       glXFreeContextEXT := dglGetProcAddress('glXFreeContextEXT');
-      
+
       // GLX_EXT_texture_from_pixmap
       glXBindTexImageEXT := dglGetProcAddress('glXBindTexImageEXT');
       glXReleaseTexImageEXT := dglGetProcAddress('glXReleaseTexImageEXT');
@@ -15808,7 +15787,7 @@ begin
   glUniformMatrix4x2fv := dglGetProcAddress('glUniformMatrix4x2fv');
   glUniformMatrix3x4fv := dglGetProcAddress('glUniformMatrix3x4fv');
   glUniformMatrix4x3fv := dglGetProcAddress('glUniformMatrix4x3fv');
-  
+
   // GL_VERSION_3_0
   { OpenGL 3.0 also reuses entry points from these extensions: }
   Read_GL_ARB_framebuffer_object;
@@ -15983,9 +15962,9 @@ begin
   Read_GL_ARB_texture_view;
   Read_GL_ARB_vertex_attrib_binding;
 
-  // GL_VERSION_4_4
-  //  Note (Due to Khronos' change in header conventions, no more single read_ functions)
+  //  Note (Due to Khronos' change in header convetions, no more single read_ functions) starting with GL 4.4
   Read_GL_4_4;
+  Read_GL_4_5;
 end;
 
 procedure Read_GL_3DFX_tbuffer;
@@ -16450,12 +16429,24 @@ begin
   glGetNamedStringivARB := dglGetProcAddress('glGetNamedStringivARB');
 end;
 
-
 procedure Read_GL_ARB_sparse_texture;
 begin
   glTexPageCommitmentARB := dglGetProcAddress('glTexPageCommitmentARB');
 end;
 
+procedure Read_GL_ARB_sparse_buffer;
+begin
+  glBufferPageCommitmentARB := dglGetProcAddress('glBufferPageCommitmentARB');
+  glNamedBufferPageCommitmentEXT := dglGetProcAddress('glNamedBufferPageCommitmentEXT');
+  glNamedBufferPageCommitmentARB := dglGetProcAddress('glNamedBufferPageCommitmentARB');
+end;
+
+procedure Read_GL_KHR_blend_equation_advanced;
+begin
+  glBlendBarrierKHR := dglGetProcAddress('glBlendBarrierKHR');
+end;
+
+
 procedure Read_GL_ARB_blend_func_extended;
 begin
   glBindFragDataLocationIndexed := dglGetProcAddress('glBindFragDataLocationIndexed');
@@ -16870,6 +16861,127 @@ begin
   glBindVertexBuffers := dglGetProcAddress('glBindVertexBuffers');
 end;
 
+procedure Read_GL_4_5;
+begin
+  glClipControl:= dglGetProcAddress('glClipControl');
+  glCreateTransformFeedbacks:= dglGetProcAddress('glCreateTransformFeedbacks');
+  glTransformFeedbackBufferBase:= dglGetProcAddress('glTransformFeedbackBufferBase');
+  glTransformFeedbackBufferRange:= dglGetProcAddress('glTransformFeedbackBufferRange');
+  glGetTransformFeedbackiv:= dglGetProcAddress('glGetTransformFeedbackiv');
+  glGetTransformFeedbacki_v:= dglGetProcAddress('glGetTransformFeedbacki_v');
+  glGetTransformFeedbacki64_v:= dglGetProcAddress('glGetTransformFeedbacki64_v');
+  glCreateBuffers:= dglGetProcAddress('glCreateBuffers');
+  glNamedBufferStorage:= dglGetProcAddress('glNamedBufferStorage');
+  glNamedBufferData:= dglGetProcAddress('glNamedBufferData');
+  glNamedBufferSubData:= dglGetProcAddress('glNamedBufferSubData');
+  glCopyNamedBufferSubData:= dglGetProcAddress('glCopyNamedBufferSubData');
+  glClearNamedBufferData:= dglGetProcAddress('glClearNamedBufferData');
+  glClearNamedBufferSubData:= dglGetProcAddress('glClearNamedBufferSubData');
+  glMapNamedBuffer:= dglGetProcAddress('glMapNamedBuffer');
+  glMapNamedBufferRange:= dglGetProcAddress('glMapNamedBufferRange');
+  glUnmapNamedBuffer:= dglGetProcAddress('glUnmapNamedBuffer');
+  glFlushMappedNamedBufferRange:= dglGetProcAddress('glFlushMappedNamedBufferRange');
+  glGetNamedBufferParameteriv:= dglGetProcAddress('glGetNamedBufferParameteriv');
+  glGetNamedBufferParameteri64v:= dglGetProcAddress('glGetNamedBufferParameteri64v');
+  glGetNamedBufferPointerv:= dglGetProcAddress('glGetNamedBufferPointerv');
+  glGetNamedBufferSubData:= dglGetProcAddress('glGetNamedBufferSubData');
+  glCreateFramebuffers:= dglGetProcAddress('glCreateFramebuffers');
+  glNamedFramebufferRenderbuffer:= dglGetProcAddress('glNamedFramebufferRenderbuffer');
+  glNamedFramebufferParameteri:= dglGetProcAddress('glNamedFramebufferParameteri');
+  glNamedFramebufferTexture:= dglGetProcAddress('glNamedFramebufferTexture');
+  glNamedFramebufferTextureLayer:= dglGetProcAddress('glNamedFramebufferTextureLayer');
+  glNamedFramebufferDrawBuffer:= dglGetProcAddress('glNamedFramebufferDrawBuffer');
+  glNamedFramebufferDrawBuffers:= dglGetProcAddress('glNamedFramebufferDrawBuffers');
+  glNamedFramebufferReadBuffer:= dglGetProcAddress('glNamedFramebufferReadBuffer');
+  glInvalidateNamedFramebufferData:= dglGetProcAddress('glInvalidateNamedFramebufferData');
+  glInvalidateNamedFramebufferSubData:= dglGetProcAddress('glInvalidateNamedFramebufferSubData');
+  glClearNamedFramebufferiv:= dglGetProcAddress('glClearNamedFramebufferiv');
+  glClearNamedFramebufferuiv:= dglGetProcAddress('glClearNamedFramebufferuiv');
+  glClearNamedFramebufferfv:= dglGetProcAddress('glClearNamedFramebufferfv');
+  glClearNamedFramebufferfi:= dglGetProcAddress('glClearNamedFramebufferfi');
+  glBlitNamedFramebuffer:= dglGetProcAddress('glBlitNamedFramebuffer');
+  glCheckNamedFramebufferStatus:= dglGetProcAddress('glCheckNamedFramebufferStatus');
+  glGetNamedFramebufferParameteriv:= dglGetProcAddress('glGetNamedFramebufferParameteriv');
+  glGetNamedFramebufferAttachmentParameteriv:= dglGetProcAddress('glGetNamedFramebufferAttachmentParameteriv');
+  glCreateRenderbuffers:= dglGetProcAddress('glCreateRenderbuffers');
+  glNamedRenderbufferStorage:= dglGetProcAddress('glNamedRenderbufferStorage');
+  glNamedRenderbufferStorageMultisample:= dglGetProcAddress('glNamedRenderbufferStorageMultisample');
+  glGetNamedRenderbufferParameteriv:= dglGetProcAddress('glGetNamedRenderbufferParameteriv');
+  glCreateTextures:= dglGetProcAddress('glCreateTextures');
+  glTextureBuffer:= dglGetProcAddress('glTextureBuffer');
+  glTextureBufferRange:= dglGetProcAddress('glTextureBufferRange');
+  glTextureStorage1D:= dglGetProcAddress('glTextureStorage1D');
+  glTextureStorage2D:= dglGetProcAddress('glTextureStorage2D');
+  glTextureStorage3D:= dglGetProcAddress('glTextureStorage3D');
+  glTextureStorage2DMultisample:= dglGetProcAddress('glTextureStorage2DMultisample');
+  glTextureStorage3DMultisample:= dglGetProcAddress('glTextureStorage3DMultisample');
+  glTextureSubImage1D:= dglGetProcAddress('glTextureSubImage1D');
+  glTextureSubImage2D:= dglGetProcAddress('glTextureSubImage2D');
+  glTextureSubImage3D:= dglGetProcAddress('glTextureSubImage3D');
+  glCompressedTextureSubImage1D:= dglGetProcAddress('glCompressedTextureSubImage1D');
+  glCompressedTextureSubImage2D:= dglGetProcAddress('glCompressedTextureSubImage2D');
+  glCompressedTextureSubImage3D:= dglGetProcAddress('glCompressedTextureSubImage3D');
+  glCopyTextureSubImage1D:= dglGetProcAddress('glCopyTextureSubImage1D');
+  glCopyTextureSubImage2D:= dglGetProcAddress('glCopyTextureSubImage2D');
+  glCopyTextureSubImage3D:= dglGetProcAddress('glCopyTextureSubImage3D');
+  glTextureParameterf:= dglGetProcAddress('glTextureParameterf');
+  glTextureParameterfv:= dglGetProcAddress('glTextureParameterfv');
+  glTextureParameteri:= dglGetProcAddress('glTextureParameteri');
+  glTextureParameterIiv:= dglGetProcAddress('glTextureParameterIiv');
+  glTextureParameterIuiv:= dglGetProcAddress('glTextureParameterIuiv');
+  glTextureParameteriv:= dglGetProcAddress('glTextureParameteriv');
+  glGenerateTextureMipmap:= dglGetProcAddress('glGenerateTextureMipmap');
+  glBindTextureUnit:= dglGetProcAddress('glBindTextureUnit');
+  glGetTextureImage:= dglGetProcAddress('glGetTextureImage');
+  glGetCompressedTextureImage:= dglGetProcAddress('glGetCompressedTextureImage');
+  glGetTextureLevelParameterfv:= dglGetProcAddress('glGetTextureLevelParameterfv');
+  glGetTextureLevelParameteriv:= dglGetProcAddress('glGetTextureLevelParameteriv');
+  glGetTextureParameterfv:= dglGetProcAddress('glGetTextureParameterfv');
+  glGetTextureParameterIiv:= dglGetProcAddress('glGetTextureParameterIiv');
+  glGetTextureParameterIuiv:= dglGetProcAddress('glGetTextureParameterIuiv');
+  glGetTextureParameteriv:= dglGetProcAddress('glGetTextureParameteriv');
+  glCreateVertexArrays:= dglGetProcAddress('glCreateVertexArrays');
+  glDisableVertexArrayAttrib:= dglGetProcAddress('glDisableVertexArrayAttrib');
+  glEnableVertexArrayAttrib:= dglGetProcAddress('glEnableVertexArrayAttrib');
+  glVertexArrayElementBuffer:= dglGetProcAddress('glVertexArrayElementBuffer');
+  glVertexArrayVertexBuffer:= dglGetProcAddress('glVertexArrayVertexBuffer');
+  glVertexArrayVertexBuffers:= dglGetProcAddress('glVertexArrayVertexBuffers');
+  glVertexArrayAttribBinding:= dglGetProcAddress('glVertexArrayAttribBinding');
+  glVertexArrayAttribFormat:= dglGetProcAddress('glVertexArrayAttribFormat');
+  glVertexArrayAttribIFormat:= dglGetProcAddress('glVertexArrayAttribIFormat');
+  glVertexArrayAttribLFormat:= dglGetProcAddress('glVertexArrayAttribLFormat');
+  glVertexArrayBindingDivisor:= dglGetProcAddress('glVertexArrayBindingDivisor');
+  glGetVertexArrayiv:= dglGetProcAddress('glGetVertexArrayiv');
+  glGetVertexArrayIndexediv:= dglGetProcAddress('glGetVertexArrayIndexediv');
+  glGetVertexArrayIndexed64iv:= dglGetProcAddress('glGetVertexArrayIndexed64iv');
+  glCreateSamplers:= dglGetProcAddress('glCreateSamplers');
+  glCreateProgramPipelines:= dglGetProcAddress('glCreateProgramPipelines');
+  glCreateQueries:= dglGetProcAddress('glCreateQueries');
+  glMemoryBarrierByRegion:= dglGetProcAddress('glMemoryBarrierByRegion');
+  glGetTextureSubImage:= dglGetProcAddress('glGetTextureSubImage');
+  glGetCompressedTextureSubImage:= dglGetProcAddress('glGetCompressedTextureSubImage');
+  glGetGraphicsResetStatus:= dglGetProcAddress('glGetGraphicsResetStatus');
+  glGetnCompressedTexImage:= dglGetProcAddress('glGetnCompressedTexImage');
+  glGetnTexImage:= dglGetProcAddress('glGetnTexImage');
+  glGetnUniformdv:= dglGetProcAddress('glGetnUniformdv');
+  glGetnUniformfv:= dglGetProcAddress('glGetnUniformfv');
+  glGetnUniformiv:= dglGetProcAddress('glGetnUniformiv');
+  glGetnUniformuiv:= dglGetProcAddress('glGetnUniformuiv');
+  glReadnPixels:= dglGetProcAddress('glReadnPixels');
+  glGetnMapdv:= dglGetProcAddress('glGetnMapdv');
+  glGetnMapfv:= dglGetProcAddress('glGetnMapfv');
+  glGetnMapiv:= dglGetProcAddress('glGetnMapiv');
+  glGetnPixelMapfv:= dglGetProcAddress('glGetnPixelMapfv');
+  glGetnPixelMapuiv:= dglGetProcAddress('glGetnPixelMapuiv');
+  glGetnPixelMapusv:= dglGetProcAddress('glGetnPixelMapusv');
+  glGetnPolygonStipple:= dglGetProcAddress('glGetnPolygonStipple');
+  glGetnColorTable:= dglGetProcAddress('glGetnColorTable');
+  glGetnConvolutionFilter:= dglGetProcAddress('glGetnConvolutionFilter');
+  glGetnSeparableFilter:= dglGetProcAddress('glGetnSeparableFilter');
+  glGetnHistogram:= dglGetProcAddress('glGetnHistogram');
+  glGetnMinmax:= dglGetProcAddress('glGetnMinmax');
+  glTextureBarrier:= dglGetProcAddress('glTextureBarrier');
+end;
 
 procedure Read_GL_NV_path_rendering;
 begin
@@ -17002,7 +17114,7 @@ begin
   glGetnUniformuivARB := dglGetProcAddress('glGetnUniformuivARB');
   glGetnUniformdvARB := dglGetProcAddress('glGetnUniformdvARB');
 end;
-  
+
 procedure Read_GL_ATI_draw_buffers;
 begin
   glDrawBuffersATI := dglGetProcAddress('glDrawBuffersATI');
@@ -17175,7 +17287,7 @@ begin
   glDebugMessageCallbackAMD := dglGetProcAddress('glDebugMessageCallbackAMD');
   glGetDebugMessageLogAMD := dglGetProcAddress('glGetDebugMessageLogAMD');
 end;
+
 procedure Read_GL_EXT_blend_color;
 begin
   glBlendColorEXT := dglGetProcAddress('glBlendColorEXT');
@@ -18359,7 +18471,7 @@ begin
   glGetVertexAttribLi64vNV := dglGetProcAddress('glGetVertexAttribLi64vNV');
   glGetVertexAttribLui64vNV := dglGetProcAddress('glGetVertexAttribLui64vNV');
   glVertexAttribLFormatNV := dglGetProcAddress('glVertexAttribLFormatNV');
-end;  
+end;
 
 procedure Read_GL_NV_vdpau_interop;
 begin
@@ -18374,7 +18486,7 @@ begin
   glVDPAUMapSurfacesNV := dglGetProcAddress('glVDPAUMapSurfacesNV');
   glVDPAUUnmapSurfacesNV := dglGetProcAddress('glVDPAUUnmapSurfacesNV');
 end;
-  
+
 procedure Read_GL_NV_texture_barrier;
 begin
   glTextureBarrierNV := dglGetProcAddress('glTextureBarrierNV');
@@ -18888,7 +19000,7 @@ end;
 procedure ReadExtensions;
 begin
   ReadOpenGLCore;
-  
+
   Read_GL_3DFX_tbuffer;
   Read_GL_APPLE_element_array;
   Read_GL_APPLE_fence;
@@ -18926,6 +19038,7 @@ begin
   Read_GL_ARB_sample_shading;
   Read_GL_ARB_shading_language_include;
   Read_GL_ARB_sparse_texture;
+  Read_GL_ARB_sparse_buffer;
   Read_GL_ARB_blend_func_extended;
   Read_GL_ARB_sampler_objects;
   Read_GL_ARB_timer_query;
@@ -19016,6 +19129,7 @@ begin
   Read_GL_IBM_vertex_array_lists;
   Read_GL_INGR_blend_func_separate;
   Read_GL_INTEL_parallel_arrays;
+  Read_GL_KHR_blend_equation_advanced;
   Read_GL_MESA_resize_buffers;
   Read_GL_MESA_window_pos;
   Read_GL_NV_evaluators;
@@ -19198,6 +19312,7 @@ begin
   GL_VERSION_4_2 := False;
   GL_VERSION_4_3 := False;
   GL_VERSION_4_4 := False;
+  GL_VERSION_4_5 := False;
 
   if MajorVersion = 1 then
   begin
@@ -19230,7 +19345,7 @@ begin
   begin
     GL_VERSION_2_1 := True;
     GL_VERSION_3_0 := True;
-    
+
     if MinorVersion >= 1 then
       GL_VERSION_3_1 := True;
     if MinorVersion >= 2 then
@@ -19254,6 +19369,8 @@ begin
       GL_VERSION_4_3 := True;
     if MinorVersion >= 4 then
       GL_VERSION_4_4 := True;
+    if MinorVersion >= 4 then
+      GL_VERSION_4_5:= True;
   end;
 
   // GLU
@@ -19291,12 +19408,12 @@ begin
   // Check all extensions
   Buffer := Int_GetExtensionString;
 
-  // === 3DFX ====================================================================
+  // 3DFX
   GL_3DFX_multisample := Int_CheckExtension(Buffer, 'GL_3DFX_multisample');
   GL_3DFX_tbuffer := Int_CheckExtension(Buffer, 'GL_3DFX_tbuffer');
   GL_3DFX_texture_compression_FXT1 := Int_CheckExtension(Buffer, 'GL_3DFX_texture_compression_FXT1');
 
-  // === APPLE ===================================================================
+  // APPLE
   GL_APPLE_client_storage := Int_CheckExtension(Buffer, 'GL_APPLE_client_storage');
   GL_APPLE_element_array := Int_CheckExtension(Buffer, 'GL_APPLE_element_array');
   GL_APPLE_fence := Int_CheckExtension(Buffer, 'GL_APPLE_fence');
@@ -19313,7 +19430,7 @@ begin
   GL_APPLE_row_bytes := Int_CheckExtension(Buffer, 'GL_APPLE_row_bytes');
   GL_APPLE_rgb_422 := Int_CheckExtension(Buffer, 'GL_APPLE_rgb_422');
 
-  // === ARB =====================================================================
+  // ARB
   GL_ARB_depth_texture := Int_CheckExtension(Buffer, 'GL_ARB_depth_texture');
   GL_ARB_fragment_program := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program');
   GL_ARB_imaging := Int_CheckExtension(Buffer, 'GL_ARB_imaging');
@@ -19407,64 +19524,72 @@ begin
   GL_ARB_viewport_array := Int_CheckExtension(Buffer, 'GL_ARB_viewport_array');
 
   // GL 4.2
-    GL_ARB_base_instance := Int_CheckExtension(Buffer, 'GL_ARB_base_instance');
-    GL_ARB_shading_language_420pack := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_420pack');
-    GL_ARB_transform_feedback_instanced := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback_instanced');
-    GL_ARB_compressed_texture_pixel_storage := Int_CheckExtension(Buffer, 'GL_ARB_compressed_texture_pixel_storage');
-    GL_ARB_conservative_depth := Int_CheckExtension(Buffer, 'GL_ARB_conservative_depth');
-    GL_ARB_internalformat_query := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query');
-    GL_ARB_map_buffer_alignment := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_alignment');
-    GL_ARB_shader_atomic_counters := Int_CheckExtension(Buffer, 'GL_ARB_shader_atomic_counters');
-    GL_ARB_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_load_store');
-    GL_ARB_shading_language_packing := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_packing');
-    GL_ARB_texture_storage := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage');
-  // END GL 4.2
+  GL_ARB_base_instance := Int_CheckExtension(Buffer, 'GL_ARB_base_instance');
+  GL_ARB_shading_language_420pack := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_420pack');
+  GL_ARB_transform_feedback_instanced := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback_instanced');
+  GL_ARB_compressed_texture_pixel_storage := Int_CheckExtension(Buffer, 'GL_ARB_compressed_texture_pixel_storage');
+  GL_ARB_conservative_depth := Int_CheckExtension(Buffer, 'GL_ARB_conservative_depth');
+  GL_ARB_internalformat_query := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query');
+  GL_ARB_map_buffer_alignment := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_alignment');
+  GL_ARB_shader_atomic_counters := Int_CheckExtension(Buffer, 'GL_ARB_shader_atomic_counters');
+  GL_ARB_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_load_store');
+  GL_ARB_shading_language_packing := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_packing');
+  GL_ARB_texture_storage := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage');
 
   // GL 4.3
-    GL_ARB_arrays_of_arrays := Int_CheckExtension(Buffer, 'GL_ARB_arrays_of_arrays');
-    GL_ARB_fragment_layer_viewport := Int_CheckExtension(Buffer, 'GL_ARB_fragment_layer_viewport');
-    GL_ARB_shader_image_size := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_size');
-    GL_ARB_ES3_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_compatibility');
-    GL_ARB_clear_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_clear_buffer_object');
-    GL_ARB_compute_shader := Int_CheckExtension(Buffer, 'GL_ARB_compute_shader');
-    GL_ARB_copy_image := Int_CheckExtension(Buffer, 'GL_ARB_copy_image');
-    GL_KHR_debug := Int_CheckExtension(Buffer, 'GL_KHR_debug');
-    GL_ARB_explicit_uniform_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_uniform_location');
-    GL_ARB_framebuffer_no_attachments := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_no_attachments');
-    GL_ARB_internalformat_query2 := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query2');
-    GL_ARB_invalidate_subdata := Int_CheckExtension(Buffer, 'GL_ARB_invalidate_subdata');
-    GL_ARB_multi_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_multi_draw_indirect');
-    GL_ARB_program_interface_query := Int_CheckExtension(Buffer, 'GL_ARB_program_interface_query');
-    GL_ARB_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_ARB_robust_buffer_access_behavior');
-    GL_ARB_shader_storage_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_shader_storage_buffer_object');
-    GL_ARB_stencil_texturing := Int_CheckExtension(Buffer, 'GL_ARB_stencil_texturing');
-    GL_ARB_texture_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_range');
-    GL_ARB_texture_query_levels := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_levels');
-    GL_ARB_texture_storage_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage_multisample');
-    GL_ARB_texture_view := Int_CheckExtension(Buffer, 'GL_ARB_texture_view');
-    GL_ARB_vertex_attrib_binding := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_binding');
-    GL_ARB_cl_event := Int_CheckExtension(Buffer, 'GL_ARB_cl_event');
-    GL_ARB_debug_output := Int_CheckExtension(Buffer, 'GL_ARB_debug_output');
-    GL_ARB_robustness := Int_CheckExtension(Buffer, 'GL_ARB_robustness');
-    GL_ARB_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_ARB_shader_stencil_export');
-  // END GL 4.3
+  GL_ARB_arrays_of_arrays := Int_CheckExtension(Buffer, 'GL_ARB_arrays_of_arrays');
+  GL_ARB_fragment_layer_viewport := Int_CheckExtension(Buffer, 'GL_ARB_fragment_layer_viewport');
+  GL_ARB_shader_image_size := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_size');
+  GL_ARB_ES3_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_compatibility');
+  GL_ARB_clear_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_clear_buffer_object');
+  GL_ARB_compute_shader := Int_CheckExtension(Buffer, 'GL_ARB_compute_shader');
+  GL_ARB_copy_image := Int_CheckExtension(Buffer, 'GL_ARB_copy_image');
+  GL_KHR_debug := Int_CheckExtension(Buffer, 'GL_KHR_debug');
+  GL_ARB_explicit_uniform_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_uniform_location');
+  GL_ARB_framebuffer_no_attachments := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_no_attachments');
+  GL_ARB_internalformat_query2 := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query2');
+  GL_ARB_invalidate_subdata := Int_CheckExtension(Buffer, 'GL_ARB_invalidate_subdata');
+  GL_ARB_multi_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_multi_draw_indirect');
+  GL_ARB_program_interface_query := Int_CheckExtension(Buffer, 'GL_ARB_program_interface_query');
+  GL_ARB_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_ARB_robust_buffer_access_behavior');
+  GL_ARB_shader_storage_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_shader_storage_buffer_object');
+  GL_ARB_stencil_texturing := Int_CheckExtension(Buffer, 'GL_ARB_stencil_texturing');
+  GL_ARB_texture_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_range');
+  GL_ARB_texture_query_levels := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_levels');
+  GL_ARB_texture_storage_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage_multisample');
+  GL_ARB_texture_view := Int_CheckExtension(Buffer, 'GL_ARB_texture_view');
+  GL_ARB_vertex_attrib_binding := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_binding');
+  GL_ARB_cl_event := Int_CheckExtension(Buffer, 'GL_ARB_cl_event');
+  GL_ARB_debug_output := Int_CheckExtension(Buffer, 'GL_ARB_debug_output');
+  GL_ARB_robustness := Int_CheckExtension(Buffer, 'GL_ARB_robustness');
+  GL_ARB_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_ARB_shader_stencil_export');
 
   // GL 4.4
-    GL_ARB_buffer_storage               := Int_CheckExtension(Buffer, 'GL_ARB_buffer_storage');
-    GL_ARB_clear_texture                := Int_CheckExtension(Buffer, 'GL_ARB_clear_texture');
-    GL_ARB_enhanced_layouts             := Int_CheckExtension(Buffer, 'GL_ARB_enhanced_layouts');
-    GL_ARB_multi_bind                   := Int_CheckExtension(Buffer, 'GL_ARB_multi_bind');
-    GL_ARB_query_buffer_object          := Int_CheckExtension(Buffer, 'GL_ARB_query_buffer_object');
-    GL_ARB_texture_mirror_clamp_to_edge := Int_CheckExtension(Buffer, 'GL_ARB_texture_mirror_clamp_to_edge');
-    GL_ARB_texture_stencil8             := Int_CheckExtension(Buffer, 'GL_ARB_texture_stencil8');
-    GL_ARB_vertex_type_10f_11f_11f_rev  := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_10f_11f_11f_rev');
-
-         GL_ARB_bindless_texture                                       := Int_CheckExtension(Buffer, 'GL_ARB_bindless_texture');
-               GL_ARB_sparse_texture                                                           := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
-
-  // END GL 4.4
-
-  // === ATI/AMD ================================================================
+  GL_ARB_buffer_storage := Int_CheckExtension(Buffer, 'GL_ARB_buffer_storage');
+  GL_ARB_clear_texture := Int_CheckExtension(Buffer, 'GL_ARB_clear_texture');
+  GL_ARB_enhanced_layouts := Int_CheckExtension(Buffer, 'GL_ARB_enhanced_layouts');
+  GL_ARB_multi_bind := Int_CheckExtension(Buffer, 'GL_ARB_multi_bind');
+  GL_ARB_query_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_query_buffer_object');
+  GL_ARB_texture_mirror_clamp_to_edge:= Int_CheckExtension(Buffer, 'GL_ARB_texture_mirror_clamp_to_edge');
+  GL_ARB_texture_stencil8 := Int_CheckExtension(Buffer, 'GL_ARB_texture_stencil8');
+  GL_ARB_vertex_type_10f_11f_11f_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_10f_11f_11f_rev');
+  GL_ARB_bindless_texture := Int_CheckExtension(Buffer, 'GL_ARB_bindless_texture');
+  GL_ARB_sparse_texture        := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
+
+  // GL 4.5
+  GL_ARB_clip_control := Int_CheckExtension(Buffer, 'GL_ARB_clip_control');
+  GL_ARB_cull_distance := Int_CheckExtension(Buffer, 'GL_ARB_cull_distance');
+  GL_ARB_ES3_1_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_1_compatibility');
+  GL_ARB_conditional_render_inverted := Int_CheckExtension(Buffer, 'GL_ARB_conditional_render_inverted');
+  GL_KHR_context_flush_control := Int_CheckExtension(Buffer, 'GL_KHR_context_flush_control');
+  GL_ARB_derivative_control := Int_CheckExtension(Buffer, 'GL_ARB_derivative_control');
+  GL_ARB_direct_state_access := Int_CheckExtension(Buffer, 'GL_ARB_direct_state_access');
+  GL_ARB_get_texture_sub_image := Int_CheckExtension(Buffer, 'GL_ARB_get_texture_sub_image');
+  GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
+  GL_ARB_shader_texture_image_samples := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_image_samples');
+  GL_ARB_texture_barrier := Int_CheckExtension(Buffer, 'GL_ARB_texture_barrier');
+
+  // ATI/AMD
   GL_ATI_draw_buffers := Int_CheckExtension(Buffer, 'GL_ATI_draw_buffers');
   GL_ATI_element_array := Int_CheckExtension(Buffer, 'GL_ATI_element_array');
   GL_ATI_envmap_bumpmap := Int_CheckExtension(Buffer, 'GL_ATI_envmap_bumpmap');
@@ -19496,9 +19621,9 @@ begin
   GL_AMD_stencil_operation_extended := Int_CheckExtension(Buffer, 'GL_AMD_stencil_operation_extended');
   GL_AMD_vertex_shader_viewport_index := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_viewport_index');
   GL_AMD_vertex_shader_layer := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_layer');
-       GL_AMD_query_buffer_object := Int_CheckExtension(Buffer, 'GL_AMD_query_buffer_object');
+  GL_AMD_query_buffer_object := Int_CheckExtension(Buffer, 'GL_AMD_query_buffer_object');
 
-  // === EXT =====================================================================
+  // EXT
   GL_EXT_422_pixels := Int_CheckExtension(Buffer, 'GL_EXT_422_pixels');
   GL_EXT_abgr := Int_CheckExtension(Buffer, 'GL_EXT_abgr');
   GL_EXT_bgra := Int_CheckExtension(Buffer, 'GL_EXT_bgra');
@@ -19593,35 +19718,42 @@ begin
   GL_EXT_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_EXT_shader_image_load_store');
   GL_EXT_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_EXT_vertex_attrib_64bit');
   GL_EXT_texture_sRGB_decode := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB_decode');
-  
-  // === HP ======================================================================
+
+  // HP
   GL_HP_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_HP_convolution_border_modes');
   GL_HP_image_transform := Int_CheckExtension(Buffer, 'GL_HP_image_transform');
   GL_HP_occlusion_test := Int_CheckExtension(Buffer, 'GL_HP_occlusion_test');
   GL_HP_texture_lighting := Int_CheckExtension(Buffer, 'GL_HP_texture_lighting');
 
-  // === IBM =====================================================================
+  // IBM
   GL_IBM_cull_vertex := Int_CheckExtension(Buffer, 'GL_IBM_cull_vertex');
   GL_IBM_multimode_draw_arrays := Int_CheckExtension(Buffer, 'GL_IBM_multimode_draw_arrays');
   GL_IBM_rasterpos_clip := Int_CheckExtension(Buffer, 'GL_IBM_rasterpos_clip');
   GL_IBM_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_IBM_texture_mirrored_repeat');
   GL_IBM_vertex_array_lists := Int_CheckExtension(Buffer, 'GL_IBM_vertex_array_lists');
 
-  // === INGR ====================================================================
+  // INGR
   GL_INGR_blend_func_separate := Int_CheckExtension(Buffer, 'GL_INGR_blend_func_separate');
   GL_INGR_color_clamp := Int_CheckExtension(Buffer, 'GL_INGR_color_clamp');
   GL_INGR_interlace_read := Int_CheckExtension(Buffer, 'GL_INGR_interlace_read');
   GL_INGR_palette_buffer := Int_CheckExtension(Buffer, 'GL_INGR_palette_buffer');
 
-  // === INTEL ===================================================================
+  // INTEL
   GL_INTEL_parallel_arrays := Int_CheckExtension(Buffer, 'GL_INTEL_parallel_arrays');
   GL_INTEL_texture_scissor := Int_CheckExtension(Buffer, 'GL_INTEL_texture_scissor');
 
-  // === MESA ====================================================================
+  // MESA
   GL_MESA_resize_buffers := Int_CheckExtension(Buffer, 'GL_MESA_resize_buffers');
   GL_MESA_window_pos := Int_CheckExtension(Buffer, 'GL_MESA_window_pos');
 
-  // === NVIDIA ==================================================================
+  // Khronos
+  // 4.5
+  GL_KHR_blend_equation_advanced := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced');
+  GL_KHR_blend_equation_advanced_coherent := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced_coherent');
+  GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
+  GL_KHR_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_KHR_robust_buffer_access_behavior');
+
+  // NVIDIA
   GL_NV_blend_square := Int_CheckExtension(Buffer, 'GL_NV_blend_square');
   GL_NV_copy_depth_to_color := Int_CheckExtension(Buffer, 'GL_NV_copy_depth_to_color');
   GL_NV_depth_clamp := Int_CheckExtension(Buffer, 'GL_NV_depth_clamp');
@@ -19684,26 +19816,26 @@ begin
   GL_NV_vdpau_interop := Int_CheckExtension(Buffer, 'GL_NV_vdpau_interop');
   GL_NV_texture_barrier := Int_CheckExtension(Buffer, 'GL_NV_texture_barrier');
   // 4.3
-       GL_NV_path_rendering := Int_CheckExtension(Buffer, 'GL_NV_path_rendering');
+  GL_NV_path_rendering := Int_CheckExtension(Buffer, 'GL_NV_path_rendering');
   GL_NV_bindless_texture := Int_CheckExtension(Buffer, 'GL_NV_bindless_texture');
-       GL_NV_shader_atomic_float := Int_CheckExtension(Buffer, 'GL_NV_shader_atomic_float');
+  GL_NV_shader_atomic_float := Int_CheckExtension(Buffer, 'GL_NV_shader_atomic_float');
 
-  // === OML =====================================================================
+  // OML
   GL_OML_interlace := Int_CheckExtension(Buffer, 'GL_OML_interlace');
   GL_OML_resample := Int_CheckExtension(Buffer, 'GL_OML_resample');
   GL_OML_subsample := Int_CheckExtension(Buffer, 'GL_OML_subsample');
 
-  // === PGI =====================================================================
+  // PGI
   GL_PGI_misc_hints := Int_CheckExtension(Buffer, 'GL_PGI_misc_hints');
   GL_PGI_vertex_hints := Int_CheckExtension(Buffer, 'GL_PGI_vertex_hints');
 
-  // === REND ====================================================================
+  // REND
   GL_REND_screen_coordinates := Int_CheckExtension(Buffer, 'GL_REND_screen_coordinates');
 
-  // === S3 ======================================================================
+  // S3
   GL_S3_s3tc := Int_CheckExtension(Buffer, 'GL_S3_s3tc');
 
-  // === SGIS ====================================================================
+  // SGIS
   GL_SGIS_detail_texture := Int_CheckExtension(Buffer, 'GL_SGIS_detail_texture');
   GL_SGIS_fog_function := Int_CheckExtension(Buffer, 'GL_SGIS_fog_function');
   GL_SGIS_generate_mipmap := Int_CheckExtension(Buffer, 'GL_SGIS_generate_mipmap');
@@ -19720,7 +19852,7 @@ begin
   GL_SGIS_texture_lod := Int_CheckExtension(Buffer, 'GL_SGIS_texture_lod');
   GL_SGIS_texture_select := Int_CheckExtension(Buffer, 'GL_SGIS_texture_select');
 
-  // === SGIX ====================================================================
+  // SGIX
   GL_FfdMaskSGIX := Int_CheckExtension(Buffer, 'GL_FfdMaskSGIX');
   GL_SGIX_async := Int_CheckExtension(Buffer, 'GL_SGIX_async');
   GL_SGIX_async_histogram := Int_CheckExtension(Buffer, 'GL_SGIX_async_histogram');
@@ -19764,13 +19896,13 @@ begin
   GL_SGIX_ycrcb_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb_subsample');
   GL_SGIX_ycrcba := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcba');
 
-  // === SGI =====================================================================
+  // SGI
   GL_SGI_color_matrix := Int_CheckExtension(Buffer, 'GL_SGI_color_matrix');
   GL_SGI_color_table := Int_CheckExtension(Buffer, 'GL_SGI_color_table');
   GL_SGI_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGI_depth_pass_instrument');
   GL_SGI_texture_color_table := Int_CheckExtension(Buffer, 'GL_SGI_texture_color_table');
 
-  // === SUN =====================================================================
+  // SUN
   GL_SUNX_constant_data := Int_CheckExtension(Buffer, 'GL_SUNX_constant_data');
   GL_SUN_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_SUN_convolution_border_modes');
   GL_SUN_global_alpha := Int_CheckExtension(Buffer, 'GL_SUN_global_alpha');
@@ -19779,12 +19911,12 @@ begin
   GL_SUN_triangle_list := Int_CheckExtension(Buffer, 'GL_SUN_triangle_list');
   GL_SUN_vertex := Int_CheckExtension(Buffer, 'GL_SUN_vertex');
 
-  // === WIN =====================================================================
+  // WIN
   GL_WIN_phong_shading := Int_CheckExtension(Buffer, 'GL_WIN_phong_shading');
   GL_WIN_specular_fog := Int_CheckExtension(Buffer, 'GL_WIN_specular_fog');
 
   {$IFDEF DGL_WIN}
-  // === WGL =====================================================================
+  // WGL
   WGL_3DFX_multisample := Int_CheckExtension(Buffer, 'WGL_3DFX_multisample');
   WGL_ARB_buffer_region := Int_CheckExtension(Buffer, 'WGL_ARB_buffer_region');
   WGL_ARB_extensions_string := Int_CheckExtension(Buffer, 'WGL_ARB_extensions_string');
@@ -19829,13 +19961,13 @@ begin
   WGL_NV_DX_interop := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
   WGL_OML_sync_control := Int_CheckExtension(Buffer, 'WGL_OML_sync_control');
   WGL_3DL_stereo_control := Int_CheckExtension(Buffer, 'WGL_3DL_stereo_control');
-
+  WGL_ARB_context_flush_control := Int_CheckExtension(Buffer, 'WGL_ARB_context_flush_control');
   WIN_draw_range_elements := Int_CheckExtension(Buffer, 'WIN_draw_range_elements');
   WIN_swap_hint := Int_CheckExtension(Buffer, 'WIN_swap_hint');
   {$ENDIF}
 
   {$IFDEF DGL_LINUX}
-  // === GLX =====================================================================
+  // GLX
   GLX_ARB_multisample := Int_CheckExtension(Buffer, 'GLX_ARB_multisample');
   GLX_ARB_fbconfig_float := Int_CheckExtension(Buffer, 'GLX_ARB_fbconfig_float');
   GLX_ARB_get_proc_address := Int_CheckExtension(Buffer, 'GLX_ARB_get_proc_address');
@@ -19852,7 +19984,9 @@ begin
   GLX_EXT_texture_from_pixmap := Int_CheckExtension(Buffer, 'GLX_EXT_texture_from_pixmap');
   GLX_EXT_swap_control := Int_CheckExtension(Buffer, 'GLX_EXT_swap_control');
   GLX_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'GLX_EXT_create_context_es2_profile');
+  GLX_ARB_context_flush_control := Int_CheckExtension(Buffer, 'GLX_ARB_context_flush_control');
   {$ENDIF}
+
   ImplementationRead := True;
 end;
 
@@ -20159,3 +20293,4 @@ initialization
 finalization
 
 end.
+
diff --git a/readme b/readme
index 80565b8..59b0b95 100644 (file)
--- a/readme
+++ b/readme
  Version 4.2a   Added Mac OS X patch by Andrey Gruzdev                   (SW)\r
  \r
  Version 4.3    Added OpenGL 4.3 Core                                    (SW)\r
-                               Added GL_ARB_arrays_of_arrays                                (SW)\r
-                               Added GL_ARB_fragment_layer_viewport                     (SW)\r
-                               Added GL_ARB_shader_image_size                           (SW)\r
-                               Added GL_ARB_ES3_compatibility                           (SW)\r
-                               Added GL_ARB_clear_buffer_object                         (SW)\r
-                               Added GL_ARB_compute_shader                              (SW)\r
-                               Added GL_ARB_copy_image                                  (SW)\r
-                               Added GL_KHR_debug                                       (SW)\r
-                               Added GL_ARB_explicit_uniform_location,                  (SW)\r
-                               Added GL_ARB_framebuffer_no_attachments                  (SW)\r
-                               Added GL_ARB_internalformat_query2                       (SW)\r
-                               Added GL_ARB_invalidate_subdata                          (SW)\r
-                               Added GL_ARB_multi_draw_indirect                         (SW)\r
-                               Added GL_ARB_program_interface_query                     (SW)\r
-                               Added GL_ARB_robust_buffer_access_behavior               (SW)\r
-                               Added GL_ARB_shader_storage_buffer_object                (SW)\r
-                               Added GL_ARB_stencil_texturing                           (SW)\r
-                               Added GL_ARB_texture_buffer_range                        (SW)\r
-                               Added GL_ARB_texture_query_levels                        (SW)\r
-                               Added GL_ARB_texture_storage_multisample                 (SW)\r
-                               Added GL_ARB_texture_view                                (SW)\r
-                               Added GL_ARB_vertex_attrib_binding                       (SW)\r
-                               Added new vendor-specific extensions                                     (SW)\r
-                               Added GL_NV_path_rendering                               (SW)\r
-                               Added GL_AMD_pinned_memory                               (SW)\r
+                Added GL_ARB_arrays_of_arrays                               (SW)\r
+                Added GL_ARB_fragment_layer_viewport                     (SW)\r
+                Added GL_ARB_shader_image_size                           (SW)\r
+                Added GL_ARB_ES3_compatibility                           (SW)\r
+                Added GL_ARB_clear_buffer_object                         (SW)\r
+                Added GL_ARB_compute_shader                              (SW)\r
+                Added GL_ARB_copy_image                                  (SW)\r
+                Added GL_KHR_debug                                       (SW)\r
+                Added GL_ARB_explicit_uniform_location,                  (SW)\r
+                Added GL_ARB_framebuffer_no_attachments                  (SW)\r
+                Added GL_ARB_internalformat_query2                       (SW)\r
+                Added GL_ARB_invalidate_subdata                          (SW)\r
+                Added GL_ARB_multi_draw_indirect                         (SW)\r
+                Added GL_ARB_program_interface_query                     (SW)\r
+                Added GL_ARB_robust_buffer_access_behavior               (SW)\r
+                Added GL_ARB_shader_storage_buffer_object                (SW)\r
+                Added GL_ARB_stencil_texturing                           (SW)\r
+                Added GL_ARB_texture_buffer_range                        (SW)\r
+                Added GL_ARB_texture_query_levels                        (SW)\r
+                Added GL_ARB_texture_storage_multisample                 (SW)\r
+                Added GL_ARB_texture_view                                (SW)\r
+                Added GL_ARB_vertex_attrib_binding                       (SW)\r
+                Added new vendor-specific extensions                     (SW)\r
+                Added GL_NV_path_rendering                               (SW)\r
+                Added GL_AMD_pinned_memory                               (SW)\r
                 Added GL_AMD_stencil_operation_extended                  (SW)\r
                 Added GL_AMD_vertex_shader_viewport_index                (SW)\r
                 Added GL_AMD_vertex_shader_layer                         (SW)\r
                 Added GL_AMD_query_buffer_object                         (SW)\r
                 Added CreateRenderingContextVersion                      (SW)\r
                                \r
- Version 4.4    Added ARB_buffer_storage                                 (SW)\r
+ Version 4.4    Added OpenGL 4.4 Core                                    (SW)\r
+                Added ARB_buffer_storage                                 (SW)\r
                 Added ARB_clear_texture extension                        (SW)\r
                 Added ARB_enhanced_layouts extension                     (SW)\r
                 Added ARB_multi_bind extension                           (SW)\r
                 Added MAX_VERTEX_ATTRIB_STRIDE stat                      (SW)\r
                 Added missing functions for GL_EXT_direct_state_access   (SW)\r
                 GL3.0+ uses non-deprecated way of getting extensions\r
-                               (thanks to frenK)                                                                (SW)\r
+                (thanks to frenK)                                        (SW)\r
                 Added missing cdecl for TglXGetVisualFromFBConfig        (SW)\r
+                               \r
+ Version 4.5    Added OpenGL 4.5 Core                                    (SW)\r
+                Added GL_ARB_ES3_1_compatibility                         (SW)\r
+                Added GL_ARB_clip_control                                (SW)\r
+                Added GL_ARB_conditional_render_inverted                 (SW)\r
+                Added GL_ARB_cull_distance                               (SW)\r
+                Added GL_ARB_derivative_control                          (SW)\r
+                Added GL_ARB_direct_state_access                         (SW)\r
+                Added GL_ARB_get_texture_sub_image                       (SW)\r
+                Added GL_ARB_shader_texture_image_samples                (SW)\r
+                Added GL_ARB_texture_barrier                             (SW)\r
+                Added GL_KHR_blend_equation_advanced                     (SW)\r
+                Added GL_KHR_blend_equation_advanced_coherent            (SW)\r
+                Added GL_KHR_context_flush_control                       (SW)\r
+                Added GL_KHR_robustness                                  (SW)\r
+                Added GL_KHR_robust_buffer_access_behavior               (SW)\r
+                Added GLX_ARB_context_flush_control                      (SW)\r
+                Added WGL_ARB_context_flush_control                      (SW)
\ No newline at end of file