ULRE/inc/hgl/shadergen/ShaderCreater.h

42 lines
866 B
C
Raw Normal View History

2023-03-06 14:06:20 +08:00
#ifndef HGL_SHADER_CREATER_INCLUDE
#define HGL_SHADER_CREATER_INCLUDE
#include<hgl/shadergen/ShaderDescriptorManager.h>
SHADERGEN_NAMESPACE_BEGIN
class ShaderCreater
{
VkShaderStageFlagBits shader_stage; ///<着色器阶段
protected:
2023-03-06 21:30:32 +08:00
AnsiString shader_codes;
2023-03-06 14:06:20 +08:00
public:
ShaderDescriptorManager sdm;
VkShaderStageFlagBits GetShaderStage()const{return shader_stage;}
public:
ShaderCreater(VkShaderStageFlagBits ss):sdm(ss)
{
shader_stage=ss;
}
virtual ~ShaderCreater()=default;
int AddOutput(const VAT &type,const AnsiString &name);
int AddOutput(const AnsiString &type,const AnsiString &name);
2023-03-06 21:30:32 +08:00
void SetShaderCodes(const AnsiString &str)
{
2023-03-08 14:02:51 +08:00
shader_codes=str;
2023-03-06 21:30:32 +08:00
}
bool CompileToSPV();
2023-03-06 14:06:20 +08:00
};//class ShaderCreater
SHADERGEN_NAMESPACE_END
2023-03-06 21:30:32 +08:00
#endif//HGL_SHADER_CREATER_INCLUDE