diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2023-09-08 17:01:22 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2023-09-08 17:01:22 -0400 |
| commit | 2003fa27db17094f472cbad5b0d3ff42aea9df9c (patch) | |
| tree | 15726b942f6cf30f57858bdf571c3080d752aa07 /src/entities.cpp | |
| parent | 08cdf72330276a4b4883fea41c3ada1087800a41 (diff) | |
EntityType cleanup
Diffstat (limited to 'src/entities.cpp')
| -rw-r--r-- | src/entities.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/entities.cpp b/src/entities.cpp index fb2bc60..2887074 100644 --- a/src/entities.cpp +++ b/src/entities.cpp @@ -17,6 +17,7 @@ void EntityType_Load(EntityType &et) { // TODO grBinds.vkDescriptorSet cgltf_options options{}; + // TODO allocator cgltf_data *gltfData = nullptr; cgltf_result result = cgltf_parse(&options, asset->ptr, asset->size, &gltfData); assert(result == cgltf_result_success); @@ -36,6 +37,20 @@ void EntityType_Load(EntityType &et) { vkAllocateMemory(vkDevice, &vkMemoryAllocateInfo, vkAllocator, &grBinds.deviceMemory); // TODO bind buffers to memory + + // cleanup + cgltf_free(gltfData); } +} +void EntityType_Teardown() { + long entityTypeCount = globalEntityTypes.Count(); + for (long i = 0; i < entityTypeCount; ++i) { + if (globalEntityTypes[i].modelFile == nullptr) continue; + auto *grBinds = ECS_GetGrBinds(globalEntityTypes[i].entityHandle); + vkDestroyPipelineLayout(vkDevice, grBinds->vkPipelineLayout, vkAllocator); + vkDestroyBuffer(vkDevice, grBinds->vertexBuffer, vkAllocator); + vkDestroyBuffer(vkDevice, grBinds->vertexBuffer, vkAllocator); + vkDestroyBuffer(vkDevice, grBinds->vertexBuffer, vkAllocator); + } } |
