Lugdunum  0.1.0
DescriptorPool.hpp
Go to the documentation of this file.
1 #pragma once
2 
5 
6 namespace lug {
7 namespace Graphics {
8 namespace Vulkan {
9 namespace API {
10 
11 namespace Builder {
12 class DescriptorPool;
13 } // Builder
14 
15 class Device;
16 
19 
20 public:
21  DescriptorPool() = default;
22 
23  DescriptorPool(const DescriptorPool&) = delete;
24  // Warning: Don't move DescriptorPool after creating a DescriptorSet
26 
27  DescriptorPool& operator=(const DescriptorPool&) = delete;
28  // Warning: Don't move DescriptorPool after creating a DescriptorSet
30 
31  ~DescriptorPool();
32 
33  explicit operator VkDescriptorPool() const {
34  return _descriptorPool;
35  }
36 
37  void destroy();
38 
39 private:
40  explicit DescriptorPool(VkDescriptorPool descriptorPool, const Device *device);
41 
42 private:
43  VkDescriptorPool _descriptorPool{VK_NULL_HANDLE};
44  const Device* _device{nullptr};
45 };
46 
47 } // API
48 } // Vulkan
49 } // Graphics
50 } // lug
#define LUG_GRAPHICS_API
Definition: Export.hpp:11