diff --git a/vulkan.d b/vulkan.d index a699ec6..5f569e1 100644 --- a/vulkan.d +++ b/vulkan.d @@ -1,4 +1,4 @@ -import vulkan_funcs; +import iulkan_funcs; import vulkan_logging; import vulkan_util; import std.stdio; @@ -2159,6 +2159,47 @@ InitGlobalDescSet(Vulkan* vk) return success; } +void +Write(Vulkan* vk, DescSet set, ImageView* view, u32 index, DescType type) +{ + VkDescriptorImageInfo info = { + imageView: view.view, + imagelayout: view.layout, + }; + + VkWriteDescriptorSet write = { + sType: VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, + dstSet: set.handle, + dstBinding: index, + descriptorCount: 1, + descriptorType: type, + pImageInfo: &info, + }; + + vkUpdateDescriptorSets(vk.device, 1, &write, 0, null); +} + +void +Write(Vulkan* vk, DescSet set, Buffer* buffer, u32 index, DescType type) +{ + VkDescriptorBufferInfo info = { + buffer: buffer.buffer, + range: buffer.size, + offset: 0, + }; + + VkWriteDescriptorSet write = { + sType: VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, + dstSet: set.handle, + dstBinding: index, + descriptorCount: 1, + descriptorType: type, + pBufferInfo: &info, + }; + + vkUpdateDescriptorSets(vk.device, 1, &write, 0, null); +} + void WriteGUI(Vulkan* vk, DescSet set, ImageView* atlas, Buffer* buf) {