removed standalone ".glsl" files ,merge to c++ codes.
This commit is contained in:
parent
3874d771d3
commit
5ba3c1790d
@ -1,4 +0,0 @@
|
||||
mat4 GetLocalToWorld()
|
||||
{
|
||||
return l2w.mats[Assign.x];
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
MaterialInstance GetMI()
|
||||
{
|
||||
#if ShaderStage == VertexShader
|
||||
return mtl.mi[Assign.y];
|
||||
#else
|
||||
return mtl.mi[Input.MaterialInstanceID];
|
||||
#endif
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
void HandoverMI()
|
||||
{
|
||||
#if ShaderStage == VertexShader
|
||||
Output.MaterialInstanceID=Assign.y;
|
||||
#elif ShaderStage == GeometryShader
|
||||
Output.MaterialInstanceID=Input[0].MaterialInstanceID;
|
||||
#else
|
||||
Output.MaterialInstanceID=Input.MaterialInstanceID;
|
||||
#endif
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
#version 460 core
|
||||
|
||||
#define VertexShader 0x01
|
||||
#define TessControlShader 0x02
|
||||
#define TeseEvalShader 0x04
|
||||
#define GeometryShader 0x08
|
||||
#define FragmentShader 0x10
|
||||
#define ComputeShader 0x20
|
||||
#define TaskShader 0x40
|
||||
#define MeshShader 0x80
|
@ -143,7 +143,7 @@ public:
|
||||
return(true);
|
||||
}
|
||||
|
||||
void Resize(int w,int h)override
|
||||
void Resize(uint w,uint h)override
|
||||
{
|
||||
cam.width=w;
|
||||
cam.height=h;
|
||||
|
@ -165,7 +165,7 @@ public:
|
||||
return(true);
|
||||
}
|
||||
|
||||
void Resize(int w,int h)override
|
||||
void Resize(uint w,uint h)override
|
||||
{
|
||||
cam.width=w;
|
||||
cam.height=h;
|
||||
|
@ -116,7 +116,7 @@ public:
|
||||
return(true);
|
||||
}
|
||||
|
||||
void Resize(int w,int h)override
|
||||
void Resize(uint w,uint h)override
|
||||
{
|
||||
VulkanApplicationFramework::Resize(w,h);
|
||||
|
||||
|
@ -130,7 +130,7 @@ public:
|
||||
return(true);
|
||||
}
|
||||
|
||||
void Resize(int w,int h)override
|
||||
void Resize(uint w,uint h)override
|
||||
{
|
||||
VulkanApplicationFramework::Resize(w,h);
|
||||
|
||||
|
@ -145,7 +145,7 @@ public:
|
||||
return(true);
|
||||
}
|
||||
|
||||
void Resize(int w,int h)override
|
||||
void Resize(uint w,uint h)override
|
||||
{
|
||||
VulkanApplicationFramework::Resize(w,h);
|
||||
|
||||
|
@ -26,7 +26,7 @@ private:
|
||||
Material * mtl_vtx_lum =nullptr;
|
||||
MaterialInstance * mi_plane_grid =nullptr;
|
||||
Pipeline * pipeline_vtx_lum =nullptr;
|
||||
Primitive * prim_plane_grid =nullptr;
|
||||
Primitive * prim_plane_grid =nullptr;
|
||||
|
||||
Material * mtl_vtx_color =nullptr;
|
||||
MaterialInstance * mi_line =nullptr;
|
||||
|
@ -112,7 +112,7 @@ public:
|
||||
return(true);
|
||||
}
|
||||
|
||||
void Resize(int w,int h)override
|
||||
void Resize(uint w,uint h)override
|
||||
{
|
||||
VulkanApplicationFramework::Resize(w,h);
|
||||
|
||||
|
@ -108,7 +108,7 @@ public:
|
||||
return(true);
|
||||
}
|
||||
|
||||
void Resize(int w,int h)override
|
||||
void Resize(uint w,uint h)override
|
||||
{
|
||||
VulkanApplicationFramework::Resize(w,h);
|
||||
|
||||
|
@ -184,7 +184,7 @@ public:
|
||||
return(true);
|
||||
}
|
||||
|
||||
void Resize(int w,int h)override
|
||||
void Resize(uint w,uint h)override
|
||||
{
|
||||
VulkanApplicationFramework::Resize(w,h);
|
||||
|
||||
|
@ -9,12 +9,6 @@ using namespace hgl;
|
||||
using namespace hgl::graph;
|
||||
|
||||
STD_MTL_NAMESPACE_BEGIN
|
||||
|
||||
namespace
|
||||
{
|
||||
const AnsiString *MF_HandoverMI=nullptr;
|
||||
}//namespace
|
||||
|
||||
MaterialCreateInfo::MaterialCreateInfo(const MaterialCreateConfig *mc)
|
||||
{
|
||||
config=mc;
|
||||
@ -39,9 +33,6 @@ MaterialCreateInfo::MaterialCreateInfo(const MaterialCreateConfig *mc)
|
||||
l2w_shader_stage=0;
|
||||
l2w_ubo=nullptr;
|
||||
}
|
||||
|
||||
if(!MF_HandoverMI)
|
||||
MF_HandoverMI=LoadShader("HandoverMI");
|
||||
}
|
||||
|
||||
bool MaterialCreateInfo::AddStruct(const AnsiString &struct_name,const AnsiString &codes)
|
||||
@ -255,12 +246,8 @@ bool MaterialCreateInfo::CreateShader()
|
||||
return(false);
|
||||
|
||||
if(sc->GetShaderStage()<mi_shader_stage)
|
||||
{
|
||||
sc->AddMaterialInstanceOutput();
|
||||
|
||||
sc->AddFunction(MF_HandoverMI);
|
||||
}
|
||||
|
||||
sc->CreateShader(last);
|
||||
|
||||
last=sc;
|
||||
|
@ -9,12 +9,6 @@
|
||||
|
||||
namespace hgl{namespace graph{
|
||||
|
||||
namespace
|
||||
{
|
||||
const AnsiString *ShaderFileHeader=nullptr;
|
||||
const AnsiString *MF_GetMI=nullptr;
|
||||
}//namespace
|
||||
|
||||
ShaderCreateInfo::ShaderCreateInfo(VkShaderStageFlagBits ss,MaterialDescriptorInfo *m)
|
||||
{
|
||||
shader_stage=ss;
|
||||
@ -25,9 +19,6 @@ ShaderCreateInfo::ShaderCreateInfo(VkShaderStageFlagBits ss,MaterialDescriptorIn
|
||||
|
||||
define_macro_max_length=0;
|
||||
define_value_max_length=0;
|
||||
|
||||
if(!ShaderFileHeader)ShaderFileHeader =mtl::LoadShader("ShaderHeader");
|
||||
if(!MF_GetMI )MF_GetMI =mtl::LoadShader("GetMI");
|
||||
}
|
||||
|
||||
ShaderCreateInfo::~ShaderCreateInfo()
|
||||
@ -163,12 +154,22 @@ bool ShaderCreateInfo::ProcSubpassInput()
|
||||
return(true);
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
constexpr const char MF_GetMI_VS []="\nMaterialInstance GetMI(){return mtl.mi[Assign.y];}\n";
|
||||
constexpr const char MF_GetMI_Other []="\nMaterialInstance GetMI(){return mtl.mi[Input.MaterialInstanceID];}\n";
|
||||
|
||||
constexpr const char MF_HandoverMI_VS[]= "\nvoid HandoverMI(){Output.MaterialInstanceID=Assign.y;}\n";
|
||||
constexpr const char MF_HandoverMI_GS[]= "\nvoid HandoverMI(){Output.MaterialInstanceID=Input[0].MaterialInstanceID;}\n";
|
||||
constexpr const char MF_HandoverMI_OTHER[]= "\nvoid HandoverMI(){Output.MaterialInstanceID=Input.MaterialInstanceID;}\n";
|
||||
}//namespace
|
||||
|
||||
void ShaderCreateInfo::SetMaterialInstance(UBODescriptor *ubo,const AnsiString &mi)
|
||||
{
|
||||
sdm->AddUBO(DescriptorSetType::PerMaterial,ubo);
|
||||
sdm->AddStruct(mtl::MaterialInstanceStruct);
|
||||
|
||||
AddFunction(MF_GetMI);
|
||||
AddFunction(shader_stage==VK_SHADER_STAGE_VERTEX_BIT?MF_GetMI_VS:MF_GetMI_Other);
|
||||
|
||||
mi_codes=mi;
|
||||
}
|
||||
@ -176,6 +177,10 @@ void ShaderCreateInfo::SetMaterialInstance(UBODescriptor *ubo,const AnsiString &
|
||||
void ShaderCreateInfo::AddMaterialInstanceOutput()
|
||||
{
|
||||
AddOutput(VAT_UINT,mtl::func::MaterialInstanceID,Interpolation::Flat);
|
||||
|
||||
if(shader_stage==VK_SHADER_STAGE_VERTEX_BIT) AddFunction(MF_HandoverMI_VS);else
|
||||
if(shader_stage==VK_SHADER_STAGE_GEOMETRY_BIT) AddFunction(MF_HandoverMI_GS);else
|
||||
AddFunction(MF_HandoverMI_OTHER);
|
||||
}
|
||||
|
||||
void ShaderCreateInfo::SetLocalToWorld(UBODescriptor *ubo)
|
||||
@ -386,13 +391,21 @@ bool ShaderCreateInfo::ProcSampler()
|
||||
|
||||
bool ShaderCreateInfo::CreateShader(ShaderCreateInfo *last_sc)
|
||||
{
|
||||
if(!ShaderFileHeader)
|
||||
return(false);
|
||||
|
||||
if(main_function.IsEmpty())
|
||||
return(false);
|
||||
|
||||
final_shader=ShaderFileHeader->c_str();
|
||||
final_shader=R"(
|
||||
#version 460 core
|
||||
|
||||
#define VertexShader 0x01
|
||||
#define TessControlShader 0x02
|
||||
#define TeseEvalShader 0x04
|
||||
#define GeometryShader 0x08
|
||||
#define FragmentShader 0x10
|
||||
#define ComputeShader 0x20
|
||||
#define TaskShader 0x40
|
||||
#define MeshShader 0x80
|
||||
)";
|
||||
|
||||
{
|
||||
char ss_hex_str[9];
|
||||
@ -430,6 +443,7 @@ bool ShaderCreateInfo::CreateShader(ShaderCreateInfo *last_sc)
|
||||
for(const char *str:function_list)
|
||||
final_shader+=str;
|
||||
|
||||
final_shader+="\n";
|
||||
final_shader+=main_function;
|
||||
|
||||
#ifdef _DEBUG
|
||||
|
@ -8,14 +8,8 @@
|
||||
#include"ShaderLibrary.h"
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
namespace
|
||||
{
|
||||
const AnsiString *MF_GetLocalToWorld=nullptr;
|
||||
}//namespace
|
||||
|
||||
ShaderCreateInfoVertex::ShaderCreateInfoVertex(MaterialDescriptorInfo *m):ShaderCreateInfo(VK_SHADER_STAGE_VERTEX_BIT,m)
|
||||
{
|
||||
if(!MF_GetLocalToWorld)MF_GetLocalToWorld=mtl::LoadShader("GetLocalToWorld");
|
||||
}
|
||||
|
||||
int ShaderCreateInfoVertex::AddInput(const VAT &type,const AnsiString &name,const VkVertexInputRate input_rate,const VertexInputGroup &group)
|
||||
@ -56,6 +50,8 @@ void ShaderCreateInfoVertex::AddAssign()
|
||||
VK_VERTEX_INPUT_RATE_INSTANCE,
|
||||
VertexInputGroup::Assign);
|
||||
|
||||
constexpr const char MF_GetLocalToWorld[]="\nmat4 GetLocalToWorld(){return l2w.mats[Assign.x];}\n";
|
||||
|
||||
AddFunction(MF_GetLocalToWorld);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user