diff options
Diffstat (limited to 'src/vk/descriptor_set_layout.cpp')
-rw-r--r-- | src/vk/descriptor_set_layout.cpp | 44 |
1 files changed, 19 insertions, 25 deletions
diff --git a/src/vk/descriptor_set_layout.cpp b/src/vk/descriptor_set_layout.cpp index 0a96a56..8a2f4ef 100644 --- a/src/vk/descriptor_set_layout.cpp +++ b/src/vk/descriptor_set_layout.cpp @@ -101,22 +101,18 @@ unload_view(void *obj) } void -load_model(void *obj) +load_texture(void *obj) { auto self = static_cast<VK::DescriptorSetLayout*>(obj); - std::array<VkDescriptorSetLayoutBinding, 2> layout_bindings; + std::array<VkDescriptorSetLayoutBinding, 1> layout_bindings{}; + layout_bindings[0].binding = 0; - layout_bindings[0].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; + layout_bindings[0].descriptorType = + VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; layout_bindings[0].descriptorCount = 1; - layout_bindings[0].stageFlags = VK_SHADER_STAGE_VERTEX_BIT; + layout_bindings[0].stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT; layout_bindings[0].pImmutableSamplers = nullptr; - layout_bindings[1].binding = 1; - layout_bindings[1].descriptorType = - VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; - layout_bindings[1].descriptorCount = 1; - layout_bindings[1].stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT; - layout_bindings[1].pImmutableSamplers = nullptr; VkDescriptorSetLayoutCreateInfo layout_info{}; layout_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO; @@ -127,32 +123,30 @@ load_model(void *obj) if(vkCreateDescriptorSetLayout( cg_core.vk_device_with_swapchain->device, &layout_info, nullptr, - &self->model) != VK_SUCCESS) + &self->texture) != VK_SUCCESS) throw CommandError{ - "Failed to create Vulkan descriptor set layout for model instance."}; + "Failed to create Vulkan descriptor set layout for textures."}; } void -unload_model(void *obj) +unload_texture(void *obj) { auto self = static_cast<VK::DescriptorSetLayout*>(obj); vkDestroyDescriptorSetLayout( - cg_core.vk_device_with_swapchain->device, self->model, nullptr); + cg_core.vk_device_with_swapchain->device, self->texture, nullptr); } void -load_sprite(void *obj) +load_model(void *obj) { auto self = static_cast<VK::DescriptorSetLayout*>(obj); - std::array<VkDescriptorSetLayoutBinding, 1> layout_bindings{}; - + std::array<VkDescriptorSetLayoutBinding, 1> layout_bindings; layout_bindings[0].binding = 0; - layout_bindings[0].descriptorType = - VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; + layout_bindings[0].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; layout_bindings[0].descriptorCount = 1; - layout_bindings[0].stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT; + layout_bindings[0].stageFlags = VK_SHADER_STAGE_VERTEX_BIT; layout_bindings[0].pImmutableSamplers = nullptr; VkDescriptorSetLayoutCreateInfo layout_info{}; @@ -164,25 +158,25 @@ load_sprite(void *obj) if(vkCreateDescriptorSetLayout( cg_core.vk_device_with_swapchain->device, &layout_info, nullptr, - &self->sprite) != VK_SUCCESS) + &self->model) != VK_SUCCESS) throw CommandError{ - "Failed to create Vulkan descriptor set layout for sprites."}; + "Failed to create Vulkan descriptor set layout for model instance."}; } void -unload_sprite(void *obj) +unload_model(void *obj) { auto self = static_cast<VK::DescriptorSetLayout*>(obj); vkDestroyDescriptorSetLayout( - cg_core.vk_device_with_swapchain->device, self->sprite, nullptr); + cg_core.vk_device_with_swapchain->device, self->model, nullptr); } const CommandChain loader{ {&load_world, &unload_world}, {&load_view, &unload_view}, + {&load_texture, &unload_texture}, {&load_model, &unload_model}, - {&load_sprite, &unload_sprite}, }; } |