From f18297ab2bf09f49998a5e101ecbc69dcf38a73d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 22 Mar 2013 21:21:07 +0100 Subject: [PATCH] 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) --- CMakeLists.txt | 8 +++++--- doc/cmake.dox | 1 + modules/FindMagnum.cmake | 5 +++++ src/Magnum.h | 17 +++++++++++++++-- src/magnumConfigure.h.cmake | 1 + 5 files changed, 27 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1ad8c561b..359a4b38e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,9 +86,11 @@ endif() # Configuration variables (saved later to corradeConfigure.h) if(TARGET_GLES) set(MAGNUM_TARGET_GLES 1) -endif() -if(TARGET_GLES2) - set(MAGNUM_TARGET_GLES2 1) + if(TARGET_GLES2) + set(MAGNUM_TARGET_GLES2 1) + else() + set(MAGNUM_TARGET_GLES3 1) + endif() endif() if(TARGET_DESKTOP_GLES) set(MAGNUM_TARGET_DESKTOP_GLES 1) diff --git a/doc/cmake.dox b/doc/cmake.dox index 6c3bcd853..342d67152 100644 --- a/doc/cmake.dox +++ b/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_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 on desktop OpenGL - `MAGNUM_TARGET_NACL` -- Defined if compiled for Google Chrome Native Client diff --git a/modules/FindMagnum.cmake b/modules/FindMagnum.cmake index 509e806e5..257d99612 100644 --- a/modules/FindMagnum.cmake +++ b/modules/FindMagnum.cmake @@ -47,6 +47,7 @@ # Features of found Magnum library are exposed in these variables: # MAGNUM_TARGET_GLES - Defined if compiled for OpenGL ES # 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 on desktop OpenGL # 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) set(MAGNUM_TARGET_GLES2 1) 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) if(NOT _TARGET_NACL EQUAL -1) set(MAGNUM_TARGET_NACL 1) diff --git a/src/Magnum.h b/src/Magnum.h index c597594a1..837c6bb6e 100644 --- a/src/Magnum.h +++ b/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 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_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. 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 */ #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 diff --git a/src/magnumConfigure.h.cmake b/src/magnumConfigure.h.cmake index 303ffee2d..94fefcfd0 100644 --- a/src/magnumConfigure.h.cmake +++ b/src/magnumConfigure.h.cmake @@ -24,6 +24,7 @@ #cmakedefine MAGNUM_TARGET_GLES #cmakedefine MAGNUM_TARGET_GLES2 +#cmakedefine MAGNUM_TARGET_GLES3 #cmakedefine MAGNUM_TARGET_DESKTOP_GLES #cmakedefine MAGNUM_TARGET_NACL #cmakedefine MAGNUM_USE_HARFBUZZ