Implementing basic asset serialization
This commit is contained in:
@@ -10,7 +10,7 @@ struct StaticMeshDataType
|
||||
VertexStreamComponent tangentBasisComponents[3];
|
||||
|
||||
//Dont forget these are 4 component vectors
|
||||
Array<VertexStreamComponent> textureCoordinates;
|
||||
VertexStreamComponent textureCoordinates[4];
|
||||
|
||||
VertexStreamComponent colorComponent;
|
||||
};
|
||||
@@ -21,9 +21,38 @@ public:
|
||||
StaticMeshVertexInput(std::string name);
|
||||
virtual ~StaticMeshVertexInput();
|
||||
virtual void init(Gfx::PGraphics graphics) override;
|
||||
virtual void save(ArchiveBuffer& buffer) override;
|
||||
virtual void load(ArchiveBuffer& buffer) override;
|
||||
void setData(StaticMeshDataType&& data);
|
||||
private:
|
||||
StaticMeshDataType data;
|
||||
};
|
||||
DEFINE_REF(StaticMeshVertexInput)
|
||||
}
|
||||
namespace Serialization
|
||||
{
|
||||
static void save(ArchiveBuffer& buffer, StaticMeshDataType& type)
|
||||
{
|
||||
Serialization::save(buffer, type.positionStream);
|
||||
Serialization::save(buffer, type.tangentBasisComponents[0]);
|
||||
Serialization::save(buffer, type.tangentBasisComponents[1]);
|
||||
Serialization::save(buffer, type.tangentBasisComponents[2]);
|
||||
Serialization::save(buffer, type.textureCoordinates[0]);
|
||||
Serialization::save(buffer, type.textureCoordinates[1]);
|
||||
Serialization::save(buffer, type.textureCoordinates[2]);
|
||||
Serialization::save(buffer, type.textureCoordinates[3]);
|
||||
Serialization::save(buffer, type.colorComponent);
|
||||
}
|
||||
static void load(ArchiveBuffer& buffer, StaticMeshDataType& type)
|
||||
{
|
||||
Serialization::load(buffer, type.positionStream);
|
||||
Serialization::load(buffer, type.tangentBasisComponents[0]);
|
||||
Serialization::load(buffer, type.tangentBasisComponents[1]);
|
||||
Serialization::load(buffer, type.tangentBasisComponents[2]);
|
||||
Serialization::load(buffer, type.textureCoordinates[0]);
|
||||
Serialization::load(buffer, type.textureCoordinates[1]);
|
||||
Serialization::load(buffer, type.textureCoordinates[2]);
|
||||
Serialization::load(buffer, type.textureCoordinates[3]);
|
||||
Serialization::load(buffer, type.colorComponent);
|
||||
}
|
||||
} // namespace Serialization
|
||||
} // namespace Seele
|
||||
Reference in New Issue
Block a user