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 namespace scalar{
00030
00031 namespace precision
00032 {
00033 #ifdef GLM_USE_HALF_SCALAR
00034 typedef detail::thalf lowp_float_t;
00035 #else//GLM_USE_HALF_SCALAR
00036 typedef float lowp_float_t;
00037 #endif//GLM_USE_HALF_SCALAR
00038 typedef float mediump_float_t;
00039 typedef double highp_float_t;
00040
00044 typedef lowp_float_t lowp_float;
00048 typedef mediump_float_t mediump_float;
00052 typedef highp_float_t highp_float;
00053 }
00054
00055
00056 #ifndef GLM_PRECISION
00057 typedef precision::mediump_float_t float_t;
00058 #elif(GLM_PRECISION & GLM_PRECISION_HIGHP_FLOAT)
00059 typedef precision::highp_float_t float_t;
00060 #elif(GLM_PRECISION & GLM_PRECISION_MEDIUMP_FLOAT)
00061 typedef precision::mediump_float_t float_t;
00062 #elif(GLM_PRECISION & GLM_PRECISION_LOWP_FLOAT)
00063 typedef precision::lowp_float_t float_t;
00064 #else
00065 # pragma message("GLM message: Precisson undefined for float numbers.");
00066 typedef precision::mediump_float_t float_t;
00067 #endif//GLM_PRECISION
00068
00069 }
00070 }
00071 }
00072 }
00073
00074 #endif//glm_core_type_float