#pragma once #include "vkn/type.h" #include "commandbuffer.h" namespace vkn { class Device; class Queue; class DescriptorPool { protected: VkDescriptorPool mPtr; Device& mDevice; public: DescriptorPool(Device& device, pmr::vector& pPoolSizes,uint32_t maxSets); VkDescriptorSet Allocate(VkDescriptorSetLayout& descriptorSetLayout); public: static pmr::vector DefaultDescriptorPoolSize() { return pmr::vector{ {VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 10000}, {VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 10000}, {VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 10000}, {VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, 10000} }; } }; }