add write descriptor function for array descriptors
This commit is contained in:
parent
1b4d997976
commit
d46741a480
50
vulkan.d
50
vulkan.d
@ -2247,41 +2247,63 @@ InitGlobalDescSet(Vulkan* vk)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Write(Vulkan* vk, DescSet set, ImageView* view, u32 index, DescType type)
|
Write(Vulkan* vk, DescSet set, ImageView* view, u32 binding, DescType type)
|
||||||
{
|
{
|
||||||
VkDescriptorImageInfo info = {
|
VkDescriptorImageInfo info = {
|
||||||
imageView: view.view,
|
imageView: view.view,
|
||||||
imageLayout: view.layout,
|
imageLayout: view.layout,
|
||||||
};
|
};
|
||||||
|
|
||||||
VkWriteDescriptorSet write = {
|
VkWriteDescriptorSet write = {
|
||||||
sType: VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
|
sType: VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
|
||||||
dstSet: set.handle,
|
dstSet: set.handle,
|
||||||
dstBinding: index,
|
dstBinding: binding,
|
||||||
descriptorCount: 1,
|
descriptorCount: 1,
|
||||||
descriptorType: type,
|
descriptorType: type,
|
||||||
pImageInfo: &info,
|
pImageInfo: &info,
|
||||||
};
|
};
|
||||||
|
|
||||||
vkUpdateDescriptorSets(vk.device, 1, &write, 0, null);
|
vkUpdateDescriptorSets(vk.device, 1, &write, 0, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Write(Vulkan* vk, DescSet set, Buffer* buffer, u32 index, DescType type)
|
Write(Vulkan* vk, DescSet set, Buffer* buffer, u32 binding, DescType type)
|
||||||
{
|
{
|
||||||
VkDescriptorBufferInfo info = {
|
VkDescriptorBufferInfo info = {
|
||||||
buffer: buffer.buffer,
|
buffer: buffer.buffer,
|
||||||
range: buffer.size,
|
range: buffer.size,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
VkWriteDescriptorSet write = {
|
VkWriteDescriptorSet write = {
|
||||||
sType: VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
|
sType: VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
|
||||||
dstSet: set.handle,
|
dstSet: set.handle,
|
||||||
dstBinding: index,
|
dstBinding: binding,
|
||||||
descriptorCount: 1,
|
descriptorCount: 1,
|
||||||
descriptorType: type,
|
descriptorType: type,
|
||||||
pBufferInfo: &info,
|
pBufferInfo: &info,
|
||||||
|
};
|
||||||
|
|
||||||
|
vkUpdateDescriptorSets(vk.device, 1, &write, 0, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Write(Vulkan* vk, DescSet set, Buffer* buffer, u32 binding, 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: binding,
|
||||||
|
dstArrayElement: index,
|
||||||
|
descriptorCount: 1,
|
||||||
|
descriptorType: type,
|
||||||
|
pBufferInfo: &info,
|
||||||
};
|
};
|
||||||
|
|
||||||
vkUpdateDescriptorSets(vk.device, 1, &write, 0, null);
|
vkUpdateDescriptorSets(vk.device, 1, &write, 0, null);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user