#pragma once #include "forward.hpp" #include #include namespace render::vk { class SwapChain { public: SwapChain(VkDevice, const PhysicalDeviceInfo &); ~SwapChain(); const std::vector &getImageViews() { return imageViews; } std::optional acquireNextImage(VkSemaphore, VkFence); bool presentImage(uint32_t, VkQueue, VkSemaphore); private: VkDevice device; VkSwapchainKHR chain; std::vector images; std::vector imageViews; std::vector imagesInFlight; }; }