|
@@ -10,8 +10,45 @@
|
|
|
// - GLM core
|
|
// - 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
|
|
// higherMultiple
|
|
|
|
|
|
|
@@ -22,13 +59,8 @@ namespace glm
|
|
|
genType const & Multiple
|
|
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 <>
|
|
template <>
|