IT WORKS(somewhat)
This commit is contained in:
@@ -82,6 +82,7 @@ IndexBuffer::IndexBuffer(QueueFamilyMapping mapping, uint64 size, Gfx::SeIndexTy
|
||||
break;
|
||||
case SE_INDEX_TYPE_UINT32:
|
||||
numIndices = size / sizeof(uint32);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ void Mesh::save(ArchiveBuffer& buffer) const
|
||||
{
|
||||
Serialization::save(buffer, vertexData->getTypeName());
|
||||
Serialization::save(buffer, vertexCount);
|
||||
Serialization::save(buffer, indices);
|
||||
Serialization::save(buffer, meshlets);
|
||||
Serialization::save(buffer, referencedMaterial->getAssetIdentifier());
|
||||
vertexData->serializeMesh(id, vertexCount, buffer);
|
||||
@@ -27,6 +28,14 @@ void Mesh::load(ArchiveBuffer& buffer)
|
||||
Serialization::load(buffer, typeName);
|
||||
Serialization::load(buffer, vertexCount);
|
||||
vertexData = VertexData::findByTypeName(typeName);
|
||||
Serialization::load(buffer, indices);
|
||||
indexBuffer = buffer.getGraphics()->createIndexBuffer(IndexBufferCreateInfo{
|
||||
.sourceData = {
|
||||
.size = sizeof(uint32) * indices.size(),
|
||||
.data = (uint8*)indices.data(),
|
||||
},
|
||||
.indexType = Gfx::SeIndexType::SE_INDEX_TYPE_UINT32,
|
||||
});
|
||||
Serialization::load(buffer, meshlets);
|
||||
std::string refId;
|
||||
Serialization::load(buffer, refId);
|
||||
|
||||
@@ -16,6 +16,7 @@ public:
|
||||
uint64 vertexCount;
|
||||
Gfx::OIndexBuffer indexBuffer;
|
||||
PMaterialInstanceAsset referencedMaterial;
|
||||
Array<uint32> indices;
|
||||
Array<Meshlet> meshlets;
|
||||
void save(ArchiveBuffer& buffer) const;
|
||||
void load(ArchiveBuffer& buffer);
|
||||
|
||||
Reference in New Issue
Block a user