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