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 
00063         typedef detail::lowp_int_t                              lowp_int;
00064     
00069         typedef detail::mediump_int_t                   mediump_int;
00070     
00075         typedef detail::highp_int_t                             highp_int;
00076 
00081         typedef detail::lowp_uint_t                             lowp_uint;
00082     
00087         typedef detail::mediump_uint_t                  mediump_uint;
00088     
00093         typedef detail::highp_uint_t                            highp_uint;
00094 
00095 #if(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
00096         typedef mediump_int                 int_t;
00097 #elif(defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
00098         typedef highp_int                                       int_t;
00099 #elif(!defined(GLM_PRECISION_HIGHP_INT) && defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
00100         typedef mediump_int                 int_t;
00101 #elif(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && defined(GLM_PRECISION_LOWP_INT))
00102         typedef lowp_int                                        int_t;
00103 #else
00104 #       error "GLM error: multiple default precision requested for signed interger types"
00105 #endif
00106 
00107 #if(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
00108         typedef mediump_uint                            uint_t;
00109 #elif(defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
00110         typedef highp_uint                                      uint_t;
00111 #elif(!defined(GLM_PRECISION_HIGHP_UINT) && defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
00112         typedef mediump_uint                            uint_t;
00113 #elif(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && defined(GLM_PRECISION_LOWP_UINT))
00114         typedef lowp_uint                                       uint_t;
00115 #else
00116 #       error "GLM error: multiple default precision requested for unsigned interger types"
00117 #endif
00118 
00121         typedef uint_t                                                          uint;
00122 
00123 }//namespace glm
00124 
00125 #endif//glm_core_type_int