1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /// @ref ext_scalar_int_sized
- /// @file glm/ext/scalar_int_sized.hpp
- ///
- /// @defgroup ext_scalar_int_sized GLM_EXT_scalar_int_sized
- /// @ingroup ext
- ///
- /// Exposes sized signed integer scalar types.
- ///
- /// Include <glm/ext/scalar_int_sized.hpp> to use the features of this extension.
- ///
- /// @see ext_scalar_uint_sized
- #pragma once
- #include "../detail/setup.hpp"
- #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
- # pragma message("GLM: GLM_EXT_scalar_int_sized extension included")
- #endif
- namespace glm{
- namespace detail
- {
- # if GLM_HAS_EXTENDED_INTEGER_TYPE
- typedef std::int8_t int8;
- typedef std::int16_t int16;
- typedef std::int32_t int32;
- # else
- typedef char int8;
- typedef short int16;
- typedef int int32;
- #endif//
- template<>
- struct is_int<int8>
- {
- enum test {value = ~0};
- };
- template<>
- struct is_int<int16>
- {
- enum test {value = ~0};
- };
- template<>
- struct is_int<int64>
- {
- enum test {value = ~0};
- };
- }//namespace detail
- /// @addtogroup ext_scalar_int_sized
- /// @{
- /// 8 bit signed integer type.
- typedef detail::int8 int8;
- /// 16 bit signed integer type.
- typedef detail::int16 int16;
- /// 32 bit signed integer type.
- typedef detail::int32 int32;
- /// 64 bit signed integer type.
- typedef detail::int64 int64;
- /// @}
- }//namespace glm
|