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