From 2f729f6965dcc9cfaa639a3ff4aa68cfaaa569da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 25 Feb 2018 01:37:40 +0100 Subject: [PATCH] external: updated OpenGL headers for 4.6, related modifications. --- doc/opengl-mapping.dox | 9 +- src/Magnum/Context.h | 6 +- src/Magnum/PrimitiveQuery.h | 8 +- src/MagnumExternal/OpenGL/GL/extensions.txt | 10 +- src/MagnumExternal/OpenGL/GL/flextGL.cpp | 13 +- src/MagnumExternal/OpenGL/GL/flextGL.h | 127 ++++++++++-------- .../OpenGL/GL/flextGLPlatform.cpp | 13 +- 7 files changed, 110 insertions(+), 76 deletions(-) diff --git a/doc/opengl-mapping.dox b/doc/opengl-mapping.dox index 4cc19725c..f9d3b27af 100644 --- a/doc/opengl-mapping.dox +++ b/doc/opengl-mapping.dox @@ -294,7 +294,7 @@ OpenGL function | Matching API @fn_gl{MemoryBarrier}, \n `glMemoryBarrierByRegion()` | @ref Renderer::setMemoryBarrier(), \n @ref Renderer::setMemoryBarrierByRegion() @fn_gl{MinSampleShading} | | @fn_gl{MultiDrawArrays}, \n @fn_gl{MultiDrawElements}, \n @fn_gl{MultiDrawElementsBaseVertex} | @ref MeshView::draw(AbstractShaderProgram&, std::initializer_list>) -@fn_gl_extension{MultiDrawArraysIndirectCount,ARB,indirect_parameters}, \n @fn_gl_extension{MultiDrawElementsIndirectCount,ARB,indirect_parameters} | | +@fn_gl{MultiDrawArraysIndirectCount}, \n @fn_gl{MultiDrawElementsIndirectCount} | | @subsection opengl-mapping-functions-o O @@ -317,7 +317,8 @@ OpenGL function | Matching API @fn_gl{PointSize} | @ref Renderer::setPointSize() @fn_gl{PolygonMode} | @ref Renderer::setPolygonMode() @fn_gl{PolygonOffset} | @ref Renderer::setPolygonOffset() -@fn_gl_extension{PrimitiveBoundingBox,EXT,primitive_bounding_box} | | +@fn_gl{PolygonOffsetClamp} | | +@fn_gl_extension{PrimitiveBoundingBox,EXT,primitive_bounding_box}, \n @fn_gl_extension{PrimitiveBoundingBox,ARB,primitive_bounding_box} | | @fn_gl{PrimitiveRestartIndex} | | @fn_gl{ProgramBinary} | | @fn_gl{ProgramParameter} | @ref AbstractShaderProgram::setRetrievableBinary(), \n @ref AbstractShaderProgram::setSeparable() @@ -360,6 +361,7 @@ OpenGL function | Matching API @fn_gl{ShaderBinary} | | @fn_gl{ShaderSource} | @ref Shader::addFile(), \n @ref Shader::addSource() @fn_gl{ShaderStorageBlockBinding} | | +@fn_gl{SpecializeShader} | | @fn_gl{StencilFunc}, \n @fn_gl{StencilFuncSeparate} | @ref Renderer::setStencilFunction() @fn_gl{StencilMask}, \n @fn_gl{StencilMaskSeparate} | @ref Renderer::setStencilMask() @fn_gl{StencilOp}, \n @fn_gl{StencilOpSeparate} | @ref Renderer::setStencilOperation() @@ -513,8 +515,8 @@ glGet() parameter | Matching API @def_gl{MAX_TESS_GEN_LEVEL} | | @def_gl{MAX_TESS_PATCH_COMPONENTS} | | @def_gl{MAX_TEXTURE_BUFFER_SIZE} | @ref BufferTexture::maxSize() -@def_gl_extension{MAX_TEXTURE_MAX_ANISOTROPY,EXT,texture_filter_anisotropic} | @ref Sampler::maxMaxAnisotropy() @def_gl{MAX_TEXTURE_LOD_BIAS} | @ref AbstractTexture::maxLodBias() +@def_gl{MAX_TEXTURE_MAX_ANISOTROPY} | @ref Sampler::maxMaxAnisotropy() @def_gl{MAX_TRANSFORM_FEEDBACK_BUFFERS} | @ref TransformFeedback::maxBuffers() @def_gl{MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS} | @ref TransformFeedback::maxInterleavedComponents() @def_gl{MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS} | @ref TransformFeedback::maxSeparateAttributes() @@ -537,6 +539,7 @@ glGet() parameter | Matching API @def_gl{NUM_EXTENSIONS} | @ref Context::supportedExtensions() @def_gl{NUM_PROGRAM_BINARY_FORMATS}, \n @def_gl{PROGRAM_BINARY_FORMATS} | | @def_gl{NUM_SHADER_BINARY_FORMATS}, \n @def_gl{SHADER_BINARY_FORMATS} | | +@def_gl{NUM_SPIR_V_EXTENSIONS} | | @def_gl{PACK_ALIGNMENT}, \n @def_gl{PACK_IMAGE_HEIGHT}, \n @def_gl{PACK_ROW_LENGTH}, \n @def_gl{PACK_SKIP_IMAGES}, \n @def_gl{PACK_SKIP_PIXELS}, \n @def_gl{PACK_SKIP_ROWS}, \n @def_gl{PACK_SWAP_BYTES}, \n @def_gl{UNPACK_ALIGNMENT}, \n @def_gl{UNPACK_IMAGE_HEIGHT}, \n @def_gl{UNPACK_ROW_LENGTH}, \n @def_gl{UNPACK_SKIP_IMAGES}, \n @def_gl{UNPACK_SKIP_PIXELS}, \n @def_gl{UNPACK_SKIP_ROWS}, \n @def_gl{UNPACK_SWAP_BYTES} | not queryable, @ref PixelStorage setters only @def_gl{POINT_FADE_THRESHOLD_SIZE} | | @def_gl{POINT_SIZE_GRANULARITY}, \n @def_gl{POINT_SIZE_RANGE} | | diff --git a/src/Magnum/Context.h b/src/Magnum/Context.h index 6a626fd75..a1d966342 100644 --- a/src/Magnum/Context.h +++ b/src/Magnum/Context.h @@ -149,10 +149,14 @@ class MAGNUM_EXPORT Context { /** * Context without error reporting - * @requires_extension Extension @extension{KHR,no_error} + * @requires_gl46 Extension @extension{KHR,no_error} * @requires_es_extension Extension @extension2{KHR,no_error,no_error} */ + #ifndef MAGNUM_TARGET_GLES + NoError = GL_CONTEXT_FLAG_NO_ERROR_BIT, + #else NoError = GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR, + #endif #ifndef MAGNUM_TARGET_GLES2 /** diff --git a/src/Magnum/PrimitiveQuery.h b/src/Magnum/PrimitiveQuery.h index 25a422af0..42e80670f 100644 --- a/src/Magnum/PrimitiveQuery.h +++ b/src/Magnum/PrimitiveQuery.h @@ -104,22 +104,22 @@ class MAGNUM_EXPORT PrimitiveQuery: public AbstractQuery { * Transform feedback overflow. When used with @ref begin(UnsignedInt), * the index must be `0`. Use @ref result() to retrieve the * result. - * @requires_extension Extension @extension{ARB,transform_feedback_overflow_query} + * @requires_gl46 Extension @extension{ARB,transform_feedback_overflow_query} * @requires_gl Transform feedback overflow query is not available * in OpenGL ES or WebGL. */ - TransformFeedbackOverflow = GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB, + TransformFeedbackOverflow = GL_TRANSFORM_FEEDBACK_OVERFLOW, /** * Transform feedback stream overflow. When used with * @ref begin(UnsignedInt), the index must be lower than * @ref TransformFeedback::maxVertexStreams(). Use @ref result() * to retrieve the result. - * @requires_extension Extension @extension{ARB,transform_feedback_overflow_query} + * @requires_gl46 Extension @extension{ARB,transform_feedback_overflow_query} * @requires_gl Transform feedback overflow query is not available * in OpenGL ES or WebGL. */ - TransformFeedbackStreamOverflow = GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB + TransformFeedbackStreamOverflow = GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW #endif }; diff --git a/src/MagnumExternal/OpenGL/GL/extensions.txt b/src/MagnumExternal/OpenGL/GL/extensions.txt index 82b268d8b..e753491e4 100644 --- a/src/MagnumExternal/OpenGL/GL/extensions.txt +++ b/src/MagnumExternal/OpenGL/GL/extensions.txt @@ -1,8 +1,9 @@ # The following output is taken from `magnum-info` with removed `GL_` prefixes. # Only vendor extensions are needed, everything else is pulled in with GL 4.5. -version 4.5 core +version 4.6 core +extension AMD_transform_feedback3_lines_triangles optional extension AMD_vertex_shader_layer optional extension AMD_shader_trinary_minmax optional extension ARB_robustness optional @@ -11,14 +12,10 @@ extension ARB_robustness_application_isolation optional extension ARB_robustness_share_group_isolation optional extension ARB_bindless_texture optional extension ARB_compute_variable_group_size optional -extension ARB_indirect_parameters optional extension ARB_seamless_cubemap_per_texture optional -extension ARB_shader_draw_parameters optional -extension ARB_shader_group_vote optional extension ARB_sparse_texture optional -extension ARB_pipeline_statistics_query optional extension ARB_sparse_buffer optional -extension ARB_transform_feedback_overflow_query optional +extension ARB_ES3_2_compatibility optional extension ATI_texture_mirror_once optional extension EXT_texture_filter_anisotropic optional extension EXT_texture_compression_s3tc optional @@ -33,4 +30,3 @@ extension KHR_texture_compression_astc_ldr optional extension KHR_texture_compression_astc_hdr optional extension KHR_blend_equation_advanced optional extension KHR_blend_equation_advanced_coherent optional -extension KHR_no_error optional diff --git a/src/MagnumExternal/OpenGL/GL/flextGL.cpp b/src/MagnumExternal/OpenGL/GL/flextGL.cpp index 80f2cfc35..9b8ab055c 100644 --- a/src/MagnumExternal/OpenGL/GL/flextGL.cpp +++ b/src/MagnumExternal/OpenGL/GL/flextGL.cpp @@ -4,6 +4,9 @@ extern "C" { #endif +/* GL_ARB_ES3_2_compatibility */ +FLEXTGL_EXPORT void(APIENTRY *flextglPrimitiveBoundingBoxARB)(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) = nullptr; + /* GL_ARB_bindless_texture */ FLEXTGL_EXPORT GLuint64(APIENTRY *flextglGetImageHandleARB)(GLuint, GLint, GLboolean, GLint, GLenum) = nullptr; FLEXTGL_EXPORT GLuint64(APIENTRY *flextglGetTextureHandleARB)(GLuint) = nullptr; @@ -25,10 +28,6 @@ FLEXTGL_EXPORT void(APIENTRY *flextglVertexAttribL1ui64vARB)(GLuint, const GLuin /* GL_ARB_compute_variable_group_size */ FLEXTGL_EXPORT void(APIENTRY *flextglDispatchComputeGroupSizeARB)(GLuint, GLuint, GLuint, GLuint, GLuint, GLuint) = nullptr; -/* GL_ARB_indirect_parameters */ -FLEXTGL_EXPORT void(APIENTRY *flextglMultiDrawArraysIndirectCountARB)(GLenum, GLintptr, GLintptr, GLsizei, GLsizei) = nullptr; -FLEXTGL_EXPORT void(APIENTRY *flextglMultiDrawElementsIndirectCountARB)(GLenum, GLenum, GLintptr, GLintptr, GLsizei, GLsizei) = nullptr; - /* GL_ARB_robustness */ FLEXTGL_EXPORT GLenum(APIENTRY *flextglGetGraphicsResetStatusARB)(void) = nullptr; FLEXTGL_EXPORT void(APIENTRY *flextglGetnCompressedTexImageARB)(GLenum, GLint, GLsizei, void *) = nullptr; @@ -943,6 +942,12 @@ FLEXTGL_EXPORT void(APIENTRY *flextglVertexArrayElementBuffer)(GLuint, GLuint) = FLEXTGL_EXPORT void(APIENTRY *flextglVertexArrayVertexBuffer)(GLuint, GLuint, GLuint, GLintptr, GLsizei) = nullptr; FLEXTGL_EXPORT void(APIENTRY *flextglVertexArrayVertexBuffers)(GLuint, GLuint, GLsizei, const GLuint *, const GLintptr *, const GLsizei *) = nullptr; +/* GL_VERSION_4_6 */ +FLEXTGL_EXPORT void(APIENTRY *flextglMultiDrawArraysIndirectCount)(GLenum, const void *, GLintptr, GLsizei, GLsizei) = nullptr; +FLEXTGL_EXPORT void(APIENTRY *flextglMultiDrawElementsIndirectCount)(GLenum, GLenum, const void *, GLintptr, GLsizei, GLsizei) = nullptr; +FLEXTGL_EXPORT void(APIENTRY *flextglPolygonOffsetClamp)(GLfloat, GLfloat, GLfloat) = nullptr; +FLEXTGL_EXPORT void(APIENTRY *flextglSpecializeShader)(GLuint, const GLchar *, GLuint, const GLuint *, const GLuint *) = nullptr; + #ifdef __cplusplus } #endif diff --git a/src/MagnumExternal/OpenGL/GL/flextGL.h b/src/MagnumExternal/OpenGL/GL/flextGL.h index c735dc8b0..ffd784660 100644 --- a/src/MagnumExternal/OpenGL/GL/flextGL.h +++ b/src/MagnumExternal/OpenGL/GL/flextGL.h @@ -135,7 +135,7 @@ typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum /* Enums */ -/* GL_VERSION_1_1 */ +/* GL_VERSION_1_0 */ #define GL_DEPTH_BUFFER_BIT 0x00000100 #define GL_STENCIL_BUFFER_BIT 0x00000400 @@ -217,7 +217,6 @@ typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum #define GL_BLEND_SRC 0x0BE1 #define GL_BLEND 0x0BE2 #define GL_LOGIC_OP_MODE 0x0BF0 -#define GL_COLOR_LOGIC_OP 0x0BF2 #define GL_DRAW_BUFFER 0x0C01 #define GL_READ_BUFFER 0x0C02 #define GL_SCISSOR_BOX 0x0C10 @@ -245,21 +244,9 @@ typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum #define GL_SUBPIXEL_BITS 0x0D50 #define GL_TEXTURE_1D 0x0DE0 #define GL_TEXTURE_2D 0x0DE1 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_POINT 0x2A01 -#define GL_POLYGON_OFFSET_LINE 0x2A02 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_1D 0x8068 -#define GL_TEXTURE_BINDING_2D 0x8069 #define GL_TEXTURE_WIDTH 0x1000 #define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 #define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F #define GL_DONT_CARE 0x1100 #define GL_FASTEST 0x1101 #define GL_NICEST 0x1102 @@ -270,7 +257,6 @@ typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum #define GL_INT 0x1404 #define GL_UNSIGNED_INT 0x1405 #define GL_FLOAT 0x1406 -#define GL_DOUBLE 0x140A #define GL_CLEAR 0x1500 #define GL_AND 0x1501 #define GL_AND_REVERSE 0x1502 @@ -320,9 +306,26 @@ typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum #define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_WRAP_S 0x2802 #define GL_TEXTURE_WRAP_T 0x2803 +#define GL_REPEAT 0x2901 + +/* GL_VERSION_1_1 */ + +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_ALPHA_SIZE 0x805F +#define GL_DOUBLE 0x140A #define GL_PROXY_TEXTURE_1D 0x8063 #define GL_PROXY_TEXTURE_2D 0x8064 -#define GL_REPEAT 0x2901 #define GL_R3_G3_B2 0x2A10 #define GL_RGB4 0x804F #define GL_RGB5 0x8050 @@ -457,15 +460,17 @@ typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum #define GL_TEXTURE_DEPTH_SIZE 0x884A #define GL_TEXTURE_COMPARE_MODE 0x884C #define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_FUNC_ADD 0x8006 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 +#define GL_BLEND_COLOR 0x8005 +#define GL_BLEND_EQUATION 0x8009 #define GL_CONSTANT_COLOR 0x8001 #define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 #define GL_CONSTANT_ALPHA 0x8003 #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_FUNC_ADD 0x8006 +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_FUNC_SUBTRACT 0x800A +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 /* GL_VERSION_1_5 */ @@ -1553,6 +1558,35 @@ typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum #define GL_NONE 0 #define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC +/* GL_VERSION_4_6 */ + +#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB +#define GL_NONE 0 +#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC +#define GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551 +#define GL_SPIR_V_BINARY 0x9552 +#define GL_PARAMETER_BUFFER 0x80EE +#define GL_PARAMETER_BUFFER_BINDING 0x80EF +#define GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008 +#define GL_VERTICES_SUBMITTED 0x82EE +#define GL_PRIMITIVES_SUBMITTED 0x82EF +#define GL_VERTEX_SHADER_INVOCATIONS 0x82F0 +#define GL_TESS_CONTROL_SHADER_PATCHES 0x82F1 +#define GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2 +#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F +#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3 +#define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4 +#define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5 +#define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6 +#define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7 +#define GL_POLYGON_OFFSET_CLAMP 0x8E1B +#define GL_SPIR_V_EXTENSIONS 0x9553 +#define GL_NUM_SPIR_V_EXTENSIONS 0x9554 +#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF +#define GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC +#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED + /* GL_ARB_robustness */ #define GL_NO_ERROR 0 @@ -1575,11 +1609,6 @@ typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum #define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345 #define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF -/* GL_ARB_indirect_parameters */ - -#define GL_PARAMETER_BUFFER_ARB 0x80EE -#define GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF - /* GL_ARB_seamless_cubemap_per_texture */ #define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F @@ -1598,29 +1627,16 @@ typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum #define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A #define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9 -/* GL_ARB_pipeline_statistics_query */ - -#define GL_VERTICES_SUBMITTED_ARB 0x82EE -#define GL_PRIMITIVES_SUBMITTED_ARB 0x82EF -#define GL_VERTEX_SHADER_INVOCATIONS_ARB 0x82F0 -#define GL_TESS_CONTROL_SHADER_PATCHES_ARB 0x82F1 -#define GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB 0x82F2 -#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F -#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB 0x82F3 -#define GL_FRAGMENT_SHADER_INVOCATIONS_ARB 0x82F4 -#define GL_COMPUTE_SHADER_INVOCATIONS_ARB 0x82F5 -#define GL_CLIPPING_INPUT_PRIMITIVES_ARB 0x82F6 -#define GL_CLIPPING_OUTPUT_PRIMITIVES_ARB 0x82F7 - /* GL_ARB_sparse_buffer */ #define GL_SPARSE_STORAGE_BIT_ARB 0x0400 #define GL_SPARSE_BUFFER_PAGE_SIZE_ARB 0x82F8 -/* GL_ARB_transform_feedback_overflow_query */ +/* GL_ARB_ES3_2_compatibility */ -#define GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB 0x82EC -#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB 0x82ED +#define GL_PRIMITIVE_BOUNDING_BOX_ARB 0x92BE +#define GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB 0x9381 +#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB 0x9382 /* GL_ATI_texture_mirror_once */ @@ -1752,11 +1768,12 @@ typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum #define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285 -/* GL_KHR_no_error */ +/* Function prototypes */ -#define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008 +/* GL_ARB_ES3_2_compatibility */ -/* Function prototypes */ +GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglPrimitiveBoundingBoxARB)(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +#define glPrimitiveBoundingBoxARB flextglPrimitiveBoundingBoxARB /* GL_ARB_bindless_texture */ @@ -1798,13 +1815,6 @@ GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglVertexAttribL1ui64vARB)(GLuint, const GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglDispatchComputeGroupSizeARB)(GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); #define glDispatchComputeGroupSizeARB flextglDispatchComputeGroupSizeARB -/* GL_ARB_indirect_parameters */ - -GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglMultiDrawArraysIndirectCountARB)(GLenum, GLintptr, GLintptr, GLsizei, GLsizei); -#define glMultiDrawArraysIndirectCountARB flextglMultiDrawArraysIndirectCountARB -GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglMultiDrawElementsIndirectCountARB)(GLenum, GLenum, GLintptr, GLintptr, GLsizei, GLsizei); -#define glMultiDrawElementsIndirectCountARB flextglMultiDrawElementsIndirectCountARB - /* GL_ARB_robustness */ GLAPI FLEXTGL_EXPORT GLenum(APIENTRY *flextglGetGraphicsResetStatusARB)(void); @@ -3676,6 +3686,17 @@ GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglVertexArrayVertexBuffer)(GLuint, GLui GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglVertexArrayVertexBuffers)(GLuint, GLuint, GLsizei, const GLuint *, const GLintptr *, const GLsizei *); #define glVertexArrayVertexBuffers flextglVertexArrayVertexBuffers +/* GL_VERSION_4_6 */ + +GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglMultiDrawArraysIndirectCount)(GLenum, const void *, GLintptr, GLsizei, GLsizei); +#define glMultiDrawArraysIndirectCount flextglMultiDrawArraysIndirectCount +GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglMultiDrawElementsIndirectCount)(GLenum, GLenum, const void *, GLintptr, GLsizei, GLsizei); +#define glMultiDrawElementsIndirectCount flextglMultiDrawElementsIndirectCount +GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglPolygonOffsetClamp)(GLfloat, GLfloat, GLfloat); +#define glPolygonOffsetClamp flextglPolygonOffsetClamp +GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglSpecializeShader)(GLuint, const GLchar *, GLuint, const GLuint *, const GLuint *); +#define glSpecializeShader flextglSpecializeShader + #endif #ifdef __cplusplus diff --git a/src/MagnumExternal/OpenGL/GL/flextGLPlatform.cpp b/src/MagnumExternal/OpenGL/GL/flextGLPlatform.cpp index 9396c4a2b..d87bd89fa 100644 --- a/src/MagnumExternal/OpenGL/GL/flextGLPlatform.cpp +++ b/src/MagnumExternal/OpenGL/GL/flextGLPlatform.cpp @@ -8,6 +8,9 @@ void flextGLInit() { Magnum::Platform::Implementation::OpenGLFunctionLoader loader; + /* GL_ARB_ES3_2_compatibility */ + flextglPrimitiveBoundingBoxARB = reinterpret_cast(loader.load("glPrimitiveBoundingBoxARB")); + /* GL_ARB_bindless_texture */ flextglGetImageHandleARB = reinterpret_cast(loader.load("glGetImageHandleARB")); flextglGetTextureHandleARB = reinterpret_cast(loader.load("glGetTextureHandleARB")); @@ -29,10 +32,6 @@ void flextGLInit() { /* GL_ARB_compute_variable_group_size */ flextglDispatchComputeGroupSizeARB = reinterpret_cast(loader.load("glDispatchComputeGroupSizeARB")); - /* GL_ARB_indirect_parameters */ - flextglMultiDrawArraysIndirectCountARB = reinterpret_cast(loader.load("glMultiDrawArraysIndirectCountARB")); - flextglMultiDrawElementsIndirectCountARB = reinterpret_cast(loader.load("glMultiDrawElementsIndirectCountARB")); - /* GL_ARB_robustness */ flextglGetGraphicsResetStatusARB = reinterpret_cast(loader.load("glGetGraphicsResetStatusARB")); flextglGetnCompressedTexImageARB = reinterpret_cast(loader.load("glGetnCompressedTexImageARB")); @@ -946,4 +945,10 @@ void flextGLInit() { flextglVertexArrayElementBuffer = reinterpret_cast(loader.load("glVertexArrayElementBuffer")); flextglVertexArrayVertexBuffer = reinterpret_cast(loader.load("glVertexArrayVertexBuffer")); flextglVertexArrayVertexBuffers = reinterpret_cast(loader.load("glVertexArrayVertexBuffers")); + + /* GL_VERSION_4_6 */ + flextglMultiDrawArraysIndirectCount = reinterpret_cast(loader.load("glMultiDrawArraysIndirectCount")); + flextglMultiDrawElementsIndirectCount = reinterpret_cast(loader.load("glMultiDrawElementsIndirectCount")); + flextglPolygonOffsetClamp = reinterpret_cast(loader.load("glPolygonOffsetClamp")); + flextglSpecializeShader = reinterpret_cast(loader.load("glSpecializeShader")); }