Lugdunum  0.1.0
GraphicsPipeline.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 GraphicsPipeline;
13 } // Builder
14 
15 class Device;
16 
19 
20 public:
21  GraphicsPipeline() = default;
22 
23  GraphicsPipeline(const GraphicsPipeline&) = delete;
25 
26  GraphicsPipeline& operator=(const GraphicsPipeline&) = delete;
27  GraphicsPipeline& operator=(GraphicsPipeline&& pipeline);
28 
30 
31  explicit operator VkPipeline() const {
32  return _pipeline;
33  }
34 
35  void destroy();
36 
37  const RenderPass* getRenderPass() const;
38  const PipelineLayout* getLayout() const;
39 
40 private:
41  explicit GraphicsPipeline(VkPipeline pipeline, const Device* device, RenderPass renderPass, PipelineLayout pipelineLayout);
42 
43 private:
44  VkPipeline _pipeline{VK_NULL_HANDLE};
45  const Device* _device;
46 
49 };
50 
51 } // API
52 } // Vulkan
53 } // Graphics
54 } // lug
#define LUG_GRAPHICS_API
Definition: Export.hpp:11