type_int.hpp
Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 #ifndef glm_core_type_int
00030 #define glm_core_type_int
00031 
00032 #include "setup.hpp"
00033 #include "_detail.hpp"
00034 
00035 namespace glm{
00036 namespace detail
00037 {
00038         typedef signed short                    lowp_int_t;
00039         typedef signed int                              mediump_int_t;
00040         typedef sint64                                  highp_int_t;
00041 
00042         typedef unsigned short                  lowp_uint_t;
00043         typedef unsigned int                    mediump_uint_t;
00044         typedef uint64                                  highp_uint_t;
00045 
00046         GLM_DETAIL_IS_INT(signed char);
00047         GLM_DETAIL_IS_INT(signed short);
00048         GLM_DETAIL_IS_INT(signed int);
00049         GLM_DETAIL_IS_INT(signed long);
00050         GLM_DETAIL_IS_INT(highp_int_t);
00051 
00052         GLM_DETAIL_IS_UINT(unsigned char);
00053         GLM_DETAIL_IS_UINT(unsigned short);
00054         GLM_DETAIL_IS_UINT(unsigned int);
00055         GLM_DETAIL_IS_UINT(unsigned long);
00056         GLM_DETAIL_IS_UINT(highp_uint_t);
00057 }//namespace detail
00058 
00061 
00067         typedef detail::lowp_int_t                              lowp_int;
00068     
00074         typedef detail::mediump_int_t                   mediump_int;
00075     
00081         typedef detail::highp_int_t                             highp_int;
00082 
00088         typedef detail::lowp_uint_t                             lowp_uint;
00089     
00095         typedef detail::mediump_uint_t                  mediump_uint;
00096     
00102         typedef detail::highp_uint_t                            highp_uint;
00103 
00104 #if(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
00105         typedef mediump_int                 int_t;
00106 #elif(defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
00107         typedef highp_int                                       int_t;
00108 #elif(!defined(GLM_PRECISION_HIGHP_INT) && defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
00109         typedef mediump_int                 int_t;
00110 #elif(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && defined(GLM_PRECISION_LOWP_INT))
00111         typedef lowp_int                                        int_t;
00112 #else
00113 #       error "GLM error: multiple default precision requested for signed interger types"
00114 #endif
00115 
00116 #if(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
00117         typedef mediump_uint                            uint_t;
00118 #elif(defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
00119         typedef highp_uint                                      uint_t;
00120 #elif(!defined(GLM_PRECISION_HIGHP_UINT) && defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
00121         typedef mediump_uint                            uint_t;
00122 #elif(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && defined(GLM_PRECISION_LOWP_UINT))
00123         typedef lowp_uint                                       uint_t;
00124 #else
00125 #       error "GLM error: multiple default precision requested for unsigned interger types"
00126 #endif
00127 
00131         typedef uint_t                                                          uint;
00132 
00134 
00135 }//namespace glm
00136 
00137 #endif//glm_core_type_int