Class RenderGraphCompiler
Synopsis
#include <Source/Falcor/RenderGraph/RenderGraphCompiler.h>
class dlldecl RenderGraphCompiler
Description
No description yet.
Structures
Dependencies |
Methods
compile |
Source
Lines 36-74 in Source/Falcor/RenderGraph/RenderGraphCompiler.h.
class dlldecl RenderGraphCompiler
{
public:
struct Dependencies
{
ResourceCache::DefaultProperties defaultResourceProps;
ResourceCache::ResourcesMap externalResources;
};
static RenderGraphExe::SharedPtr compile(RenderGraph& graph, RenderContext* pContext, const Dependencies& dependencies);
private:
RenderGraphCompiler(RenderGraph& graph, const Dependencies& dependencies);
RenderGraph& mGraph;
const Dependencies& mDependencies;
struct PassData
{
uint32_t index;
RenderPass::SharedPtr pPass;
std::string name;
RenderPassReflection reflector;
};
std::vector<PassData> mExecutionList;
// TODO Better way to track history, or avoid changing the original graph altogether?
struct
{
std::vector<std::string> generatedPasses;
std::vector<std::pair<std::string, std::string>> removedEdges;
} mCompilationChanges;
void resolveExecutionOrder();
void compilePasses(RenderContext* pContext);
bool insertAutoPasses();
void allocateResources(ResourceCache* pResourceCache);
void validateGraph() const;
void restoreCompilationChanges();
RenderPass::CompileData prepPassCompilationData(const PassData& passData);
};