29 #ifndef glm_core_type_int
30 #define glm_core_type_int
34 #if GLM_HAS_EXTENDED_INTEGER_TYPE
41 # if GLM_HAS_EXTENDED_INTEGER_TYPE
52 # if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available
55 # elif(GLM_COMPILER & GLM_COMPILER_VC)
56 typedef signed __int64 sint64;
57 typedef unsigned __int64
uint64;
58 # elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC | GLM_COMPILER_CLANG))
59 __extension__
typedef signed long long sint64;
60 __extension__
typedef unsigned long long uint64;
61 # elif(GLM_COMPILER & GLM_COMPILER_BC)
64 # else//unknown compiler
65 typedef signed long long sint64;
66 typedef unsigned long long uint64;
69 typedef signed char int8;
70 typedef signed short int16;
71 typedef signed int int32;
74 typedef unsigned char uint8;
75 typedef unsigned short uint16;
76 typedef unsigned int uint32;
80 typedef signed int lowp_int_t;
81 typedef signed int mediump_int_t;
82 typedef signed int highp_int_t;
84 typedef unsigned int lowp_uint_t;
85 typedef unsigned int mediump_uint_t;
86 typedef unsigned int highp_uint_t;
144 #if(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
146 #elif(defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
148 #elif(!defined(GLM_PRECISION_HIGHP_INT) && defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
150 #elif(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && defined(GLM_PRECISION_LOWP_INT))
153 # error "GLM error: multiple default precision requested for signed interger types"
156 #if(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
158 #elif(defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
160 #elif(!defined(GLM_PRECISION_HIGHP_UINT) && defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
162 #elif(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && defined(GLM_PRECISION_LOWP_UINT))
165 # error "GLM error: multiple default precision requested for unsigned interger types"
177 #ifndef GLM_STATIC_ASSERT_NULL
178 GLM_STATIC_ASSERT(
sizeof(
glm::int8) == 1,
"int8 size isn't 1 byte on this platform");
179 GLM_STATIC_ASSERT(
sizeof(
glm::int16) == 2,
"int16 size isn't 2 bytes on this platform");
180 GLM_STATIC_ASSERT(
sizeof(
glm::int32) == 4,
"int32 size isn't 4 bytes on this platform");
181 GLM_STATIC_ASSERT(
sizeof(
glm::int64) == 8,
"int64 size isn't 8 bytes on this platform");
183 GLM_STATIC_ASSERT(
sizeof(
glm::uint8) == 1,
"uint8 size isn't 1 byte on this platform");
184 GLM_STATIC_ASSERT(
sizeof(
glm::uint16) == 2,
"uint16 size isn't 2 bytes on this platform");
185 GLM_STATIC_ASSERT(
sizeof(
glm::uint32) == 4,
"uint32 size isn't 4 bytes on this platform");
186 GLM_STATIC_ASSERT(
sizeof(
glm::uint64) == 8,
"uint64 size isn't 8 bytes on this platform");
187 #endif//GLM_STATIC_ASSERT_NULL
191 #endif//glm_core_type_int
detail::highp_int_t highp_int
High precision signed integer.
detail::int8 int8
8 bit signed integer type.
detail::uint32 uint32
32 bit unsigned integer type.
detail::int16 int16
16 bit signed integer type.
detail::uint8 uint8_t
8 bit unsigned integer type.
detail::int64 int64_t
64 bit signed integer type.
detail::uint32 uint32_t
32 bit unsigned integer type.
detail::int64 int64
64 bit signed integer type.
unsigned int uint
Unsigned integer type.
detail::uint64 uint64_t
64 bit unsigned integer type.
detail::int16 int16_t
16 bit signed integer type.
detail::uint64 uint64
64 bit unsigned integer type.
detail::lowp_uint_t lowp_uint
Low precision unsigned integer.
detail::int8 int8_t
8 bit signed integer type.
detail::uint16 uint16_t
16 bit unsigned integer type.
detail::int32 int32
32 bit signed integer type.
detail::int32 int32_t
32 bit signed integer type.
detail::mediump_uint_t mediump_uint
Medium precision unsigned integer.
detail::uint8 uint8
8 bit unsigned integer type.
detail::mediump_int_t mediump_int
Medium precision signed integer.
detail::highp_uint_t highp_uint
High precision unsigned integer.
detail::lowp_int_t lowp_int
Low precision signed integer.
detail::uint16 uint16
16 bit unsigned integer type.