Newer
Older
ForwardPlusRenderer / include / RenderGraph.h
#pragma once
#include <stdafx.h>

#include "ConstrainedMap.h"
#include "Pipeline.h"
#include "RenderPass.h"
#include "Scene.h"
namespace fpr
{
// Central reource management.
class RenderGraph
{
  template<typename T>
  using LabelledResource = ConstrainedMap<std::string, T>;
public:
  RenderGraph() = default;
  LabelledResource<std::unique_ptr<fpr::Camera>>     Cameras;
  LabelledResource<std::unique_ptr<fpr::RenderPass>> RenderPasses;
  LabelledResource<std::unique_ptr<fpr::Scene>>      Scenes;
  LabelledResource<std::unique_ptr<fpr::Pipeline>>   GraphicsPipelines;
  LabelledResource<std::unique_ptr<fpr::Pipeline>>   ComputePipelines;
  LabelledResource<vk::UniqueDescriptorSetLayout>    DescriptorSetLayouts;
  LabelledResource<std::unique_ptr<fpr::Texture>>    DiffuseTextures;
  LabelledResource<std::unique_ptr<fpr::Texture>>    NormalMaps;
  LabelledResource<std::unique_ptr<fpr::Texture>>    MetallicTextures;
  LabelledResource<vk::UniqueSampler>                Samplers;
  LabelledResource<std::unique_ptr<fpr::Buffer>>     Buffers;
  LabelledResource<vk::UniqueDescriptorSet>          DescriptorSets;

};
} // namespace fpra