Motivation

Results & Reflections

BinarySerializeStream stream(aFilePath);

 stream.BinarySerialize(assetHeader);
 stream.BinarySerialize(metaData);

 stream.BinarySerialize(renderElements);
 stream.BinarySerialize(renderVertices);
 stream.BinarySerialize(renderIndices);

 stream.BinarySerialize(colliderElements);
 stream.BinarySerialize(colliderVertices);
 stream.BinarySerialize(colliderIndices);
BinaryDeserializeStream stream(aFilePath);

 stream.BinaryDeserialize(assetHeader);
 stream.BinaryDeserialize(metaData);
 
 // Resized vectors

 stream.BinaryDeserialize(renderElements);
 stream.BinaryDeserialize(renderVertices);
 stream.BinaryDeserialize(renderIndices);

 stream.BinaryDeserialize(colliderElements);
 stream.BinaryDeserialize(colliderVertices);
 stream.BinaryDeserialize(colliderIndices);

Process

	template<>
	struct BinaryTypeSerializeInterface<CustomType>
	{
		static void Serialize(const CustomType&, BinarySerializeStream&)
		{
		  //Serialize contents from CustomType to file
		}

		static void Deserialize(CustomType&, BinaryDeserializeStream&)
		{
		  //Deserialize contents into CustomType object
		}
	};

Binary File Format

Future Considerations