CsPaint  1.0.1
cspaint_pipeline.h
1 
19 #ifndef INCLUDED_CSPAINT_PIPELINE_H
20 #define INCLUDED_CSPAINT_PIPELINE_H
21 
22 #include <cspaint_fwd.h>
23 
24 #include <vulkan/vulkan.hpp>
25 
26 namespace CsPaint
27 {
28 class pipeline
29 {
30  private:
31  public:
32  using handle = std::shared_ptr<pipeline>;
33 
35  const vk::PipelineVertexInputStateCreateInfo &vertexInputInfo,
36  const std::vector<vk::PipelineShaderStageCreateInfo> &shaderStages, const vk::PipelineLayout &pipelineLayout);
37 
38  pipeline(const pipeline &) = delete;
39  void operator=(const pipeline &) = delete;
40 
41  vk::Pipeline getPipeline()
42  {
43  return *m_pipeline;
44  }
45 
46  private:
47  device_handle m_device;
48  vk::UniquePipeline m_pipeline;
49 };
50 }; // namespace CsPaint
51 
52 #endif
vk::Pipeline getPipeline()
Definition: cspaint_pipeline.h:41
void operator=(const pipeline &) = delete
Definition: cspaint_surface.h:27
std::shared_ptr< surface > surface_handle
Definition: cspaint_fwd.h:66
Definition: cspaint_device.h:35
std::shared_ptr< device > device_handle
Definition: cspaint_fwd.h:45
pipeline(device_handle device, const surface_handle &surface, const renderpass_handle renderPass, const vk::PipelineVertexInputStateCreateInfo &vertexInputInfo, const std::vector< vk::PipelineShaderStageCreateInfo > &shaderStages, const vk::PipelineLayout &pipelineLayout)
std::shared_ptr< pipeline > handle
Definition: cspaint_pipeline.h:32
Definition: cspaint_pipeline.h:28
std::shared_ptr< renderpass > renderpass_handle
Definition: cspaint_fwd.h:60
Definition: cspaint_buffer.h:26