diff options
Diffstat (limited to 'src/vk/graphics_pipeline_2d_solid_layout.cpp')
-rw-r--r-- | src/vk/graphics_pipeline_2d_solid_layout.cpp | 80 |
1 files changed, 2 insertions, 78 deletions
diff --git a/src/vk/graphics_pipeline_2d_solid_layout.cpp b/src/vk/graphics_pipeline_2d_solid_layout.cpp index e6c871f..cbd656a 100644 --- a/src/vk/graphics_pipeline_2d_solid_layout.cpp +++ b/src/vk/graphics_pipeline_2d_solid_layout.cpp @@ -25,87 +25,13 @@ namespace { void -load_descriptor_set_view(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline2DSolidLayout*>(obj); - - std::array<VkDescriptorSetLayoutBinding, 1> layout_bindings{}; - - layout_bindings[0].binding = 0; - layout_bindings[0].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; - layout_bindings[0].descriptorCount = 1; - layout_bindings[0].stageFlags = VK_SHADER_STAGE_VERTEX_BIT; - layout_bindings[0].pImmutableSamplers = nullptr; - - VkDescriptorSetLayoutCreateInfo layout_info{}; - layout_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO; - layout_info.pNext = nullptr; - layout_info.flags = 0; - layout_info.bindingCount = static_cast<uint32_t>(layout_bindings.size()); - layout_info.pBindings = layout_bindings.data(); - - if(vkCreateDescriptorSetLayout( - cg_core.vk_device_with_swapchain->device, &layout_info, nullptr, - &self->descriptor_set_view) != VK_SUCCESS) - throw CommandError{ - "Failed to create Vulkan descriptor set layout for projection."}; -} - -void -unload_descriptor_set_view(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline2DSolidLayout*>(obj); - - vkDestroyDescriptorSetLayout( - cg_core.vk_device_with_swapchain->device, self->descriptor_set_view, - nullptr); -} - -void -load_descriptor_set_sprite(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline2DSolidLayout*>(obj); - - std::array<VkDescriptorSetLayoutBinding, 1> layout_bindings{}; - - layout_bindings[0].binding = 0; - layout_bindings[0].descriptorType = - VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; - layout_bindings[0].descriptorCount = 1; - layout_bindings[0].stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT; - layout_bindings[0].pImmutableSamplers = nullptr; - - VkDescriptorSetLayoutCreateInfo layout_info{}; - layout_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO; - layout_info.pNext = nullptr; - layout_info.flags = 0; - layout_info.bindingCount = static_cast<uint32_t>(layout_bindings.size()); - layout_info.pBindings = layout_bindings.data(); - - if(vkCreateDescriptorSetLayout( - cg_core.vk_device_with_swapchain->device, &layout_info, nullptr, - &self->descriptor_set_sprite) != VK_SUCCESS) - throw CommandError{ - "Failed to create Vulkan descriptor set layout for sprites."}; -} - -void -unload_descriptor_set_sprite(void *obj) -{ - auto self = static_cast<VK::GraphicsPipeline2DSolidLayout*>(obj); - - vkDestroyDescriptorSetLayout( - cg_core.vk_device_with_swapchain->device, self->descriptor_set_sprite, - nullptr); -} - -void load_pipeline(void *obj) { auto self = static_cast<VK::GraphicsPipeline2DSolidLayout*>(obj); std::array<VkDescriptorSetLayout, 2> set_layouts{ - self->descriptor_set_view, self->descriptor_set_sprite + cg_core.vk_descriptor_set_layout->view, + cg_core.vk_descriptor_set_layout->sprite }; std::array<VkPushConstantRange, 1> push_constants; @@ -207,8 +133,6 @@ unload_render_pass(void *obj) } const CommandChain loader{ - {&load_descriptor_set_view, &unload_descriptor_set_view}, - {&load_descriptor_set_sprite, &unload_descriptor_set_sprite}, {&load_pipeline, &unload_pipeline}, {&load_render_pass, &unload_render_pass} }; |