1
0
Fork 0
Univerxel/src/client/render/vk/SwapChain.hpp

28 lines
575 B
C++

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