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
00044 typedef lowp_float_t lowp_float;
00049 typedef mediump_float_t mediump_float;
00054 typedef highp_float_t highp_float;
00055 }
00056
00057
00058 #if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
00059 typedef precision::mediump_float float_t;
00060 #elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
00061 typedef precision::highp_float float_t;
00062 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
00063 typedef precision::mediump_float float_t;
00064 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))
00065 typedef precision::lowp_float float_t;
00066 #else
00067 # error "GLM error: multiple default precision requested for floating-point types"
00068 #endif
00069
00070 }
00071 }
00072 }
00073
00074 #endif//glm_core_type_float