diff --git a/doc/opengl-support.dox b/doc/opengl-support.dox index 395ae2646..2852601f5 100644 --- a/doc/opengl-support.dox +++ b/doc/opengl-support.dox @@ -454,6 +454,7 @@ Extension | Status @gl_extension{EXT,sRGB_write_control} | done @gl_extension{EXT,texture_compression_s3tc} | done @gl_extension{EXT,shader_integer_mix} | done (shading language only) +@gl_extension{EXT,polygon_offset_clamp} | | @gl_extension{EXT,texture_compression_s3tc_srgb} | | @gl_extension2{KHR,texture_compression_astc_hdr,KHR_texture_compression_astc_hdr} | done @gl_extension2{KHR,blend_equation_advanced_coherent,KHR_blend_equation_advanced} | done diff --git a/src/MagnumExternal/OpenGL/GLES2/extensions.txt b/src/MagnumExternal/OpenGL/GLES2/extensions.txt index 0284bd590..b1985999d 100644 --- a/src/MagnumExternal/OpenGL/GLES2/extensions.txt +++ b/src/MagnumExternal/OpenGL/GLES2/extensions.txt @@ -80,6 +80,7 @@ extension EXT_disjoint_timer_query optional extension EXT_texture_sRGB_decode optional extension EXT_sRGB_write_control optional extension EXT_texture_compression_s3tc optional +extension EXT_polygon_offset_clamp optional extension EXT_texture_compression_s3tc_srgb optional extension KHR_texture_compression_astc_hdr optional extension KHR_blend_equation_advanced_coherent optional diff --git a/src/MagnumExternal/OpenGL/GLES2/flextGL.cpp b/src/MagnumExternal/OpenGL/GLES2/flextGL.cpp index 15903a93b..d85b198b0 100644 --- a/src/MagnumExternal/OpenGL/GLES2/flextGL.cpp +++ b/src/MagnumExternal/OpenGL/GLES2/flextGL.cpp @@ -101,6 +101,9 @@ FLEXTGL_EXPORT void(APIENTRY *flextglGetQueryObjectuivEXT)(GLuint, GLenum, GLuin FLEXTGL_EXPORT void(APIENTRY *flextglGetQueryivEXT)(GLenum, GLenum, GLint *) = nullptr; FLEXTGL_EXPORT GLboolean(APIENTRY *flextglIsQueryEXT)(GLuint) = nullptr; +/* GL_EXT_polygon_offset_clamp */ +FLEXTGL_EXPORT void(APIENTRY *flextglPolygonOffsetClampEXT)(GLfloat, GLfloat, GLfloat) = nullptr; + /* GL_EXT_robustness */ FLEXTGL_EXPORT GLenum(APIENTRY *flextglGetGraphicsResetStatusEXT)(void) = nullptr; FLEXTGL_EXPORT void(APIENTRY *flextglGetnUniformfvEXT)(GLuint, GLint, GLsizei, GLfloat *) = nullptr; diff --git a/src/MagnumExternal/OpenGL/GLES2/flextGL.h b/src/MagnumExternal/OpenGL/GLES2/flextGL.h index 8cb79f1ba..58a290738 100644 --- a/src/MagnumExternal/OpenGL/GLES2/flextGL.h +++ b/src/MagnumExternal/OpenGL/GLES2/flextGL.h @@ -987,6 +987,10 @@ typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLen #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +/* GL_EXT_polygon_offset_clamp */ + +#define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B + /* GL_EXT_texture_compression_s3tc_srgb */ #define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C @@ -1348,6 +1352,11 @@ GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglGetQueryivEXT)(GLenum, GLenum, GLint GLAPI FLEXTGL_EXPORT GLboolean(APIENTRY *flextglIsQueryEXT)(GLuint); #define glIsQueryEXT flextglIsQueryEXT +/* GL_EXT_polygon_offset_clamp */ + +GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglPolygonOffsetClampEXT)(GLfloat, GLfloat, GLfloat); +#define glPolygonOffsetClampEXT flextglPolygonOffsetClampEXT + /* GL_EXT_robustness */ GLAPI FLEXTGL_EXPORT GLenum(APIENTRY *flextglGetGraphicsResetStatusEXT)(void); diff --git a/src/MagnumExternal/OpenGL/GLES2/flextGLPlatform.cpp b/src/MagnumExternal/OpenGL/GLES2/flextGLPlatform.cpp index ac687633c..bf8e72227 100644 --- a/src/MagnumExternal/OpenGL/GLES2/flextGLPlatform.cpp +++ b/src/MagnumExternal/OpenGL/GLES2/flextGLPlatform.cpp @@ -105,6 +105,9 @@ void flextGLInit(Magnum::GL::Context&) { flextglGetQueryivEXT = reinterpret_cast(loader.load("glGetQueryivEXT")); flextglIsQueryEXT = reinterpret_cast(loader.load("glIsQueryEXT")); + /* GL_EXT_polygon_offset_clamp */ + flextglPolygonOffsetClampEXT = reinterpret_cast(loader.load("glPolygonOffsetClampEXT")); + /* GL_EXT_robustness */ flextglGetGraphicsResetStatusEXT = reinterpret_cast(loader.load("glGetGraphicsResetStatusEXT")); flextglGetnUniformfvEXT = reinterpret_cast(loader.load("glGetnUniformfvEXT")); diff --git a/src/MagnumExternal/OpenGL/GLES2/flextGLPlatformIOS.cpp b/src/MagnumExternal/OpenGL/GLES2/flextGLPlatformIOS.cpp index cbf4819ed..c2efd9d25 100644 --- a/src/MagnumExternal/OpenGL/GLES2/flextGLPlatformIOS.cpp +++ b/src/MagnumExternal/OpenGL/GLES2/flextGLPlatformIOS.cpp @@ -67,6 +67,7 @@ #undef glGetQueryObjectuivEXT #undef glGetQueryivEXT #undef glIsQueryEXT +#undef glPolygonOffsetClampEXT #undef glGetGraphicsResetStatusEXT #undef glGetnUniformfvEXT #undef glGetnUniformivEXT @@ -259,6 +260,11 @@ void flextGLInit(Magnum::GL::Context&) { flextglIsQueryEXT = reinterpret_cast(glIsQueryEXT); #endif + /* GL_EXT_polygon_offset_clamp */ + #if GL_EXT_polygon_offset_clamp + flextglPolygonOffsetClampEXT = reinterpret_cast(glPolygonOffsetClampEXT); + #endif + /* GL_EXT_robustness */ #if GL_EXT_robustness flextglGetGraphicsResetStatusEXT = reinterpret_cast(glGetGraphicsResetStatusEXT); diff --git a/src/MagnumExternal/OpenGL/GLES2/flextGLPlatformWindowsDesktop.cpp b/src/MagnumExternal/OpenGL/GLES2/flextGLPlatformWindowsDesktop.cpp index c86977630..e9d9ef3d6 100644 --- a/src/MagnumExternal/OpenGL/GLES2/flextGLPlatformWindowsDesktop.cpp +++ b/src/MagnumExternal/OpenGL/GLES2/flextGLPlatformWindowsDesktop.cpp @@ -204,6 +204,9 @@ void flextGLInit(Magnum::GL::Context&) { flextglGetQueryivEXT = reinterpret_cast(loader.load("glGetQueryivEXT")); flextglIsQueryEXT = reinterpret_cast(loader.load("glIsQueryEXT")); + /* GL_EXT_polygon_offset_clamp */ + flextglPolygonOffsetClampEXT = reinterpret_cast(loader.load("glPolygonOffsetClampEXT")); + /* GL_EXT_robustness */ flextglGetGraphicsResetStatusEXT = reinterpret_cast(loader.load("glGetGraphicsResetStatusEXT")); flextglGetnUniformfvEXT = reinterpret_cast(loader.load("glGetnUniformfvEXT")); diff --git a/src/MagnumExternal/OpenGL/GLES2/flextGLWindowsDesktop.cpp b/src/MagnumExternal/OpenGL/GLES2/flextGLWindowsDesktop.cpp index 3a8b4f687..1c1b62874 100644 --- a/src/MagnumExternal/OpenGL/GLES2/flextGLWindowsDesktop.cpp +++ b/src/MagnumExternal/OpenGL/GLES2/flextGLWindowsDesktop.cpp @@ -200,6 +200,9 @@ FLEXTGL_EXPORT void(APIENTRY *flextglGetQueryObjectuivEXT)(GLuint, GLenum, GLuin FLEXTGL_EXPORT void(APIENTRY *flextglGetQueryivEXT)(GLenum, GLenum, GLint *) = nullptr; FLEXTGL_EXPORT GLboolean(APIENTRY *flextglIsQueryEXT)(GLuint) = nullptr; +/* GL_EXT_polygon_offset_clamp */ +FLEXTGL_EXPORT void(APIENTRY *flextglPolygonOffsetClampEXT)(GLfloat, GLfloat, GLfloat) = nullptr; + /* GL_EXT_robustness */ FLEXTGL_EXPORT GLenum(APIENTRY *flextglGetGraphicsResetStatusEXT)(void) = nullptr; FLEXTGL_EXPORT void(APIENTRY *flextglGetnUniformfvEXT)(GLuint, GLint, GLsizei, GLfloat *) = nullptr; diff --git a/src/MagnumExternal/OpenGL/GLES2/flextGLWindowsDesktop.h b/src/MagnumExternal/OpenGL/GLES2/flextGLWindowsDesktop.h index 3e1495917..b0c4d4118 100644 --- a/src/MagnumExternal/OpenGL/GLES2/flextGLWindowsDesktop.h +++ b/src/MagnumExternal/OpenGL/GLES2/flextGLWindowsDesktop.h @@ -982,6 +982,10 @@ typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLen #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +/* GL_EXT_polygon_offset_clamp */ + +#define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B + /* GL_EXT_texture_compression_s3tc_srgb */ #define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C @@ -1440,6 +1444,11 @@ GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglGetQueryivEXT)(GLenum, GLenum, GLint GLAPI FLEXTGL_EXPORT GLboolean(APIENTRY *flextglIsQueryEXT)(GLuint); #define glIsQueryEXT flextglIsQueryEXT +/* GL_EXT_polygon_offset_clamp */ + +GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglPolygonOffsetClampEXT)(GLfloat, GLfloat, GLfloat); +#define glPolygonOffsetClampEXT flextglPolygonOffsetClampEXT + /* GL_EXT_robustness */ GLAPI FLEXTGL_EXPORT GLenum(APIENTRY *flextglGetGraphicsResetStatusEXT)(void); diff --git a/src/MagnumExternal/OpenGL/GLES3/extensions.txt b/src/MagnumExternal/OpenGL/GLES3/extensions.txt index 012a305e0..ccc96d3bc 100644 --- a/src/MagnumExternal/OpenGL/GLES3/extensions.txt +++ b/src/MagnumExternal/OpenGL/GLES3/extensions.txt @@ -45,8 +45,9 @@ extension EXT_disjoint_timer_query optional extension EXT_texture_sRGB_decode optional extension EXT_sRGB_write_control optional extension EXT_texture_compression_s3tc optional -extension EXT_texture_compression_s3tc_srgb optional extension EXT_shader_integer_mix optional +extension EXT_polygon_offset_clamp optional +extension EXT_texture_compression_s3tc_srgb optional extension KHR_texture_compression_astc_hdr optional extension KHR_blend_equation_advanced_coherent optional extension KHR_context_flush_control optional diff --git a/src/MagnumExternal/OpenGL/GLES3/flextGL.cpp b/src/MagnumExternal/OpenGL/GLES3/flextGL.cpp index 87ae1ad96..fd7b0955d 100644 --- a/src/MagnumExternal/OpenGL/GLES3/flextGL.cpp +++ b/src/MagnumExternal/OpenGL/GLES3/flextGL.cpp @@ -191,6 +191,9 @@ FLEXTGL_EXPORT void(APIENTRY *flextglMultiDrawElementsEXT)(GLenum, const GLsizei FLEXTGL_EXPORT void(APIENTRY *flextglFramebufferTexture2DMultisampleEXT)(GLenum, GLenum, GLenum, GLuint, GLint, GLsizei) = nullptr; FLEXTGL_EXPORT void(APIENTRY *flextglRenderbufferStorageMultisampleEXT)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = nullptr; +/* GL_EXT_polygon_offset_clamp */ +FLEXTGL_EXPORT void(APIENTRY *flextglPolygonOffsetClampEXT)(GLfloat, GLfloat, GLfloat) = nullptr; + /* GL_EXT_primitive_bounding_box */ FLEXTGL_EXPORT void(APIENTRY *flextglPrimitiveBoundingBoxEXT)(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) = nullptr; diff --git a/src/MagnumExternal/OpenGL/GLES3/flextGL.h b/src/MagnumExternal/OpenGL/GLES3/flextGL.h index 4a9a5fff1..ece5f1a6c 100644 --- a/src/MagnumExternal/OpenGL/GLES3/flextGL.h +++ b/src/MagnumExternal/OpenGL/GLES3/flextGL.h @@ -1526,6 +1526,10 @@ typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLen #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +/* GL_EXT_polygon_offset_clamp */ + +#define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B + /* GL_EXT_texture_compression_s3tc_srgb */ #define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C @@ -2179,6 +2183,11 @@ GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglFramebufferTexture2DMultisampleEXT)(G GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglRenderbufferStorageMultisampleEXT)(GLenum, GLsizei, GLenum, GLsizei, GLsizei); #define glRenderbufferStorageMultisampleEXT flextglRenderbufferStorageMultisampleEXT +/* GL_EXT_polygon_offset_clamp */ + +GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglPolygonOffsetClampEXT)(GLfloat, GLfloat, GLfloat); +#define glPolygonOffsetClampEXT flextglPolygonOffsetClampEXT + /* GL_EXT_primitive_bounding_box */ GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglPrimitiveBoundingBoxEXT)(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); diff --git a/src/MagnumExternal/OpenGL/GLES3/flextGLPlatform.cpp b/src/MagnumExternal/OpenGL/GLES3/flextGLPlatform.cpp index 777e467dc..c052713a5 100644 --- a/src/MagnumExternal/OpenGL/GLES3/flextGLPlatform.cpp +++ b/src/MagnumExternal/OpenGL/GLES3/flextGLPlatform.cpp @@ -195,6 +195,9 @@ void flextGLInit(Magnum::GL::Context&) { flextglFramebufferTexture2DMultisampleEXT = reinterpret_cast(loader.load("glFramebufferTexture2DMultisampleEXT")); flextglRenderbufferStorageMultisampleEXT = reinterpret_cast(loader.load("glRenderbufferStorageMultisampleEXT")); + /* GL_EXT_polygon_offset_clamp */ + flextglPolygonOffsetClampEXT = reinterpret_cast(loader.load("glPolygonOffsetClampEXT")); + /* GL_EXT_primitive_bounding_box */ flextglPrimitiveBoundingBoxEXT = reinterpret_cast(loader.load("glPrimitiveBoundingBoxEXT")); diff --git a/src/MagnumExternal/OpenGL/GLES3/flextGLPlatformIOS.cpp b/src/MagnumExternal/OpenGL/GLES3/flextGLPlatformIOS.cpp index ae251dafa..7d3ffd8ca 100644 --- a/src/MagnumExternal/OpenGL/GLES3/flextGLPlatformIOS.cpp +++ b/src/MagnumExternal/OpenGL/GLES3/flextGLPlatformIOS.cpp @@ -55,6 +55,7 @@ #undef glMultiDrawElementsEXT #undef glFramebufferTexture2DMultisampleEXT #undef glRenderbufferStorageMultisampleEXT +#undef glPolygonOffsetClampEXT #undef glPrimitiveBoundingBoxEXT #undef glGetGraphicsResetStatusEXT #undef glGetnUniformfvEXT @@ -205,6 +206,11 @@ void flextGLInit(Magnum::GL::Context&) { flextglRenderbufferStorageMultisampleEXT = reinterpret_cast(glRenderbufferStorageMultisampleEXT); #endif + /* GL_EXT_polygon_offset_clamp */ + #if GL_EXT_polygon_offset_clamp + flextglPolygonOffsetClampEXT = reinterpret_cast(glPolygonOffsetClampEXT); + #endif + /* GL_EXT_primitive_bounding_box */ #if GL_EXT_primitive_bounding_box flextglPrimitiveBoundingBoxEXT = reinterpret_cast(glPrimitiveBoundingBoxEXT); diff --git a/src/MagnumExternal/OpenGL/GLES3/flextGLPlatformWindowsDesktop.cpp b/src/MagnumExternal/OpenGL/GLES3/flextGLPlatformWindowsDesktop.cpp index 4fc15b9e1..2378be507 100644 --- a/src/MagnumExternal/OpenGL/GLES3/flextGLPlatformWindowsDesktop.cpp +++ b/src/MagnumExternal/OpenGL/GLES3/flextGLPlatformWindowsDesktop.cpp @@ -397,6 +397,9 @@ void flextGLInit(Magnum::GL::Context&) { flextglFramebufferTexture2DMultisampleEXT = reinterpret_cast(loader.load("glFramebufferTexture2DMultisampleEXT")); flextglRenderbufferStorageMultisampleEXT = reinterpret_cast(loader.load("glRenderbufferStorageMultisampleEXT")); + /* GL_EXT_polygon_offset_clamp */ + flextglPolygonOffsetClampEXT = reinterpret_cast(loader.load("glPolygonOffsetClampEXT")); + /* GL_EXT_primitive_bounding_box */ flextglPrimitiveBoundingBoxEXT = reinterpret_cast(loader.load("glPrimitiveBoundingBoxEXT")); diff --git a/src/MagnumExternal/OpenGL/GLES3/flextGLWindowsDesktop.cpp b/src/MagnumExternal/OpenGL/GLES3/flextGLWindowsDesktop.cpp index 014d8f25b..225140591 100644 --- a/src/MagnumExternal/OpenGL/GLES3/flextGLWindowsDesktop.cpp +++ b/src/MagnumExternal/OpenGL/GLES3/flextGLWindowsDesktop.cpp @@ -393,6 +393,9 @@ FLEXTGL_EXPORT void(APIENTRY *flextglMultiDrawElementsEXT)(GLenum, const GLsizei FLEXTGL_EXPORT void(APIENTRY *flextglFramebufferTexture2DMultisampleEXT)(GLenum, GLenum, GLenum, GLuint, GLint, GLsizei) = nullptr; FLEXTGL_EXPORT void(APIENTRY *flextglRenderbufferStorageMultisampleEXT)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = nullptr; +/* GL_EXT_polygon_offset_clamp */ +FLEXTGL_EXPORT void(APIENTRY *flextglPolygonOffsetClampEXT)(GLfloat, GLfloat, GLfloat) = nullptr; + /* GL_EXT_primitive_bounding_box */ FLEXTGL_EXPORT void(APIENTRY *flextglPrimitiveBoundingBoxEXT)(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) = nullptr; diff --git a/src/MagnumExternal/OpenGL/GLES3/flextGLWindowsDesktop.h b/src/MagnumExternal/OpenGL/GLES3/flextGLWindowsDesktop.h index 01f64ec99..6bfaa0f0f 100644 --- a/src/MagnumExternal/OpenGL/GLES3/flextGLWindowsDesktop.h +++ b/src/MagnumExternal/OpenGL/GLES3/flextGLWindowsDesktop.h @@ -1518,6 +1518,10 @@ typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLen #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +/* GL_EXT_polygon_offset_clamp */ + +#define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B + /* GL_EXT_texture_compression_s3tc_srgb */ #define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C @@ -2369,6 +2373,11 @@ GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglFramebufferTexture2DMultisampleEXT)(G GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglRenderbufferStorageMultisampleEXT)(GLenum, GLsizei, GLenum, GLsizei, GLsizei); #define glRenderbufferStorageMultisampleEXT flextglRenderbufferStorageMultisampleEXT +/* GL_EXT_polygon_offset_clamp */ + +GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglPolygonOffsetClampEXT)(GLfloat, GLfloat, GLfloat); +#define glPolygonOffsetClampEXT flextglPolygonOffsetClampEXT + /* GL_EXT_primitive_bounding_box */ GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglPrimitiveBoundingBoxEXT)(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);