renamed many source of ShaderGen
This commit is contained in:
parent
f564f55e7b
commit
555e8fc066
@ -1,4 +1,4 @@
|
||||
#include<hgl/shadergen/MaterialCreater.h>
|
||||
#include<hgl/shadergen/MaterialCreateInfo.h>
|
||||
|
||||
using namespace hgl;
|
||||
using namespace hgl::graph;
|
||||
@ -6,11 +6,11 @@ using namespace hgl::shadergen;
|
||||
|
||||
bool PureColor2DMaterial()
|
||||
{
|
||||
MaterialCreater mc(1,false); //一个新材质,1个RT输出,默认使用Vertex/Fragment shader
|
||||
MaterialCreateInfo mc(1,false); //一个新材质,1个RT输出,默认使用Vertex/Fragment shader
|
||||
|
||||
//vertex部分
|
||||
{
|
||||
ShaderCreaterVertex *vsc=mc.GetVS(); //获取vertex shader creater
|
||||
ShaderCreateInfoVertex *vsc=mc.GetVS(); //获取vertex shader creater
|
||||
|
||||
//以下代码会被展开为
|
||||
/*
|
||||
@ -46,7 +46,7 @@ void main()
|
||||
|
||||
//fragment部分
|
||||
{
|
||||
ShaderCreaterFragment *fsc=mc.GetFS(); //获取fragment shader creater
|
||||
ShaderCreateInfoFragment *fsc=mc.GetFS(); //获取fragment shader creater
|
||||
|
||||
//以下代码会被展开为
|
||||
/*
|
||||
@ -68,11 +68,11 @@ void main()
|
||||
|
||||
bool VertexColor2DMaterial()
|
||||
{
|
||||
MaterialCreater mc(1,false);
|
||||
MaterialCreateInfo mc(1,false);
|
||||
|
||||
//vertex部分
|
||||
{
|
||||
ShaderCreaterVertex *vsc=mc.GetVS();
|
||||
ShaderCreateInfoVertex *vsc=mc.GetVS();
|
||||
|
||||
vsc->AddInput("vec2","Position");
|
||||
vsc->AddInput("vec4","Color");
|
||||
@ -90,7 +90,7 @@ void main()
|
||||
|
||||
//fragment部分
|
||||
{
|
||||
ShaderCreaterFragment *fsc=mc.GetFS();
|
||||
ShaderCreateInfoFragment *fsc=mc.GetFS();
|
||||
|
||||
fsc->AddOutput("vec4","Color");
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/shadergen/MaterialDescriptorManager.h>
|
||||
#include<hgl/shadergen/ShaderCreaterVertex.h>
|
||||
#include<hgl/shadergen/ShaderCreaterGeometry.h>
|
||||
#include<hgl/shadergen/ShaderCreaterFragment.h>
|
||||
#include<hgl/shadergen/ShaderCreaterMap.h>
|
||||
#include<hgl/shadergen/ShaderCreateInfoVertex.h>
|
||||
#include<hgl/shadergen/ShaderCreateInfoGeometry.h>
|
||||
#include<hgl/shadergen/ShaderCreateInfoFragment.h>
|
||||
#include<hgl/shadergen/ShaderCreateInfoMap.h>
|
||||
#include<hgl/graph/VKSamplerType.h>
|
||||
|
||||
SHADERGEN_NAMESPACE_BEGIN
|
||||
class MaterialCreater
|
||||
class MaterialCreateInfo
|
||||
{
|
||||
protected:
|
||||
|
||||
@ -19,11 +19,11 @@ protected:
|
||||
|
||||
MaterialDescriptorManager mdm; ///<材质描述符管理器
|
||||
|
||||
ShaderCreaterMap shader_map; ///<着色器列表
|
||||
ShaderCreateInfoMap shader_map; ///<着色器列表
|
||||
|
||||
ShaderCreaterVertex *vert;
|
||||
ShaderCreaterGeometry *geom;
|
||||
ShaderCreaterFragment *frag;
|
||||
ShaderCreateInfoVertex *vert;
|
||||
ShaderCreateInfoGeometry *geom;
|
||||
ShaderCreateInfoFragment *frag;
|
||||
|
||||
public:
|
||||
|
||||
@ -36,14 +36,14 @@ public:
|
||||
bool hasFragment()const{return hasShader(VK_SHADER_STAGE_FRAGMENT_BIT);}
|
||||
// bool hasCompute ()const{return hasShader(VK_SHADER_STAGE_COMPUTE_BIT);}
|
||||
|
||||
ShaderCreaterVertex * GetVS(){return vert;}
|
||||
ShaderCreaterGeometry * GetGS(){return geom;}
|
||||
ShaderCreaterFragment * GetFS(){return frag;}
|
||||
ShaderCreateInfoVertex * GetVS(){return vert;}
|
||||
ShaderCreateInfoGeometry * GetGS(){return geom;}
|
||||
ShaderCreateInfoFragment * GetFS(){return frag;}
|
||||
|
||||
public:
|
||||
|
||||
MaterialCreater(const uint rc,const bool rd,const uint32 ss=VK_SHADER_STAGE_VERTEX_BIT|VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||
~MaterialCreater()=default;
|
||||
MaterialCreateInfo(const uint rc,const bool rd,const uint32 ss=VK_SHADER_STAGE_VERTEX_BIT|VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||
~MaterialCreateInfo()=default;
|
||||
|
||||
bool AddStruct(const AnsiString &ubo_typename,const AnsiString &codes);
|
||||
|
||||
@ -51,5 +51,5 @@ public:
|
||||
bool AddSampler(const VkShaderStageFlagBits flag_bits,const DescriptorSetType set_type,const SamplerType &st,const AnsiString &name);
|
||||
|
||||
bool CreateShader();
|
||||
};//class MaterialCreater
|
||||
};//class MaterialCreateInfo
|
||||
SHADERGEN_NAMESPACE_END
|
@ -1,5 +1,5 @@
|
||||
#ifndef HGL_SHADER_CREATER_INCLUDE
|
||||
#define HGL_SHADER_CREATER_INCLUDE
|
||||
#ifndef HGL_SHADER_CREATE_INFO_INCLUDE
|
||||
#define HGL_SHADER_CREATE_INFO_INCLUDE
|
||||
|
||||
#include<hgl/shadergen/ShaderGenNamespace.h>
|
||||
#include<hgl/graph/VertexAttrib.h>
|
||||
@ -8,7 +8,7 @@ SHADERGEN_NAMESPACE_BEGIN
|
||||
class MaterialDescriptorManager;
|
||||
class ShaderDescriptorManager;
|
||||
|
||||
class ShaderCreater
|
||||
class ShaderCreateInfo
|
||||
{
|
||||
protected:
|
||||
|
||||
@ -28,7 +28,7 @@ protected:
|
||||
|
||||
virtual bool ProcHeader(){return(true);}
|
||||
virtual bool ProcSubpassInput();
|
||||
virtual bool ProcInput(ShaderCreater *);
|
||||
virtual bool ProcInput(ShaderCreateInfo *);
|
||||
virtual bool ProcOutput();
|
||||
|
||||
virtual bool ProcStruct();
|
||||
@ -48,8 +48,8 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
ShaderCreater(VkShaderStageFlagBits ss,MaterialDescriptorManager *m);
|
||||
virtual ~ShaderCreater();
|
||||
ShaderCreateInfo(VkShaderStageFlagBits ss,MaterialDescriptorManager *m);
|
||||
virtual ~ShaderCreateInfo();
|
||||
|
||||
int AddOutput(const graph::VAT &type,const AnsiString &name);
|
||||
int AddOutput(const AnsiString &type,const AnsiString &name);
|
||||
@ -62,7 +62,7 @@ public:
|
||||
const AnsiString &GetOutputStruct()const{return output_struct;}
|
||||
const AnsiString &GetShaderSource()const{return final_shader;}
|
||||
|
||||
bool CreateShader(ShaderCreater *);
|
||||
};//class ShaderCreater
|
||||
bool CreateShader(ShaderCreateInfo *);
|
||||
};//class ShaderCreateInfo
|
||||
SHADERGEN_NAMESPACE_END
|
||||
#endif//HGL_SHADER_CREATER_INCLUDE
|
||||
#endif//HGL_SHADER_CREATE_INFO_INCLUDE
|
22
inc/hgl/shadergen/ShaderCreateInfoFragment.h
Normal file
22
inc/hgl/shadergen/ShaderCreateInfoFragment.h
Normal file
@ -0,0 +1,22 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/shadergen/ShaderCreateInfo.h>
|
||||
|
||||
SHADERGEN_NAMESPACE_BEGIN
|
||||
enum class MaterialType
|
||||
{
|
||||
Color, ///<´¿É«²ÄÖÊ
|
||||
};
|
||||
|
||||
class ShaderCreateInfoFragment:public ShaderCreateInfo
|
||||
{
|
||||
bool ProcOutput() override;
|
||||
|
||||
public:
|
||||
|
||||
ShaderCreateInfoFragment(MaterialDescriptorManager *m):ShaderCreateInfo(VK_SHADER_STAGE_FRAGMENT_BIT,m){}
|
||||
~ShaderCreateInfoFragment()=default;
|
||||
|
||||
void UseDefaultMain();
|
||||
};
|
||||
SHADERGEN_NAMESPACE_END
|
13
inc/hgl/shadergen/ShaderCreateInfoGeometry.h
Normal file
13
inc/hgl/shadergen/ShaderCreateInfoGeometry.h
Normal file
@ -0,0 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/shadergen/ShaderCreateInfo.h>
|
||||
|
||||
SHADERGEN_NAMESPACE_BEGIN
|
||||
class ShaderCreateInfoGeometry:public ShaderCreateInfo
|
||||
{
|
||||
public:
|
||||
|
||||
ShaderCreateInfoGeometry(MaterialDescriptorManager *m):ShaderCreateInfo(VK_SHADER_STAGE_GEOMETRY_BIT,m){}
|
||||
~ShaderCreateInfoGeometry()=default;
|
||||
};
|
||||
SHADERGEN_NAMESPACE_END
|
25
inc/hgl/shadergen/ShaderCreateInfoMap.h
Normal file
25
inc/hgl/shadergen/ShaderCreateInfoMap.h
Normal file
@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/shadergen/ShaderCreateInfo.h>
|
||||
|
||||
SHADERGEN_NAMESPACE_BEGIN
|
||||
class ShaderCreateInfoMap:public ObjectMap<VkShaderStageFlagBits,ShaderCreateInfo>
|
||||
{
|
||||
public:
|
||||
|
||||
using ObjectMap<VkShaderStageFlagBits,ShaderCreateInfo>::ObjectMap;
|
||||
|
||||
bool Add(ShaderCreateInfo *sc)
|
||||
{
|
||||
if(!sc)return(false);
|
||||
|
||||
VkShaderStageFlagBits flag=sc->GetShaderStage();
|
||||
|
||||
if(KeyExist(flag))
|
||||
return(false);
|
||||
|
||||
ObjectMap<VkShaderStageFlagBits,ShaderCreateInfo>::Add(flag,sc);
|
||||
return(true);
|
||||
}
|
||||
};
|
||||
SHADERGEN_NAMESPACE_END
|
18
inc/hgl/shadergen/ShaderCreateInfoVertex.h
Normal file
18
inc/hgl/shadergen/ShaderCreateInfoVertex.h
Normal file
@ -0,0 +1,18 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/shadergen/ShaderCreateInfo.h>
|
||||
|
||||
SHADERGEN_NAMESPACE_BEGIN
|
||||
class ShaderCreateInfoVertex:public ShaderCreateInfo
|
||||
{
|
||||
bool ProcInput(ShaderCreateInfo *) override;
|
||||
|
||||
public:
|
||||
|
||||
ShaderCreateInfoVertex(MaterialDescriptorManager *m):ShaderCreateInfo(VK_SHADER_STAGE_VERTEX_BIT,m){}
|
||||
~ShaderCreateInfoVertex()=default;
|
||||
|
||||
int AddInput(const graph::VAT &type,const AnsiString &name);
|
||||
int AddInput(const AnsiString &type,const AnsiString &name);
|
||||
};
|
||||
SHADERGEN_NAMESPACE_END
|
@ -1,22 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/shadergen/ShaderCreater.h>
|
||||
|
||||
SHADERGEN_NAMESPACE_BEGIN
|
||||
enum class MaterialType
|
||||
{
|
||||
Color, ///<´¿É«²ÄÖÊ
|
||||
};
|
||||
|
||||
class ShaderCreaterFragment:public ShaderCreater
|
||||
{
|
||||
bool ProcOutput() override;
|
||||
|
||||
public:
|
||||
|
||||
ShaderCreaterFragment(MaterialDescriptorManager *m):ShaderCreater(VK_SHADER_STAGE_FRAGMENT_BIT,m){}
|
||||
~ShaderCreaterFragment()=default;
|
||||
|
||||
void UseDefaultMain();
|
||||
};
|
||||
SHADERGEN_NAMESPACE_END
|
@ -1,13 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/shadergen/ShaderCreater.h>
|
||||
|
||||
SHADERGEN_NAMESPACE_BEGIN
|
||||
class ShaderCreaterGeometry:public ShaderCreater
|
||||
{
|
||||
public:
|
||||
|
||||
ShaderCreaterGeometry(MaterialDescriptorManager *m):ShaderCreater(VK_SHADER_STAGE_GEOMETRY_BIT,m){}
|
||||
~ShaderCreaterGeometry()=default;
|
||||
};
|
||||
SHADERGEN_NAMESPACE_END
|
@ -1,25 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/shadergen/ShaderCreater.h>
|
||||
|
||||
SHADERGEN_NAMESPACE_BEGIN
|
||||
class ShaderCreaterMap:public ObjectMap<VkShaderStageFlagBits,ShaderCreater>
|
||||
{
|
||||
public:
|
||||
|
||||
using ObjectMap<VkShaderStageFlagBits,ShaderCreater>::ObjectMap;
|
||||
|
||||
bool Add(ShaderCreater *sc)
|
||||
{
|
||||
if(!sc)return(false);
|
||||
|
||||
VkShaderStageFlagBits flag=sc->GetShaderStage();
|
||||
|
||||
if(KeyExist(flag))
|
||||
return(false);
|
||||
|
||||
ObjectMap<VkShaderStageFlagBits,ShaderCreater>::Add(flag,sc);
|
||||
return(true);
|
||||
}
|
||||
};
|
||||
SHADERGEN_NAMESPACE_END
|
@ -1,18 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/shadergen/ShaderCreater.h>
|
||||
|
||||
SHADERGEN_NAMESPACE_BEGIN
|
||||
class ShaderCreaterVertex:public ShaderCreater
|
||||
{
|
||||
bool ProcInput(ShaderCreater *) override;
|
||||
|
||||
public:
|
||||
|
||||
ShaderCreaterVertex(MaterialDescriptorManager *m):ShaderCreater(VK_SHADER_STAGE_VERTEX_BIT,m){}
|
||||
~ShaderCreaterVertex()=default;
|
||||
|
||||
int AddInput(const graph::VAT &type,const AnsiString &name);
|
||||
int AddInput(const AnsiString &type,const AnsiString &name);
|
||||
};
|
||||
SHADERGEN_NAMESPACE_END
|
@ -102,7 +102,7 @@ public:
|
||||
}
|
||||
};//struct Standard2DMaterial:public StandardMaterial
|
||||
|
||||
class MaterialCreater;
|
||||
class MaterialCreateInfo;
|
||||
|
||||
Material *CreateMaterial()
|
||||
{
|
||||
|
@ -1,25 +1,25 @@
|
||||
set(SHADERGEN_INCLUDE_PATH ${ROOT_INCLUDE_PATH}/hgl/shadergen)
|
||||
|
||||
|
||||
SET(SHADER_CREATER_HEADER_FILES ${SHADERGEN_INCLUDE_PATH}/ShaderCreater.h
|
||||
${SHADERGEN_INCLUDE_PATH}/ShaderCreaterMap.h
|
||||
${SHADERGEN_INCLUDE_PATH}/ShaderCreaterVertex.h
|
||||
${SHADERGEN_INCLUDE_PATH}/ShaderCreaterGeometry.h
|
||||
${SHADERGEN_INCLUDE_PATH}/ShaderCreaterFragment.h)
|
||||
SET(SHADER_CREATER_HEADER_FILES ${SHADERGEN_INCLUDE_PATH}/ShaderCreateInfo.h
|
||||
${SHADERGEN_INCLUDE_PATH}/ShaderCreateInfoMap.h
|
||||
${SHADERGEN_INCLUDE_PATH}/ShaderCreateInfoVertex.h
|
||||
${SHADERGEN_INCLUDE_PATH}/ShaderCreateInfoGeometry.h
|
||||
${SHADERGEN_INCLUDE_PATH}/ShaderCreateInfoFragment.h)
|
||||
|
||||
SET(SHADER_CREATER_SOURCE_FILES ShaderCreater.cpp
|
||||
ShaderCreaterVertex.cpp
|
||||
ShaderCreaterGeometry.cpp
|
||||
ShaderCreaterFragment.cpp)
|
||||
SET(SHADER_CREATER_SOURCE_FILES ShaderCreateInfo.cpp
|
||||
ShaderCreateInfoVertex.cpp
|
||||
ShaderCreateInfoGeometry.cpp
|
||||
ShaderCreateInfoFragment.cpp)
|
||||
|
||||
SOURCE_GROUP("Material Creater\\Shader Creater" FILES ${SHADER_CREATER_HEADER_FILES}
|
||||
${SHADER_CREATER_SOURCE_FILES})
|
||||
SOURCE_GROUP("Material Create Info\\Shader" FILES ${SHADER_CREATER_HEADER_FILES}
|
||||
${SHADER_CREATER_SOURCE_FILES})
|
||||
|
||||
SET(MATERIAL_CREATER_HEADER_FILES ${SHADERGEN_INCLUDE_PATH}/MaterialCreater.h)
|
||||
SET(MATERIAL_CREATER_SOURCE_FILES MaterialCreater.cpp)
|
||||
SET(MATERIAL_CREATE_INFO_HEADER_FILES ${SHADERGEN_INCLUDE_PATH}/MaterialCreateInfo.h)
|
||||
SET(MATERIAL_CREATE_INFO_SOURCE_FILES MaterialCreateInfo.cpp)
|
||||
|
||||
SOURCE_GROUP("Material Creater" FILES ${MATERIAL_CREATER_HEADER_FILES}
|
||||
${MATERIAL_CREATER_SOURCE_FILES})
|
||||
SOURCE_GROUP("Material Create Info" FILES ${MATERIAL_CREATE_INFO_HEADER_FILES}
|
||||
${MATERIAL_CREATE_INFO_SOURCE_FILES})
|
||||
|
||||
SET(SHADERGEN_HEADER_FILES ${SHADERGEN_INCLUDE_PATH}/ShaderGenNamespace.h
|
||||
${SHADERGEN_INCLUDE_PATH}/ShaderDescriptorManager.h
|
||||
@ -37,8 +37,8 @@ SET(GLSL_COMPILER_SOURCE GLSLCompiler.h
|
||||
|
||||
SOURCE_GROUP("GLSL Compiler" FILES ${GLSL_COMPILER_SOURCE})
|
||||
|
||||
SOURCE_GROUP("Material Creater\\DescriptorManager" FILES ${SHADERGEN_HEADER_FILES}
|
||||
${SHADERGEN_SOURCE_FILES})
|
||||
SOURCE_GROUP("Material Create Info\\Descriptor Manager" FILES ${SHADERGEN_HEADER_FILES}
|
||||
${SHADERGEN_SOURCE_FILES})
|
||||
|
||||
SET(STANDARD_MATERIAL_SOURCE ${SHADERGEN_INCLUDE_PATH}/StandardMaterial.h
|
||||
StandardMaterial.cpp)
|
||||
@ -47,8 +47,8 @@ SOURCE_GROUP("Standard Material" FILES ${STANDARD_MATERIAL_SOURCE})
|
||||
|
||||
add_cm_library(ULRE.ShaderGen "ULRE" ${SHADERGEN_HEADER_FILES}
|
||||
${SHADERGEN_SOURCE_FILES}
|
||||
${MATERIAL_CREATER_HEADER_FILES}
|
||||
${MATERIAL_CREATER_SOURCE_FILES}
|
||||
${MATERIAL_CREATE_INFO_HEADER_FILES}
|
||||
${MATERIAL_CREATE_INFO_SOURCE_FILES}
|
||||
${SHADER_CREATER_HEADER_FILES}
|
||||
${SHADER_CREATER_SOURCE_FILES}
|
||||
${GLSL_COMPILER_SOURCE}
|
||||
|
@ -1,23 +1,23 @@
|
||||
#include<hgl/shadergen/MaterialCreater.h>
|
||||
#include<hgl/shadergen/MaterialCreateInfo.h>
|
||||
#include<hgl/shadergen/ShaderDescriptorManager.h>
|
||||
|
||||
using namespace hgl;
|
||||
using namespace hgl::graph;
|
||||
|
||||
SHADERGEN_NAMESPACE_BEGIN
|
||||
MaterialCreater::MaterialCreater(const uint rc,const bool rd,const uint32 ss)
|
||||
MaterialCreateInfo::MaterialCreateInfo(const uint rc,const bool rd,const uint32 ss)
|
||||
{
|
||||
rt_color_count=rc;
|
||||
rt_depth=rd;
|
||||
|
||||
shader_stage=ss;
|
||||
|
||||
if(hasVertex ())shader_map.Add(vert=new ShaderCreaterVertex (&mdm));else vert=nullptr;
|
||||
if(hasGeometry ())shader_map.Add(geom=new ShaderCreaterGeometry(&mdm));else geom=nullptr;
|
||||
if(hasFragment ())shader_map.Add(frag=new ShaderCreaterFragment(&mdm));else frag=nullptr;
|
||||
if(hasVertex ())shader_map.Add(vert=new ShaderCreateInfoVertex (&mdm));else vert=nullptr;
|
||||
if(hasGeometry ())shader_map.Add(geom=new ShaderCreateInfoGeometry(&mdm));else geom=nullptr;
|
||||
if(hasFragment ())shader_map.Add(frag=new ShaderCreateInfoFragment(&mdm));else frag=nullptr;
|
||||
}
|
||||
|
||||
bool MaterialCreater::AddStruct(const AnsiString &struct_name,const AnsiString &codes)
|
||||
bool MaterialCreateInfo::AddStruct(const AnsiString &struct_name,const AnsiString &codes)
|
||||
{
|
||||
if(struct_name.IsEmpty()||codes.IsEmpty())
|
||||
return(false);
|
||||
@ -25,7 +25,7 @@ bool MaterialCreater::AddStruct(const AnsiString &struct_name,const AnsiString &
|
||||
return mdm.AddStruct(struct_name,codes);
|
||||
}
|
||||
|
||||
bool MaterialCreater::AddUBO(const VkShaderStageFlagBits flag_bit,const DescriptorSetType set_type,const AnsiString &type_name,const AnsiString &name)
|
||||
bool MaterialCreateInfo::AddUBO(const VkShaderStageFlagBits flag_bit,const DescriptorSetType set_type,const AnsiString &type_name,const AnsiString &name)
|
||||
{
|
||||
if(!shader_map.KeyExist(flag_bit))
|
||||
return(false);
|
||||
@ -33,7 +33,7 @@ bool MaterialCreater::AddUBO(const VkShaderStageFlagBits flag_bit,const Descript
|
||||
if(!mdm.hasStruct(type_name))
|
||||
return(false);
|
||||
|
||||
ShaderCreater *sc=shader_map[flag_bit];
|
||||
ShaderCreateInfo *sc=shader_map[flag_bit];
|
||||
|
||||
if(!sc)
|
||||
return(false);
|
||||
@ -60,14 +60,14 @@ bool MaterialCreater::AddUBO(const VkShaderStageFlagBits flag_bit,const Descript
|
||||
}
|
||||
}
|
||||
|
||||
bool MaterialCreater::AddSampler(const VkShaderStageFlagBits flag_bit,const DescriptorSetType set_type,const SamplerType &st,const AnsiString &name)
|
||||
bool MaterialCreateInfo::AddSampler(const VkShaderStageFlagBits flag_bit,const DescriptorSetType set_type,const SamplerType &st,const AnsiString &name)
|
||||
{
|
||||
if(!shader_map.KeyExist(flag_bit))
|
||||
return(false);
|
||||
|
||||
RANGE_CHECK_RETURN_FALSE(st);
|
||||
|
||||
ShaderCreater *sc=shader_map[flag_bit];
|
||||
ShaderCreateInfo *sc=shader_map[flag_bit];
|
||||
|
||||
if(!sc)
|
||||
return(false);
|
||||
@ -96,14 +96,14 @@ bool MaterialCreater::AddSampler(const VkShaderStageFlagBits flag_bit,const Desc
|
||||
}
|
||||
}
|
||||
|
||||
bool MaterialCreater::CreateShader()
|
||||
bool MaterialCreateInfo::CreateShader()
|
||||
{
|
||||
if(shader_map.IsEmpty())
|
||||
return(false);
|
||||
|
||||
mdm.Resort();
|
||||
|
||||
ShaderCreater *sc,*last=nullptr;
|
||||
ShaderCreateInfo *sc,*last=nullptr;
|
||||
|
||||
for(int i=0;i<shader_map.GetCount();i++)
|
||||
{
|
@ -1,21 +1,21 @@
|
||||
#include<hgl/shadergen/ShaderCreater.h>
|
||||
#include<hgl/shadergen/ShaderCreateInfo.h>
|
||||
#include<hgl/shadergen/ShaderDescriptorManager.h>
|
||||
#include"GLSLCompiler.h"
|
||||
|
||||
SHADERGEN_NAMESPACE_BEGIN
|
||||
ShaderCreater::ShaderCreater(VkShaderStageFlagBits ss,MaterialDescriptorManager *m)
|
||||
ShaderCreateInfo::ShaderCreateInfo(VkShaderStageFlagBits ss,MaterialDescriptorManager *m)
|
||||
{
|
||||
shader_stage=ss;
|
||||
mdm=m;
|
||||
sdm=new ShaderDescriptorManager(ss);
|
||||
}
|
||||
|
||||
ShaderCreater::~ShaderCreater()
|
||||
ShaderCreateInfo::~ShaderCreateInfo()
|
||||
{
|
||||
delete sdm;
|
||||
}
|
||||
|
||||
int ShaderCreater::AddOutput(const VAT &type,const AnsiString &name)
|
||||
int ShaderCreateInfo::AddOutput(const VAT &type,const AnsiString &name)
|
||||
{
|
||||
ShaderStage *ss=new ShaderStage;
|
||||
|
||||
@ -27,7 +27,7 @@ int ShaderCreater::AddOutput(const VAT &type,const AnsiString &name)
|
||||
return sdm->AddOutput(ss);
|
||||
}
|
||||
|
||||
int ShaderCreater::AddOutput(const AnsiString &type,const AnsiString &name)
|
||||
int ShaderCreateInfo::AddOutput(const AnsiString &type,const AnsiString &name)
|
||||
{
|
||||
VAT vat;
|
||||
|
||||
@ -40,7 +40,7 @@ int ShaderCreater::AddOutput(const AnsiString &type,const AnsiString &name)
|
||||
return AddOutput(vat,name);
|
||||
}
|
||||
|
||||
bool ShaderCreater::ProcSubpassInput()
|
||||
bool ShaderCreateInfo::ProcSubpassInput()
|
||||
{
|
||||
auto sil=sdm->GetSubpassInputList();
|
||||
|
||||
@ -68,7 +68,7 @@ bool ShaderCreater::ProcSubpassInput()
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool ShaderCreater::ProcInput(ShaderCreater *last_sc)
|
||||
bool ShaderCreateInfo::ProcInput(ShaderCreateInfo *last_sc)
|
||||
{
|
||||
if(!last_sc)
|
||||
return(false);
|
||||
@ -85,7 +85,7 @@ bool ShaderCreater::ProcInput(ShaderCreater *last_sc)
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool ShaderCreater::ProcOutput()
|
||||
bool ShaderCreateInfo::ProcOutput()
|
||||
{
|
||||
output_struct.Clear();
|
||||
|
||||
@ -114,7 +114,7 @@ bool ShaderCreater::ProcOutput()
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool ShaderCreater::ProcStruct()
|
||||
bool ShaderCreateInfo::ProcStruct()
|
||||
{
|
||||
const AnsiStringList &struct_list=sdm->GetStructList();
|
||||
|
||||
@ -135,7 +135,7 @@ bool ShaderCreater::ProcStruct()
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool ShaderCreater::ProcUBO()
|
||||
bool ShaderCreateInfo::ProcUBO()
|
||||
{
|
||||
auto ubo_list=sdm->GetUBOList();
|
||||
|
||||
@ -164,12 +164,12 @@ bool ShaderCreater::ProcUBO()
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool ShaderCreater::ProcSSBO()
|
||||
bool ShaderCreateInfo::ProcSSBO()
|
||||
{
|
||||
return(false);
|
||||
}
|
||||
|
||||
bool ShaderCreater::ProcConst()
|
||||
bool ShaderCreateInfo::ProcConst()
|
||||
{
|
||||
auto const_list=sdm->GetConstList();
|
||||
|
||||
@ -198,7 +198,7 @@ bool ShaderCreater::ProcConst()
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool ShaderCreater::ProcSampler()
|
||||
bool ShaderCreateInfo::ProcSampler()
|
||||
{
|
||||
auto sampler_list=sdm->GetSamplerList();
|
||||
|
||||
@ -227,7 +227,7 @@ bool ShaderCreater::ProcSampler()
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool ShaderCreater::CreateShader(ShaderCreater *last_sc)
|
||||
bool ShaderCreateInfo::CreateShader(ShaderCreateInfo *last_sc)
|
||||
{
|
||||
final_shader="#version 460 core\n";
|
||||
|
||||
@ -263,7 +263,7 @@ bool ShaderCreater::CreateShader(ShaderCreater *last_sc)
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool ShaderCreater::CompileToSPV()
|
||||
bool ShaderCreateInfo::CompileToSPV()
|
||||
{
|
||||
glsl_compiler::SPVData *spv_data=glsl_compiler::Compile(shader_stage,final_shader.c_str());
|
||||
|
@ -1,11 +1,11 @@
|
||||
#include<hgl/shadergen/ShaderCreaterFragment.h>
|
||||
#include<hgl/shadergen/ShaderCreateInfoFragment.h>
|
||||
#include<hgl/shadergen/ShaderDescriptorManager.h>
|
||||
|
||||
SHADERGEN_NAMESPACE_BEGIN
|
||||
|
||||
using namespace hgl::graph;
|
||||
|
||||
void ShaderCreaterFragment::UseDefaultMain()
|
||||
void ShaderCreateInfoFragment::UseDefaultMain()
|
||||
{
|
||||
main_codes="void main()\n{\n";
|
||||
|
||||
@ -28,7 +28,7 @@ void ShaderCreaterFragment::UseDefaultMain()
|
||||
main_codes+="}";
|
||||
}
|
||||
|
||||
bool ShaderCreaterFragment::ProcOutput()
|
||||
bool ShaderCreateInfoFragment::ProcOutput()
|
||||
{
|
||||
const auto &output_list=sdm->GetShaderStageIO().output;
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include<hgl/shadergen/ShaderCreaterVertex.h>
|
||||
#include<hgl/shadergen/ShaderCreateInfoVertex.h>
|
||||
#include<hgl/shadergen/ShaderDescriptorManager.h>
|
||||
#include<hgl/graph/VertexAttrib.h>
|
||||
#include<hgl/graph/VKShaderStage.h>
|
||||
@ -8,7 +8,7 @@ SHADERGEN_NAMESPACE_BEGIN
|
||||
using namespace hgl;
|
||||
using namespace hgl::graph;
|
||||
|
||||
int ShaderCreaterVertex::AddInput(const VAT &type,const AnsiString &name)
|
||||
int ShaderCreateInfoVertex::AddInput(const VAT &type,const AnsiString &name)
|
||||
{
|
||||
ShaderStage *ss=new ShaderStage;
|
||||
|
||||
@ -20,7 +20,7 @@ int ShaderCreaterVertex::AddInput(const VAT &type,const AnsiString &name)
|
||||
return sdm->AddInput(ss);
|
||||
}
|
||||
|
||||
int ShaderCreaterVertex::AddInput(const AnsiString &type,const AnsiString &name)
|
||||
int ShaderCreateInfoVertex::AddInput(const AnsiString &type,const AnsiString &name)
|
||||
{
|
||||
VAT vat;
|
||||
|
||||
@ -30,7 +30,7 @@ int ShaderCreaterVertex::AddInput(const AnsiString &type,const AnsiString &name)
|
||||
return AddInput(vat,name);
|
||||
}
|
||||
|
||||
bool ShaderCreaterVertex::ProcInput(ShaderCreater *)
|
||||
bool ShaderCreateInfoVertex::ProcInput(ShaderCreateInfo *)
|
||||
{
|
||||
const auto &input=sdm->GetShaderStageIO().input;
|
||||
|
Loading…
x
Reference in New Issue
Block a user