#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