Improve the loading of serialized Bullet files, so that
after 'loadFileFromMemory' you can save the existing memory back to disk converted to native architecture endianness. Fixed a bug that prevented big endian machines to load cloth data (due to wrong endian swap of pointer array) Also improved the 'preswap' so that you can swap endianness on big endian machines (to little endian)
This commit is contained in:
@@ -368,8 +368,11 @@ void bDNA::init(char *data, int len, bool swap)
|
||||
|
||||
|
||||
// Parse names
|
||||
if (swap) dataLen = ChunkUtils::swapInt(*intPtr);
|
||||
else dataLen = *intPtr;
|
||||
if (swap)
|
||||
{
|
||||
*intPtr = ChunkUtils::swapInt(*intPtr);
|
||||
}
|
||||
dataLen = *intPtr;
|
||||
intPtr++;
|
||||
|
||||
cp = (char*)intPtr;
|
||||
@@ -407,8 +410,11 @@ void bDNA::init(char *data, int len, bool swap)
|
||||
intPtr = (int*)cp;
|
||||
assert(strncmp(cp, "TYPE", 4)==0); intPtr++;
|
||||
|
||||
if (swap) dataLen = ChunkUtils::swapInt(*intPtr);
|
||||
else dataLen = *intPtr;
|
||||
if (swap)
|
||||
{
|
||||
*intPtr = ChunkUtils::swapInt(*intPtr);
|
||||
}
|
||||
dataLen = *intPtr;
|
||||
intPtr++;
|
||||
|
||||
cp = (char*)intPtr;
|
||||
@@ -467,8 +473,11 @@ void bDNA::init(char *data, int len, bool swap)
|
||||
cp = (char*)intPtr;
|
||||
assert(strncmp(cp, "STRC", 4)==0); intPtr++;
|
||||
|
||||
if (swap) dataLen = ChunkUtils::swapInt(*intPtr);
|
||||
else dataLen = *intPtr;
|
||||
if (swap)
|
||||
{
|
||||
*intPtr = ChunkUtils::swapInt(*intPtr);
|
||||
}
|
||||
dataLen = *intPtr;
|
||||
intPtr++;
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user