Program Listing for File swapChain.h

Return to documentation for file (PrismEngine/src/swapChain.h)

#pragma once
#include "utils.h"
#include "layersMacroses.h"
#include "pgcLayersObjsTemplate.h"

DECLARE_PGC_LAYER_INSTANCE(L1)
class SwapChain : public L1_Object<SwapChain> {
public:
    void createImpl();
    void cleanupImpl();
    void awaitRenderingCompletion();
    void recreate();

private:
    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);
};
END_NAMESPACE_DECLARATION