Browse Source

GL: improve extension docs.

pull/324/head
Vladimír Vondruš 7 years ago
parent
commit
74183eb8b9
  1. 17
      doc/opengl-support.dox
  2. 5
      src/Magnum/GL/Context.h
  3. 11
      src/Magnum/GL/Extensions.h

17
doc/opengl-support.dox

@ -23,6 +23,8 @@
DEALINGS IN THE SOFTWARE. DEALINGS IN THE SOFTWARE.
*/ */
namespace Magnum {
/** @page opengl-support Support state /** @page opengl-support Support state
@brief List of (un)supported OpenGL features and extensions. @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 functions and enum values are exposed through the API, except for features
listed below in @ref opengl-unsupported-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 @subsection opengl-support-21 OpenGL 2.1
The core subset of OpenGL 2.1 should be fully implemented, except for the 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 Features that have their equivalents implemented in desktop version are
supported. ESSL 3.20 is supported. supported. ESSL 3.20 is supported.
@m_class{m-fullwidth}
Extension | Status Extension | Status
------------------------------------------- | ------ ------------------------------------------- | ------
@gl_extension{EXT,color_buffer_half_float} | | @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 @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} @m_class{m-fullwidth}
Extension | Status Extension | Status
@ -472,6 +484,9 @@ supported.
@subsection opengl-support-webgl20-extensions WebGL 1.0 extensions to match WebGL 2.0 functionality @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} @m_class{m-fullwidth}
Extension | Status Extension | Status
@ -585,3 +600,5 @@ See also @ref opengl-unsupported and @ref deprecated.
See also @ref opengl-deprecated. See also @ref opengl-deprecated.
*/ */
}

5
src/Magnum/GL/Context.h

@ -565,8 +565,9 @@ class MAGNUM_GL_EXPORT Context {
/** /**
* @brief Whether given extension is supported * @brief Whether given extension is supported
* *
* Extensions usable with this function are listed in @ref Extensions * Extensions usable with this function are listed in the
* namespace in header @ref Extensions.h. Example usage: * @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 * @snippet MagnumGL.cpp Context-isExtensionSupported
* *

11
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 Each extension is a @cpp struct @ce named hierarchically by prefix, vendor and
extension name taken from list at @ref opengl-support, for example extension name taken from list at @ref opengl-support, for example
`GL::Extensions::ARB::texture_storage`. Note that desktop extensions are `GL::Extensions::ARB::texture_storage`. Note that, unless said otherwise,
available only on desktop build, OpenGL ES 2.0 extensions which are part of ES desktop extensions are available only on desktop build, OpenGL ES 2.0
3.0 are available only on @ref MAGNUM_TARGET_GLES2 "OpenGL ES 2.0 build", extensions which are part of ES 3.0 are available only on
vendor OpenGL ES extensions 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 @ref MAGNUM_TARGET_GLES "OpenGL ES builds" and WebGL extensions are available
only on @ref MAGNUM_TARGET_WEBGL "WebGL builds". only on @ref MAGNUM_TARGET_WEBGL "WebGL builds".
@ -254,7 +256,6 @@ namespace AMD {
_extension(171,NV,conditional_render, GL210, GL300) // #346 _extension(171,NV,conditional_render, GL210, GL300) // #346
/* NV_draw_texture not supported */ // #430 /* 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) #elif defined(MAGNUM_TARGET_WEBGL)
namespace ANGLE { namespace ANGLE {
#ifdef MAGNUM_TARGET_GLES2 #ifdef MAGNUM_TARGET_GLES2

Loading…
Cancel
Save