From 3b8a199f1b77338413dba4dcaa7ac490c361b619 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Mon, 16 Dec 2013 23:52:28 +0100 Subject: [PATCH] Fixed glm::multiple warning with unsigned int genType --- glm/gtx/multiple.inl | 48 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/glm/gtx/multiple.inl b/glm/gtx/multiple.inl index c5f134dd..f5d59f27 100644 --- a/glm/gtx/multiple.inl +++ b/glm/gtx/multiple.inl @@ -10,8 +10,45 @@ // - GLM core /////////////////////////////////////////////////////////////////////////////////////////////////// -namespace glm +namespace glm{ +namespace detail { + template + struct higherMultiple + { + template + 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 + { + template + 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::is_signed> Compute; + return Compute(Source, Multiple); } template <>