diff --git a/doc/opengl-support.dox b/doc/opengl-support.dox index fd04d3864..a2ddaf0d6 100644 --- a/doc/opengl-support.dox +++ b/doc/opengl-support.dox @@ -23,6 +23,8 @@ DEALINGS IN THE SOFTWARE. */ +namespace Magnum { + /** @page opengl-support Support state @brief List of (un)supported OpenGL features and extensions. @@ -37,6 +39,11 @@ The extension implementation is considered complete if all its defined types, functions and enum values are exposed through the API, except for features listed below in @ref opengl-unsupported-features. +All extensions from the below lists are available in the @ref GL::Extensions +namespace and it's possible to check for their availability using +@ref GL::Context::isExtensionSupported(). See its documentation for more +information. + @subsection opengl-support-21 OpenGL 2.1 The core subset of OpenGL 2.1 should be fully implemented, except for the @@ -334,6 +341,8 @@ supported. ESSL 3.10 is supported. Features that have their equivalents implemented in desktop version are supported. ESSL 3.20 is supported. +@m_class{m-fullwidth} + Extension | Status ------------------------------------------- | ------ @gl_extension{EXT,color_buffer_half_float} | | @@ -362,6 +371,9 @@ Extension | Status @subsection opengl-support-es30-extensions OpenGL ES 2.0 extensions to match ES 3.0 functionality +Unless said otherwise, these are not exposed in the @ref GL::Extensions +namespace on @ref MAGNUM_TARGET_GLES2 "OpenGL ES 3.0 builds". + @m_class{m-fullwidth} Extension | Status @@ -472,6 +484,9 @@ supported. @subsection opengl-support-webgl20-extensions WebGL 1.0 extensions to match WebGL 2.0 functionality +Unless said otherwise, these are not available in the @ref GL::Extensions +namespace on @ref MAGNUM_TARGET_GLES2 "WebGL 2.0 builds". + @m_class{m-fullwidth} Extension | Status @@ -585,3 +600,5 @@ See also @ref opengl-unsupported and @ref deprecated. See also @ref opengl-deprecated. */ + +} diff --git a/src/Magnum/GL/Context.h b/src/Magnum/GL/Context.h index 17abe0dcf..7bdf1ed5c 100644 --- a/src/Magnum/GL/Context.h +++ b/src/Magnum/GL/Context.h @@ -565,8 +565,9 @@ class MAGNUM_GL_EXPORT Context { /** * @brief Whether given extension is supported * - * Extensions usable with this function are listed in @ref Extensions - * namespace in header @ref Extensions.h. Example usage: + * Extensions usable with this function are listed in the + * @ref Extensions namespace in the @ref Extensions.h header and in the + * @ref opengl-support "OpenGL support tables". Example usage: * * @snippet MagnumGL.cpp Context-isExtensionSupported * diff --git a/src/Magnum/GL/Extensions.h b/src/Magnum/GL/Extensions.h index 642845907..2125e7a50 100644 --- a/src/Magnum/GL/Extensions.h +++ b/src/Magnum/GL/Extensions.h @@ -46,10 +46,12 @@ namespace Magnum { namespace GL { Each extension is a @cpp struct @ce named hierarchically by prefix, vendor and extension name taken from list at @ref opengl-support, for example -`GL::Extensions::ARB::texture_storage`. Note that desktop extensions are -available only on desktop build, OpenGL ES 2.0 extensions which are part of ES -3.0 are available only on @ref MAGNUM_TARGET_GLES2 "OpenGL ES 2.0 build", -vendor OpenGL ES extensions are available only on +`GL::Extensions::ARB::texture_storage`. Note that, unless said otherwise, +desktop extensions are available only on desktop build, OpenGL ES 2.0 +extensions which are part of ES 3.0 are available only on +@ref MAGNUM_TARGET_GLES2 "OpenGL ES 2.0 builds", WebGL 1.0 extensions which are +part of WebGL 2.0 are available only on @ref MAGNUM_TARGET_GLES2 "WebGL 1.0" +builds, OpenGL ES extensions are available only on @ref MAGNUM_TARGET_GLES "OpenGL ES builds" and WebGL extensions are available only on @ref MAGNUM_TARGET_WEBGL "WebGL builds". @@ -254,7 +256,6 @@ namespace AMD { _extension(171,NV,conditional_render, GL210, GL300) // #346 /* NV_draw_texture not supported */ // #430 } -/* IMPORTANT: if this line is > 329 (73 + size), don't forget to update array size in Context.h */ #elif defined(MAGNUM_TARGET_WEBGL) namespace ANGLE { #ifdef MAGNUM_TARGET_GLES2