Lugdunum  0.1.0
Sampler.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 Sampler;
13 } // Builder
14 
15 class Device;
16 
18  friend class Builder::Sampler;
19 
20 public:
21  Sampler() = default;
22 
23  Sampler(const Sampler&) = delete;
24  Sampler(Sampler&& sampler);
25 
26  Sampler& operator=(const Sampler&) = delete;
27  Sampler& operator=(Sampler&& sampler);
28 
29  ~Sampler();
30 
31  explicit operator VkSampler() const {
32  return _sampler;
33  }
34 
35  void destroy();
36 
37 private:
38  explicit Sampler(VkSampler sampler, const Device* device);
39 
40 private:
41  VkSampler _sampler{VK_NULL_HANDLE};
42  const Device* _device{nullptr};
43 };
44 
45 } // API
46 } // Vulkan
47 } // Graphics
48 } // lug
#define LUG_GRAPHICS_API
Definition: Export.hpp:11