|
|
@ -345,8 +345,92 @@ namespace detail |
|
|
|
typedef float float32; |
|
|
|
typedef float float32; |
|
|
|
typedef double float64; |
|
|
|
typedef double float64; |
|
|
|
|
|
|
|
|
|
|
|
}//namespace detail
|
|
|
|
//////////////////
|
|
|
|
|
|
|
|
// float_or_int_trait
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct float_or_int_value |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
enum
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
ERROR, |
|
|
|
|
|
|
|
FLOAT, |
|
|
|
|
|
|
|
INT |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
|
|
|
struct float_or_int_trait |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
enum{ID = float_or_int_value::ERROR}; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
|
|
|
|
struct float_or_int_trait<int8> |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
enum{ID = float_or_int_value::INT}; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
|
|
|
|
struct float_or_int_trait<int16> |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
enum{ID = float_or_int_value::INT}; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
|
|
|
|
struct float_or_int_trait<int32> |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
enum{ID = float_or_int_value::INT}; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
|
|
|
|
struct float_or_int_trait<int64> |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
enum{ID = float_or_int_value::INT}; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
|
|
|
|
struct float_or_int_trait<uint8> |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
enum{ID = float_or_int_value::INT}; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
|
|
|
|
struct float_or_int_trait<uint16> |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
enum{ID = float_or_int_value::INT}; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
|
|
|
|
struct float_or_int_trait<uint32> |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
enum{ID = float_or_int_value::INT}; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
|
|
|
|
struct float_or_int_trait<uint64> |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
enum{ID = float_or_int_value::INT}; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
|
|
|
|
struct float_or_int_trait<float16> |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
enum{ID = float_or_int_value::FLOAT}; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
|
|
|
|
struct float_or_int_trait<float32> |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
enum{ID = float_or_int_value::FLOAT}; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
|
|
|
|
struct float_or_int_trait<float64> |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
enum{ID = float_or_int_value::FLOAT}; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}//namespace detail
|
|
|
|
}//namespace glm
|
|
|
|
}//namespace glm
|
|
|
|
|
|
|
|
|
|
|
|
#if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2005)) |
|
|
|
#if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2005)) |
|
|
|