00001
00002
00004
00005
00006
00007
00009
00010 #ifndef glm_core_type_float
00011 #define glm_core_type_float
00012
00013 #include "type_half.hpp"
00014 #include "../setup.hpp"
00015
00016 namespace glm
00017 {
00018 namespace detail
00019 {
00020 GLM_DETAIL_IS_FLOAT(detail::thalf);
00021 GLM_DETAIL_IS_FLOAT(float);
00022 GLM_DETAIL_IS_FLOAT(double);
00023 GLM_DETAIL_IS_FLOAT(long double);
00024 }
00025
00026
00027 namespace core{
00028 namespace type{
00029
00030 namespace precision
00031 {
00032 #ifdef GLM_USE_HALF_SCALAR
00033 typedef detail::thalf lowp_float_t;
00034 #else//GLM_USE_HALF_SCALAR
00035 typedef float lowp_float_t;
00036 #endif//GLM_USE_HALF_SCALAR
00037 typedef float mediump_float_t;
00038 typedef double highp_float_t;
00039
00043 typedef lowp_float_t lowp_float;
00047 typedef mediump_float_t mediump_float;
00051 typedef highp_float_t highp_float;
00052 }
00053
00054
00055 #ifndef GLM_PRECISION
00056 typedef precision::mediump_float float_t;
00057 #elif(GLM_PRECISION & GLM_PRECISION_HIGHP_FLOAT)
00058 typedef precision::highp_float float_t;
00059 #elif(GLM_PRECISION & GLM_PRECISION_MEDIUMP_FLOAT)
00060 typedef precision::mediump_float float_t;
00061 #elif(GLM_PRECISION & GLM_PRECISION_LOWP_FLOAT)
00062 typedef precision::lowp_float float_t;
00063 #else
00064 # pragma message("GLM message: Precisson undefined for float numbers.");
00065 typedef precision::mediump_float float_t;
00066 #endif//GLM_PRECISION
00067
00068 }
00069 }
00070 }
00071
00072 #endif//glm_core_type_float