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 #ifndef GLM_PRECISION
00059 typedef precision::mediump_float float_t;
00060 #elif(GLM_PRECISION & GLM_PRECISION_HIGHP_FLOAT)
00061 typedef precision::highp_float float_t;
00062 #elif(GLM_PRECISION & GLM_PRECISION_MEDIUMP_FLOAT)
00063 typedef precision::mediump_float float_t;
00064 #elif(GLM_PRECISION & GLM_PRECISION_LOWP_FLOAT)
00065 typedef precision::lowp_float float_t;
00066 #else
00067 # pragma message("GLM message: Precisson undefined for float numbers.");
00068 typedef precision::mediump_float float_t;
00069 #endif//GLM_PRECISION
00070
00071 }
00072 }
00073 }
00074
00075 #endif//glm_core_type_float