From 383ffeebcdc0a7c2864a52a3426e87f288bc9c9b Mon Sep 17 00:00:00 2001 From: saschawillems Date: Thu, 3 Sep 2015 14:04:40 +0200 Subject: [PATCH] Added recently announced OpenGL extensions and some missing consts --- README.md | 95 +++++++++------ dglOpenGL.pas | 314 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 370 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index fd50e66..e41f54d 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # Delphi / Pascal OpenGL header translation - OpenGL version 4.5 -- Header revision 4.5a +- Header revision 4.5b - Copyright (C) DGL-OpenGL-Portteam - All Rights Reserved -- Last update : 2014-12-06 +- Last update : 2015-09-03 - Last updater : Sascha Willems # Supported environments and targets @@ -12,7 +12,7 @@ - (Win32, Win64, Linux, MacOSX) FreePascal (1.9.3 and up) # Obtained through -- Bitbucket source repository - https://bitbucket.org/saschawillems/dglopengl +- GitHub repository - https://github.com/SaschaWillems/dglOpenGL - Delphi OpenGL Community(DGL) - www.delphigl.com # Credits @@ -44,10 +44,10 @@ > Note : If you want to use our header for projects whose licensing is not compatible with the MPL, just ask for a changed license! # 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 @@ -58,25 +58,25 @@ Added a function named RaiseLastOSError including a comment - 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 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 : @@ -84,21 +84,21 @@ Added a function named RaiseLastOSError including a comment - 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) @@ -116,7 +116,7 @@ Added a function named RaiseLastOSError including a comment - 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) @@ -124,7 +124,7 @@ Added a function named RaiseLastOSError including a comment - 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) @@ -138,17 +138,17 @@ Added a function named RaiseLastOSError including a comment - 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 (SX) +- Bug with wglGetExtensionsStringEXT removed (SX) - 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) @@ -182,7 +182,7 @@ Added a function named RaiseLastOSError including a comment - 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) @@ -217,13 +217,13 @@ Added a function named RaiseLastOSError including a comment - 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) @@ -279,10 +279,10 @@ Added a function named RaiseLastOSError including a comment - 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) @@ -298,12 +298,12 @@ Added a function named RaiseLastOSError including a comment - 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) @@ -330,7 +330,7 @@ Added a function named RaiseLastOSError including a comment - 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) @@ -389,10 +389,10 @@ Added a function named RaiseLastOSError including a comment - 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) @@ -408,10 +408,10 @@ Added a function named RaiseLastOSError including a comment - 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) @@ -446,7 +446,7 @@ Added a function named RaiseLastOSError including a comment - Added GL_NV_shader_atomic_float (SW) - Added GL_AMD_query_buffer_object (SW) - Added CreateRenderingContextVersion (SW) - + # Version 4.4 - Added OpenGL 4.4 Core (SW) - Added ARB_buffer_storage (SW) @@ -462,7 +462,7 @@ Added a function named RaiseLastOSError including a comment - GL3.0+ uses non-deprecated way of getting extensions - (thanks to frenK) (SW) - Added missing cdecl for TglXGetVisualFromFBConfig (SW) - + # Version 4.5 - Added OpenGL 4.5 Core (SW) - Added GL_ARB_ES3_1_compatibility (SW) @@ -488,3 +488,26 @@ Added a function named RaiseLastOSError including a comment - Added Exception mask settings for 64-Bit (SetExceptionMask) (SW) - Changed 64-Bit detection for FPC - Added TVector3f for backwards compatibility + +# Version 4.6a +- Added missing constant GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED (SW) +- Added missing constant GL_TEXTURE_BUFFER_BINDING (SW) +- Added missing extension GL_NV_conservative_raster (SW) +- Added recently announced OpenGL extensions : + - Added GL_ARB_ES3_2_compatibility (SW) + - Added GL_ARB_fragment_shader_interlock (SW) + - Added GL_ARB_gpu_shader_int64 (SW) + - Added GL_ARB_parallel_shader_compile (SW) + - Added GL_ARB_post_depth_coverage (SW) + - Added GL_ARB_sample_locations (SW) + - Added GL_ARB_shader_atomic_counter_ops (SW) + - Added GL_ARB_shader_ballot (SW) + - Added GL_ARB_shader_clock (SW) + - Added GL_ARB_shader_viewport_layer_array (SW) + - Added GL_ARB_sparse_texture2 (SW) + - Added GL_ARB_sparse_texture_clamp (SW) + - Added GL_KHR_no_error (SW) + - Added GL_NV_conservative_raster_dilate (SW) + - Added GL_OVR_multiview (SW) + - Added GL_OVR_multiview2 (SW) + - Added GL_INTEL_framebuffer_CMAA (SW) diff --git a/dglOpenGL.pas b/dglOpenGL.pas index fef3108..6f14c2a 100644 --- a/dglOpenGL.pas +++ b/dglOpenGL.pas @@ -524,6 +524,7 @@ var GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3, + GL_ARB_texture_filter_minmax, GL_ARB_texture_mirrored_repeat, GL_ARB_transpose_matrix, GL_ARB_vertex_blend, @@ -533,6 +534,7 @@ var GL_ARB_shader_objects, GL_ARB_vertex_shader, GL_ARB_fragment_shader, + GL_ARB_fragment_shader_interlock, GL_ARB_shading_language_100, GL_ARB_occlusion_query, GL_ARB_texture_non_power_of_two, @@ -560,6 +562,7 @@ var GL_ARB_compatibility, GL_ARB_copy_buffer, GL_ARB_shader_texture_lod, + GL_ARB_shader_viewport_layer_array, GL_ARB_depth_clamp, GL_ARB_draw_elements_base_vertex, GL_ARB_fragment_coord_conventions, @@ -570,6 +573,9 @@ var GL_ARB_vertex_array_bgra, GL_ARB_draw_buffers_blend, GL_ARB_sample_shading, + GL_ARB_sample_locations, + GL_ARB_sparse_texture2, + GL_ARB_sparse_texture_clamp, GL_ARB_texture_cube_map_array, GL_ARB_texture_gather, GL_ARB_texture_query_lod, @@ -578,8 +584,11 @@ var GL_ARB_blend_func_extended, GL_ARB_explicit_attrib_location, GL_ARB_occlusion_query2, + GL_ARB_parallel_shader_compile, + GL_ARB_post_depth_coverage, GL_ARB_sampler_objects, GL_ARB_shader_bit_encoding, + GL_ARB_shader_clock, GL_ARB_texture_rgb10_a2ui, GL_ARB_texture_swizzle, GL_ARB_timer_query, @@ -587,17 +596,22 @@ var GL_ARB_draw_indirect, GL_ARB_gpu_shader5, GL_ARB_gpu_shader_fp64, + GL_ARB_gpu_shader_int64, GL_ARB_shader_subroutine, GL_ARB_tessellation_shader, GL_ARB_texture_buffer_object_rgb32, GL_ARB_transform_feedback2, GL_ARB_transform_feedback3, GL_ARB_ES2_compatibility, + GL_ARB_ES3_2_compatibility, GL_ARB_get_program_binary, GL_ARB_separate_shader_objects, + GL_ARB_shader_atomic_counter_ops, GL_ARB_shader_precision, + GL_ARB_shader_ballot, GL_ARB_vertex_attrib_64bit, GL_ARB_viewport_array, + GL_KHR_no_error, // GL 4.2 GL_ARB_base_instance, @@ -813,6 +827,7 @@ var GL_INGR_color_clamp, GL_INGR_interlace_read, GL_INGR_palette_buffer, + GL_INTEL_framebuffer_CMAA, GL_INTEL_parallel_arrays, GL_INTEL_texture_scissor, GL_MESA_resize_buffers, @@ -862,6 +877,9 @@ var GL_NV_transform_feedback, GL_NV_vertex_program4, GL_NV_conditional_render, + GL_NV_conservative_raster, + GL_NV_conservative_raster_dilate, + GL_NV_present_video, GL_NV_explicit_multisample, GL_NV_transform_feedback2, @@ -881,6 +899,10 @@ var GL_OML_interlace, GL_OML_resample, GL_OML_subsample, + + GL_OVR_multiview, + GL_OVR_multiview2, + GL_PGI_misc_hints, GL_PGI_vertex_hints, GL_REND_screen_coordinates, @@ -3230,6 +3252,10 @@ const GL_DOT3_RGB_ARB = $86AE; GL_DOT3_RGBA_ARB = $86AF; + // GL_ARB_texture_filter_minmax + GL_TEXTURE_REDUCTION_MODE_ARB = $9366; + GL_WEIGHTED_AVERAGE_ARB = $9367; + // GL_ARB_texture_mirrored_repeat GL_MIRRORED_REPEAT_ARB = $8370; @@ -3740,6 +3766,16 @@ const GL_SAMPLE_SHADING_ARB = $8C36; GL_MIN_SAMPLE_SHADING_VALUE_ARB = $8C37; + // GL_ARB_sample_locations + GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB = $933D; + GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB = $933E; + GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB = $933F; + GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB = $9340; + GL_SAMPLE_LOCATION_ARB = $8E50; + GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB = $9341; + GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB = $9342; + GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB = $9343; + // GL_ARB_texture_cube_map_array GL_TEXTURE_CUBE_MAP_ARRAY_ARB = $9009; GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = $900A; @@ -3774,6 +3810,10 @@ const // GL_ARB_occlusion_query2 GL_ANY_SAMPLES_PASSED = $8C2F; + // GL_ARB_parallel_shader_compile + GL_MAX_SHADER_COMPILER_THREADS_ARB = $91B0; + GL_COMPLETION_STATUS_ARB = $91B1; + // GL_ARB_sampler_objects GL_SAMPLER_BINDING = $8919; @@ -3836,6 +3876,15 @@ const GL_DOUBLE_MAT4x2 = $8F4D; GL_DOUBLE_MAT4x3 = $8F4E; + // GL_ARB_gpu_shader_int64 + GL_INT64_ARB = $140E; + GL_INT64_VEC2_ARB = $8FE9; + GL_INT64_VEC3_ARB = $8FEA; + GL_INT64_VEC4_ARB = $8FEB; + GL_UNSIGNED_INT64_VEC2_ARB = $8FF5; + GL_UNSIGNED_INT64_VEC3_ARB = $8FF6; + GL_UNSIGNED_INT64_VEC4_ARB = $8FF7; + // GL_ARB_shader_subroutine GL_ACTIVE_SUBROUTINES = $8DE5; GL_ACTIVE_SUBROUTINE_UNIFORMS = $8DE6; @@ -3926,6 +3975,11 @@ const GL_MAX_FRAGMENT_UNIFORM_VECTORS = $8DFD; GL_RGB565 = $8D62; + // GL_ARB_ES3_2_compatibility + GL_PRIMITIVE_BOUNDING_BOX_ARB = $092BE; + GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB = $09381; + GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB = $09382; + // GL_ARB_get_program_binary GL_PROGRAM_BINARY_RETRIEVABLE_HINT = $8257; GL_PROGRAM_BINARY_LENGTH = $8741; @@ -6378,6 +6432,17 @@ const GL_QUERY_BY_REGION_WAIT_NV = $8E15; GL_QUERY_BY_REGION_NO_WAIT_NV = $8E16; + // GL_NV_conservative_raster + GL_CONSERVATIVE_RASTERIZATION_NV = $9346; + GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV = $9347; + GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV = $9348; + GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV = $9349; + + // GL_NV_conservative_raster_dilate + GL_CONSERVATIVE_RASTER_DILATE_NV = $9379; + GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV = $937A; + GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV = $937B; + // GL_NV_present_video GL_FRAME_NV = $8E26; GL_FIELDS_NV = $8E27; @@ -6550,6 +6615,10 @@ const GL_FORMAT_SUBSAMPLE_24_24_OML = $8982; GL_FORMAT_SUBSAMPLE_244_244_OML = $8983; + // GL_OVR_multiview + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR = $9630; + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR = $9632; + // GL_PGI_misc_hints GL_PREFER_DOUBLEBUFFER_HINT_PGI = $1A1F8; GL_CONSERVE_MEMORY_HINT_PGI = $1A1FD; @@ -7033,6 +7102,9 @@ const // GL_KHR_robustness GL_CONTEXT_ROBUST_ACCESS = $90F3; + // GL_KHR_no_error + GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR = $00000008; + // GL_ARB_fragment_shader GL_FRAGMENT_SHADER_ARB = $8B30; GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = $8B49; // 1.4 @@ -8815,6 +8887,9 @@ type TglMapBufferRange = function(target: GLenum; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} TglFlushMappedBufferRange = procedure(target: GLenum; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + // GL_ARB_parallel_shader_compile + TglMaxShaderCompilerThreadsARB = procedure(count : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + // GL_ARB_texture_buffer_object TglTexBufferARB = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} @@ -8869,6 +8944,11 @@ type // GL_ARB_sample_shading TglMinSampleShadingARB = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + // GL_ARB_sample_locations + TglFramebufferSampleLocationsfvARB = procedure(target : GLenum; start : GLuint; count : GLsizei; const v : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglNamedFramebufferSampleLocationsfvARB = procedure(framebuffer : GLuint; start : GLuint; count : GLsizei; const v : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglEvaluateDepthValuesARB = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + // GL_ARB_shading_language_include TglNamedStringARB = procedure(type_: GLenum; namelen: GLint; const name: PGLchar; stringlen: GLint; const string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} TglDeleteNamedStringARB = procedure(namelen: GLint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} @@ -8966,6 +9046,44 @@ type TglUniformMatrix4x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} TglGetUniformdv = procedure(program_: GLuint; location: GLint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + // GL_ARB_gpu_shader_int64 + TglUniform1i64ARB = procedure(location : GLint; x : GLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglUniform2i64ARB = procedure(location : GLint; x : GLint64; y : GLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglUniform3i64ARB = procedure(location : GLint; x : GLint64; y : GLint64; z : GLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglUniform4i64ARB = procedure(location : GLint; x : GLint64; y : GLint64; z : GLint64; w : GLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglUniform1i64vARB = procedure(location : GLint; count : GLsizei; const value : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglUniform2i64vARB = procedure(location : GLint; count : GLsizei; const value : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglUniform3i64vARB = procedure(location : GLint; count : GLsizei; const value : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglUniform4i64vARB = procedure(location : GLint; count : GLsizei; const value : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglUniform1ui64ARB = procedure(location : GLint; x : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglUniform2ui64ARB = procedure(location : GLint; x : GLuint64; y : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglUniform3ui64ARB = procedure(location : GLint; x : GLuint64; y : GLuint64; z : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglUniform4ui64ARB = procedure(location : GLint; x : GLuint64; y : GLuint64; z : GLuint64; w : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglUniform1ui64vARB = procedure(location : GLint; count : GLsizei; const value : PGLuint64 ); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglUniform2ui64vARB = procedure(location : GLint; count : GLsizei; const value : PGLuint64 ); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglUniform3ui64vARB = procedure(location : GLint; count : GLsizei; const value : PGLuint64 ); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglUniform4ui64vARB = procedure(location : GLint; count : GLsizei; const value : PGLuint64 ); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglGetUniformi64vARB = procedure(program_ : GLuint; location : GLint; params : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglGetUniformui64vARB = procedure(program_ : GLuint; location : GLint; params : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglGetnUniformi64vARB = procedure(program_ : GLuint; location : GLint; bufSize : GLsizei; params : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglGetnUniformui64vARB = procedure(program_ : GLuint; location : GLint; bufSize : GLsizei; params : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglProgramUniform1i64ARB = procedure(program_ : GLuint; location : GLint; x : GLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglProgramUniform2i64ARB = procedure(program_ : GLuint; location : GLint; x : GLint64; y : GLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglProgramUniform3i64ARB = procedure(program_ : GLuint; location : GLint; x : GLint64; y : GLint64; z : GLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglProgramUniform4i64ARB = procedure(program_ : GLuint; location : GLint; x : GLint64; y : GLint64; z : GLint64; w : GLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglProgramUniform1i64vARB = procedure(program_ : GLuint; location : GLint; count : GLsizei; const value : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglProgramUniform2i64vARB = procedure(program_ : GLuint; location : GLint; count : GLsizei; const value : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglProgramUniform3i64vARB = procedure(program_ : GLuint; location : GLint; count : GLsizei; const value : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglProgramUniform4i64vARB = procedure(program_ : GLuint; location : GLint; count : GLsizei; const value : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglProgramUniform1ui64ARB = procedure(program_ : GLuint; location : GLint; x : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglProgramUniform2ui64ARB = procedure(program_ : GLuint; location : GLint; x : GLuint64; y : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglProgramUniform3ui64ARB = procedure(program_ : GLuint; location : GLint; x : GLuint64; y : GLuint64; z : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglProgramUniform4ui64ARB = procedure(program_ : GLuint; location : GLint; x : GLuint64; y : GLuint64; z : GLuint64; w : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglProgramUniform1ui64vARB = procedure(program_ : GLuint; location : GLint; count : GLsizei; const value : PGLuint64 ); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglProgramUniform2ui64vARB = procedure(program_ : GLuint; location : GLint; count : GLsizei; const value : PGLuint64 ); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglProgramUniform3ui64vARB = procedure(program_ : GLuint; location : GLint; count : GLsizei; const value : PGLuint64 ); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + TglProgramUniform4ui64vARB = procedure(program_ : GLuint; location : GLint; count : GLsizei; const value : PGLuint64 ); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + // GL_ARB_shader_subroutine TglGetSubroutineUniformLocation = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} TglGetSubroutineIndex = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} @@ -9158,6 +9276,9 @@ type // GL_ARB_debug_output2 + // GL_ARB_ES3_2_compatibility + TglPrimitiveBoundingBoxARB = procedure(minX : GLfloat; minY : GLfloat; minZ : GLfloat; minW : GLfloat; maxX : GLfloat; maxY : GLfloat; maxZ : GLfloat; maxW : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + // GL_ARB_ES3_compatibility // GL_ARB_explicit_uniform_location @@ -10156,6 +10277,9 @@ type // GL_INGR_blend_func_separate TglBlendFuncSeparateINGR = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + // GL_INTEL_framebuffer_CMAA + TglApplyFramebufferAttachmentCMAAINTEL = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + // GL_INTEL_parallel_arrays TglVertexPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} TglNormalPointervINTEL = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} @@ -10429,6 +10553,12 @@ type TglBeginConditionalRenderNV = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} TglEndConditionalRenderNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + // GL_NV_conservative_raster + TglSubpixelPrecisionBiasNV = procedure(xbits : GLuint; ybits : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + + // GL_NV_conservative_raster_dilate + TglConservativeRasterParameterfNV = procedure(pname : GLenum; value : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} + // GL_NV_present_video TglPresentFrameKeyedNV = procedure(video_slot: GLuint; minPresentTime: GLuint64EXT; beginPresentTimeId: GLuint; presentDuratioId: GLuint; type_: GLenum; target0: GLenum; fill0: GLuint; key0: GLuint; target1: GLenum; fill1: GLuint; key1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} TglPresentFrameDualFillNV = procedure(video_slot: GLuint; minPresentTime: GLuint64EXT; beginPresentTimeId: GLuint; presentDurationId: GLuint; type_: GLenum; target0: GLenum; fill0: GLuint; target1: GLenum; fill1: GLuint; target2: GLenum; fill2: GLuint; target3: GLenum; fill3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} @@ -10673,7 +10803,8 @@ type // GL_AMD_query_buffer_object - // + // GL_OVR_multiview + TglFramebufferTextureMultiviewOVR = procedure(target : GLenum; attachment : GLenum; texture : GLuint; level : GLint; baseViewIndex : GLint; numViews : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} // GL_PGI_misc_hints TglHintPGI = procedure(target: GLenum; mode: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF} @@ -12284,6 +12415,11 @@ var // GL_ARB_sample_shading glMinSampleShadingARB: TglMinSampleShadingARB; + // GL_ARB_sample_locations + glFramebufferSampleLocationsfvARB : TglFramebufferSampleLocationsfvARB; + glNamedFramebufferSampleLocationsfvARB : TglNamedFramebufferSampleLocationsfvARB; + glEvaluateDepthValuesARB : TglEvaluateDepthValuesARB; + // GL_ARB_shading_language_include glNamedStringARB: TglNamedStringARB; glDeleteNamedStringARB: TglDeleteNamedStringARB; @@ -12381,6 +12517,44 @@ var glUniformMatrix4x3dv: TglUniformMatrix4x3dv; glGetUniformdv: TglGetUniformdv; + // GL_ARB_gpu_shader_int64 + glUniform1i64ARB : TglUniform1i64ARB; + glUniform2i64ARB : TglUniform2i64ARB; + glUniform3i64ARB : TglUniform3i64ARB; + glUniform4i64ARB : TglUniform4i64ARB; + glUniform1i64vARB : TglUniform1i64vARB; + glUniform2i64vARB : TglUniform2i64vARB; + glUniform3i64vARB : TglUniform3i64vARB; + glUniform4i64vARB : TglUniform4i64vARB; + glUniform1ui64ARB : TglUniform1ui64ARB; + glUniform2ui64ARB : TglUniform2ui64ARB; + glUniform3ui64ARB : TglUniform3ui64ARB; + glUniform4ui64ARB : TglUniform4ui64ARB; + glUniform1ui64vARB : TglUniform1ui64vARB; + glUniform2ui64vARB : TglUniform2ui64vARB; + glUniform3ui64vARB : TglUniform3ui64vARB; + glUniform4ui64vARB : TglUniform4ui64vARB; + glGetUniformi64vARB : TglGetUniformi64vARB; + glGetUniformui64vARB : TglGetUniformui64vARB; + glGetnUniformi64vARB : TglGetnUniformi64vARB; + glGetnUniformui64vARB : TglGetnUniformui64vARB; + glProgramUniform1i64ARB : TglProgramUniform1i64ARB; + glProgramUniform2i64ARB : TglProgramUniform2i64ARB; + glProgramUniform3i64ARB : TglProgramUniform3i64ARB; + glProgramUniform4i64ARB : TglProgramUniform4i64ARB; + glProgramUniform1i64vARB : TglProgramUniform1i64vARB; + glProgramUniform2i64vARB : TglProgramUniform2i64vARB; + glProgramUniform3i64vARB : TglProgramUniform3i64vARB; + glProgramUniform4i64vARB : TglProgramUniform4i64vARB; + glProgramUniform1ui64ARB : TglProgramUniform1ui64ARB; + glProgramUniform2ui64ARB : TglProgramUniform2ui64ARB; + glProgramUniform3ui64ARB : TglProgramUniform3ui64ARB; + glProgramUniform4ui64ARB : TglProgramUniform4ui64ARB ; + glProgramUniform1ui64vARB : TglProgramUniform1ui64vARB; + glProgramUniform2ui64vARB : TglProgramUniform2ui64vARB; + glProgramUniform3ui64vARB : TglProgramUniform3ui64vARB; + glProgramUniform4ui64vARB : TglProgramUniform4ui64vARB; + // GL_ARB_shader_subroutine glGetSubroutineUniformLocation: TglGetSubroutineUniformLocation; glGetSubroutineIndex: TglGetSubroutineIndex; @@ -12417,6 +12591,12 @@ var glDepthRangef: TglDepthRangef; glClearDepthf: TglClearDepthf; + // GL_ARB_ES3_2_compatibility + glPrimitiveBoundingBoxARB : TglPrimitiveBoundingBoxARB; + + // GL_ARB_parallel_shader_compile + glMaxShaderCompilerThreadsARB : TglMaxShaderCompilerThreadsARB; + // GL_ARB_get_program_binary glGetProgramBinary: TglGetProgramBinary; glProgramBinary: TglProgramBinary; @@ -13533,6 +13713,9 @@ var // GL_INGR_blend_func_separate glBlendFuncSeparateINGR: TglBlendFuncSeparateINGR; + // GL_INTEL_framebuffer_CMAA + glApplyFramebufferAttachmentCMAAINTEL : TglApplyFramebufferAttachmentCMAAINTEL; + // GL_INTEL_parallel_arrays glVertexPointervINTEL: TglVertexPointervINTEL; glNormalPointervINTEL: TglNormalPointervINTEL; @@ -13806,6 +13989,12 @@ var glBeginConditionalRenderNV: TglBeginConditionalRenderNV; glEndConditionalRenderNV: TglEndConditionalRenderNV; + // GL_NV_conservative_raster + glSubpixelPrecisionBiasNV : TglSubpixelPrecisionBiasNV; + + // GL_NV_conservative_raster_dilate + glConservativeRasterParameterfNV : TglConservativeRasterParameterfNV; + // GL_NV_present_video glPresentFrameKeyedNV: TglPresentFrameKeyedNV; glPresentFrameDualFillNV: TglPresentFrameDualFillNV; @@ -14047,6 +14236,9 @@ var // GL_PGI_misc_hints glHintPGI: TglHintPGI; + // GL_OVR_multiview + glFramebufferTextureMultiviewOVR : TglFramebufferTextureMultiviewOVR; + // GL_SGIS_detail_texture glDetailTexFuncSGIS: TglDetailTexFuncSGIS; glGetDetailTexFuncSGIS: TglGetDetailTexFuncSGIS; @@ -14651,6 +14843,7 @@ procedure Read_GL_ARB_sync; procedure Read_GL_ARB_texture_multisample; procedure Read_GL_ARB_draw_buffers_blend; procedure Read_GL_ARB_sample_shading; +procedure Read_GL_ARB_sample_locations; procedure Read_GL_ARB_shading_language_include; procedure Read_GL_ARB_blend_func_extended; procedure Read_GL_ARB_sampler_objects; @@ -14658,6 +14851,7 @@ procedure Read_GL_ARB_timer_query; procedure Read_GL_ARB_vertex_type_2_10_10_10_rev; procedure Read_GL_ARB_draw_indirect; procedure Read_GL_ARB_gpu_shader_fp64; +procedure Read_GL_ARB_gpu_shader_int64; procedure Read_GL_ARB_shader_subroutine; procedure Read_GL_ARB_tessellation_shader; procedure Read_GL_ARB_transform_feedback2; @@ -14667,6 +14861,10 @@ procedure Read_GL_ARB_get_program_binary; procedure Read_GL_ARB_separate_shader_objects; procedure Read_GL_ARB_vertex_attrib_64bit; procedure Read_GL_ARB_viewport_array; + +procedure Read_GL_ARB_ES3_2_compatibility; +procedure Read_GL_ARB_parallel_shader_compile; + // GL 4.2 procedure Read_GL_ARB_base_instance; procedure Read_GL_ARB_transform_feedback_instanced; @@ -14769,6 +14967,7 @@ procedure Read_GL_IBM_multimode_draw_arrays; procedure Read_GL_IBM_vertex_array_lists; procedure Read_GL_INGR_blend_func_separate; procedure Read_GL_INTEL_parallel_arrays; +procedure Read_GL_INTEL_framebuffer_CMAA; procedure Read_GL_MESA_resize_buffers; procedure Read_GL_MESA_window_pos; procedure Read_GL_NV_evaluators; @@ -14790,6 +14989,8 @@ procedure Read_GL_NV_gpu_program4; procedure Read_GL_NV_parameter_buffer_object; procedure Read_GL_NV_transform_feedback; procedure Read_GL_NV_conditional_render; +procedure Read_GL_NV_conservative_raster; +procedure Read_GL_NV_conservative_raster_dilate; procedure Read_GL_NV_present_video; procedure Read_GL_NV_explicit_multisample; procedure Read_GL_NV_transform_feedback2; @@ -14803,6 +15004,7 @@ procedure Read_GL_NV_vertex_attrib_integer_64bit; procedure Read_GL_NV_vdpau_interop; procedure Read_GL_NV_texture_barrier; procedure Read_GL_PGI_misc_hints; +procedure Read_GL_OVR_multiview; procedure Read_GL_SGIS_detail_texture; procedure Read_GL_SGIS_fog_function; procedure Read_GL_SGIS_multisample; @@ -15995,7 +16197,6 @@ begin Read_GL_ARB_texture_view; Read_GL_ARB_vertex_attrib_binding; - // 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; @@ -16452,6 +16653,13 @@ begin glMinSampleShadingARB := dglGetProcAddress('glMinSampleShadingARB'); end; +procedure Read_GL_ARB_sample_locations; +begin + glFramebufferSampleLocationsfvARB := dglGetProcAddress('glFramebufferSampleLocationsfvARB'); + glNamedFramebufferSampleLocationsfvARB := dglGetProcAddress('glNamedFramebufferSampleLocationsfvARB'); + glEvaluateDepthValuesARB := dglGetProcAddress('glEvaluateDepthValuesARB');; +end; + procedure Read_GL_ARB_shading_language_include; begin glNamedStringARB := dglGetProcAddress('glNamedStringARB'); @@ -16581,6 +16789,46 @@ begin glGetUniformdv := dglGetProcAddress('glGetUniformdv'); end; +procedure Read_GL_ARB_gpu_shader_int64; +begin + glUniform1i64ARB := dglGetProcAddress('glUniform1i64ARB'); + glUniform2i64ARB := dglGetProcAddress('glUniform2i64ARB'); + glUniform3i64ARB := dglGetProcAddress('glUniform3i64ARB'); + glUniform4i64ARB := dglGetProcAddress('glUniform4i64ARB'); + glUniform1i64vARB := dglGetProcAddress('glUniform1i64vARB'); + glUniform2i64vARB := dglGetProcAddress('glUniform2i64vARB'); + glUniform3i64vARB := dglGetProcAddress('glUniform3i64vARB'); + glUniform4i64vARB := dglGetProcAddress('glUniform4i64vARB'); + glUniform1ui64ARB := dglGetProcAddress('glUniform1ui64ARB'); + glUniform2ui64ARB := dglGetProcAddress('glUniform2ui64ARB'); + glUniform3ui64ARB := dglGetProcAddress('glUniform3ui64ARB'); + glUniform4ui64ARB := dglGetProcAddress('glUniform4ui64ARB'); + glUniform1ui64vARB := dglGetProcAddress('glUniform1ui64vARB'); + glUniform2ui64vARB := dglGetProcAddress('glUniform2ui64vARB'); + glUniform3ui64vARB := dglGetProcAddress('glUniform3ui64vARB'); + glUniform4ui64vARB := dglGetProcAddress('glUniform4ui64vARB'); + glGetUniformi64vARB := dglGetProcAddress('glGetUniformi64vARB'); + glGetUniformui64vARB := dglGetProcAddress('glGetUniformui64vARB'); + glGetnUniformi64vARB := dglGetProcAddress('glGetnUniformi64vARB'); + glGetnUniformui64vARB := dglGetProcAddress('glGetnUniformui64vARB'); + glProgramUniform1i64ARB := dglGetProcAddress('glProgramUniform1i64ARB'); + glProgramUniform2i64ARB := dglGetProcAddress('glProgramUniform2i64ARB'); + glProgramUniform3i64ARB := dglGetProcAddress('glProgramUniform3i64ARB'); + glProgramUniform4i64ARB := dglGetProcAddress('glProgramUniform4i64ARB'); + glProgramUniform1i64vARB := dglGetProcAddress('glProgramUniform1i64vARB'); + glProgramUniform2i64vARB := dglGetProcAddress('glProgramUniform2i64vARB'); + glProgramUniform3i64vARB := dglGetProcAddress('glProgramUniform3i64vARB'); + glProgramUniform4i64vARB := dglGetProcAddress('glProgramUniform4i64vARB'); + glProgramUniform1ui64ARB := dglGetProcAddress('glProgramUniform1ui64ARB'); + glProgramUniform2ui64ARB := dglGetProcAddress('glProgramUniform2ui64ARB'); + glProgramUniform3ui64ARB := dglGetProcAddress('glProgramUniform3ui64ARB'); + glProgramUniform4ui64ARB := dglGetProcAddress('glProgramUniform4ui64ARB '); + glProgramUniform1ui64vARB := dglGetProcAddress('glProgramUniform1ui64vARB'); + glProgramUniform2ui64vARB := dglGetProcAddress('glProgramUniform2ui64vARB'); + glProgramUniform3ui64vARB := dglGetProcAddress('glProgramUniform3ui64vARB'); + glProgramUniform4ui64vARB := dglGetProcAddress('glProgramUniform4ui64vARB'); +end; + procedure Read_GL_ARB_shader_subroutine; begin glGetSubroutineUniformLocation := dglGetProcAddress('glGetSubroutineUniformLocation'); @@ -16627,6 +16875,16 @@ begin glClearDepthf := dglGetProcAddress('glClearDepthf'); end; +procedure Read_GL_ARB_ES3_2_compatibility; +begin + glPrimitiveBoundingBoxARB := dglGetProcAddress('glPrimitiveBoundingBoxARB'); +end; + +procedure Read_GL_ARB_parallel_shader_compile; +begin + glMaxShaderCompilerThreadsARB := dglGetProcAddress('glMaxShaderCompilerThreadsARB'); +end; + procedure Read_GL_ARB_get_program_binary; begin glGetProgramBinary := dglGetProcAddress('glGetProgramBinary'); @@ -18052,6 +18310,11 @@ begin glTexCoordPointervINTEL := dglGetProcAddress('glTexCoordPointervINTEL'); end; +procedure Read_GL_INTEL_framebuffer_CMAA; +begin + glApplyFramebufferAttachmentCMAAINTEL := dglGetProcAddress('glApplyFramebufferAttachmentCMAAINTEL'); +end; + procedure Read_GL_MESA_resize_buffers; begin glResizeBuffersMESA := dglGetProcAddress('glResizeBuffersMESA'); @@ -18361,6 +18624,17 @@ begin glEndConditionalRenderNV := dglGetProcAddress('glEndConditionalRenderNV'); end; +procedure Read_GL_NV_conservative_raster; +begin + glSubpixelPrecisionBiasNV := dglGetProcAddress('glSubpixelPrecisionBiasNV'); +end; + +procedure Read_GL_NV_conservative_raster_dilate; +begin + glConservativeRasterParameterfNV := dglGetProcAddress('glConservativeRasterParameterfNV'); +end; + + procedure Read_GL_NV_present_video; begin glPresentFrameKeyedNV := dglGetProcAddress('glPresentFrameKeyedNV'); @@ -18535,6 +18809,11 @@ begin glHintPGI := dglGetProcAddress('glHintPGI'); end; +procedure Read_GL_OVR_multiview; +begin + glFramebufferTextureMultiviewOVR := dglGetProcAddress('glFramebufferTextureMultiviewOVR'); +end; + procedure Read_GL_SGIS_detail_texture; begin glDetailTexFuncSGIS := dglGetProcAddress('glDetailTexFuncSGIS'); @@ -19062,6 +19341,7 @@ begin Read_GL_ARB_draw_instanced; Read_GL_ARB_framebuffer_object; Read_GL_ARB_geometry_shader4; + Read_GL_ARB_gpu_shader_int64; Read_GL_ARB_instanced_arrays; Read_GL_ARB_map_buffer_range; Read_GL_ARB_texture_buffer_object; @@ -19074,6 +19354,7 @@ begin Read_GL_ARB_texture_multisample; Read_GL_ARB_draw_buffers_blend; Read_GL_ARB_sample_shading; + Read_GL_ARB_sample_locations; Read_GL_ARB_shading_language_include; Read_GL_ARB_sparse_texture; Read_GL_ARB_sparse_buffer; @@ -19087,7 +19368,6 @@ begin Read_GL_ARB_tessellation_shader; Read_GL_ARB_transform_feedback2; Read_GL_ARB_transform_feedback3; - Read_GL_ARB_ES2_compatibility; Read_GL_ARB_get_program_binary; Read_GL_ARB_separate_shader_objects; Read_GL_ARB_vertex_attrib_64bit; @@ -19096,6 +19376,7 @@ begin Read_GL_ARB_compute_variable_group_size; Read_GL_ARB_debug_output; Read_GL_ARB_robustness; + Read_GL_ARB_ES2_compatibility; // Read_GL_ATI_draw_buffers; Read_GL_ATI_element_array; @@ -19168,6 +19449,7 @@ begin Read_GL_IBM_vertex_array_lists; Read_GL_INGR_blend_func_separate; Read_GL_INTEL_parallel_arrays; + Read_GL_INTEL_framebuffer_CMAA; Read_GL_KHR_blend_equation_advanced; Read_GL_MESA_resize_buffers; Read_GL_MESA_window_pos; @@ -19190,6 +19472,8 @@ begin Read_GL_NV_parameter_buffer_object; Read_GL_NV_transform_feedback; Read_GL_NV_conditional_render; + Read_GL_NV_conservative_raster; + Read_GL_NV_conservative_raster_dilate; Read_GL_NV_present_video; Read_GL_NV_explicit_multisample; Read_GL_NV_transform_feedback2; @@ -19205,6 +19489,7 @@ begin Read_GL_NV_path_rendering; Read_GL_NV_bindless_texture; Read_GL_PGI_misc_hints; + Read_GL_OVR_multiview; Read_GL_SGIS_detail_texture; Read_GL_SGIS_fog_function; Read_GL_SGIS_multisample; @@ -19233,6 +19518,9 @@ begin Read_GL_SUN_triangle_list; Read_GL_SUN_vertex; + Read_GL_ARB_ES3_2_compatibility; + Read_GL_ARB_parallel_shader_compile; + {$IFDEF DGL_WIN} Read_WGL_ARB_buffer_region; Read_WGL_ARB_extensions_string; @@ -19480,6 +19768,8 @@ begin GL_ARB_shadow := Int_CheckExtension(Buffer, 'GL_ARB_shadow'); GL_ARB_shadow_ambient := Int_CheckExtension(Buffer, 'GL_ARB_shadow_ambient'); GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture'); + GL_ARB_sparse_texture2 := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture2'); + GL_ARB_sparse_texture_clamp := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture_clamp'); GL_ARB_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_ARB_texture_border_clamp'); GL_ARB_texture_compression := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression'); GL_ARB_texture_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map'); @@ -19487,6 +19777,7 @@ begin GL_ARB_texture_env_combine := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_combine'); GL_ARB_texture_env_crossbar := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_crossbar'); GL_ARB_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_dot3'); + GL_ARB_texture_filter_minmax := Int_CheckExtension(Buffer, 'GL_ARB_texture_filter_minmax'); GL_ARB_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_ARB_texture_mirrored_repeat'); GL_ARB_transpose_matrix := Int_CheckExtension(Buffer, 'GL_ARB_transpose_matrix'); GL_ARB_vertex_blend := Int_CheckExtension(Buffer, 'GL_ARB_vertex_blend'); @@ -19496,6 +19787,7 @@ begin GL_ARB_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_shader_objects'); GL_ARB_vertex_shader := Int_CheckExtension(Buffer, 'GL_ARB_vertex_shader'); GL_ARB_fragment_shader := Int_CheckExtension(Buffer, 'GL_ARB_fragment_shader'); + GL_ARB_fragment_shader_interlock := Int_CheckExtension(Buffer, 'GL_ARB_fragment_shader_interlock'); GL_ARB_occlusion_query := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query'); GL_ARB_shading_language_100 := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_100'); GL_ARB_point_sprite := Int_CheckExtension(Buffer, 'GL_ARB_point_sprite'); @@ -19523,6 +19815,7 @@ begin GL_ARB_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_compatibility'); GL_ARB_copy_buffer := Int_CheckExtension(Buffer, 'GL_ARB_copy_buffer'); GL_ARB_shader_texture_lod := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_lod'); + GL_ARB_shader_viewport_layer_array := Int_CheckExtension(Buffer, 'GL_ARB_shader_viewport_layer_array'); GL_ARB_depth_clamp := Int_CheckExtension(Buffer, 'GL_ARB_depth_clamp'); GL_ARB_draw_elements_base_vertex := Int_CheckExtension(Buffer, 'GL_ARB_draw_elements_base_vertex'); GL_ARB_fragment_coord_conventions := Int_CheckExtension(Buffer, 'GL_ARB_fragment_coord_conventions'); @@ -19541,8 +19834,11 @@ begin GL_ARB_blend_func_extended := Int_CheckExtension(Buffer, 'GL_ARB_blend_func_extended'); GL_ARB_explicit_attrib_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_attrib_location'); GL_ARB_occlusion_query2 := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query2'); + GL_ARB_parallel_shader_compile := Int_CheckExtension(Buffer, 'GL_ARB_parallel_shader_compile'); + GL_ARB_post_depth_coverage := Int_CheckExtension(Buffer, 'GL_ARB_post_depth_coverage'); GL_ARB_sampler_objects := Int_CheckExtension(Buffer, 'GL_ARB_sampler_objects'); GL_ARB_shader_bit_encoding := Int_CheckExtension(Buffer, 'GL_ARB_shader_bit_encoding'); + GL_ARB_shader_clock := Int_CheckExtension(Buffer, 'GL_ARB_shader_clock'); GL_ARB_texture_rgb10_a2ui := Int_CheckExtension(Buffer, 'GL_ARB_texture_rgb10_a2ui'); GL_ARB_texture_swizzle := Int_CheckExtension(Buffer, 'GL_ARB_texture_swizzle'); GL_ARB_timer_query := Int_CheckExtension(Buffer, 'GL_ARB_timer_query'); @@ -19550,14 +19846,18 @@ begin GL_ARB_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_draw_indirect'); GL_ARB_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader5'); GL_ARB_gpu_shader_fp64 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader_fp64'); + GL_ARB_gpu_shader_int64 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader_int64'); GL_ARB_shader_subroutine := Int_CheckExtension(Buffer, 'GL_ARB_shader_subroutine'); GL_ARB_tessellation_shader := Int_CheckExtension(Buffer, 'GL_ARB_tessellation_shader'); GL_ARB_texture_buffer_object_rgb32 := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object_rgb32'); GL_ARB_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback2'); GL_ARB_transform_feedback3 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback3'); GL_ARB_ES2_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES2_compatibility'); + GL_ARB_ES3_2_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_2_compatibility'); GL_ARB_get_program_binary := Int_CheckExtension(Buffer, 'GL_ARB_get_program_binary'); GL_ARB_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_separate_shader_objects'); + GL_ARB_shader_atomic_counter_ops := Int_CheckExtension(Buffer, 'GL_ARB_shader_atomic_counter_ops'); + GL_ARB_shader_ballot := Int_CheckExtension(Buffer, 'GL_ARB_shader_ballot'); GL_ARB_shader_precision := Int_CheckExtension(Buffer, 'GL_ARB_shader_precision'); GL_ARB_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_64bit'); GL_ARB_viewport_array := Int_CheckExtension(Buffer, 'GL_ARB_viewport_array'); @@ -19779,6 +20079,7 @@ begin GL_INGR_palette_buffer := Int_CheckExtension(Buffer, 'GL_INGR_palette_buffer'); // INTEL + GL_INTEL_framebuffer_CMAA := Int_CheckExtension(Buffer, 'GL_INTEL_framebuffer_CMAA'); GL_INTEL_parallel_arrays := Int_CheckExtension(Buffer, 'GL_INTEL_parallel_arrays'); GL_INTEL_texture_scissor := Int_CheckExtension(Buffer, 'GL_INTEL_texture_scissor'); @@ -19790,6 +20091,7 @@ begin // 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_no_error := Int_CheckExtension(Buffer, 'GL_KHR_no_error'); GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness'); GL_KHR_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_KHR_robust_buffer_access_behavior'); @@ -19839,6 +20141,8 @@ begin GL_NV_transform_feedback := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback'); GL_NV_vertex_program4 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program4'); GL_NV_conditional_render := Int_CheckExtension(Buffer, 'GL_NV_conditional_render'); + GL_NV_conservative_raster := Int_CheckExtension(Buffer, 'GL_NV_conservative_raster'); + GL_NV_conservative_raster_dilate := Int_CheckExtension(Buffer, 'GL_NV_conservative_raster_dilate'); GL_NV_present_video := Int_CheckExtension(Buffer, 'GL_NV_present_video'); GL_NV_explicit_multisample := Int_CheckExtension(Buffer, 'GL_NV_explicit_multisample'); GL_NV_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback2'); @@ -19865,6 +20169,10 @@ begin GL_OML_resample := Int_CheckExtension(Buffer, 'GL_OML_resample'); GL_OML_subsample := Int_CheckExtension(Buffer, 'GL_OML_subsample'); + // OVR + GL_OVR_multiview := Int_CheckExtension(Buffer, 'GL_OVR_multiview'); + GL_OVR_multiview2 := Int_CheckExtension(Buffer, 'GL_OVR_multiview2'); + // PGI GL_PGI_misc_hints := Int_CheckExtension(Buffer, 'GL_PGI_misc_hints'); GL_PGI_vertex_hints := Int_CheckExtension(Buffer, 'GL_PGI_vertex_hints');