mirror of https://github.com/mosra/magnum.git
Browse Source
There will be many places (e.g. all Platform::*Application::Configuration classes) where Version will be used without Context (and all GL stuff brought with it).pull/51/head
17 changed files with 161 additions and 81 deletions
@ -0,0 +1,58 @@ |
|||||||
|
/*
|
||||||
|
This file is part of Magnum. |
||||||
|
|
||||||
|
Copyright © 2010, 2011, 2012, 2013 Vladimír Vondruš <mosra@centrum.cz> |
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a |
||||||
|
copy of this software and associated documentation files (the "Software"), |
||||||
|
to deal in the Software without restriction, including without limitation |
||||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense, |
||||||
|
and/or sell copies of the Software, and to permit persons to whom the |
||||||
|
Software is furnished to do so, subject to the following conditions: |
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included |
||||||
|
in all copies or substantial portions of the Software. |
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
||||||
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
||||||
|
DEALINGS IN THE SOFTWARE. |
||||||
|
*/ |
||||||
|
|
||||||
|
#include "Version.h" |
||||||
|
|
||||||
|
#include <Utility/Debug.h> |
||||||
|
|
||||||
|
namespace Magnum { |
||||||
|
|
||||||
|
#ifndef DOXYGEN_GENERATING_OUTPUT |
||||||
|
Debug operator<<(Debug debug, Version value) { |
||||||
|
switch(value) { |
||||||
|
#define _c(value, string) case Version::value: return debug << string; |
||||||
|
_c(None, "None") |
||||||
|
#ifndef MAGNUM_TARGET_GLES |
||||||
|
_c(GL210, "OpenGL 2.1") |
||||||
|
_c(GL300, "OpenGL 3.0") |
||||||
|
_c(GL310, "OpenGL 3.1") |
||||||
|
_c(GL320, "OpenGL 3.2") |
||||||
|
_c(GL330, "OpenGL 3.3") |
||||||
|
_c(GL400, "OpenGL 4.0") |
||||||
|
_c(GL410, "OpenGL 4.1") |
||||||
|
_c(GL420, "OpenGL 4.2") |
||||||
|
_c(GL430, "OpenGL 4.3") |
||||||
|
_c(GL440, "OpenGL 4.4") |
||||||
|
#else |
||||||
|
_c(GLES200, "OpenGL ES 2.0") |
||||||
|
_c(GLES300, "OpenGL ES 3.0") |
||||||
|
#endif |
||||||
|
#undef _c |
||||||
|
} |
||||||
|
|
||||||
|
return debug << "Invalid"; |
||||||
|
} |
||||||
|
#endif |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,88 @@ |
|||||||
|
#ifndef Magnum_Version_h |
||||||
|
#define Magnum_Version_h |
||||||
|
/*
|
||||||
|
This file is part of Magnum. |
||||||
|
|
||||||
|
Copyright © 2010, 2011, 2012, 2013 Vladimír Vondruš <mosra@centrum.cz> |
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a |
||||||
|
copy of this software and associated documentation files (the "Software"), |
||||||
|
to deal in the Software without restriction, including without limitation |
||||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense, |
||||||
|
and/or sell copies of the Software, and to permit persons to whom the |
||||||
|
Software is furnished to do so, subject to the following conditions: |
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included |
||||||
|
in all copies or substantial portions of the Software. |
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
||||||
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
||||||
|
DEALINGS IN THE SOFTWARE. |
||||||
|
*/ |
||||||
|
|
||||||
|
#include "Magnum.h" |
||||||
|
#include "magnumVisibility.h" |
||||||
|
|
||||||
|
/** @file Version.h
|
||||||
|
* Enum @ref Magnum::Version |
||||||
|
*/ |
||||||
|
|
||||||
|
namespace Magnum { |
||||||
|
|
||||||
|
/**
|
||||||
|
@brief OpenGL version |
||||||
|
|
||||||
|
@see @ref Context, @ref MAGNUM_ASSERT_VERSION_SUPPORTED() |
||||||
|
*/ |
||||||
|
enum class Version: Int { |
||||||
|
None = 0xFFFF, /**< @brief Unspecified */ |
||||||
|
#ifndef MAGNUM_TARGET_GLES |
||||||
|
GL210 = 210, /**< @brief OpenGL 2.1 / GLSL 1.20 */ |
||||||
|
GL300 = 300, /**< @brief OpenGL 3.0 / GLSL 1.30 */ |
||||||
|
GL310 = 310, /**< @brief OpenGL 3.1 / GLSL 1.40 */ |
||||||
|
GL320 = 320, /**< @brief OpenGL 3.2 / GLSL 1.50 */ |
||||||
|
GL330 = 330, /**< @brief OpenGL 3.3, GLSL 3.30 */ |
||||||
|
GL400 = 400, /**< @brief OpenGL 4.0, GLSL 4.00 */ |
||||||
|
GL410 = 410, /**< @brief OpenGL 4.1, GLSL 4.10 */ |
||||||
|
GL420 = 420, /**< @brief OpenGL 4.2, GLSL 4.20 */ |
||||||
|
GL430 = 430, /**< @brief OpenGL 4.3, GLSL 4.30 */ |
||||||
|
GL440 = 440, /**< @brief OpenGL 4.4, GLSL 4.40 */ |
||||||
|
#endif |
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief OpenGL ES 2.0, GLSL ES 1.00 |
||||||
|
* |
||||||
|
* All the functionality is present in OpenGL 4.2 (extension |
||||||
|
* @extension{ARB,ES2_compatibility}), so on desktop OpenGL this is |
||||||
|
* equivalent to @ref Version::GL410. |
||||||
|
*/ |
||||||
|
#ifndef MAGNUM_TARGET_GLES |
||||||
|
GLES200 = 410, |
||||||
|
#else |
||||||
|
GLES200 = 200, |
||||||
|
#endif |
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief OpenGL ES 3.0, GLSL ES 3.00 |
||||||
|
* |
||||||
|
* All the functionality is present in OpenGL 4.3 (extension |
||||||
|
* @extension{ARB,ES3_compatibility}), so on desktop OpenGL this is the |
||||||
|
* equivalent to @ref Version::GL430. |
||||||
|
*/ |
||||||
|
#ifndef MAGNUM_TARGET_GLES |
||||||
|
GLES300 = 430 |
||||||
|
#else |
||||||
|
GLES300 = 300 |
||||||
|
#endif |
||||||
|
}; |
||||||
|
|
||||||
|
/** @debugoperator{Magnum::Context} */ |
||||||
|
Debug MAGNUM_EXPORT operator<<(Debug debug, Version value); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
#endif |
||||||
Loading…
Reference in new issue