Browse Source

Initial support for OpenGL ES 3.1.

pull/68/head
Vladimír Vondruš 12 years ago
parent
commit
8e79d1877e
  1. 1
      Doxyfile
  2. 3
      README.md
  3. 3
      doc/mainpage.dox
  4. 5
      doc/opengl-support.dox
  5. 8
      doc/opengl.dox
  6. 2
      src/Magnum/Context.cpp
  7. 1
      src/Magnum/Shader.cpp
  8. 1
      src/Magnum/Version.cpp
  9. 8
      src/Magnum/Version.h

1
Doxyfile

@ -262,6 +262,7 @@ ALIASES = \
"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>" \
"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_gl=@xrefitem requires-gl \"Requires desktop OpenGL\" \"Functionality requiring desktop OpenGL (not available in OpenGL ES)\"" \
"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_es_extension=@xrefitem requires-es-extension \"Requires OpenGL ES extension\" \"Functionality requiring specific OpenGL ES extension\"" \

3
README.md

@ -43,7 +43,8 @@ Graphics APIs:
* **OpenGL** 2.1 through 4.4, core profile functionality and modern
extensions
* **OpenGL ES** 2.0, 3.0 and extensions to match desktop OpenGL functionality
* **OpenGL ES** 2.0, 3.0, 3.1 and extensions to match desktop OpenGL
functionality
* **WebGL** 1.0 and extensions to match desktop OpenGL functionality
Platforms:

3
doc/mainpage.dox

@ -69,7 +69,8 @@ Graphics APIs:
- **OpenGL** 2.1 through 4.4, core profile functionality and modern
extensions
- **OpenGL ES** 2.0, 3.0 and extensions to match desktop OpenGL functionality
- **OpenGL ES** 2.0, 3.0, 3.1 and extensions to match desktop OpenGL
functionality
- **WebGL** 1.0 and extensions to match desktop OpenGL functionality
Platforms:

5
doc/opengl-support.dox

@ -238,6 +238,11 @@ supported.
Features that have their equivalents implemented in desktop version are
supported.
@subsection opengl-support-es31 OpenGL ES 3.1
Features that have their equivalents implemented in desktop version are
supported.
@subsection opengl-support-es30-extensions OpenGL ES 2.0 extensions to match ES 3.0 functionality
%Extension | Status

8
doc/opengl.dox

@ -59,6 +59,7 @@ is supported on older Intel GPUs even if they are capable of OpenGL 2.1 only).
- @subpage requires-gl
- @subpage requires-gles20
- @subpage requires-gles30
- @subpage requires-gles31
- @subpage requires-es-extension
@see @ref building, @ref cmake, @ref MAGNUM_TARGET_GLES,
@ -82,9 +83,14 @@ is supported on older Intel GPUs even if they are capable of OpenGL 2.1 only).
@page requires-gles20 Functionality requiring OpenGL ES 2.0 (not available on desktop or ES 3.0)
@see @ref MAGNUM_TARGET_GLES2
@page requires-gles30 Functionality requiring OpenGL ES 3.0
@page requires-gles30 Functionality requiring at least OpenGL ES 3.0
The following symbols are not defined at all when targeting OpenGL ES 2.0.
@see @ref MAGNUM_TARGET_GLES3
@page requires-gles31 Functionality requiring OpenGL ES 3.1
@page requires-es-extension Functionality requiring specific OpenGL ES extension
@see @ref MAGNUM_TARGET_GLES2

2
src/Magnum/Context.cpp

@ -281,6 +281,7 @@ const std::vector<Extension>& Extension::extensions(Version version) {
#else
case Version::GLES200: return empty;
case Version::GLES300:
case Version::GLES310:
#ifdef MAGNUM_TARGET_GLES2
return extensionsES300;
#else
@ -396,6 +397,7 @@ Context::Context(void functionLoader()) {
#else
Version::GLES200,
Version::GLES300,
Version::GLES310,
#endif
Version::None
};

1
src/Magnum/Shader.cpp

@ -554,6 +554,7 @@ Shader::Shader(const Version version, const Type type): _type(type), _id(0) {
#else
case Version::GLES200: _sources.push_back("#version 100\n"); return;
case Version::GLES300: _sources.push_back("#version 300 es\n"); return;
case Version::GLES310: _sources.push_back("#version 310 es\n"); return;
#endif
/* The user is responsible for (not) adding #version directive */

1
src/Magnum/Version.cpp

@ -48,6 +48,7 @@ Debug operator<<(Debug debug, Version value) {
#else
_c(GLES200, "OpenGL ES 2.0")
_c(GLES300, "OpenGL ES 3.0")
_c(GLES310, "OpenGL ES 3.1")
#endif
#undef _c
}

8
src/Magnum/Version.h

@ -77,9 +77,13 @@ enum class Version: Int {
* equivalent to @ref Version::GL430.
*/
#ifndef MAGNUM_TARGET_GLES
GLES300 = 430
GLES300 = 430,
#else
GLES300 = 300
GLES300 = 300,
#endif
#ifdef MAGNUM_TARGET_GLES
GLES310 = 310 /**< @brief OpenGL ES 3.1, GLSL ES 3.10 */
#endif
};

Loading…
Cancel
Save