|
|
|
@ -10,8 +10,45 @@ |
|
|
|
|
// - GLM core |
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
|
|
|
|
|
|
|
namespace glm |
|
|
|
|
namespace glm{ |
|
|
|
|
namespace detail |
|
|
|
|
{ |
|
|
|
|
template <bool Signed> |
|
|
|
|
struct higherMultiple |
|
|
|
|
{ |
|
|
|
|
template <typename genType> |
|
|
|
|
GLM_FUNC_QUALIFIER genType operator() |
|
|
|
|
( |
|
|
|
|
genType const & Source, |
|
|
|
|
genType const & Multiple |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
if (Source > genType(0)) |
|
|
|
|
{ |
|
|
|
|
genType Tmp = Source - genType(1); |
|
|
|
|
return Tmp + (Multiple - (Tmp % Multiple)); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
return Source + (-Source % Multiple); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
|
struct higherMultiple<false> |
|
|
|
|
{ |
|
|
|
|
template <typename genType> |
|
|
|
|
GLM_FUNC_QUALIFIER genType operator() |
|
|
|
|
( |
|
|
|
|
genType const & Source, |
|
|
|
|
genType const & Multiple |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
genType Tmp = Source - genType(1); |
|
|
|
|
return Tmp + (Multiple - (Tmp % Multiple)); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
}//namespace detail |
|
|
|
|
|
|
|
|
|
////////////////////// |
|
|
|
|
// higherMultiple |
|
|
|
|
|
|
|
|
@ -22,13 +59,8 @@ namespace glm |
|
|
|
|
genType const & Multiple |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
if (Source > genType(0)) |
|
|
|
|
{ |
|
|
|
|
genType Tmp = Source - genType(1); |
|
|
|
|
return Tmp + (Multiple - (Tmp % Multiple)); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
return Source + (-Source % Multiple); |
|
|
|
|
detail::higherMultiple<std::numeric_limits<genType>::is_signed> Compute; |
|
|
|
|
return Compute(Source, Multiple); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
|