CsPaint  1.0.1
cspaint_shader.h
1 
19 #ifndef INCLUDED_CSPAINT_SHADER_H
20 #define INCLUDED_CSPAINT_SHADER_H
21 
22 #include <cspaint_fwd.h>
23 
24 #include <vulkan/vulkan.hpp>
25 
26 namespace CsPaint
27 {
28 class shader
29 {
30  private:
31  struct private_tag {
32  };
33 
34  public:
35  using handle = std::shared_ptr<shader>;
36 
37  shader(std::shared_ptr<const CsPaint::device> device, std::vector<char> shader_code);
38  shader(std::shared_ptr<const CsPaint::device> device, std::vector<uint32_t> shader_code);
39 
41  {
42  }
43 
44  shader(const shader &) = delete;
45  void operator=(const shader &) = delete;
46 
47  const vk::ShaderModule& shaderModule() {
48  return *m_shader;
49  }
50 
51  private:
52  std::shared_ptr<const CsPaint::device > m_device;
53  vk::UniqueShaderModule m_shader;
54 };
55 };
56 
57 #endif
const vk::ShaderModule & shaderModule()
Definition: cspaint_shader.h:47
void operator=(const shader &) = delete
~shader()
Definition: cspaint_shader.h:40
Definition: cspaint_device.h:35
shader(std::shared_ptr< const CsPaint::device > device, std::vector< char > shader_code)
std::shared_ptr< shader > handle
Definition: cspaint_shader.h:35
Definition: cspaint_shader.h:28
Definition: cspaint_buffer.h:26