CsPaint  1.0.1
cspaint_swapchain.h
1 
19 #ifndef INCLUDED_CSPAINT_SWAPCHAIN_H
20 #define INCLUDED_CSPAINT_SWAPCHAIN_H
21 
22 #include <vulkan/vulkan.hpp>
23 
24 #include <cspaint_fwd.h>
25 
26 namespace CsPaint
27 {
28 
29 class swapchain
30 {
31  private:
32  struct private_tag {
33  };
34 
35  public:
36  using handle = std::shared_ptr<swapchain>;
37 
39  vk::UniqueSwapchainKHR chain, uint32_t width, uint32_t height, std::vector<CsPaint::image_handle> imageAttachments);
40 
41  swapchain(const swapchain &) = delete;
42  void operator=(const swapchain &) = delete;
43 
44  const vk::UniqueSwapchainKHR &chain() const
45  {
46  return m_swapchain;
47  };
48 
49  std::vector<vk::Framebuffer> framebuffers();
50 
51  private:
52  std::shared_ptr<const surface> m_surface;
53  CsPaint::device_handle m_device;
54  vk::UniqueSwapchainKHR m_swapchain;
55  std::vector<std::pair<vk::UniqueImageView, vk::UniqueFramebuffer>> m_framebuffers;
56 };
57 }; // namespace CsPaint
58 
59 #endif
std::vector< vk::Framebuffer > framebuffers()
const vk::UniqueSwapchainKHR & chain() const
Definition: cspaint_swapchain.h:44
void operator=(const swapchain &) = delete
Definition: cspaint_renderpass.h:33
Definition: cspaint_device.h:35
std::shared_ptr< device > device_handle
Definition: cspaint_fwd.h:45
Definition: cspaint_surface.h:27
swapchain(std::shared_ptr< const surface > surface, CsPaint::device_handle device, CsPaint::renderpass_handle renderpass, vk::UniqueSwapchainKHR chain, uint32_t width, uint32_t height, std::vector< CsPaint::image_handle > imageAttachments)
std::shared_ptr< swapchain > handle
Definition: cspaint_swapchain.h:36
Definition: cspaint_swapchain.h:29
std::shared_ptr< renderpass > renderpass_handle
Definition: cspaint_fwd.h:60
Definition: cspaint_buffer.h:26