/* ================ GLMesh_DeleteVertexBuffers Delete VBOs for all loaded alias models ================ */ void GLMesh_DeleteVertexBuffers (void) { GL_WaitForDeviceIdle(); int j; qmodel_t *m; for (j = 1; j < MAX_MODELS; j++) { if (!(m = cl.model_precache[j])) break; if (m->type != mod_alias) continue; vkDestroyBuffer(vulkan_globals.device, m->vertex_buffer, NULL); GL_FreeFromHeaps(GEOMETRY_MAX_HEAPS, vertex_buffer_heaps, m->vertex_heap, m->vertex_heap_node, &num_vulkan_mesh_allocations); vkDestroyBuffer(vulkan_globals.device, m->index_buffer, NULL); GL_FreeFromHeaps(GEOMETRY_MAX_HEAPS, index_buffer_heaps, m->index_heap, m->index_heap_node, &num_vulkan_mesh_allocations); m->vertex_buffer = VK_NULL_HANDLE; m->vertex_heap = NULL; m->vertex_heap_node = NULL; m->index_buffer = VK_NULL_HANDLE; m->index_heap = NULL; m->index_heap_node = NULL; } }
/* =============== GL_DestroyHeap =============== */ void GL_DestroyHeap(glheap_t * heap) { GL_WaitForDeviceIdle(); vkFreeMemory(vulkan_globals.device, heap->memory, NULL); free(heap->head); free(heap); }