summaryrefslogtreecommitdiffstats
path: root/external/include/glm/detail/type_float.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'external/include/glm/detail/type_float.hpp')
-rw-r--r--external/include/glm/detail/type_float.hpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/external/include/glm/detail/type_float.hpp b/external/include/glm/detail/type_float.hpp
new file mode 100644
index 0000000..900a3fb
--- /dev/null
+++ b/external/include/glm/detail/type_float.hpp
@@ -0,0 +1,67 @@
+/// @ref core
+/// @file glm/detail/type_float.hpp
+
+#pragma once
+
+#include "setup.hpp"
+
+namespace glm{
+namespace detail
+{
+ typedef float float32;
+ typedef double float64;
+}//namespace detail
+
+ typedef float lowp_float_t;
+ typedef float mediump_float_t;
+ typedef double highp_float_t;
+
+ /// @addtogroup core_precision
+ /// @{
+
+ /// Low precision floating-point numbers.
+ /// There is no guarantee on the actual precision.
+ ///
+ /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a>
+ /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
+ typedef lowp_float_t lowp_float;
+
+ /// Medium precision floating-point numbers.
+ /// There is no guarantee on the actual precision.
+ ///
+ /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a>
+ /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
+ typedef mediump_float_t mediump_float;
+
+ /// High precision floating-point numbers.
+ /// There is no guarantee on the actual precision.
+ ///
+ /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a>
+ /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
+ typedef highp_float_t highp_float;
+
+#if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+ typedef mediump_float float_t;
+#elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+ typedef highp_float float_t;
+#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+ typedef mediump_float float_t;
+#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))
+ typedef lowp_float float_t;
+#else
+# error "GLM error: multiple default precision requested for floating-point types"
+#endif
+
+ typedef float float32;
+ typedef double float64;
+
+////////////////////
+// check type sizes
+#ifndef GLM_STATIC_ASSERT_NULL
+ GLM_STATIC_ASSERT(sizeof(glm::float32) == 4, "float32 size isn't 4 bytes on this platform");
+ GLM_STATIC_ASSERT(sizeof(glm::float64) == 8, "float64 size isn't 8 bytes on this platform");
+#endif//GLM_STATIC_ASSERT_NULL
+
+ /// @}
+
+}//namespace glm