Browse Source

First-class WebGL support, part 1: initial infrastructure.

pull/107/head
Vladimír Vondruš 11 years ago
parent
commit
4f90760598
  1. 8
      Doxyfile
  2. 31
      doc/opengl.dox
  3. 6
      src/Magnum/Magnum.h
  4. 4
      src/Magnum/Math/Angle.h

8
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}=<a href=\"http://www.opengl.org/registry/specs/\1/\2.txt\"><tt>\1_\2</tt></a>" \
"extension2{2}=<a href=\"http://www.opengl.org/registry/specs/\1/\1_\2.txt\"><tt>\1_\2</tt></a>" \
"extension3{3}=<a href=\"http://www.opengl.org/registry/specs/\1/\3.txt\"><tt>\1_\2</tt></a>" \
"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}=<a href=\"http://www.khronos.org/registry/gles/extensions/\1/\1_\2.txt\"><tt>\1_\2</tt></a>" \
"es_extension2{3}=<a href=\"http://www.khronos.org/registry/gles/extensions/\1/\3.txt\"><tt>\1_\2</tt></a>" \
"webgl_extension{2}=<a href=\"https://www.khronos.org/registry/webgl/extensions/\1_\2/\"><tt>\1_\2</tt></a>" \
"fn_al{1}=`al\1()`" \
"def_al{1}=`AL_\1`"

31
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
*/

6
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<Int> 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) */

4
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<Double> operator "" _deg(long double value) { return Deg<Double>(value); }
#endif
@ -210,7 +210,7 @@ template<class T> class Rad: public Unit<Rad, T> {
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<Double> operator "" _rad(long double value) { return Rad<Double>(value); }
#endif

Loading…
Cancel
Save