Fixed merge

This commit is contained in:
Christophe Riccio 2011-05-07 16:23:05 +01:00
commit 35a22393a7

View File

@ -266,20 +266,6 @@ namespace glm
int const & Bits int const & Bits
) )
{ {
/*
GLM_STATIC_ASSERT(std::numeric_limits<genIUType>::is_integer, "'bitfieldExtract' only accept integer values");
assert(Offset + Bits <= (sizeof(genIUType) << 3));
genIUType Result(0);
if(std::numeric_limits<genIUType>::is_signed)
Result |= (genIUType(1) << (sizeof(genIUType) * genIUType(8) - genIUType(1))) & (genIUType(1) << (Offset + Bits - genIUType(1)));
genIUType Mask(0);
for(int Bit = Offset; Bit < Bits; ++Bit)
Mask |= (genIUType(1) << Bit);
return Result | ((Mask & Value) >> Offset);
*/
int GenSize = int(sizeof(genIUType)) << int(3); int GenSize = int(sizeof(genIUType)) << int(3);
assert(Offset + Bits <= GenSize); assert(Offset + Bits <= GenSize);
@ -350,7 +336,7 @@ namespace glm
genIUType Mask = 0; genIUType Mask = 0;
for(int Bit = Offset; Bit < Offset + Bits; ++Bit) for(int Bit = Offset; Bit < Offset + Bits; ++Bit)
Mask |= (genIUType(1) << Bit); Mask |= (1 << Bit);
return (Base & ~Mask) | (Insert & Mask); return (Base & ~Mask) | (Insert & Mask);
} }
@ -404,13 +390,14 @@ namespace glm
template <typename genIUType> template <typename genIUType>
GLM_FUNC_QUALIFIER genIUType bitfieldReverse(genIUType const & Value) GLM_FUNC_QUALIFIER genIUType bitfieldReverse(genIUType const & Value)
{ {
GLM_STATIC_ASSERT(std::numeric_limits<genIUType>::is_integer, "'bitfieldReverse' only accept integer values"); GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_integer, "'bitRevert' only accept integer values");
genIUType Result = 0; genIUType Out = 0;
for(std::size_t i = 0; i < sizeof(genIUType) * std::size_t(8); ++i) std::size_t BitSize = sizeof(genIUType) * 8;
if(Value & (genIUType(1) << genIUType(i))) for(std::size_t i = 0; i < BitSize; ++i)
Result |= (genIUType(1) << (genIUType(sizeof(genIUType)) * genIUType(8)) - genIUType(1) - genIUType(i)); if(In & (genIUType(1) << i))
return Result; Out |= genIUType(1) << (BitSize - 1 - i);
return Out;
} }
template <typename T> template <typename T>
@ -458,7 +445,7 @@ namespace glm
int Count = 0; int Count = 0;
for(std::size_t i = 0; i < sizeof(genIUType) * std::size_t(8); ++i) for(std::size_t i = 0; i < sizeof(genIUType) * std::size_t(8); ++i)
{ {
if(Value & (genIUType(1) << i)) if(Value & (1 << i))
++Count; ++Count;
} }
return Count; return Count;