Files
Seele/src/Engine/Graphics/RenderPass/RenderGraph.cpp
T

88 lines
2.2 KiB
C++
Raw Normal View History

2021-05-06 17:02:10 +02:00
#include "RenderGraph.h"
using namespace Seele;
RenderGraph::RenderGraph()
{
}
RenderGraph::~RenderGraph()
{
}
void RenderGraph::setup()
{
for(auto pass : renderPasses)
{
pass->publishOutputs();
}
for(auto pass : renderPasses)
{
pass->createRenderPass();
}
}
2021-05-10 23:57:55 +02:00
void RenderGraph::addRenderPass(PRenderPass renderPass)
{
renderPasses.add(renderPass);
}
2021-05-06 17:02:10 +02:00
Gfx::PRenderTargetAttachment RenderGraph::requestRenderTarget(const std::string& outputName)
{
if(registeredAttachments.find(outputName) == registeredAttachments.end())
{
std::cout << "Attachment " << outputName << " not found" << std::endl;
return nullptr;
}
return registeredAttachments[outputName];
}
2021-05-10 23:57:55 +02:00
Gfx::PTexture RenderGraph::requestTexture(const std::string& outputName)
{
if(registeredTextures.find(outputName) == registeredTextures.end())
{
std::cout << "Attachment " << outputName << " not found" << std::endl;
return nullptr;
}
return registeredTextures[outputName];
}
Gfx::PStructuredBuffer RenderGraph::requestBuffer(const std::string& outputName)
{
if(registeredBuffers.find(outputName) == registeredBuffers.end())
{
std::cout << "Attachment " << outputName << " not found" << std::endl;
return nullptr;
}
return registeredBuffers[outputName];
}
2021-06-12 18:51:29 +02:00
Gfx::PUniformBuffer RenderGraph::requestUniform(const std::string& outputName)
{
if(registeredUniforms.find(outputName) == registeredUniforms.end())
{
std::cout << "Attachment " << outputName << " not found" << std::endl;
return nullptr;
}
return registeredUniforms[outputName];
}
2021-05-06 17:02:10 +02:00
void RenderGraph::registerRenderPassOutput(const std::string& outputName, Gfx::PRenderTargetAttachment attachment)
{
registeredAttachments[outputName] = attachment;
2021-05-10 23:57:55 +02:00
}
void RenderGraph::registerTextureOutput(const std::string& outputName, Gfx::PTexture texture)
{
registeredTextures[outputName] = texture;
}
void RenderGraph::registerBufferOutput(const std::string& outputName, Gfx::PStructuredBuffer buffer)
{
registeredBuffers[outputName] = buffer;
2021-06-12 18:51:29 +02:00
}
void RenderGraph::registerUniformOutput(const std::string& outputName, Gfx::PUniformBuffer buffer)
{
registeredUniforms[outputName] = buffer;
2021-05-06 17:02:10 +02:00
}