jGL
Loading...
Searching...
No Matches
descriptorPool.h
Go to the documentation of this file.
2#include <vector>
3
4namespace jGL::Vulkan
5{
7 {
8
9 public:
10
12 (
13 const Device & device,
14 const uint32_t concurrentFrames,
15 std::vector<VkDescriptorType> descriptorTypes
16 )
17 : device(device)
18 {
19 std::vector<VkDescriptorPoolSize> sizes(descriptorTypes.size());
20
21 for (unsigned i = 0; i < descriptorTypes.size(); i++)
22 {
23 sizes[i].type = descriptorTypes[i];
24 sizes[i].descriptorCount = concurrentFrames;
25 }
26
27
28 VkDescriptorPoolCreateInfo poolInfo{};
29 poolInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
30 poolInfo.poolSizeCount = sizes.size();
31 poolInfo.pPoolSizes = sizes.data();
32 poolInfo.maxSets = concurrentFrames*sizes.size();
33
34 if (vkCreateDescriptorPool(device.getVkDevice(), &poolInfo, nullptr, &descriptorPool) != VK_SUCCESS)
35 {
36 throw std::runtime_error("Failed to create descriptor pool");
37 }
38 }
39
41 {
42 vkDestroyDescriptorPool(device.getVkDevice(), descriptorPool, nullptr);
43 }
44
45 const VkDescriptorPool & getVkDescriptorPool() const { return descriptorPool; }
46
47 private:
48
49 const Device & device;
50
51 VkDescriptorPool descriptorPool;
52
53
54 };
55}
Definition descriptorPool.h:7
DescriptorPool(const Device &device, const uint32_t concurrentFrames, std::vector< VkDescriptorType > descriptorTypes)
Definition descriptorPool.h:12
~DescriptorPool()
Definition descriptorPool.h:40
const VkDescriptorPool & getVkDescriptorPool() const
Definition descriptorPool.h:45
Definition device.h:10
const VkDevice & getVkDevice() const
Definition device.h:24
Definition buffer.h:10