- fix build on big endian arches, patch by Jakub Cajka from #1185298
parent
941ede50fd
commit
f6b43dd9a3
@ -0,0 +1,29 @@
|
||||
diff -up glm/glm/detail/func_integer.inl.befix glm/glm/detail/func_integer.inl
|
||||
--- glm/glm/detail/func_integer.inl.befix 2015-01-28 08:44:30.468627717 +0100
|
||||
+++ glm/glm/detail/func_integer.inl 2015-01-28 08:46:19.990024091 +0100
|
||||
@@ -248,10 +248,8 @@ namespace detail
|
||||
GLM_STATIC_ASSERT(sizeof(uint) == sizeof(uint32), "uint and uint32 size mismatch");
|
||||
|
||||
uint64 Value64 = static_cast<uint64>(x) * static_cast<uint64>(y);
|
||||
- uint32* PointerMSB = (reinterpret_cast<uint32*>(&Value64) + 1);
|
||||
- msb = *PointerMSB;
|
||||
- uint32* PointerLSB = (reinterpret_cast<uint32*>(&Value64) + 0);
|
||||
- lsb = *PointerLSB;
|
||||
+ msb = Value64 >> 32;
|
||||
+ lsb = Value64;
|
||||
}
|
||||
|
||||
template <precision P, template <typename, precision> class vecType>
|
||||
@@ -270,10 +268,8 @@ namespace detail
|
||||
GLM_STATIC_ASSERT(sizeof(int) == sizeof(int32), "int and int32 size mismatch");
|
||||
|
||||
int64 Value64 = static_cast<int64>(x) * static_cast<int64>(y);
|
||||
- int32* PointerMSB = (reinterpret_cast<int32*>(&Value64) + 1);
|
||||
- msb = *PointerMSB;
|
||||
- int32* PointerLSB = (reinterpret_cast<int32*>(&Value64));
|
||||
- lsb = *PointerLSB;
|
||||
+ msb = Value64 >> 32;
|
||||
+ lsb = Value64;
|
||||
}
|
||||
|
||||
template <precision P, template <typename, precision> class vecType>
|
Loading…
Reference in new issue