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
{
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>>          SpecularTextures;
  LabelledResource<vk::UniqueSampler>                      Samplers;
  LabelledResource<std::unique_ptr<fpr::Buffer>>           Buffers;
  LabelledResource<vk::UniqueDescriptorSet>                DescriptorSets;
};
} // namespace fpr