update Input/Output
This commit is contained in:
@@ -22,10 +22,6 @@ class MaterialCreater
|
||||
ShaderCreaterGeometry *geom;
|
||||
ShaderCreaterFragment *frag;
|
||||
|
||||
private:
|
||||
|
||||
void SetContext();
|
||||
|
||||
public:
|
||||
|
||||
bool hasShader(const VkShaderStageFlagBits ss)const{return shader_stage&ss;}
|
||||
|
@@ -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
|
||||
|
@@ -5,6 +5,8 @@
|
||||
SHADERGEN_NAMESPACE_BEGIN
|
||||
class ShaderCreaterVertex:public ShaderCreater
|
||||
{
|
||||
virtual void ProcInput() override;
|
||||
|
||||
public:
|
||||
|
||||
ShaderCreaterVertex():ShaderCreater(VK_SHADER_STAGE_VERTEX_BIT){}
|
||||
|
@@ -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;}
|
||||
|
Reference in New Issue
Block a user