00001
00002
00004
00005
00006
00007
00009
00010 #ifndef glm_core_type_int
00011 #define glm_core_type_int
00012
00013 #include "../setup.hpp"
00014 #include "_detail.hpp"
00015
00016 namespace glm
00017 {
00018 namespace detail
00019 {
00020 #if defined(GLM_COMPILER) && (GLM_COMPILER & GLM_COMPILER_VC)
00021 typedef signed __int64 highp_int_t;
00022 typedef unsigned __int64 highp_uint_t;
00023 #elif(defined(GLM_COMPILER) && (GLM_COMPILER & GLM_COMPILER_GCC))
00024 __extension__ typedef signed long long highp_int_t;
00025 __extension__ typedef unsigned long long highp_uint_t;
00026
00027
00028
00029
00030
00031
00032
00033 #elif(defined(GLM_COMPILER_BC))
00034 typedef Int64 highp_int_t;
00035 typedef Uint64 highp_uint_t;
00036 #else
00037 typedef signed long long highp_int_t;
00038 typedef unsigned long long highp_uint_t;
00039 #endif//GLM_COMPILER
00040
00041 GLM_DETAIL_IS_INT(signed char);
00042 GLM_DETAIL_IS_INT(signed short);
00043 GLM_DETAIL_IS_INT(signed int);
00044 GLM_DETAIL_IS_INT(signed long);
00045 GLM_DETAIL_IS_INT(highp_int_t);
00046
00047 GLM_DETAIL_IS_UINT(unsigned char);
00048 GLM_DETAIL_IS_UINT(unsigned short);
00049 GLM_DETAIL_IS_UINT(unsigned int);
00050 GLM_DETAIL_IS_UINT(unsigned long);
00051 GLM_DETAIL_IS_UINT(highp_uint_t);
00052
00053 typedef signed short lowp_int_t;
00054 typedef signed int mediump_int_t;
00055 typedef detail::highp_int_t highp_int_t;
00056
00057 typedef unsigned short lowp_uint_t;
00058 typedef unsigned int mediump_uint_t;
00059 typedef detail::highp_uint_t highp_uint_t;
00060 }
00061
00062
00063 namespace core{
00064 namespace type{
00065
00066 namespace precision
00067 {
00071 typedef detail::lowp_int_t lowp_int;
00075 typedef detail::mediump_int_t mediump_int;
00079 typedef detail::highp_int_t highp_int;
00080
00084 typedef detail::lowp_uint_t lowp_uint;
00088 typedef detail::mediump_uint_t mediump_uint;
00092 typedef detail::highp_uint_t highp_uint;
00093 }
00094
00095
00096 #ifndef GLM_PRECISION
00097 typedef precision::mediump_int int_t;
00098 #elif(GLM_PRECISION & GLM_PRECISION_HIGHP_INT)
00099 typedef precision::highp_int int_t;
00100 #elif(GLM_PRECISION & GLM_PRECISION_MEDIUMP_INT)
00101 typedef precision::mediump_int int_t;
00102 #elif(GLM_PRECISION & GLM_PRECISION_LOWP_INT)
00103 typedef precision::lowp_int int_t;
00104 #else
00105 typedef mediump_int int_t;
00106 # pragma message("GLM message: Precisson undefined for signed integer number.");
00107 #endif//GLM_PRECISION
00108
00109 #ifndef GLM_PRECISION
00110 typedef precision::mediump_uint uint_t;
00111 #elif(GLM_PRECISION & GLM_PRECISION_HIGHP_UINT)
00112 typedef precision::highp_uint uint_t;
00113 #elif(GLM_PRECISION & GLM_PRECISION_MEDIUMP_UINT)
00114 typedef precision::mediump_uint uint_t;
00115 #elif(GLM_PRECISION & GLM_PRECISION_LOWP_UINT)
00116 typedef precision::lowp_uint uint_t;
00117 #else
00118 typedef precision::mediump_uint uint_t;
00119 # pragma message("GLM message: Precisson undefined for unsigned integer number.");
00120 #endif//GLM_PRECISION
00121
00124 typedef uint_t uint;
00125
00126 }
00127 }
00128 }
00129
00130 #endif//glm_core_type_int