made (most of) streaming work on big endian

This commit is contained in:
aap
2020-05-01 08:42:56 +02:00
parent 3010dad0cc
commit e4b4bf9d16
25 changed files with 377 additions and 219 deletions

View File

@@ -450,8 +450,8 @@ readNativeTexture(Stream *stream)
// Texture
tex->filterAddressing = stream->readU32();
stream->read(tex->name, 32);
stream->read(tex->mask, 32);
stream->read8(tex->name, 32);
stream->read8(tex->mask, 32);
// Raster
uint32 format = stream->readU32();
@@ -473,7 +473,7 @@ readNativeTexture(Stream *stream)
size = stream->readU32();
if(i < raster->getNumLevels()){
data = raster->lock(i, Raster::LOCKWRITE|Raster::LOCKNOFETCH);
stream->read(data, size);
stream->read8(data, size);
raster->unlock(i);
}else
stream->seek(size);
@@ -493,8 +493,8 @@ writeNativeTexture(Texture *tex, Stream *stream)
// Texture
stream->writeU32(tex->filterAddressing);
stream->write(tex->name, 32);
stream->write(tex->mask, 32);
stream->write8(tex->name, 32);
stream->write8(tex->mask, 32);
// Raster
int32 numLevels = raster->getNumLevels();
@@ -511,7 +511,7 @@ writeNativeTexture(Texture *tex, Stream *stream)
size = getLevelSize(raster, i);
stream->writeU32(size);
data = raster->lock(i, Raster::LOCKREAD);
stream->write(data, size);
stream->write8(data, size);
raster->unlock(i);
}
}

View File

@@ -257,11 +257,12 @@ readNativeData(Stream *stream, int32, void *object, int32, int32)
header->ibo = 0;
header->numAttribs = stream->readU32();
header->attribs = rwNewT(AttribDesc, header->numAttribs, MEMDUR_EVENT | ID_GEOMETRY);
stream->read(header->attribs,
stream->read32(header->attribs,
header->numAttribs*sizeof(AttribDesc));
header->dataSize = header->attribs[0].stride*geometry->numVertices;
header->data = rwNewT(uint8, header->dataSize, MEMDUR_EVENT | ID_GEOMETRY);
stream->read(header->data, header->dataSize);
ASSERTLITTLE;
stream->read8(header->data, header->dataSize);
return stream;
}
@@ -274,8 +275,9 @@ writeNativeData(Stream *stream, int32, void *object, int32, int32)
return stream;
InstanceDataHeader *header = (InstanceDataHeader*)geometry->instData;
stream->writeU32(header->numAttribs);
stream->write(header->attribs, header->numAttribs*sizeof(AttribDesc));
stream->write(header->data, header->dataSize);
stream->write32(header->attribs, header->numAttribs*sizeof(AttribDesc));
ASSERTLITTLE;
stream->write8(header->data, header->dataSize);
return stream;
}
@@ -555,7 +557,7 @@ readNativeSkin(Stream *stream, int32, void *object, int32 offset)
int32 numBones = stream->readI32();
skin->init(numBones, 0, 0);
stream->read(skin->inverseMatrices, skin->numBones*64);
stream->read32(skin->inverseMatrices, skin->numBones*64);
return stream;
}
@@ -566,7 +568,7 @@ writeNativeSkin(Stream *stream, int32 len, void *object, int32 offset)
stream->writeU32(PLATFORM_GL);
Skin *skin = *PLUGINOFFSET(Skin*, object, offset);
stream->writeI32(skin->numBones);
stream->write(skin->inverseMatrices, skin->numBones*64);
stream->write32(skin->inverseMatrices, skin->numBones*64);
return stream;
}