Browse Source

Define MAGNUM_TARGET_GLES3 if targetting ES and not ES2.

Makes it easier to disable parts of the code than with this. And this
would also not be future-proof:

    defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_GLES2)
pull/278/head
Vladimír Vondruš 13 years ago
parent
commit
f18297ab2b
  1. 8
      CMakeLists.txt
  2. 1
      doc/cmake.dox
  3. 5
      modules/FindMagnum.cmake
  4. 17
      src/Magnum.h
  5. 1
      src/magnumConfigure.h.cmake

8
CMakeLists.txt

@ -86,9 +86,11 @@ endif()
# Configuration variables (saved later to corradeConfigure.h) # Configuration variables (saved later to corradeConfigure.h)
if(TARGET_GLES) if(TARGET_GLES)
set(MAGNUM_TARGET_GLES 1) set(MAGNUM_TARGET_GLES 1)
endif() if(TARGET_GLES2)
if(TARGET_GLES2) set(MAGNUM_TARGET_GLES2 1)
set(MAGNUM_TARGET_GLES2 1) else()
set(MAGNUM_TARGET_GLES3 1)
endif()
endif() endif()
if(TARGET_DESKTOP_GLES) if(TARGET_DESKTOP_GLES)
set(MAGNUM_TARGET_DESKTOP_GLES 1) set(MAGNUM_TARGET_DESKTOP_GLES 1)

1
doc/cmake.dox

@ -97,6 +97,7 @@ are also available as preprocessor variables if including Magnum.h:
- `MAGNUM_TARGET_GLES` -- Defined if compiled for OpenGL ES - `MAGNUM_TARGET_GLES` -- Defined if compiled for OpenGL ES
- `MAGNUM_TARGET_GLES2` -- Defined if compiled for OpenGL ES 2.0 - `MAGNUM_TARGET_GLES2` -- Defined if compiled for OpenGL ES 2.0
- `MAGNUM_TARGET_GLES3` -- Defined if compiled for OpenGL ES 3.0
- `MAGNUM_TARGET_DESKTOP_GLES` -- Defined if compiled with OpenGL ES emulation - `MAGNUM_TARGET_DESKTOP_GLES` -- Defined if compiled with OpenGL ES emulation
on desktop OpenGL on desktop OpenGL
- `MAGNUM_TARGET_NACL` -- Defined if compiled for Google Chrome Native Client - `MAGNUM_TARGET_NACL` -- Defined if compiled for Google Chrome Native Client

5
modules/FindMagnum.cmake

@ -47,6 +47,7 @@
# Features of found Magnum library are exposed in these variables: # Features of found Magnum library are exposed in these variables:
# MAGNUM_TARGET_GLES - Defined if compiled for OpenGL ES # MAGNUM_TARGET_GLES - Defined if compiled for OpenGL ES
# MAGNUM_TARGET_GLES2 - Defined if compiled for OpenGL ES 2.0 # MAGNUM_TARGET_GLES2 - Defined if compiled for OpenGL ES 2.0
# MAGNUM_TARGET_GLES3 - Defined if compiled for OpenGL ES 3.0
# MAGNUM_TARGET_DESKTOP_GLES - Defined if compiled with OpenGL ES # MAGNUM_TARGET_DESKTOP_GLES - Defined if compiled with OpenGL ES
# emulation on desktop OpenGL # emulation on desktop OpenGL
# MAGNUM_TARGET_NACL - Defined if compiled for Google Chrome Native # MAGNUM_TARGET_NACL - Defined if compiled for Google Chrome Native
@ -119,6 +120,10 @@ string(FIND "${_magnumConfigure}" "#define MAGNUM_TARGET_GLES2" _TARGET_GLES2)
if(NOT _TARGET_GLES2 EQUAL -1) if(NOT _TARGET_GLES2 EQUAL -1)
set(MAGNUM_TARGET_GLES2 1) set(MAGNUM_TARGET_GLES2 1)
endif() endif()
string(FIND "${_magnumConfigure}" "#define MAGNUM_TARGET_GLES3" _TARGET_GLES3)
if(NOT _TARGET_GLES3 EQUAL -1)
set(MAGNUM_TARGET_GLES3 1)
endif()
string(FIND "${_magnumConfigure}" "#define MAGNUM_TARGET_NACL" _TARGET_NACL) string(FIND "${_magnumConfigure}" "#define MAGNUM_TARGET_NACL" _TARGET_NACL)
if(NOT _TARGET_NACL EQUAL -1) if(NOT _TARGET_NACL EQUAL -1)
set(MAGNUM_TARGET_NACL 1) set(MAGNUM_TARGET_NACL 1)

17
src/Magnum.h

@ -74,7 +74,8 @@ using Corrade::Utility::Error;
`MAGNUM_TARGET_GLES` is defined if the engine is built for OpenGL ES 3.0 or `MAGNUM_TARGET_GLES` is defined if the engine is built for OpenGL ES 3.0 or
OpenGL ES 2.0. OpenGL ES 2.0.
@see @ref MAGNUM_TARGET_GLES_ "MAGNUM_TARGET_GLES", @see @ref MAGNUM_TARGET_GLES2_ "MAGNUM_TARGET_GLES2",
@ref MAGNUM_TARGET_GLES3_ "MAGNUM_TARGET_GLES3",
@ref MAGNUM_TARGET_DESKTOP_GLES_ "MAGNUM_TARGET_DESKTOP_GLES", @ref MAGNUM_TARGET_DESKTOP_GLES_ "MAGNUM_TARGET_DESKTOP_GLES",
@ref MAGNUM_TARGET_NACL_ "MAGNUM_TARGET_NACL", @ref building @ref MAGNUM_TARGET_NACL_ "MAGNUM_TARGET_NACL", @ref building
*/ */
@ -85,11 +86,23 @@ OpenGL ES 2.0.
`MAGNUM_TARGET_GLES2` is defined if the engine is built for OpenGL ES 2.0. `MAGNUM_TARGET_GLES2` is defined if the engine is built for OpenGL ES 2.0.
Implies also @ref MAGNUM_TARGET_GLES_ "MAGNUM_TARGET_GLES". Implies also @ref MAGNUM_TARGET_GLES_ "MAGNUM_TARGET_GLES".
@see @ref MAGNUM_TARGET_DESKTOP_GLES_ "MAGNUM_TARGET_DESKTOP_GLES", @see @ref MAGNUM_TARGET_GLES3_ "MAGNUM_TARGET_GLES3",
@ref MAGNUM_TARGET_DESKTOP_GLES_ "MAGNUM_TARGET_DESKTOP_GLES",
@ref MAGNUM_TARGET_NACL_ "MAGNUM_TARGET_NACL", @ref building @ref MAGNUM_TARGET_NACL_ "MAGNUM_TARGET_NACL", @ref building
*/ */
#define MAGNUM_TARGET_GLES2_ #define MAGNUM_TARGET_GLES2_
/**
@brief OpenGL ES 3.0 target.
`MAGNUM_TARGET_GLES3` is defined if the engine is built for OpenGL ES 3.0.
Implies also @ref MAGNUM_TARGET_GLES_ "MAGNUM_TARGET_GLES".
@see @ref MAGNUM_TARGET_GLES2_ "MAGNUM_TARGET_GLES2",
@ref MAGNUM_TARGET_DESKTOP_GLES_ "MAGNUM_TARGET_DESKTOP_GLES",
@ref MAGNUM_TARGET_NACL_ "MAGNUM_TARGET_NACL", @ref building
*/
#define MAGNUM_TARGET_GLES3_
/** /**
@brief Desktop emulation of OpenGL ES target @brief Desktop emulation of OpenGL ES target

1
src/magnumConfigure.h.cmake

@ -24,6 +24,7 @@
#cmakedefine MAGNUM_TARGET_GLES #cmakedefine MAGNUM_TARGET_GLES
#cmakedefine MAGNUM_TARGET_GLES2 #cmakedefine MAGNUM_TARGET_GLES2
#cmakedefine MAGNUM_TARGET_GLES3
#cmakedefine MAGNUM_TARGET_DESKTOP_GLES #cmakedefine MAGNUM_TARGET_DESKTOP_GLES
#cmakedefine MAGNUM_TARGET_NACL #cmakedefine MAGNUM_TARGET_NACL
#cmakedefine MAGNUM_USE_HARFBUZZ #cmakedefine MAGNUM_USE_HARFBUZZ

Loading…
Cancel
Save