From fb89e67e6550d207d2a28599a420455d3c8f0f29 Mon Sep 17 00:00:00 2001 From: Eleni Maria Stea Date: Sun, 11 Mar 2018 20:56:40 +0200 Subject: [PATCH] added vku_destroy for previous buffers when next allocation fails --- src/vulkan/mesh-vk.cc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/vulkan/mesh-vk.cc b/src/vulkan/mesh-vk.cc index 2c55013..b495ea2 100644 --- a/src/vulkan/mesh-vk.cc +++ b/src/vulkan/mesh-vk.cc @@ -57,12 +57,17 @@ bool MeshVK::update_vertex_data() if(!(vk_normals = vku_create_buffer(normals.size() * sizeof(Vec3), VK_BUFFER_USAGE_VERTEX_BUFFER_BIT))) { + vku_destroy_buffer(vk_vertices); + fprintf(stderr, "Failed to create the buffer for the normals.\n"); return false; } if(!(vk_tex_coords = vku_create_buffer(tex_coords.size() * sizeof(Vec2), VK_BUFFER_USAGE_VERTEX_BUFFER_BIT))) { + vku_destroy_buffer(vk_vertices); + vku_destroy_buffer(vk_normals); + fprintf(stderr, "Failed to create the buffer for the texture coordinates.\n"); return false; @@ -70,13 +75,20 @@ bool MeshVK::update_vertex_data() if(!(vk_indices = vku_create_buffer(indices.size() * 2, VK_BUFFER_USAGE_INDEX_BUFFER_BIT))) { + vku_destroy_buffer(vk_vertices); + vku_destroy_buffer(vk_normals); + vku_destroy_buffer(vk_tex_coords); + fprintf(stderr, "Failed to create the indices buffer.\n"); return false; } - //TODO XXX /* map the buffers */ + //TODO this is going to change when we allocate one mem block for all data, + //for the moment we map each buffer memory block and we set the data + + return true; } -- 1.7.10.4