diff --git a/dglOpenGL-LICENSE b/dglOpenGL-LICENSE new file mode 100644 index 0000000..baa49b9 --- /dev/null +++ b/dglOpenGL-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.pas b/dglOpenGL.pas index 5d2a5ed..a079bea 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 @@ -33,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 @@ -395,15 +392,6 @@ type PGLMatrixd4 = ^TGLMatrixd4; PVector4i = ^TVector4i; - - -{$IFDEF FPC} - TRect = packed record - Left, Top, Right, Bottom: Longint; - end; -{$ENDIF} - - PGPU_DEVICE = ^GPU_DEVICE; GPU_DEVICE = record cb: DWORD; @@ -525,6 +513,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, @@ -534,6 +523,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, @@ -561,6 +551,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, @@ -571,6 +562,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, @@ -579,8 +573,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, @@ -588,17 +585,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, @@ -814,6 +816,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, @@ -863,6 +866,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, @@ -882,6 +888,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, @@ -3232,6 +3242,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; @@ -3742,6 +3756,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; @@ -3776,6 +3800,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; @@ -3838,6 +3866,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; @@ -3928,6 +3965,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; @@ -4421,6 +4463,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; @@ -6378,6 +6422,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 +6605,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 +7092,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 +8877,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 +8934,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 +9036,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 +9266,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 +10267,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 +10543,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 +10793,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 +12405,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 +12507,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 +12581,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 +13703,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 +13979,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 +14226,9 @@ var // GL_PGI_misc_hints glHintPGI: TglHintPGI; + // GL_OVR_multiview + glFramebufferTextureMultiviewOVR : TglFramebufferTextureMultiviewOVR; + // GL_SGIS_detail_texture glDetailTexFuncSGIS: TglDetailTexFuncSGIS; glGetDetailTexFuncSGIS: TglGetDetailTexFuncSGIS; @@ -14651,6 +14833,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 +14841,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 +14851,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 +14957,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 +14979,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 +14994,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 +16187,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 +16643,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 +16779,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 +16865,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 +18300,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 +18614,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 +18799,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 +19331,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 +19344,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 +19358,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 +19366,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 +19439,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 +19462,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 +19479,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 +19508,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 +19758,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 +19767,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 +19777,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 +19805,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 +19824,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 +19836,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 +20069,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 +20081,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 +20131,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 +20159,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');