From: saschawillems Date: Sun, 24 Aug 2014 10:43:43 +0000 (+0200) Subject: OpenGL 4.5 X-Git-Url: https://git.delphigl.com/?a=commitdiff_plain;h=0969cc46e6b22ce8ec3bf76ebee441aa88a95e99;p=LazOpenGLCore.git OpenGL 4.5 --- diff --git a/dglOpenGL.pas b/dglOpenGL.pas index 484bc89..11f59b9 100644 --- a/dglOpenGL.pas +++ b/dglOpenGL.pas @@ -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 @@ -11,17 +11,14 @@ ============================================================================== - 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 : @@ -33,395 +30,27 @@ 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 --- a/readme +++ b/readme @@ -390,31 +390,31 @@ 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_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) @@ -423,7 +423,8 @@ Added GL_AMD_query_buffer_object (SW) Added CreateRenderingContextVersion (SW) - Version 4.4 Added ARB_buffer_storage (SW) + Version 4.4 Added OpenGL 4.4 Core (SW) + Added ARB_buffer_storage (SW) Added ARB_clear_texture extension (SW) Added ARB_enhanced_layouts extension (SW) Added ARB_multi_bind extension (SW) @@ -434,5 +435,23 @@ 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) + (thanks to frenK) (SW) Added missing cdecl for TglXGetVisualFromFBConfig (SW) + + Version 4.5 Added OpenGL 4.5 Core (SW) + Added GL_ARB_ES3_1_compatibility (SW) + Added GL_ARB_clip_control (SW) + Added GL_ARB_conditional_render_inverted (SW) + Added GL_ARB_cull_distance (SW) + Added GL_ARB_derivative_control (SW) + Added GL_ARB_direct_state_access (SW) + Added GL_ARB_get_texture_sub_image (SW) + Added GL_ARB_shader_texture_image_samples (SW) + Added GL_ARB_texture_barrier (SW) + Added GL_KHR_blend_equation_advanced (SW) + Added GL_KHR_blend_equation_advanced_coherent (SW) + Added GL_KHR_context_flush_control (SW) + Added GL_KHR_robustness (SW) + Added GL_KHR_robust_buffer_access_behavior (SW) + Added GLX_ARB_context_flush_control (SW) + Added WGL_ARB_context_flush_control (SW) \ No newline at end of file