Program Listing for File swapChain.h
↰ Return to documentation for file (PrismEngine/src/swapChain.h)
#pragma once
#include "utils.h"
namespace prism {
namespace PGC {
class SwapChain
{
public:
SwapChain() : context(nullptr), settings(nullptr) {}
void init(PGC::utils::Context* context, PGC::utils::Settings* settings);
~SwapChain();
void cleanup();
void awaitRenderingCompletion();
void recreate();
private:
void create();
void createImageViews();
VkSurfaceFormatKHR chooseSwapSurfaceFormat(const std::vector<VkSurfaceFormatKHR>& availableFormats);
VkPresentModeKHR chooseSwapPresentMode(const std::vector<VkPresentModeKHR>& availablePresentModes);
VkExtent2D chooseSwapExtent(const VkSurfaceCapabilitiesKHR& capabilities);
uint32_t getImageCount(PGC::utils::SwapChainSupportDetails swapChainSupport);
utils::Context* context;
utils::Settings* settings;
};
}
}