diff --git a/Doxyfile b/Doxyfile index 04b1d97df..42d00e31a 100644 --- a/Doxyfile +++ b/Doxyfile @@ -260,16 +260,20 @@ ALIASES = \ "requires_gl44=@xrefitem requires-gl44 \"Requires OpenGL 4.4\" \"Functionality requiring OpenGL 4.4\"" \ "requires_gl45=@xrefitem requires-gl45 \"Requires OpenGL 4.5\" \"Functionality requiring OpenGL 4.5\"" \ "requires_extension=@xrefitem requires-extension \"Requires OpenGL extension\" \"Functionality requiring specific OpenGL extension\"" \ - "requires_gl=@xrefitem requires-gl \"Requires desktop OpenGL\" \"Functionality requiring desktop OpenGL (not available in OpenGL ES)\"" \ + "requires_gl=@xrefitem requires-gl \"Requires desktop OpenGL\" \"Functionality requiring desktop OpenGL\"" \ "extension{2}=\1_\2" \ "extension2{2}=\1_\2" \ "extension3{3}=\1_\2" \ - "requires_gles20=@xrefitem requires-gles20 \"Requires OpenGL ES 2.0\" \"Functionality requiring OpenGL ES 2.0 (not available in ES 3.0 and desktop OpenGL)\"" \ + "requires_gles20=@xrefitem requires-gles20 \"Requires OpenGL ES 2.0 / WebGL 1.%\" \"Functionality requiring OpenGL ES 2.0 or WebGL 1.0\"" \ "requires_gles30=@xrefitem requires-gles30 \"Requires OpenGL ES 3.0\" \"Functionality requiring OpenGL ES 3.0\"" \ "requires_gles31=@xrefitem requires-gles31 \"Requires OpenGL ES 3.1\" \"Functionality requiring OpenGL ES 3.1\"" \ "requires_es_extension=@xrefitem requires-es-extension \"Requires OpenGL ES extension\" \"Functionality requiring specific OpenGL ES extension\"" \ + "requires_gles=@xrefitem requires-gles \"Requires OpenGL ES or desktop OpenGL\" \"Functionality requiring OpenGL ES or desktop OpenGL\"" \ + "requires_webgl20=@xrefitem requires-webgl20 \"Requires WebGL 2.0\" \"Functionality requiring WebGL 2.0\"" \ + "requires_webgl_extension=@xrefitem requires-webgl-extension \"Requires WebGL extension\" \"Functionality requiring specific WebGL extension\"" \ "es_extension{2}=\1_\2" \ "es_extension2{3}=\1_\2" \ + "webgl_extension{2}=\1_\2" \ "fn_al{1}=`al\1()`" \ "def_al{1}=`AL_\1`" diff --git a/doc/opengl.dox b/doc/opengl.dox index c1138d16d..c4feef3f7 100644 --- a/doc/opengl.dox +++ b/doc/opengl.dox @@ -62,6 +62,9 @@ is supported on older Intel GPUs even if they are capable of OpenGL 2.1 only). - @subpage requires-gles30 - @subpage requires-gles31 - @subpage requires-es-extension +- @subpage requires-gles +- @subpage requires-webgl20 +- @subpage requires-webgl-extension @see @ref building, @ref cmake, @ref MAGNUM_TARGET_GLES, @ref MAGNUM_TARGET_GLES2 @@ -79,21 +82,37 @@ is supported on older Intel GPUs even if they are capable of OpenGL 2.1 only). @page requires-extension Functionality requiring specific OpenGL extension -@page requires-gl Functionality requiring desktop OpenGL (not available on OpenGL ES) +@page requires-gl Functionality requiring desktop OpenGL + +The following symbols are not defined when targeting OpenGL ES or WebGL. + @see @ref MAGNUM_TARGET_GLES -@page requires-gles20 Functionality requiring OpenGL ES 2.0 (not available on desktop or ES 3.0) -@see @ref MAGNUM_TARGET_GLES2 +@page requires-gles20 Functionality requiring OpenGL ES 2.0 or WebGL 1.0 -@page requires-gles30 Functionality requiring at least OpenGL ES 3.0 +The following symbols are not defined when targeting OpenGL ES 3.0, WebGL 2.0 +or desktop OpenGL. -The following symbols are not defined at all when targeting OpenGL ES 2.0. +@see @ref MAGNUM_TARGET_GLES2 + +@page requires-gles30 Functionality requiring OpenGL ES 3.0 @see @ref MAGNUM_TARGET_GLES3 @page requires-gles31 Functionality requiring OpenGL ES 3.1 +The following symbols are not defined when targeting OpenGL ES 2.0. + @page requires-es-extension Functionality requiring specific OpenGL ES extension -@see @ref MAGNUM_TARGET_GLES2 + +@page requires-gles Functionality requiring OpenGL ES or desktop OpenGL + +The following symbols are not defined when targeting WebGL. + +@see @ref MAGNUM_TARGET_WEBGL, @ref requires-gl + +@page requires-webgl20 Functionality requiring WebGL 2.0 + +@page requires-webgl-extension Functionality requiring specific WebGL extension */ diff --git a/src/Magnum/Magnum.h b/src/Magnum/Magnum.h index bae122d0c..2bb6584f5 100644 --- a/src/Magnum/Magnum.h +++ b/src/Magnum/Magnum.h @@ -167,14 +167,14 @@ typedef std::int32_t Int; /** @brief Unsigned long (64bit) -@attention 64-bit integers are not available in @ref MAGNUM_TARGET_WEBGL "WebGL". +@requires_gles 64-bit integers are not available in WebGL. */ typedef std::uint64_t UnsignedLong; /** @brief Signed long (64bit) -@attention 64-bit integers are not available in @ref MAGNUM_TARGET_WEBGL "WebGL". +@requires_gles 64-bit integers are not available in WebGL. */ typedef std::int64_t Long; #endif @@ -305,7 +305,7 @@ typedef Math::Range3D Range3Di; /** @{ @name Double-precision types See @ref types for more information. -@requires_gl Only single-precision types are available in OpenGL ES. +@requires_gl Only single-precision types are available in OpenGL ES and WebGL. */ /** @brief Double (64bit) */ diff --git a/src/Magnum/Math/Angle.h b/src/Magnum/Math/Angle.h index 7d4355fa7..79ea78849 100644 --- a/src/Magnum/Math/Angle.h +++ b/src/Magnum/Math/Angle.h @@ -156,7 +156,7 @@ Double cosine = Math::cos(60.0_deg); // cosine = 0.5 Double cosine = Math::cos(1.047_rad); // cosine = 0.5 @endcode @see @link operator""_degf() @endlink, @link operator""_rad() @endlink -@requires_gl Only single-precision types are available in OpenGL ES. +@requires_gl Only single-precision types are available in OpenGL ES and WebGL. */ constexpr Deg operator "" _deg(long double value) { return Deg(value); } #endif @@ -210,7 +210,7 @@ template class Rad: public Unit { See @link operator""_deg() @endlink for more information. @see @link operator""_radf() @endlink -@requires_gl Only single-precision types are available in OpenGL ES. +@requires_gl Only single-precision types are available in OpenGL ES and WebGL. */ constexpr Rad operator "" _rad(long double value) { return Rad(value); } #endif