X-Git-Url: http://git.mutantstargoat.com?a=blobdiff_plain;f=src%2Fvulkan%2Fmesh-vk.cc;h=b495ea2844eedcfd20d965668cea0374a56eceda;hb=fb89e67e6550d207d2a28599a420455d3c8f0f29;hp=c1901995e266bc8d206d357a80d1040bbdabb95f;hpb=d90ed8aef9e3547eee75ad793c352ee022d35050;p=demo diff --git a/src/vulkan/mesh-vk.cc b/src/vulkan/mesh-vk.cc index c190199..b495ea2 100644 --- a/src/vulkan/mesh-vk.cc +++ b/src/vulkan/mesh-vk.cc @@ -47,14 +47,48 @@ bool MeshVK::update_vertex_data() return false; } - /* create vertex buffer */ + /* create the buffers */ if(!(vk_vertices = vku_create_buffer(vertices.size() * sizeof(Vec3), VK_BUFFER_USAGE_VERTEX_BUFFER_BIT))) { - fprintf(stderr, "Failed to create vertex buffer.\n"); + fprintf(stderr, "Failed to create the buffer for the vertices.\n"); return false; } + 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; + } + + 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; + } + + /* 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; }