5#ifndef OLDRENDERGRAPH_H
6#define OLDRENDERGRAPH_H
67 boost::bidirectionalS,
74 boost::bidirectionalS,
120 std::unordered_map<std::string, PassGraphType::vertex_descriptor>
m_passVertex;
133 std::vector<std::vector<PassGraphType::vertex_descriptor>>
passGroups;
152 void bindOutputImage(
const std::string& name, std::string image,uint8_t slot = 0);
153 void bindTextureImage(std::string name, std::string image, uint32_t width = 0, uint32_t height = 0,
Samples samples =
163 void saveExecutionOrder(
const std::vector<PassGraphType::vertex_descriptor>& sortedPasses,
164 const std::vector<std::vector<PassGraphType::vertex_descriptor>>& passGroups);
std::vector< RHI::PassGroup * > m_passGroups
std::unordered_map< std::string, WindowImageResource > m_windowImageResources
bool isPassWritingToResource(const std::string &passName, const std::string &resourceName)
void execute(RHI::CommandBuffer *cmdBuf)
void addPass(const std::string &name, OldPass *pass)
void bindTextureImage(std::string name, std::string image, uint32_t width=0, uint32_t height=0, Samples samples=Samples::sample_undefined)
void bindOutputImage(const std::string &name, std::string image, uint8_t slot=0)
void analyzeImplicitDependencies()
void addWindowResource(Window *wnd)
std::string formatToString(Format format)
void checkAndUpdateResourceSizes()
std::vector< std::string > getPassTargetToWnd(Window *wnd)
bool isPassReadingFromResource(const std::string &passName, const std::string &resourceName)
std::unordered_map< std::string, Image * > m_images
std::unordered_map< std::string, WindowDepthStencilResource > m_windowDepthStencilResources
std::unordered_map< std::string, ResourceGraphType::vertex_descriptor > m_resourceVertices
PassGraphType m_passGraph
std::vector< Window * > m_bindedWindows
void printExecutionOrder()
std::vector< MutilBufferImage * > m_needUpdataFramesIndexImages
void saveExecutionOrder(const std::vector< PassGraphType::vertex_descriptor > &sortedPasses, const std::vector< std::vector< PassGraphType::vertex_descriptor > > &passGroups)
std::unordered_map< std::string, PassGraphType::vertex_descriptor > m_passVertex
void bindOutput(const char *name, Window *wnd, uint8_t slot=0)
std::unordered_map< std::string, ImageResourceDesc > m_imageResourceDescs
void bindDepthStencil(const char *name, std::string image)
void generateImageGraph()
ResourceGraphType m_resourceGraph
void addPassDenpendency(const std::string &from, const std::string &to)
OldRenderGraph(Context *ctx)
OldPass * getPassByName(const std::string &name)
void submit(Job *job, std::string name)
Image * getResourceImage(std::string name)
ExecutionOrder m_executionOrder
void updateFrameIndices()
uint32_t m_unnameWndBackBufferCount
std::unordered_map< std::string, TextureElement > m_textureLayouts
std::unordered_map< Window *, std::string > m_windowDepthStencilNames
std::unordered_map< Window *, std::string > m_windowBackBufferNames
uint32_t m_unnameWndStencilDepthCount
void generateImageResource()
boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, ResourceGraphVertex, ResourceGraphEdge > ResourceGraphType
boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, PassGraphVertex, PassGraphEdge > PassGraphType
std::vector< PassGraphType::vertex_descriptor > sortedPasses
std::vector< std::vector< PassGraphType::vertex_descriptor > > passGroups
ImageResourceDesc(bool isWnd)
std::vector< std::string > textures
ResourceGraphEdgeType type