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