Program Listing for File pipelineStorage.h

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

#pragma once
#include <memory>
#include <map>
#include "utils.h"
#include "pgcLayersObjsTemplate.h"
#include "layersMacroses.h"
#include "shaderStagesLoader.h"

DECLARE_PGC_LAYER_INSTANCE(L1)
class PipelineStorage : public L1_Object<PipelineStorage> {
public:
    void createImpl();
    void cleanupImpl();
    VkPipeline add(utils::PipelineSettings pipelineSettings);
    void remove(VkPipeline pipeline);

private:
    void createPipeline(VkPipeline* graphicsPipeline, utils::PipelineSettings pipelineSettings);

    std::map<size_t, VkPipeline> pipelines;
    PGC::L2::ShaderStagesLoader* shaderStagesLoader;
};
END_NAMESPACE_DECLARATION