diff options
Diffstat (limited to 'src/vk/model.cpp')
-rw-r--r-- | src/vk/model.cpp | 46 |
1 files changed, 6 insertions, 40 deletions
diff --git a/src/vk/model.cpp b/src/vk/model.cpp index d47db8a..5cf96b6 100644 --- a/src/vk/model.cpp +++ b/src/vk/model.cpp @@ -48,16 +48,6 @@ ModelBuilder::ModelBuilder(VK::Model *m, const char *mp): { } -struct MeshData -{ - glm::vec3 color; - - uint32_t vertex_base; - uint32_t vertex_count; - uint32_t index_base; - uint32_t index_count; -}; - uint32_t read_uint32_from_file(std::ifstream &input_file) { uint32_t data{}; @@ -90,42 +80,20 @@ load_mesh(void *obj) std::ifstream input_file{self->model_path}; if(!input_file.is_open()) throw CommandError{"Failed to open file."}; - std::vector<MeshData> meshes{}; - self->model->queue_family = cg_core.vk_device_with_swapchain->get_queue_family_with_graphics(); VK::Queue transfer_queue{self->model->queue_family->get_queue()}; - // Load meshes. - { - uint32_t meshes_count{read_uint32_from_file(input_file)}; - meshes.resize(meshes_count); - - for(uint32_t i{0}; i < meshes_count; i++) - { - meshes[i].color = read_vec3_from_file(input_file); - - meshes[i].vertex_base = read_uint32_from_file(input_file); - meshes[i].vertex_count = read_uint32_from_file(input_file); - meshes[i].index_base = read_uint32_from_file(input_file); - meshes[i].index_count = read_uint32_from_file(input_file); - } - } - // Load vertexes. { - uint32_t vertex_count{read_uint32_from_file(input_file)}; + auto vertex_count{read_uint32_from_file(input_file)}; std::vector<VK::Vertex> vertexes{vertex_count}; - for(auto mesh: meshes) + for(auto i{0}; i < vertex_count; i++) { - for(uint32_t i{mesh.vertex_base}; i < mesh.vertex_count; i++) - { - vertexes[i].position = read_vec3_from_file(input_file); - vertexes[i].normal = read_vec3_from_file(input_file); - vertexes[i].texture_coord = read_vec2_from_file(input_file); - vertexes[i].color = mesh.color; - } + vertexes[i].position = read_vec3_from_file(input_file); + vertexes[i].normal = read_vec3_from_file(input_file); + vertexes[i].texture_coord = read_vec2_from_file(input_file); } void *vertexes_data{vertexes.data()}; @@ -142,10 +110,8 @@ load_mesh(void *obj) self->model->index_count = read_uint32_from_file(input_file); std::vector<uint32_t> indexes(self->model->index_count); - for(uint32_t i{0}; i < self->model->index_count; i++) - { + for(auto i{0}; i < self->model->index_count; i++) indexes[i] = read_uint32_from_file(input_file); - } void *indexes_data{indexes.data()}; size_t indexes_size{sizeof(indexes[0]) * indexes.size()}; |