bool MeshVK::update_vertex_data()
{
+ return true;
if(vertices.empty()) {
printf("empty vertices!\n");
return false;
int vsz = vertices.size() * sizeof(Vec3);
if(!(vk_vertices = vku_create_buffer(vsz,
- VK_BUFFER_USAGE_VERTEX_BUFFER_BIT))) {
+ VK_BUFFER_USAGE_VERTEX_BUFFER_BIT))) {
fprintf(stderr, "Failed to create the buffer for the vertices.\n");
return false;
}
int nsz = normals.size() * sizeof(Vec3);
if(!(vk_normals = vku_create_buffer(nsz,
- VK_BUFFER_USAGE_VERTEX_BUFFER_BIT))) {
+ VK_BUFFER_USAGE_VERTEX_BUFFER_BIT))) {
vku_destroy_buffer(vk_vertices);
fprintf(stderr, "Failed to create the buffer for the normals.\n");
int tsz = tex_coords.size() * sizeof(Vec2);
if(!(vk_tex_coords = vku_create_buffer(tsz,
- VK_BUFFER_USAGE_VERTEX_BUFFER_BIT))) {
+ 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");
+ "Failed to create the buffer for the texture coordinates.\n");
return false;
}
int isz = indices.size() * 2;
if(!(vk_indices = vku_create_buffer(isz,
- VK_BUFFER_USAGE_INDEX_BUFFER_BIT))) {
+ VK_BUFFER_USAGE_INDEX_BUFFER_BIT))) {
vku_destroy_buffer(vk_vertices);
vku_destroy_buffer(vk_normals);
vku_destroy_buffer(vk_tex_coords);
/* write the buffers */
- if(!vku_write_memory(vk_vertices->mem_pool, vsz, (void*)vertices.data())) {
- fprintf(stderr, "Failed to write the vertices on GPU.\n");
+ if(!vku_write_memory(vk_vertices->mem_pool, vsz, (void *)vertices.data())) {
+ fprintf(stderr, "Failed to write the vertices to GPU.\n");
+ return false;
+ }
+ if(vkBindBufferMemory(vk_device, vk_vertices->buf, vk_vertices->mem_pool,
+ 0) != VK_SUCCESS) {
+ fprintf(stderr, "Failed to bind the vertex buffer memory\n");
+ return false;
+ }
+
+ if(!vku_write_memory(vk_normals->mem_pool, nsz, (void *)normals.data())) {
+ fprintf(stderr, "Failed to write the normals to GPU.\n");
return false;
}
- if(!vku_write_memory(vk_normals->mem_pool, nsz, (void*)normals.data())) {
- fprintf(stderr, "Failed to write the normalson GPU.\n");
+ if(vkBindBufferMemory(vk_device, vk_normals->buf, vk_normals->mem_pool, 0)
+ != VK_SUCCESS) {
+ fprintf(stderr, "Failed to bind the normal buffer memory\n");
return false;
}
+
if(!vku_write_memory(vk_tex_coords->mem_pool, tsz,
- (void*)tex_coords.data())) {
- fprintf(stderr, "Failed to write the texture coordinates on GPU.\n");
+ (void *)tex_coords.data())) {
+ fprintf(stderr, "Failed to write the texture coordinates to GPU.\n");
+ return false;
+ }
+ if(vkBindBufferMemory(vk_device, vk_tex_coords->buf,
+ vk_tex_coords->mem_pool, 0) != VK_SUCCESS) {
+ fprintf(stderr, "Failed to bind the tex coordinates buffer memory.\n");
+ return false;
+ }
+
+ if(!vku_write_memory(vk_indices->mem_pool, isz, (void *)indices.data())) {
+ fprintf(stderr, "Failed to write the indices to GPU.\n");
return false;
}
- if(!vku_write_memory(vk_indices->mem_pool, isz, (void*)indices.data())) {
- fprintf(stderr, "Failed to write the indices on GPU.\n");
+ if(vkBindBufferMemory(vk_device, vk_indices->buf, vk_indices->mem_pool, 0)
+ != VK_SUCCESS) {
+ fprintf(stderr, "Failed to bind the index buffer memory.\n");
return false;
}