IT WORKS(somewhat)

This commit is contained in:
Dynamitos
2023-11-10 22:01:58 +01:00
parent c30619d07d
commit 9871fb921d
4 changed files with 12 additions and 0 deletions
+1
View File
@@ -261,6 +261,7 @@ void MeshLoader::loadGlobalMeshes(const aiScene* scene, const Array<PMaterialIns
globalMeshes[meshIndex]->id = id; globalMeshes[meshIndex]->id = id;
globalMeshes[meshIndex]->referencedMaterial = materials[mesh->mMaterialIndex]; globalMeshes[meshIndex]->referencedMaterial = materials[mesh->mMaterialIndex];
globalMeshes[meshIndex]->meshlets = std::move(meshlets); globalMeshes[meshIndex]->meshlets = std::move(meshlets);
globalMeshes[meshIndex]->indices = std::move(indices);
globalMeshes[meshIndex]->vertexCount = mesh->mNumVertices; globalMeshes[meshIndex]->vertexCount = mesh->mNumVertices;
globalMeshes[meshIndex]->indexBuffer = std::move(indexBuffer); globalMeshes[meshIndex]->indexBuffer = std::move(indexBuffer);
} }
+1
View File
@@ -82,6 +82,7 @@ IndexBuffer::IndexBuffer(QueueFamilyMapping mapping, uint64 size, Gfx::SeIndexTy
break; break;
case SE_INDEX_TYPE_UINT32: case SE_INDEX_TYPE_UINT32:
numIndices = size / sizeof(uint32); numIndices = size / sizeof(uint32);
break;
default: default:
break; break;
} }
+9
View File
@@ -16,6 +16,7 @@ void Mesh::save(ArchiveBuffer& buffer) const
{ {
Serialization::save(buffer, vertexData->getTypeName()); Serialization::save(buffer, vertexData->getTypeName());
Serialization::save(buffer, vertexCount); Serialization::save(buffer, vertexCount);
Serialization::save(buffer, indices);
Serialization::save(buffer, meshlets); Serialization::save(buffer, meshlets);
Serialization::save(buffer, referencedMaterial->getAssetIdentifier()); Serialization::save(buffer, referencedMaterial->getAssetIdentifier());
vertexData->serializeMesh(id, vertexCount, buffer); vertexData->serializeMesh(id, vertexCount, buffer);
@@ -27,6 +28,14 @@ void Mesh::load(ArchiveBuffer& buffer)
Serialization::load(buffer, typeName); Serialization::load(buffer, typeName);
Serialization::load(buffer, vertexCount); Serialization::load(buffer, vertexCount);
vertexData = VertexData::findByTypeName(typeName); 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); Serialization::load(buffer, meshlets);
std::string refId; std::string refId;
Serialization::load(buffer, refId); Serialization::load(buffer, refId);
+1
View File
@@ -16,6 +16,7 @@ public:
uint64 vertexCount; uint64 vertexCount;
Gfx::OIndexBuffer indexBuffer; Gfx::OIndexBuffer indexBuffer;
PMaterialInstanceAsset referencedMaterial; PMaterialInstanceAsset referencedMaterial;
Array<uint32> indices;
Array<Meshlet> meshlets; Array<Meshlet> meshlets;
void save(ArchiveBuffer& buffer) const; void save(ArchiveBuffer& buffer) const;
void load(ArchiveBuffer& buffer); void load(ArchiveBuffer& buffer);