Lugdunum  0.1.0
DescriptorSetLayout.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 
7 
8 namespace lug {
9 namespace Graphics {
10 namespace Vulkan {
11 namespace API {
12 
13 namespace Builder {
14 class DescriptorSetLayout;
15 } // Builder
16 
17 class Device;
18 
21 
22 public:
23  DescriptorSetLayout() = default;
24 
27 
28  DescriptorSetLayout& operator=(const DescriptorSetLayout&) = delete;
29  DescriptorSetLayout& operator=(DescriptorSetLayout&& device);
30 
32 
33  explicit operator VkDescriptorSetLayout() const {
34  return _descriptorSetLayout;
35  }
36 
42  const Device* getDevice() const;
43 
44  void destroy();
45 
46 private:
47  explicit DescriptorSetLayout(VkDescriptorSetLayout DescriptorSetLayout, const Device* device);
48 
49 private:
50  VkDescriptorSetLayout _descriptorSetLayout{VK_NULL_HANDLE};
51  const Device* _device{nullptr};
52 };
53 
55 
56 } // API
57 } // Vulkan
58 } // Graphics
59 } // lug
#define LUG_GRAPHICS_API
Definition: Export.hpp:11