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);
};





Add Discussion as Guest

Log in to DocsForge