Refactor raw data ReadSttream and WriteStream to have easier to use API with more features

This commit is contained in:
Wojciech Figat
2022-10-12 11:22:20 +02:00
parent 09e50bb0e1
commit ff34c7cc9b
18 changed files with 448 additions and 277 deletions

View File

@@ -1568,7 +1568,7 @@ bool Actor::FromBytes(const Span<byte>& data, Array<Actor*>& output, ISerializeM
int32 bufferSize;
stream.ReadInt32(&bufferSize);
const char* buffer = (const char*)stream.GetPositionHandle();
stream.Read(bufferSize);
stream.Move(bufferSize);
// Order in parent
int32 orderInParent;
@@ -1612,7 +1612,7 @@ bool Actor::FromBytes(const Span<byte>& data, Array<Actor*>& output, ISerializeM
int32 bufferSize;
stream.ReadInt32(&bufferSize);
const char* buffer = (const char*)stream.GetPositionHandle();
stream.Read(bufferSize);
stream.Move(bufferSize);
// Order in parent
int32 orderInParent;

View File

@@ -126,7 +126,7 @@ bool SceneCSGData::TryGetSurfaceData(const Guid& brushId, int32 brushSurfaceInde
// Invalid data
return false;
}
stream.Read(trianglesCount * sizeof(Float3) * 3);
stream.Move(trianglesCount * sizeof(Float3) * 3);
}
// Read surface data
@@ -138,7 +138,7 @@ bool SceneCSGData::TryGetSurfaceData(const Guid& brushId, int32 brushSurfaceInde
}
outData.Triangles.Clear();
outData.Triangles.Resize(trianglesCount);
Float3* src = stream.Read<Float3>(trianglesCount * 3);
Float3* src = stream.Move<Float3>(trianglesCount * 3);
Vector3* dst = (Vector3*)outData.Triangles.Get();
for (int32 i = 0; i < trianglesCount * 3; i++)
*dst++ = *src++;