update Input/Output

This commit is contained in:
2023-03-08 21:41:57 +08:00
parent 2ac91b80ac
commit 26f7c915c8
9 changed files with 88 additions and 60 deletions

View File

@@ -22,10 +22,6 @@ class MaterialCreater
ShaderCreaterGeometry *geom;
ShaderCreaterFragment *frag;
private:
void SetContext();
public:
bool hasShader(const VkShaderStageFlagBits ss)const{return shader_stage&ss;}

View File

@@ -12,6 +12,16 @@ protected:
AnsiString shader_codes;
AnsiString output_struct;
AnsiString final_shader;
protected:
virtual void ProcHeader(){}
virtual void ProcInput();
virtual void ProcOutput();
public:
ShaderDescriptorManager sdm;
@@ -35,6 +45,10 @@ public:
shader_codes=str;
}
const AnsiString &GetOutputStruct()const{return output_struct;}
bool CreateShader(ShaderCreater *);
bool CompileToSPV();
};//class ShaderCreater
SHADERGEN_NAMESPACE_END

View File

@@ -5,6 +5,8 @@
SHADERGEN_NAMESPACE_BEGIN
class ShaderCreaterVertex:public ShaderCreater
{
virtual void ProcInput() override;
public:
ShaderCreaterVertex():ShaderCreater(VK_SHADER_STAGE_VERTEX_BIT){}

View File

@@ -16,6 +16,8 @@ using ConstSamplerDescriptorList=List<const SamplerDescriptor *>;
*/
class ShaderDescriptorManager
{
VkShaderStageFlagBits shader_stage;
ShaderStageIO stage_io;
//ubo/object在这里以及MaterialDescriptorManager中均有一份mdm中的用于产生set/binding号这里的用于产生shader
@@ -32,12 +34,9 @@ public:
ShaderDescriptorManager(VkShaderStageFlagBits);
~ShaderDescriptorManager()=default;
const VkShaderStageFlagBits GetStageBits()const { return stage_io.cur; }
const AnsiString GetStageName()const { return AnsiString(GetShaderStageName(stage_io.cur)); }
const VkShaderStageFlagBits GetStageBits()const { return shader_stage; }
const AnsiString GetStageName()const { return AnsiString(GetShaderStageName(shader_stage)); }
void SetPrevShader(VkShaderStageFlagBits prev) { stage_io.prev=prev; }
void SetNextShader(VkShaderStageFlagBits next) { stage_io.next=next; }
public:
const ShaderStageIO & GetShaderStageIO()const{return stage_io;}