#pragma once #include #include #include #include #include "vlkx/vulkan/abstraction/Image.h" class SwapChain { public: SwapChain(); ~SwapChain(); VkSwapchainKHR swapChain; VkFormat format; VkExtent2D extent; std::vector> images; std::unique_ptr multisampleImg; VkSurfaceFormatKHR chooseFormat(const std::vector& availableFormats); VkPresentModeKHR chooseMode(const std::vector& availableModes); VkExtent2D chooseExtent(const VkSurfaceCapabilitiesKHR& capabilities); void create(VkSurfaceKHR surface); void destroy(); };