Fixed merge

master
Christophe Riccio ago%!(EXTRA string=12 years)
commit e3da5f952c
  1. 23
      glm/gtx/multiple.inl
  2. 4
      test/core/core_type_cast.cpp
  3. 26
      test/gtx/gtx_multiple.cpp

@ -22,13 +22,13 @@ namespace glm
genType const & Multiple genType const & Multiple
) )
{ {
assert(genType(0) <= Multiple); if (Source > genType(0))
{
genType SourceSign = sign(Source); genType Tmp = Source - genType(1);
genType SourceAbs = abs(Source); return Tmp + (Multiple - (Tmp % Multiple));
}
genType Tmp = SourceAbs % Multiple; else
return (Tmp ? SourceAbs + Multiple - Tmp : SourceAbs) * SourceSign; return Source + (-Source % Multiple);
} }
template <> template <>
@ -95,8 +95,13 @@ namespace glm
genType const & Multiple genType const & Multiple
) )
{ {
genType Tmp = Source % Multiple; if (Source >= 0)
return Tmp ? Source - Tmp : Source; return Source - Source % Multiple;
else
{
genType Tmp = Source + 1;
return Tmp - Tmp % Multiple - Multiple;
}
} }
template <> template <>

@ -27,8 +27,8 @@ int test_vec2_cast()
glm::mediump_vec2 G = static_cast<glm::mediump_vec2>(A); glm::mediump_vec2 G = static_cast<glm::mediump_vec2>(A);
glm::highp_vec2 H = static_cast<glm::highp_vec2>(A); glm::highp_vec2 H = static_cast<glm::highp_vec2>(A);
my_vec2 I; //my_vec2 I;
glm::vec2 J = static_cast<glm::vec2>(I); //glm::vec2 J = static_cast<glm::vec2>(I);
int Error(0); int Error(0);

@ -14,16 +14,11 @@ int test_higher()
{ {
int Error(0); int Error(0);
int Higher0 = glm::higherMultiple(-5, 4); Error += glm::higherMultiple(-5, 4) == -4 ? 0 : 1;
Error += Higher0 == -8 ? 0 : 1; Error += glm::higherMultiple(-4, 4) == -4 ? 0 : 1;
int Higher1 = glm::higherMultiple(-4, 4); Error += glm::higherMultiple(-3, 4) == 0 ? 0 : 1;
Error += Higher1 == -4 ? 0 : 1; Error += glm::higherMultiple(-2, 4) == 0 ? 0 : 1;
int Higher2 = glm::higherMultiple(-3, 4); Error += glm::higherMultiple(-1, 4) == 0 ? 0 : 1;
Error += Higher2 == -4 ? 0 : 1;
int Higher3 = glm::higherMultiple(-2, 4);
Error += Higher3 == -4 ? 0 : 1;
int Higher4 = glm::higherMultiple(-1, 4);
Error += Higher4 == -4 ? 0 : 1;
Error += glm::higherMultiple(0, 4) == 0 ? 0 : 1; Error += glm::higherMultiple(0, 4) == 0 ? 0 : 1;
Error += glm::higherMultiple(1, 4) == 4 ? 0 : 1; Error += glm::higherMultiple(1, 4) == 4 ? 0 : 1;
Error += glm::higherMultiple(2, 4) == 4 ? 0 : 1; Error += glm::higherMultiple(2, 4) == 4 ? 0 : 1;
@ -42,12 +37,15 @@ int test_Lower()
{ {
int Error(0); int Error(0);
Error += glm::lowerMultiple(-5, 4) == -4 ? 0 : 1; Error += glm::lowerMultiple(-5, 4) == -8 ? 0 : 1;
Error += glm::lowerMultiple(-4, 4) == -4 ? 0 : 1; Error += glm::lowerMultiple(-4, 4) == -4 ? 0 : 1;
Error += glm::lowerMultiple(-3, 4) == 0 ? 0 : 1; Error += glm::lowerMultiple(-3, 4) == -4 ? 0 : 1;
Error += glm::lowerMultiple(-2, 4) == 0 ? 0 : 1; Error += glm::lowerMultiple(-2, 4) == -4 ? 0 : 1;
Error += glm::lowerMultiple(-1, 4) == 0 ? 0 : 1; Error += glm::lowerMultiple(-1, 4) == -4 ? 0 : 1;
Error += glm::lowerMultiple(0, 4) == 0 ? 0 : 1; Error += glm::lowerMultiple(0, 4) == 0 ? 0 : 1;
Error += glm::lowerMultiple(1, 4) == 0 ? 0 : 1;
Error += glm::lowerMultiple(2, 4) == 0 ? 0 : 1;
Error += glm::lowerMultiple(3, 4) == 0 ? 0 : 1;
Error += glm::lowerMultiple(4, 4) == 4 ? 0 : 1; Error += glm::lowerMultiple(4, 4) == 4 ? 0 : 1;
Error += glm::lowerMultiple(5, 4) == 4 ? 0 : 1; Error += glm::lowerMultiple(5, 4) == 4 ? 0 : 1;
Error += glm::lowerMultiple(6, 4) == 4 ? 0 : 1; Error += glm::lowerMultiple(6, 4) == 4 ? 0 : 1;

Loading…
Cancel
Save