5 #include <ThirdParty/Vulkan/Include/vulkan/vulkan.hpp> 6 #include <ThirdParty/EASTL-master/include/EASTL/vector.h> 10 class VulkanLogicalDevice;
12 class VulkanDescriptorPool
15 VulkanDescriptorPool(VulkanLogicalDevice* device);
16 ~VulkanDescriptorPool();
18 void AddPoolSize(VkDescriptorType type, uint32_t count);
20 void Compile(uint32_t maxSets);
22 VkDescriptorPool GetPool()
const;
24 void AllocateDescriptorSet(uint32_t descriptorSetCount, VkDescriptorSetLayout* layouts, VkDescriptorSet* sets)
const;
26 void DescriptorSetBindToBuffer(VkDescriptorSet
set, VkBuffer buffer, VkDeviceSize offset,
27 VkDeviceSize range, uint32_t binding, uint32_t arrayElement,
28 VkDescriptorType type, uint32_t descriptorCount)
const;
30 void DescriptorSetBindToImage(VkDescriptorSet
set, VkImageLayout layout, VkImageView imageView, VkSampler sampler, uint32_t binding, uint32_t arrayElement, VkDescriptorType type, uint32_t descriptorCount)
const;
33 eastl::vector<VkDescriptorPoolSize> poolSizes;
35 VkDescriptorPool pool;
36 VulkanLogicalDevice* device;
41 #endif // USING_VULKAN