type_float.hpp

00001 
00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
00004 // Created : 2008-08-22
00005 // Updated : 2010-02-08
00006 // Licence : This source is under MIT License
00007 // File    : glm/core/type_float.hpp
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         //namespace detail
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         //namespace precision
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         }//namespace type
00072         }//namespace core
00073 }//namespace glm
00074 
00075 #endif//glm_core_type_float