used ShaderDescriptorManager * instead of ShaderDescriptorManager
This commit is contained in:
parent
f79599b1d4
commit
14e7074b3f
@ -1,9 +1,13 @@
|
||||
#ifndef HGL_SHADER_CREATER_INCLUDE
|
||||
#define HGL_SHADER_CREATER_INCLUDE
|
||||
|
||||
#include<hgl/shadergen/ShaderDescriptorManager.h>
|
||||
|
||||
#include<hgl/shadergen/ShaderGenNamespace.h>
|
||||
#include<hgl/graph/VertexAttrib.h>
|
||||
SHADERGEN_NAMESPACE_BEGIN
|
||||
|
||||
class MaterialDescriptorManager;
|
||||
class ShaderDescriptorManager;
|
||||
|
||||
class ShaderCreater
|
||||
{
|
||||
protected:
|
||||
@ -36,21 +40,16 @@ protected:
|
||||
|
||||
public:
|
||||
|
||||
ShaderDescriptorManager sdm;
|
||||
ShaderDescriptorManager *sdm;
|
||||
|
||||
VkShaderStageFlagBits GetShaderStage()const{return shader_stage;}
|
||||
|
||||
public:
|
||||
|
||||
ShaderCreater(VkShaderStageFlagBits ss,MaterialDescriptorManager *m):sdm(ss)
|
||||
{
|
||||
shader_stage=ss;
|
||||
mdm=m;
|
||||
}
|
||||
ShaderCreater(VkShaderStageFlagBits ss,MaterialDescriptorManager *m);
|
||||
virtual ~ShaderCreater();
|
||||
|
||||
virtual ~ShaderCreater()=default;
|
||||
|
||||
int AddOutput(const VAT &type,const AnsiString &name);
|
||||
int AddOutput(const graph::VAT &type,const AnsiString &name);
|
||||
int AddOutput(const AnsiString &type,const AnsiString &name);
|
||||
|
||||
void SetShaderCodes(const AnsiString &str)
|
||||
|
@ -12,7 +12,7 @@ public:
|
||||
ShaderCreaterVertex(MaterialDescriptorManager *m):ShaderCreater(VK_SHADER_STAGE_VERTEX_BIT,m){}
|
||||
~ShaderCreaterVertex()=default;
|
||||
|
||||
int AddInput(const VAT &type,const AnsiString &name);
|
||||
int AddInput(const graph::VAT &type,const AnsiString &name);
|
||||
int AddInput(const AnsiString &type,const AnsiString &name);
|
||||
};
|
||||
SHADERGEN_NAMESPACE_END
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include<hgl/shadergen/MaterialCreater.h>
|
||||
#include<hgl/shadergen/ShaderDescriptorManager.h>
|
||||
|
||||
using namespace hgl;
|
||||
using namespace hgl::graph;
|
||||
@ -46,7 +47,7 @@ bool MaterialCreater::AddUBO(const VkShaderStageFlagBits flag_bit,const Descript
|
||||
|
||||
ubo->stage_flag|=flag_bit;
|
||||
|
||||
return sc->sdm.AddUBO(set_type,ubo);
|
||||
return sc->sdm->AddUBO(set_type,ubo);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -55,7 +56,7 @@ bool MaterialCreater::AddUBO(const VkShaderStageFlagBits flag_bit,const Descript
|
||||
ubo->type=type_name;
|
||||
ubo->name=name;
|
||||
|
||||
return sc->sdm.AddUBO(set_type,mdm.AddUBO(flag_bit,set_type,ubo));
|
||||
return sc->sdm->AddUBO(set_type,mdm.AddUBO(flag_bit,set_type,ubo));
|
||||
}
|
||||
}
|
||||
|
||||
@ -82,7 +83,7 @@ bool MaterialCreater::AddSampler(const VkShaderStageFlagBits flag_bit,const Desc
|
||||
|
||||
sampler->stage_flag|=flag_bit;
|
||||
|
||||
return sc->sdm.AddSampler(set_type,sampler);
|
||||
return sc->sdm->AddSampler(set_type,sampler);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -91,7 +92,7 @@ bool MaterialCreater::AddSampler(const VkShaderStageFlagBits flag_bit,const Desc
|
||||
sampler->type=st_name;
|
||||
sampler->name=name;
|
||||
|
||||
return sc->sdm.AddSampler(set_type,mdm.AddSampler(flag_bit,set_type,sampler));
|
||||
return sc->sdm->AddSampler(set_type,mdm.AddSampler(flag_bit,set_type,sampler));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,20 @@
|
||||
#include<hgl/shadergen/ShaderCreater.h>
|
||||
#include<hgl/shadergen/ShaderDescriptorManager.h>
|
||||
#include"GLSLCompiler.h"
|
||||
|
||||
SHADERGEN_NAMESPACE_BEGIN
|
||||
ShaderCreater::ShaderCreater(VkShaderStageFlagBits ss,MaterialDescriptorManager *m)
|
||||
{
|
||||
shader_stage=ss;
|
||||
mdm=m;
|
||||
sdm=new ShaderDescriptorManager(ss);
|
||||
}
|
||||
|
||||
ShaderCreater::~ShaderCreater()
|
||||
{
|
||||
delete sdm;
|
||||
}
|
||||
|
||||
int ShaderCreater::AddOutput(const VAT &type,const AnsiString &name)
|
||||
{
|
||||
ShaderStage *ss=new ShaderStage;
|
||||
@ -11,7 +24,7 @@ int ShaderCreater::AddOutput(const VAT &type,const AnsiString &name)
|
||||
ss->basetype=(uint8) type.basetype;
|
||||
ss->vec_size= type.vec_size;
|
||||
|
||||
return sdm.AddOutput(ss);
|
||||
return sdm->AddOutput(ss);
|
||||
}
|
||||
|
||||
int ShaderCreater::AddOutput(const AnsiString &type,const AnsiString &name)
|
||||
@ -29,7 +42,7 @@ int ShaderCreater::AddOutput(const AnsiString &type,const AnsiString &name)
|
||||
|
||||
bool ShaderCreater::ProcSubpassInput()
|
||||
{
|
||||
auto sil=sdm.GetSubpassInputList();
|
||||
auto sil=sdm->GetSubpassInputList();
|
||||
|
||||
if(sil.IsEmpty())
|
||||
return(true);
|
||||
@ -53,7 +66,6 @@ bool ShaderCreater::ProcSubpassInput()
|
||||
final_shader+="\n";
|
||||
|
||||
return(true);
|
||||
|
||||
}
|
||||
|
||||
bool ShaderCreater::ProcInput(ShaderCreater *last_sc)
|
||||
@ -77,7 +89,7 @@ bool ShaderCreater::ProcOutput()
|
||||
{
|
||||
output_struct.Clear();
|
||||
|
||||
const ShaderStageList &ssl=sdm.GetShaderStageIO().output;
|
||||
const ShaderStageList &ssl=sdm->GetShaderStageIO().output;
|
||||
|
||||
if(ssl.GetCount()<=0)return(true);
|
||||
|
||||
@ -104,7 +116,7 @@ bool ShaderCreater::ProcOutput()
|
||||
|
||||
bool ShaderCreater::ProcStruct()
|
||||
{
|
||||
const AnsiStringList struct_list=sdm.GetStructList();
|
||||
const AnsiStringList struct_list=sdm->GetStructList();
|
||||
|
||||
AnsiString codes;
|
||||
|
||||
@ -125,7 +137,7 @@ bool ShaderCreater::ProcStruct()
|
||||
|
||||
bool ShaderCreater::ProcUBO()
|
||||
{
|
||||
auto ubo_list=sdm.GetUBOList();
|
||||
auto ubo_list=sdm->GetUBOList();
|
||||
|
||||
const int count=ubo_list.GetCount();
|
||||
|
||||
@ -159,7 +171,7 @@ bool ShaderCreater::ProcSSBO()
|
||||
|
||||
bool ShaderCreater::ProcConst()
|
||||
{
|
||||
auto const_list=sdm.GetConstList();
|
||||
auto const_list=sdm->GetConstList();
|
||||
|
||||
const int count=const_list.GetCount();
|
||||
|
||||
@ -188,7 +200,7 @@ bool ShaderCreater::ProcConst()
|
||||
|
||||
bool ShaderCreater::ProcSampler()
|
||||
{
|
||||
auto sampler_list=sdm.GetSamplerList();
|
||||
auto sampler_list=sdm->GetSamplerList();
|
||||
|
||||
const int count=sampler_list.GetCount();
|
||||
|
||||
|
@ -1,12 +1,15 @@
|
||||
#include<hgl/shadergen/ShaderCreaterFragment.h>
|
||||
#include<hgl/shadergen/ShaderDescriptorManager.h>
|
||||
|
||||
SHADERGEN_NAMESPACE_BEGIN
|
||||
|
||||
using namespace hgl::graph;
|
||||
|
||||
void ShaderCreaterFragment::UseDefaultMain()
|
||||
{
|
||||
main_codes="void main()\n{\n";
|
||||
|
||||
const auto &output_list=sdm.GetShaderStageIO().output;
|
||||
const auto &output_list=sdm->GetShaderStageIO().output;
|
||||
|
||||
const uint count=output_list.GetCount();
|
||||
ShaderStage **o=output_list.GetData();
|
||||
@ -27,7 +30,7 @@ void ShaderCreaterFragment::UseDefaultMain()
|
||||
|
||||
bool ShaderCreaterFragment::ProcOutput()
|
||||
{
|
||||
const auto &output_list=sdm.GetShaderStageIO().output;
|
||||
const auto &output_list=sdm->GetShaderStageIO().output;
|
||||
|
||||
const uint count=output_list.GetCount();
|
||||
ShaderStage **o=output_list.GetData();
|
||||
|
@ -1,6 +1,13 @@
|
||||
#include<hgl/shadergen/ShaderCreaterVertex.h>
|
||||
#include<hgl/shadergen/ShaderDescriptorManager.h>
|
||||
#include<hgl/graph/VertexAttrib.h>
|
||||
#include<hgl/graph/VKShaderStage.h>
|
||||
|
||||
SHADERGEN_NAMESPACE_BEGIN
|
||||
|
||||
using namespace hgl;
|
||||
using namespace hgl::graph;
|
||||
|
||||
int ShaderCreaterVertex::AddInput(const VAT &type,const AnsiString &name)
|
||||
{
|
||||
ShaderStage *ss=new ShaderStage;
|
||||
@ -10,7 +17,7 @@ int ShaderCreaterVertex::AddInput(const VAT &type,const AnsiString &name)
|
||||
ss->basetype=(uint8) type.basetype;
|
||||
ss->vec_size= type.vec_size;
|
||||
|
||||
return sdm.AddInput(ss);
|
||||
return sdm->AddInput(ss);
|
||||
}
|
||||
|
||||
int ShaderCreaterVertex::AddInput(const AnsiString &type,const AnsiString &name)
|
||||
@ -25,7 +32,7 @@ int ShaderCreaterVertex::AddInput(const AnsiString &type,const AnsiString &name)
|
||||
|
||||
bool ShaderCreaterVertex::ProcInput(ShaderCreater *)
|
||||
{
|
||||
const auto &io=sdm.GetShaderStageIO();
|
||||
const auto &io=sdm->GetShaderStageIO();
|
||||
|
||||
if(io.input.IsEmpty())
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user