FCT
载入中...
搜索中...
未找到
PassGroup.h
浏览该文件的文档.
1//
2// Created by Administrator on 2025/3/25.
3//
4#ifndef FCT_RHI_PASSGROUP_H
5#define FCT_RHI_PASSGROUP_H
8#include "./CommandBuffer.h"
9#include "./Pass.h"
10#include "./PipelineStage.h"
11#include "./AccessFlags.h"
12namespace FCT
13{
14 namespace RHI
15 {
17 {
20 {
21
22 }
35 PipelineStages neighborStage;
36 AccessFlags neighborAccess;
37 PipelineStages currentStage;
38 AccessFlags currentAccess;
40 };
41 struct PassDesc
42 {
44 std::vector<PassNeighbors> predecessors;
45 std::vector<PassNeighbors> successors;
46 };
48 {
49 public:
51 {
52
53 }
54 virtual ~PassGroup()
55 {
56
57 }
58 virtual void beginSubmit(CommandBuffer* cmdBuf) = 0;
59 virtual void endSubmit(CommandBuffer* cmdBuf) = 0;
60 virtual void create() = 0;
69 virtual void nextPass(CommandBuffer* cmdBuf) = 0;
70 void addPass(Pass* pass);
71 void addPass(const PassDesc& desc);
72 protected:
73 void computeStage();
74 void computeStage(PassDesc passDesc);
75 std::vector<PassGroup*> m_prevPassGroup;
76 std::vector<PassGroup*> m_nextPassGroup;
77 std::vector<Pass*> m_passes;
78 std::vector<PassDesc> m_passDescs;
79 };
80 }
81}
82#endif //FCT_RHI_PASSGROUP_H
std::vector< PassDesc > m_passDescs
void addPass(Pass *pass)
virtual void beginSubmit(CommandBuffer *cmdBuf)=0
virtual void endSubmit(CommandBuffer *cmdBuf)=0
std::vector< PassGroup * > m_nextPassGroup
virtual void create()=0
virtual void nextPass(CommandBuffer *cmdBuf)=0
开始下一个pass的 提交
std::vector< PassGroup * > m_prevPassGroup
std::vector< Pass * > m_passes
std::vector< PassNeighbors > successors
std::vector< PassNeighbors > predecessors
PipelineStages neighborStage
PipelineStages currentStage
PassNeighbors(Pass *pass, PipelineStages neighborStage, AccessFlags neighborAccess, PipelineStages currentStage, AccessFlags currentAccess)