Optimize model actors entries serialization

This commit is contained in:
2026-06-02 14:07:28 +02:00
parent a12c5e2203
commit 9ce6026192
5 changed files with 20 additions and 19 deletions
@@ -21,6 +21,13 @@ bool ModelInstanceEntries::HasContentLoaded() const
return result;
}
bool ModelInstanceEntries::ShouldSerialize(const void* otherObj) const
{
if (!otherObj)
return true;
return !(*this == *(const ModelInstanceEntries*)otherObj);
}
void ModelInstanceEntries::Serialize(SerializeStream& stream, const void* otherObj)
{
SERIALIZE_GET_OTHER_OBJ(ModelInstanceEntries);
@@ -43,12 +50,13 @@ void ModelInstanceEntries::Serialize(SerializeStream& stream, const void* otherO
void ModelInstanceEntries::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier)
{
PROFILE_MEM(Graphics);
const DeserializeStream& entries = stream["Entries"];
ASSERT(entries.IsArray());
Resize(entries.Size());
for (rapidjson::SizeType i = 0; i < entries.Size(); i++)
const DeserializeStream& entriesData = stream[DeserializeStream::GenericValue(rapidjson::StringRef("Entries", 7))];
CHECK(entriesData.IsArray());
Resize(entriesData.Size());
ModelInstanceEntry* entries = Get();
for (int32 i = 0; i < Count(); i++)
{
At(i).Deserialize((DeserializeStream&)entries[i], modifier);
entries[i].Deserialize((DeserializeStream&)entriesData[i], modifier);
}
}