{ ============================================================================
- OpenGL 4.4 - Headertranslation
- Version 4.4b
- Date : 2014/05/08
+ OpenGL 4.5 - Headertranslation
+ Version 4.5
+ Date : 2014/08/23
Supported environments and targets :
- (Win32) Delphi 4 and up
==============================================================================
- Containts the translations of glext.h, gl_1_1.h, glu.h and weglext.h.
- It also contains some helperfunctions that were inspired by those
- found in Mike Lischke's OpenGL12.pas.
-
- Copyright (C) DGL-OpenGL2-Portteam
+ Copyright (C) DGL-OpenGL-Portteam
All Rights Reserved
Obtained through:
+ Bitbucket source repository - https://bitbucket.org/saschawillems/dglopengl
Delphi OpenGL Community(DGL) - www.delphigl.com
- Converted and maintained by DGL's GL2.0-Team :
+ Converted and maintained by DGL's OpenGL-Portteam :
- Sascha Willems - http://www.saschawillems.de
- Steffen Xonna (Lossy eX) - http://www.dev-center.de
Additional input :
sigsegv (libdl.so)
==============================================================================
- You may retrieve the latest version of this file at the Delphi OpenGL
- Community home page, located at http://www.delphigl.com/
- The contents of this file are used with permission, subject to
- the Mozilla Public License Version 1.1 (the "License"); you may
- not use this file except in compliance with the License. You may
- obtain a copy of the License at
- http://www.mozilla.org/MPL/MPL-1.1.html
+ You may retrieve the latest version of this file at the Delphi OpenGL
+ Community home page, located at http://www.delphigl.com/
- Software distributed under the License is distributed on an
- "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- implied. See the License for the specific language governing
- rights and limitations under the License.
+ The contents of this file are used with permission, subject to
+ the Mozilla Public License Version 1.1 (the "License"); you may
+ not use this file except in compliance with the License. You may
+ obtain a copy of the License at
+ http://www.mozilla.org/MPL/MPL-1.1.html
-==============================================================================
- History :
- Version 1.0 Initial Release
- Version 1.1 Added PPointer in Tpyessection for compatiblity with Delphi
- versions lower than 7 (SW)
- Added a function named RaiseLastOSError including a comment
- on how to make it run under Delphi versions lower than 7 (SW)
- Added some data types according to the GL-Syntax (SW)
- Version 1.2 Fixed some problems with getting the addresses of some
- Extensions (e.g. glTexImage3D) where the EXT/ARB did work
- but not the core-functions (SW)
- Version 1.3 A second call to ReadimplementationProperties won't
- revert to the default libs anymore (MW)
- Libraries now will be released if necessary (MW)
- Version 1.3a Small fixes for glSlang-functions (SW)
- Version 1.3b Fixed a small bug with GL_ARB_shader_objects, that lead
- lead to that extension not loaded correctly (SW)
- Version 1.3c more GL 1.5 compliance by FOG_COORD_xx and
- ARB less VBO and occlusion query routines (MW)
- Version 1.3d Fixed linebreaks (should now be corrected under D5) (SW)
- Version 1.4 Changed header to correspond to the OpenGL-Shading
- Language specification 1.10 :
- - Added new GL_SAMPLER_*-Constants
- - Added Constant GL_SHADING_LANGUAGE_VERSION_ARB
- - Added Constant GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
- - Added Constant GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB (SW)
- Version 1.4a Fixed a missing stdcall for glBindAttribLocationARB (SW)
- Version 1.4b Fixed declaration for glUniform*(f/i)vARB (added count) (MW)
- glCompileShaderARB changed from function to procedure (MW)
- Version 1.5 Added support for FreePascal (BR)
- Added type TGLVectorf3/TGLVector3f (SW)
- Version 1.6 Added Extension GL_EXT_framebuffer_object (SX)
- Version 1.7 Added Extension GL_ARB_fragment_program_shadow (SX)
- Added Extension GL_ARB_draw_buffers (SX)
- Added Extension GL_ARB_texture_rectangle (SX)
- Added Extension GL_ARB_color_buffer_float (SX)
- Added Extension GL_ARB_half_float_pixel (SX)
- Added Extension GL_ARB_texture_float (SX)
- Added Extension GL_ARB_pixel_buffer_object (SX)
- Added Extension GL_EXT_depth_bounds_test (SX)
- Added Extension GL_EXT_texture_mirror_clamp (SX)
- Added Extension GL_EXT_blend_equation_separate (SX)
- Added Extension GL_EXT_pixel_buffer_object (SX)
- Added Extension GL_EXT_texture_compression_dxt1 (SX)
- Added Extension GL_NV_fragment_program_option (SX)
- Added Extension GL_NV_fragment_program2 (SX)
- Added Extension GL_NV_vertex_program2_option (SX)
- Added Extension GL_NV_vertex_program3 (SX)
- Version 1.8 Added explicit delegate type definitions (LM)
- Added .Net 1.1 Support (LM)
- Added .Net overloaded functions (LM)
- Added delayed extension loading and stubs (LM)
- Added automatic InitOpenGL call in CreateRenderingContext(LM)
- Added extra Read_* function (LM)
- Version 2.0 fixed some Problem with version string and damn drivers.
- String 1.15 identified as OpenGL 1.5 not as OpenGL 1.1 (SX)
- Removed unexisting extension GL_ARB_texture_mirror_repeat(SX)
- Added Extension WGL_ARB_pixel_format_float (SX)
- Added Extension GL_EXT_stencil_clear_tag (SX)
- Added Extension GL_EXT_texture_rectangle (SX)
- Added Extension GL_EXT_texture_edge_clamp (SX)
- Some 1.5 Core Consts added (now completed) (SX)
- gluProject need pointer for not .net (SX)
- gluUnProject need pointer for not .net (SX)
- wglUseFontOutlines* need pointer for not .net (SX)
- wglSwapMultipleBuffers need pointer for not .net (SX)
- Bug with wglGetExtensionsStringEXT removed
- different type for .net (SX)
- Added OpenGL 2.0 Core (SX)
- Version 2.0.1 fixed some problems with glGetActiveAttrib in 2.0 Core (SX)
- fixes some problems with gluProject (SX)
- fixes some problems with gluUnProject (SX)
- fixes some problems with gluTessVertex (SX)
- fixes some problems with gluLoadSamplingMatrices (SX)
- Version 2.1 Removed .NET Support (SX)
- Better support for Linux (SX)
- Better Codeformation (SX)
- Added some more Vector/Matrix types (SX)
- Added OpenGL 2.1 Core (SX)
- Added Extension GL_EXT_packed_depth_stencil (SX)
- Added Extension GL_EXT_texture_sRGB (SX)
- Added Extension GL_EXT_framebuffer_blit (SX)
- Added Extension GL_EXT_framebuffer_multisample (SX)
- Added Extension GL_EXT_timer_query (SX)
- Added Extension GL_EXT_gpu_program_parameters (SX)
- Added Extension GL_EXT_bindable_uniform (SX)
- Added Extension GL_EXT_draw_buffers2 (SX)
- Added Extension GL_EXT_draw_instanced (SX)
- Added Extension GL_EXT_framebuffer_sRGB (SX)
- Added Extension GL_EXT_geometry_shader4 (SX)
- Added Extension GL_EXT_gpu_shader4 (SX)
- Added Extension GL_EXT_packed_float (SX)
- Added Extension GL_EXT_texture_array (SX)
- Added Extension GL_EXT_texture_buffer_object (SX)
- Added Extension GL_EXT_texture_compression_latc (SX)
- Added Extension GL_EXT_texture_compression_rgtc (SX)
- Added Extension GL_EXT_texture_integer (SX)
- Added Extension GL_EXT_texture_shared_exponent (SX)
- Added Extension GL_NV_depth_buffer_float (SX)
- Added Extension GL_NV_fragment_program4 (SX)
- Added Extension GL_NV_framebuffer_multisample_coverage (SX)
- Added Extension GL_NV_geometry_program4 (SX)
- Added Extension GL_NV_gpu_program4 (SX)
- Added Extension GL_NV_parameter_buffer_object (SX)
- Added Extension GL_NV_transform_feedback (SX)
- Added Extension GL_NV_vertex_program4 (SX)
- Version 3.0 fixed some const of GL_EXT_texture_shared_exponent (SX)
- possible better support for mac (SX)
- Added OpenGL 3.0 Core (SX)
- Added Extension GL_ARB_depth_buffer_float (SX)
- Added Extension GL_ARB_draw_instanced (SX)
- Added Extension GL_ARB_framebuffer_object (SX)
- Added Extension GL_ARB_framebuffer_sRGB (SX)
- Added Extension GL_ARB_geometry_shader4 (SX)
- Added Extension GL_ARB_half_float_vertex (SX)
- Added Extension GL_ARB_instanced_arrays (SX)
- Added Extension GL_ARB_map_buffer_range (SX)
- Added Extension GL_ARB_texture_buffer_object (SX)
- Added Extension GL_ARB_texture_compression_rgtc (SX)
- Added Extension GL_ARB_texture_rg (SX)
- Added Extension GL_ARB_vertex_array_object (SX)
- Added Extension GL_NV_conditional_render (SX)
- Added Extension GL_NV_present_video (SX)
- Added Extension GL_EXT_transform_feedback (SX)
- Added Extension GL_EXT_direct_state_access (SX)
- Added Extension GL_EXT_vertex_array_bgra (SX)
- Added Extension GL_EXT_texture_swizzle (SX)
- Added Extension GL_NV_explicit_multisample (SX)
- Added Extension GL_NV_transform_feedback2 (SX)
- Added Extension WGL_ARB_create_context (SX)
- Added Extension WGL_NV_present_video (SX)
- Added Extension WGL_NV_video_out (SX)
- Added Extension WGL_NV_swap_group (SX)
- Added Extension WGL_NV_gpu_affinity (SX)
- Added define DGL_TINY_HEADER to suppress automatic
- function loading (SX)
- glProcedure renamed to dglGetProcAddress and now it's
- visible from outside the unit to custom load functions (SX)
- dglCheckExtension added to check if an extension exists (SX)
- Read_GL_ARB_buffer_object renamed to
- Read_GL_ARB_vertex_buffer_object (SX)
- Version 3.0.1 fixed an problem with fpc (SX)
- Version 3.0.2 fixed an problem with WGL_ARB_create_context (SX)
- Version 3.2 Functions from GL_VERSION_3_0 where updated (SX)
- Functions from GL_ARB_map_buffer_range where updated (SX)
- Functions from GL_NV_present_video where added (SX)
- Added consts of GL_ARB_instanced_arrays (SX)
- Defines to identify Delphi was changed (prevent for
- feature maintenance) (SX)
- Added Extension GL_ATI_meminfo (SX)
- Added Extension GL_AMD_performance_monitor (SX)
- Added Extension GL_AMD_texture_texture4 (SX)
- Added Extension GL_AMD_vertex_shader_tesselator (SX)
- Added Extension GL_EXT_provoking_vertex (SX)
- Added Extension WGL_AMD_gpu_association (SX)
- Added OpenGL 3.1 Core (SX)
- All deprecated stuff can be disabled if you undef the
- define DGL_DEPRECATED (SX)
- Added Extension GL_ARB_uniform_buffer_object (SX)
- Added Extension GL_ARB_compatibility (SX)
- Added Extension GL_ARB_copy_buffer (SX)
- Added Extension GL_ARB_shader_texture_lod (SX)
- Remove function from GL_NV_present_video (SX)
- Added Extension WGL_3DL_stereo_control (SX)
- Added Extension GL_EXT_texture_snorm (SX)
- Added Extension GL_AMD_draw_buffers_blend (SX)
- Added Extension GL_APPLE_texture_range (SX)
- Added Extension GL_APPLE_float_pixels (SX)
- Added Extension GL_APPLE_vertex_program_evaluators (SX)
- Added Extension GL_APPLE_aux_depth_stencil (SX)
- Added Extension GL_APPLE_object_purgeable (SX)
- Added Extension GL_APPLE_row_bytes (SX)
- Added OpenGL 3.2 Core (SX)
- Added Extension GL_ARB_depth_clamp (SX)
- Added Extension GL_ARB_draw_elements_base_vertex (SX)
- Added Extension GL_ARB_fragment_coord_conventions (SX)
- Added Extension GL_ARB_provoking_vertex (SX)
- Added Extension GL_ARB_seamless_cube_map (SX)
- Added Extension GL_ARB_sync (SX)
- Added Extension GL_ARB_texture_multisample (SX)
- Added Extension GL_ARB_vertex_array_bgra (SX)
- Added Extension GL_ARB_draw_buffers_blend (SX)
- Added Extension GL_ARB_sample_shading (SX)
- Added Extension GL_ARB_texture_cube_map_array (SX)
- Added Extension GL_ARB_texture_gather (SX)
- Added Extension GL_ARB_texture_query_lod (SX)
- Added Extension WGL_ARB_create_context_profile (SX)
- Added GLX Core up to Version 1.4 (SX)
- Added Extension GLX_ARB_multisample (SX)
- Added Extension GLX_ARB_fbconfig_float (SX)
- Added Extension GLX_ARB_get_proc_address (SX)
- Added Extension GLX_ARB_create_context (SX)
- Added Extension GLX_ARB_create_context_profile (SX)
- Added Extension GLX_EXT_visual_info (SX)
- Added Extension GLX_EXT_visual_rating (SX)
- Added Extension GLX_EXT_import_context (SX)
- Added Extension GLX_EXT_fbconfig_packed_float (SX)
- Added Extension GLX_EXT_framebuffer_sRGB (SX)
- Added Extension GLX_EXT_texture_from_pixmap (SX)
- Version 3.2.1 Fixed some problems with Delphi < 6 (SX)
- Version 3.2.2 Added Extension GL_APPLE_rgb_422 (SX)
- Added Extension GL_EXT_separate_shader_objects (SX)
- Added Extension GL_NV_video_capture (SX)
- Added Extension GL_NV_copy_image (SX)
- Added Extension GL_NV_parameter_buffer_object2 (SX)
- Added Extension GL_NV_shader_buffer_load (SX)
- Added Extension GL_NV_vertex_buffer_unified_memory (SX)
- Added Extension GL_NV_texture_barrier (SX)
- Variable GL_EXT_texture_snorm will be filled (SX)
- Variable GL_APPLE_row_bytes will be filled (SX)
- Added Extension WGL_NV_video_capture (SX)
- Added Extension WGL_NV_copy_image (SX)
- WGL_NV_video_out now named WGL_NV_video_output (SX)
- Added Extension GLX_EXT_swap_control (SX)
- Version 3.2.3 Fixed an Problem with glGetAttribLocation (SX)
- Added const GL_UNIFORM_BUFFER_EXT (SX)
- Functions of GL_NV_texture_barrier now will be loaded (SX)
- Version 4.0 Changes on Extension GL_ARB_texture_gather (SX)
- Changes on Extension GL_NV_shader_buffer_load (SX)
- Added OpenGL 3.3 Core (SX)
- Added OpenGL 4.0 Core (SX)
- Added Extension GL_AMD_shader_stencil_export (SX)
- Added Extension GL_AMD_seamless_cubemap_per_texture (SX)
- Added Extension GL_ARB_shading_language_include (SX)
- Added Extension GL_ARB_texture_compression_bptc (SX)
- Added Extension GL_ARB_blend_func_extended (SX)
- Added Extension GL_ARB_explicit_attrib_location (SX)
- Added Extension GL_ARB_occlusion_query2 (SX)
- Added Extension GL_ARB_sampler_objects (SX)
- Added Extension GL_ARB_shader_bit_encoding (SX)
- Added Extension GL_ARB_texture_rgb10_a2ui (SX)
- Added Extension GL_ARB_texture_swizzle (SX)
- Added Extension GL_ARB_timer_query (SX)
- Added Extension GL_ARB_vertex_type_2_10_10_10_rev (SX)
- Added Extension GL_ARB_draw_indirect (SX)
- Added Extension GL_ARB_gpu_shader5 (SX)
- Added Extension GL_ARB_gpu_shader_fp64 (SX)
- Added Extension GL_ARB_shader_subroutine (SX)
- Added Extension GL_ARB_tessellation_shader (SX)
- Added Extension GL_ARB_texture_buffer_object_rgb32 (SX)
- Added Extension GL_ARB_transform_feedback2 (SX)
- Added Extension GL_ARB_transform_feedback3 (SX)
- Version 4.1 Possible fix some strange linux behavior (SX)
- All function uses GL instead of TGL types (SX)
- GL_AMD_vertex_shader_tesselator will be read now (SX)
- GL_AMD_draw_buffers_blend will be read now (SX)
- Changes on glStencilFuncSeparate (GL_2_0) (SX)
- Changes on GL_VERSION_3_2 (SX)
- Changes on GL_VERSION_3_3 (SX)
- Changes on GL_VERSION_4_0 (SX)
- Changes on GL_ARB_sample_shading (SX)
- Changes on GL_ARB_texture_cube_map_array (SX)
- Changes on GL_ARB_gpu_shader5 (SX)
- Changes on GL_ARB_transform_feedback3 (SX)
- Changes on GL_ARB_sampler_objects (SX)
- Changes on GL_ARB_gpu_shader_fp64 (SX)
- Changes on GL_APPLE_element_array (SX)
- Changes on GL_APPLE_vertex_array_range (SX)
- Changes on GL_NV_transform_feedback (SX)
- Changes on GL_NV_vertex_buffer_unified_memory (SX)
- Changes on GL_EXT_multi_draw_arrays (SX)
- Changes on GL_EXT_direct_state_access (SX)
- Changes on GL_AMD_performance_monitor (SX)
- Changes on GL_AMD_seamless_cubemap_per_texture (SX)
- Changes on GL_EXT_geometry_shader4 (SX)
- Added OpenGL 4.1 Core (SX)
- Added Extension GL_ARB_ES2_compatibility (SX)
- Added Extension GL_ARB_get_program_binary (SX)
- Added Extension GL_ARB_separate_shader_objects (SX)
- Added Extension GL_ARB_shader_precision (SX)
- Added Extension GL_ARB_vertex_attrib_64bit (SX)
- Added Extension GL_ARB_viewport_array (SX)
- Added Extension GL_ARB_cl_event (SX)
- Added Extension GL_ARB_debug_output (SX)
- Added Extension GL_ARB_robustness (SX)
- Added Extension GL_ARB_shader_stencil_export (SX)
- Added Extension GL_AMD_conservative_depth (SX)
- Added Extension GL_EXT_shader_image_load_store (SX)
- Added Extension GL_EXT_vertex_attrib_64bit (SX)
- Added Extension GL_NV_gpu_program5 (SX)
- Added Extension GL_NV_gpu_shader5 (SX)
- Added Extension GL_NV_shader_buffer_store (SX)
- Added Extension GL_NV_tessellation_program5 (SX)
- Added Extension GL_NV_vertex_attrib_integer_64bit (SX)
- Added Extension GL_NV_multisample_coverage (SX)
- Added Extension GL_AMD_name_gen_delete (SX)
- Added Extension GL_AMD_debug_output (SX)
- Added Extension GL_NV_vdpau_interop (SX)
- Added Extension GL_AMD_transform_feedback3_lines_triangles (SX)
- Added Extension GL_AMD_depth_clamp_separate (SX)
- Added Extension GL_EXT_texture_sRGB_decode (SX)
- Added Extension WGL_ARB_framebuffer_sRGB (SX)
- Added Extension WGL_ARB_create_context_robustness (SX)
- Added Extension WGL_EXT_create_context_es2_profile (SX)
- Added Extension WGL_NV_multisample_coverage (SX)
- Added Extension GLX_ARB_vertex_buffer_object (SX)
- Added Extension GLX_ARB_framebuffer_sRGB (SX)
- Added Extension GLX_ARB_create_context_robustness (SX)
- Added Extension GLX_EXT_create_context_es2_profile (SX)
- Version 4.1a Fix for dglGetProcAddress with FPC and linux (def param) (SW)
- Version 4.2 Added OpenGL 4.2 Core (SW)
- Added Extension GL_ARB_base_instance (SW)
- Added Extension GL_ARB_shading_language_420pack (SW)
- Added Extension GL_ARB_transform_feedback_instanced (SW)
- Added Extension GL_ARB_compressed_texture_pixel_storage (SW)
- Added Extension GL_ARB_conservative_depth (SW)
- Added Extension GL_ARB_internalformat_query (SW)
- Added Extension GL_ARB_map_buffer_alignment (SW)
- Added Extension GL_ARB_shader_atomic_counters (SW)
- Added Extension GL_ARB_shader_image_load_store (SW)
- Added Extension GL_ARB_shading_language_packing (SW)
- Added Extension GL_ARB_texture_storage (SW)
- Added Extension WGL_NV_DX_interop (SW)
- Added Define for WGL_EXT_create_context_es2_profile (SW)
- Version 4.2a Added Mac OS X patch by Andrey Gruzdev (SW)
- Version 4.3 Added OpenGL 4.3 Core (SW)
- Added GL_ARB_arrays_of_arrays (SW)
- Added GL_ARB_fragment_layer_viewport (SW)
- Added GL_ARB_shader_image_size (SW)
- Added GL_ARB_ES3_compatibility (SW)
- Added GL_ARB_clear_buffer_object (SW)
- Added GL_ARB_compute_shader (SW)
- Added GL_ARB_copy_image (SW)
- Added GL_KHR_debug (SW)
- Added GL_ARB_explicit_uniform_location, (SW)
- Added GL_ARB_framebuffer_no_attachments (SW)
- Added GL_ARB_internalformat_query2 (SW)
- Added GL_ARB_invalidate_subdata (SW)
- Added GL_ARB_multi_draw_indirect (SW)
- Added GL_ARB_program_interface_query (SW)
- Added GL_ARB_robust_buffer_access_behavior (SW)
- Added GL_ARB_shader_storage_buffer_object (SW)
- Added GL_ARB_stencil_texturing (SW)
- Added GL_ARB_texture_buffer_range (SW)
- Added GL_ARB_texture_query_levels (SW)
- Added GL_ARB_texture_storage_multisample (SW)
- Added GL_ARB_texture_view (SW)
- Added GL_ARB_vertex_attrib_binding (SW)
- Added new vendor-specific extensions (SW)
- Added GL_NV_path_rendering (SW)
- Added GL_AMD_pinned_memory (SW)
- Added GL_AMD_stencil_operation_extended (SW)
- Added GL_AMD_vertex_shader_viewport_index (SW)
- Added GL_AMD_vertex_shader_layer (SW)
- Added GL_NV_bindless_texture (SW)
- Added GL_NV_shader_atomic_float (SW)
- Added GL_AMD_query_buffer_object (SW)
- Added CreateRenderingContextVersion (SW)
- Version 4.4 Added ARB_buffer_storage (SW)
- Added ARB_clear_texture extension (SW)
- Added ARB_enhanced_layouts extension (SW)
- Added ARB_multi_bind extension (SW)
- Added ARB_query_buffer_object extension (SW)
- Added ARB_texture_mirror_clamp_to_edge extension (SW)
- Added ARB_texture_stencil8 extension (SW)
- Added ARB_vertex_type_10f_11f_11f_rev extension (SW)
- Added MAX_VERTEX_ATTRIB_STRIDE stat (SW)
- Added missing functions for GL_EXT_direct_state_access (SW)
- GL3.0+ uses non-deprecated way of getting extensions
- (thanks to frenK) (SW)
- Added missing cdecl for TglXGetVisualFromFBConfig (SW)
- Version 4.4a Fixed parameter type for glGetProgramInfoLog (SW)
- (thanks to glAwesome)
- Version 4.4b Fixed parameter type for glGetShaderInfoLog (SW)
- (thanks to glAwesome)
- Added ARB_sparse_texture (SW)
- Added ARB_bindless_texture (SW)
+ Software distributed under the License is distributed on an
+ "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ rights and limitations under the License.
==============================================================================
- Header based on glext.h rev 87 (2012-08-06)
- Header based on wglext.h rev 24 (2012/01/04)
- Header based on glxext.h rev 33 (2012/02/29) (only Core/ARB/EXT)
- This is an important notice for maintaining. Dont remove it. And make sure
- to keep it up to date
+
+ History : see readme.md
+
+
============================================================================== }
{$define DGL_DEPRECATED}
{$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
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}
GLvoid = Pointer;
GLint64 = Int64;
GLuint64 = {$IFDEF DELPHI6_AND_DOWN} Int64 {$ELSE} UInt64 {$ENDIF};
-
+
TGLenum = GLenum;
TGLboolean = GLboolean;
TGLbitfield = GLbitfield;
// GL_VERSION_1_5
GLintptr = GLint;
+ PGLintptr = ^GLintptr;
GLsizeiptr = GLsizei;
// GL_ARB_vertex_buffer_object
// WGL_NV_video_capture
HVIDEOINPUTDEVICENV = THandle;
PHVIDEOINPUTDEVICENV = ^HVIDEOINPUTDEVICENV;
-
+
HPGPUNV = THandle;
HGPUNV = THandle;
// GL_NV_vdpau_interop
GLvdpauSurfaceNV = GLintptr;
PGLvdpauSurfaceNV = ^GLvdpauSurfaceNV;
-
-
+
+
// GLX
{$IFDEF DGL_LINUX}
GLXContext = Pointer;
Flags: DWORD;
rcVirtualScreen: TRect;
end;
-
+
type
{$IFDEF FPC}
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,
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,
GL_SUN_triangle_list,
GL_SUN_vertex,
+ // WGL
GL_WIN_phong_shading,
GL_WIN_specular_fog,
WGL_3DFX_multisample,
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,
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
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;
// 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;
// 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;
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;
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;
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;
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
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;
{ 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;
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;
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;
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;
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;
// 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;
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
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;
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;
// 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;
// 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;
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;
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;
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}
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}
{ 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) }
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}
// 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}
// 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
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}
// 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;
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;
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;
// 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) }
glGetProgramBinary: TglGetProgramBinary;
glProgramBinary: TglProgramBinary;
glProgramParameteri: TglProgramParameteri;
-
+
// GL_ARB_separate_shader_objects
glUseProgramStages: TglUseProgramStages;
glActiveShaderProgram: TglActiveShaderProgram;
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;
// GL_AMD_vertex_shader_tesselator
glTessellationFactorAMD: TglTessellationFactorAMD;
glTessellationModeAMD: TglTessellationModeAMD;
-
+
// GL_AMD_draw_buffers_blend
glBlendFuncIndexedAMD: TglBlendFuncIndexedAMD;
glBlendFuncSeparateIndexedAMD: TglBlendFuncSeparateIndexedAMD;
glVertexAttribLPointerEXT: TglVertexAttribLPointerEXT;
glGetVertexAttribLdvEXT: TglGetVertexAttribLdvEXT;
glVertexArrayVertexAttribLOffsetEXT: TglVertexArrayVertexAttribLOffsetEXT;
-
+
// GL_HP_image_transform
glImageTransformParameteriHP: TglImageTransformParameteriHP;
glImageTransformParameterfHP: TglImageTransformParameterfHP;
// 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;
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;
{$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;
{$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;
if LibHandle = nil then
LibHandle := GL_LibHandle;
+
{$IFDEF DGL_WIN}
Result := GetProcAddress(HMODULE(LibHandle), ProcName);
Result := dlsym(LibHandle, ProcName);
{$ENDIF}
-
+
{$IFDEF DGL_MAC}
Result := GetProcAddress(HMODULE(LibHandle), ProcName);
- {$ENDIF}
+ {$ENDIF}
end;
glXGetContextIDEXT := dglGetProcAddress('glXGetContextIDEXT');
glXImportContextEXT := dglGetProcAddress('glXImportContextEXT');
glXFreeContextEXT := dglGetProcAddress('glXFreeContextEXT');
-
+
// GLX_EXT_texture_from_pixmap
glXBindTexImageEXT := dglGetProcAddress('glXBindTexImageEXT');
glXReleaseTexImageEXT := dglGetProcAddress('glXReleaseTexImageEXT');
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;
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;
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');
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
glGetnUniformuivARB := dglGetProcAddress('glGetnUniformuivARB');
glGetnUniformdvARB := dglGetProcAddress('glGetnUniformdvARB');
end;
-
+
procedure Read_GL_ATI_draw_buffers;
begin
glDrawBuffersATI := dglGetProcAddress('glDrawBuffersATI');
glDebugMessageCallbackAMD := dglGetProcAddress('glDebugMessageCallbackAMD');
glGetDebugMessageLogAMD := dglGetProcAddress('glGetDebugMessageLogAMD');
end;
-
+
procedure Read_GL_EXT_blend_color;
begin
glBlendColorEXT := dglGetProcAddress('glBlendColorEXT');
glGetVertexAttribLi64vNV := dglGetProcAddress('glGetVertexAttribLi64vNV');
glGetVertexAttribLui64vNV := dglGetProcAddress('glGetVertexAttribLui64vNV');
glVertexAttribLFormatNV := dglGetProcAddress('glVertexAttribLFormatNV');
-end;
+end;
procedure Read_GL_NV_vdpau_interop;
begin
glVDPAUMapSurfacesNV := dglGetProcAddress('glVDPAUMapSurfacesNV');
glVDPAUUnmapSurfacesNV := dglGetProcAddress('glVDPAUUnmapSurfacesNV');
end;
-
+
procedure Read_GL_NV_texture_barrier;
begin
glTextureBarrierNV := dglGetProcAddress('glTextureBarrierNV');
procedure ReadExtensions;
begin
ReadOpenGLCore;
-
+
Read_GL_3DFX_tbuffer;
Read_GL_APPLE_element_array;
Read_GL_APPLE_fence;
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;
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;
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
begin
GL_VERSION_2_1 := True;
GL_VERSION_3_0 := True;
-
+
if MinorVersion >= 1 then
GL_VERSION_3_1 := True;
if MinorVersion >= 2 then
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
// 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');
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');
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');
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');
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');
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');
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');
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');
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');
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');
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;
finalization
end.
+