From 0864b5377bd2b57561e2f3867f76198ececce2df Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Tue, 30 Dec 2014 14:28:59 +0100 Subject: [PATCH 1/8] Rename readme to README.md --- readme => README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename readme => README.md (98%) diff --git a/readme b/README.md similarity index 98% rename from readme rename to README.md index 091afe6..fd50e66 100644 --- a/readme +++ b/README.md @@ -487,4 +487,4 @@ Added a function named RaiseLastOSError including a comment - Changed declarations of GLU_TRUE/GLU_FALSE for compatbility with ByteBool (SW) - Added Exception mask settings for 64-Bit (SetExceptionMask) (SW) - Changed 64-Bit detection for FPC -- Added TVector3f for backwards compatibility \ No newline at end of file +- Added TVector3f for backwards compatibility From dc077068393ff0c3ffe3ce9b114334f33bb54d00 Mon Sep 17 00:00:00 2001 From: saschawillems Date: Thu, 3 Sep 2015 11:28:30 +0200 Subject: [PATCH 2/8] Added missing OpenGL 4.4 constants --- dglOpenGL.pas | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dglOpenGL.pas b/dglOpenGL.pas index 2ae49dd..fef3108 100644 --- a/dglOpenGL.pas +++ b/dglOpenGL.pas @@ -1,7 +1,6 @@ { ============================================================================ OpenGL 4.5 - Headertranslation - Version 4.5a Supported environments and targets : - (Win32) Delphi 6 and up @@ -4420,6 +4419,8 @@ const // GL 4.4 GL_MAX_VERTEX_ATTRIB_STRIDE = $82E5; + GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = $8221; + GL_TEXTURE_BUFFER_BINDING = $8C2A; GL_MAP_PERSISTENT_BIT = $0040; GL_MAP_COHERENT_BIT = $0080; GL_DYNAMIC_STORAGE_BIT = $0100; From 383ffeebcdc0a7c2864a52a3426e87f288bc9c9b Mon Sep 17 00:00:00 2001 From: saschawillems Date: Thu, 3 Sep 2015 14:04:40 +0200 Subject: [PATCH 3/8] 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'); From 377214c9069714d8bc4aee949d405752b1785f9d Mon Sep 17 00:00:00 2001 From: saschawillems Date: Thu, 3 Sep 2015 14:07:21 +0200 Subject: [PATCH 4/8] Fixed versioning in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e41f54d..a01568b 100644 --- a/README.md +++ b/README.md @@ -489,7 +489,7 @@ Added a function named RaiseLastOSError including a comment - Changed 64-Bit detection for FPC - Added TVector3f for backwards compatibility -# Version 4.6a +# Version 4.5b - 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) From a7c30e8b366ec15d874f63048de0930269206898 Mon Sep 17 00:00:00 2001 From: saschawillems Date: Fri, 4 Sep 2015 10:43:42 +0200 Subject: [PATCH 5/8] Updated license to MPL 2.0 --- LICENSE | 328 +++++++++++++++++++++++++++++++++++++++++++++++++ dglOpenGL.html | 16 +-- dglOpenGL.pas | 8 +- 3 files changed, 340 insertions(+), 12 deletions(-) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..baa49b9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,328 @@ +Mozilla Public License, version 2.0 + +1. Definitions + + 1.1. “Contributor” + means each individual or legal entity that creates, contributes to the + creation of, or owns Covered Software. + + 1.2. “Contributor Version” + means the combination of the Contributions of others (if any) used by a + Contributor and that particular Contributor’s Contribution. + + 1.3. “Contribution” + means Covered Software of a particular Contributor. + + 1.4. “Covered Software” + means Source Code Form to which the initial Contributor has attached the + notice in Exhibit A, the Executable Form of such Source Code Form, + and Modifications of such Source Code Form, in each case + including portions thereof. + + 1.5. “Incompatible With Secondary Licenses” + means + + a. that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + b. that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the terms + of a Secondary License. + + 1.6. “Executable Form” + means any form of the work other than Source Code Form. + + 1.7. “Larger Work” + means a work that combines Covered Software with other material, + in a separate file or files, that is not Covered Software. + + 1.8. “License” + means this document. + + 1.9. “Licensable” + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, + any and all of the rights conveyed by this License. + + 1.10. “Modifications” + means any of the following: + + a. any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered Software; or + + b. any new file in Source Code Form that contains any Covered Software. + + 1.11. “Patent Claims” of a Contributor + means any patent claim(s), including without limitation, method, process, + and apparatus claims, in any patent Licensable by such Contributor that + would be infringed, but for the grant of the License, by the making, + using, selling, offering for sale, having made, import, or transfer of + either its Contributions or its Contributor Version. + + 1.12. “Secondary License” + means either the GNU General Public License, Version 2.0, the + GNU Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those licenses. + + 1.13. “Source Code Form” + means the form of the work preferred for making modifications. + + 1.14. “You” (or “Your”) + means an individual or a legal entity exercising rights under this License. + For legal entities, “You” includes any entity that controls, + is controlled by, or is under common control with You. For purposes of + this definition, “control” means (a) the power, direct or indirect, + to cause the direction or management of such entity, whether by contract + or otherwise, or (b) ownership of more than fifty percent (50%) of the + outstanding shares or beneficial ownership of such entity. + +2. License Grants and Conditions + + 2.1. Grants + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + + a. under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, + or as part of a Larger Work; and + + b. under Patent Claims of such Contributor to make, use, sell, + offer for sale, have made, import, and otherwise transfer either + its Contributions or its Contributor Version. + + 2.2. Effective Date + The licenses granted in Section 2.1 with respect to any Contribution + become effective for each Contribution on the date the Contributor + first distributes such Contribution. + + 2.3. Limitations on Grant Scope + The licenses granted in this Section 2 are the only rights granted + under this License. No additional rights or licenses will be implied + from the distribution or licensing of Covered Software under this License. + Notwithstanding Section 2.1(b) above, no patent license is granted + by a Contributor: + + a. for any code that a Contributor has removed from + Covered Software; or + + b. for infringements caused by: (i) Your and any other third party’s + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its + Contributor Version); or + + c. under Patent Claims infringed by Covered Software in the + absence of its Contributions. + + This License does not grant any rights in the trademarks, service marks, + or logos of any Contributor (except as may be necessary to comply with + the notice requirements in Section 3.4). + + 2.4. Subsequent Licenses + No Contributor makes additional grants as a result of Your choice to + distribute the Covered Software under a subsequent version of this + License (see Section 10.2) or under the terms of a Secondary License + (if permitted under the terms of Section 3.3). + + 2.5. Representation + Each Contributor represents that the Contributor believes its + Contributions are its original creation(s) or it has sufficient rights + to grant the rights to its Contributions conveyed by this License. + + 2.6. Fair Use + This License is not intended to limit any rights You have under + applicable copyright doctrines of fair use, fair dealing, + or other equivalents. + + 2.7. Conditions + Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the + licenses granted in Section 2.1. + +3. Responsibilities + + 3.1. Distribution of Source Form + All distribution of Covered Software in Source Code Form, including + any Modifications that You create or to which You contribute, must be + under the terms of this License. You must inform recipients that the + Source Code Form of the Covered Software is governed by the terms + of this License, and how they can obtain a copy of this License. + You may not attempt to alter or restrict the recipients’ rights + in the Source Code Form. + + 3.2. Distribution of Executable Form + If You distribute Covered Software in Executable Form then: + + a. such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more than + the cost of distribution to the recipient; and + + b. You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients’ rights in the Source Code Form under this License. + + 3.3. Distribution of a Larger Work + You may create and distribute a Larger Work under terms of Your choice, + provided that You also comply with the requirements of this License for + the Covered Software. If the Larger Work is a combination of + Covered Software with a work governed by one or more Secondary Licenses, + and the Covered Software is not Incompatible With Secondary Licenses, + this License permits You to additionally distribute such Covered Software + under the terms of such Secondary License(s), so that the recipient of + the Larger Work may, at their option, further distribute the + Covered Software under the terms of either this License or such + Secondary License(s). + + 3.4. Notices + You may not remove or alter the substance of any license notices + (including copyright notices, patent notices, disclaimers of warranty, + or limitations of liability) contained within the Source Code Form of + the Covered Software, except that You may alter any license notices to + the extent required to remedy known factual inaccuracies. + + 3.5. Application of Additional Terms + You may choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of + Covered Software. However, You may do so only on Your own behalf, + and not on behalf of any Contributor. You must make it absolutely clear + that any such warranty, support, indemnity, or liability obligation is + offered by You alone, and You hereby agree to indemnify every Contributor + for any liability incurred by such Contributor as a result of warranty, + support, indemnity or liability terms You offer. You may include + additional disclaimers of warranty and limitations of liability + specific to any jurisdiction. + +4. Inability to Comply Due to Statute or Regulation + +If it is impossible for You to comply with any of the terms of this License +with respect to some or all of the Covered Software due to statute, +judicial order, or regulation then You must: (a) comply with the terms of +this License to the maximum extent possible; and (b) describe the limitations +and the code they affect. Such description must be placed in a text file +included with all distributions of the Covered Software under this License. +Except to the extent prohibited by statute or regulation, such description +must be sufficiently detailed for a recipient of ordinary skill +to be able to understand it. + +5. Termination + + 5.1. The rights granted under this License will terminate automatically + if You fail to comply with any of its terms. However, if You become + compliant, then the rights granted under this License from a particular + Contributor are reinstated (a) provisionally, unless and until such + Contributor explicitly and finally terminates Your grants, and (b) on an + ongoing basis, if such Contributor fails to notify You of the + non-compliance by some reasonable means prior to 60 days after You have + come back into compliance. Moreover, Your grants from a particular + Contributor are reinstated on an ongoing basis if such Contributor + notifies You of the non-compliance by some reasonable means, + this is the first time You have received notice of non-compliance with + this License from such Contributor, and You become compliant prior to + 30 days after Your receipt of the notice. + + 5.2. If You initiate litigation against any entity by asserting a patent + infringement claim (excluding declaratory judgment actions, + counter-claims, and cross-claims) alleging that a Contributor Version + directly or indirectly infringes any patent, then the rights granted + to You by any and all Contributors for the Covered Software under + Section 2.1 of this License shall terminate. + + 5.3. In the event of termination under Sections 5.1 or 5.2 above, all + end user license agreements (excluding distributors and resellers) which + have been validly granted by You or Your distributors under this License + prior to termination shall survive termination. + +6. Disclaimer of Warranty + +Covered Software is provided under this License on an “as is” basis, without +warranty of any kind, either expressed, implied, or statutory, including, +without limitation, warranties that the Covered Software is free of defects, +merchantable, fit for a particular purpose or non-infringing. The entire risk +as to the quality and performance of the Covered Software is with You. +Should any Covered Software prove defective in any respect, You +(not any Contributor) assume the cost of any necessary servicing, repair, +or correction. This disclaimer of warranty constitutes an essential part of +this License. No use of any Covered Software is authorized under this +License except under this disclaimer. + +7. Limitation of Liability + +Under no circumstances and under no legal theory, whether tort +(including negligence), contract, or otherwise, shall any Contributor, or +anyone who distributes Covered Software as permitted above, be liable to +You for any direct, indirect, special, incidental, or consequential damages +of any character including, without limitation, damages for lost profits, +loss of goodwill, work stoppage, computer failure or malfunction, or any and +all other commercial damages or losses, even if such party shall have been +informed of the possibility of such damages. This limitation of liability +shall not apply to liability for death or personal injury resulting from +such party’s negligence to the extent applicable law prohibits such +limitation. Some jurisdictions do not allow the exclusion or limitation of +incidental or consequential damages, so this exclusion and limitation may +not apply to You. + +8. Litigation + +Any litigation relating to this License may be brought only in the courts of +a jurisdiction where the defendant maintains its principal place of business +and such litigation shall be governed by laws of that jurisdiction, without +reference to its conflict-of-law provisions. Nothing in this Section shall +prevent a party’s ability to bring cross-claims or counter-claims. + +9. Miscellaneous + +This License represents the complete agreement concerning the subject matter +hereof. If any provision of this License is held to be unenforceable, +such provision shall be reformed only to the extent necessary to make it +enforceable. Any law or regulation which provides that the language of a +contract shall be construed against the drafter shall not be used to construe +this License against a Contributor. + +10. Versions of the License + + 10.1. New Versions + Mozilla Foundation is the license steward. Except as provided in + Section 10.3, no one other than the license steward has the right to + modify or publish new versions of this License. Each version will be + given a distinguishing version number. + + 10.2. Effect of New Versions + You may distribute the Covered Software under the terms of the version + of the License under which You originally received the Covered Software, + or under the terms of any subsequent version published + by the license steward. + + 10.3. Modified Versions + If you create software not governed by this License, and you want to + create a new license for such software, you may create and use a modified + version of this License if you rename the license and remove any + references to the name of the license steward (except to note that such + modified license differs from this License). + + 10.4. Distributing Source Code Form that is + Incompatible With Secondary Licenses + If You choose to distribute Source Code Form that is + Incompatible With Secondary Licenses under the terms of this version of + the License, the notice described in Exhibit B of this + License must be attached. + +Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the terms of the + Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed + with this file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular file, +then You may include the notice in a location (such as a LICENSE file in a +relevant directory) where a recipient would be likely to +look for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - “Incompatible With Secondary Licenses” Notice + + This Source Code Form is “Incompatible With Secondary Licenses”, + as defined by the Mozilla Public License, v. 2.0. diff --git a/dglOpenGL.html b/dglOpenGL.html index e9def88..291d4ca 100644 --- a/dglOpenGL.html +++ b/dglOpenGL.html @@ -34,7 +34,7 @@ margin: 0 0 10px 15px; } - #content ul { +#content ul { margin-top: 0; margin-bottom: 0; } @@ -164,11 +164,13 @@ Martin Waldegger (Mars)

Copyright

-

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

+

This Source Code Form is subject to the terms of the Mozilla Public License, + v. 2.0. If a copy of the MPL was not distributed with this file, + You can obtain one at http://mozilla.org/MPL/2.0/. + 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.

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
@@ -176,7 +178,7 @@ Martin Waldegger (Mars)

- Copyright © 2003-2014 DGL-OpenGL-Portteam - All Rights Reserved + Copyright (c) 2003-2015 DGL-OpenGL-Portteam - All Rights Reserved
diff --git a/dglOpenGL.pas b/dglOpenGL.pas index 6f14c2a..f30e8f8 100644 --- a/dglOpenGL.pas +++ b/dglOpenGL.pas @@ -32,11 +32,9 @@ 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 + This Source Code Form is subject to the terms of the Mozilla Public License, + v. 2.0. If a copy of the MPL was not distributed with this file, + You can obtain one at http://mozilla.org/MPL/2.0/. Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or From 5a8af8ecb5f5400ac737e994f5055eabc9fd17e4 Mon Sep 17 00:00:00 2001 From: saschawillems Date: Fri, 4 Sep 2015 10:47:03 +0200 Subject: [PATCH 6/8] Updated license to MPL 2.0 --- README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a01568b..9c44e4e 100644 --- a/README.md +++ b/README.md @@ -30,11 +30,10 @@ # License > 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 +> +> This Source Code Form is subject to the terms of the Mozilla Public License, +> v. 2.0. If a copy of the MPL was not distributed with this file, +> You can obtain one at http://mozilla.org/MPL/2.0/. > > Software distributed under the License is distributed on an > "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or From cb8fb602159ca7c8171e63c0ebba66fabbeaf777 Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Mon, 23 Nov 2015 13:31:32 +0100 Subject: [PATCH 7/8] Conditional define for FPC only with FPC_FULLVERSION < 20602 --- README.md | 11 +++++++---- dglOpenGL.pas | 8 +++++--- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 9c44e4e..5cdf588 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # Delphi / Pascal OpenGL header translation - OpenGL version 4.5 -- Header revision 4.5b +- Header revision 4.5c - Copyright (C) DGL-OpenGL-Portteam - All Rights Reserved -- Last update : 2015-09-03 +- Last update : 2015-11-23 - Last updater : Sascha Willems # Supported environments and targets @@ -31,8 +31,8 @@ > You may retrieve the latest version of this file at the Delphi OpenGL > Community home page, located at http://www.delphigl.com/ > -> This Source Code Form is subject to the terms of the Mozilla Public License, -> v. 2.0. If a copy of the MPL was not distributed with this file, +> This Source Code Form is subject to the terms of the Mozilla Public License, +> v. 2.0. If a copy of the MPL was not distributed with this file, > You can obtain one at http://mozilla.org/MPL/2.0/. > > Software distributed under the License is distributed on an @@ -510,3 +510,6 @@ Added a function named RaiseLastOSError including a comment - Added GL_OVR_multiview (SW) - Added GL_OVR_multiview2 (SW) - Added GL_INTEL_framebuffer_CMAA (SW) + +# Version 4.5c +- Conditional define for TRect only for Free Pascal version < 20602 (SW) diff --git a/dglOpenGL.pas b/dglOpenGL.pas index f30e8f8..192f395 100644 --- a/dglOpenGL.pas +++ b/dglOpenGL.pas @@ -395,9 +395,11 @@ type {$IFDEF FPC} - TRect = packed record - Left, Top, Right, Bottom: Longint; - end; + {$IF FPC_FULLVERSION < 20602} + TRect = packed record + Left, Top, Right, Bottom: Longint; + end; + {$ifend} {$ENDIF} From e3fe35bc1d68897710441902a7252b7d75ec141d Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Thu, 7 Jan 2016 13:39:36 +0100 Subject: [PATCH 8/8] Removed conditional define for TRect with older FPC version --- README.md | 9 ++++++--- dglOpenGL.pas | 11 ----------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 5cdf588..c3a58a2 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ # Delphi / Pascal OpenGL header translation - OpenGL version 4.5 -- Header revision 4.5c +- Header revision 4.5d - Copyright (C) DGL-OpenGL-Portteam - All Rights Reserved -- Last update : 2015-11-23 +- Last update : 2016-01-07 - Last updater : Sascha Willems # Supported environments and targets - (Win32) Delphi 4 and up - (Win32, Win64) Delphi XE2 -- (Win32, Win64, Linux, MacOSX) FreePascal (1.9.3 and up) +- (Win32, Win64, Linux, MacOSX) FreePascal (2.2.6 and up) # Obtained through - GitHub repository - https://github.com/SaschaWillems/dglOpenGL @@ -513,3 +513,6 @@ Added a function named RaiseLastOSError including a comment # Version 4.5c - Conditional define for TRect only for Free Pascal version < 20602 (SW) + +# Version 4.5d +- Removed conditional define for TRect (FPC) due to error Delphi E2026 diff --git a/dglOpenGL.pas b/dglOpenGL.pas index 192f395..ffcd77b 100644 --- a/dglOpenGL.pas +++ b/dglOpenGL.pas @@ -392,17 +392,6 @@ type PGLMatrixd4 = ^TGLMatrixd4; PVector4i = ^TVector4i; - - -{$IFDEF FPC} - {$IF FPC_FULLVERSION < 20602} - TRect = packed record - Left, Top, Right, Bottom: Longint; - end; - {$ifend} -{$ENDIF} - - PGPU_DEVICE = ^GPU_DEVICE; GPU_DEVICE = record cb: DWORD;