Lugdunum  0.1.0
DescriptorSetLayout.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 #include <vector>
5 
7 
8 namespace lug {
9 namespace Graphics {
10 namespace Vulkan {
11 namespace API {
12 
13 class Device;
14 
15 namespace Builder {
16 
18 public:
19  DescriptorSetLayout(const API::Device& device);
20 
23 
26 
27  ~DescriptorSetLayout() = default;
28 
29  // Setters
30  void setBindings(const std::vector<VkDescriptorSetLayoutBinding>& bindings);
31 
32  // Build methods
33  bool build(API::DescriptorSetLayout& instance, VkResult* returnResult = nullptr);
34  std::unique_ptr<API::DescriptorSetLayout> build(VkResult* returnResult = nullptr);
35 
36 private:
38 
39  std::vector<VkDescriptorSetLayoutBinding> _bindings{};
40 };
41 
43 
44 } // Builder
45 } // API
46 } // Vulkan
47 } // Graphics
48 } // lug
std::vector< VkDescriptorSetLayoutBinding > _bindings
void setBindings(const std::vector< VkDescriptorSetLayoutBinding > &bindings)
DescriptorSetLayout & operator=(const DescriptorSetLayout &)=delete
bool build(API::DescriptorSetLayout &instance, VkResult *returnResult=nullptr)