support MI_MAX_COUNT in ShaderGen

This commit is contained in:
2023-06-02 20:45:19 +08:00
parent 22bc5f6653
commit f4a8406ad8
27 changed files with 318 additions and 189 deletions

View File

@@ -1,11 +1,11 @@
#ifndef HGL_GRAPH_MTL_2D_CONFIG_INCLUDE
#define HGL_GRAPH_MTL_2D_CONFIG_INCLUDE
#ifndef HGL_GRAPH_MTL_2D_CREATE_CONFIG_INCLUDE
#define HGL_GRAPH_MTL_2D_CREATE_CONFIG_INCLUDE
#include<hgl/graph/mtl/MaterialConfig.h>
#include<hgl/graph/CoordinateSystem.h>
STD_MTL_NAMESPACE_BEGIN
struct Material2DConfig:public MaterialConfig
struct Material2DCreateConfig:public MaterialCreateConfig
{
CoordinateSystem2D coordinate_system; ///<使用的坐标系
@@ -13,7 +13,7 @@ struct Material2DConfig:public MaterialConfig
public:
Material2DConfig(const AnsiString &name):MaterialConfig(name)
Material2DCreateConfig(const GPUDeviceAttribute *da,const AnsiString &name):MaterialCreateConfig(da,name)
{
rt_output.color=1; //输出一个颜色
rt_output.depth=false; //不输出深度
@@ -22,9 +22,9 @@ public:
coordinate_system=CoordinateSystem2D::NDC;
local_to_world=false;
}
};//struct Material2DConfig:public MaterialConfig
};//struct Material2DCreateConfig:public MaterialCreateConfig
MaterialCreateInfo *CreateVertexColor2D(const Material2DConfig *);
MaterialCreateInfo *CreatePureColor2D(const Material2DConfig *);
MaterialCreateInfo *CreateVertexColor2D(const Material2DCreateConfig *);
MaterialCreateInfo *CreatePureColor2D(const Material2DCreateConfig *);
STD_MTL_NAMESPACE_END
#endif//HGL_GRAPH_MTL_2D_CONFIG_INCLUDE
#endif//HGL_GRAPH_MTL_2D_CREATE_CONFIG_INCLUDE

View File

@@ -12,8 +12,10 @@ class MaterialCreateInfo;
/**
* 材质配置结构
*/
struct MaterialConfig
struct MaterialCreateConfig
{
const GPUDeviceAttribute *dev_attr;
AnsiString mtl_name; ///<材质名称
RenderTargetOutputConfig rt_output; ///<渲染目标输出配置
@@ -22,12 +24,14 @@ struct MaterialConfig
public:
MaterialConfig(const AnsiString &name)
MaterialCreateConfig(const GPUDeviceAttribute *da,const AnsiString &name)
{
dev_attr=da;
mtl_name=name;
shader_stage=VK_SHADER_STAGE_VERTEX_BIT|VK_SHADER_STAGE_FRAGMENT_BIT;
}
};//struct MaterialConfig
};//struct MaterialCreateConfig
STD_MTL_NAMESPACE_END
#endif//HGL_GRAPH_MTL_CONFIG_INCLUDE

View File

@@ -4,3 +4,13 @@
#define STD_MTL_NAMESPACE_END }}}
#define STD_MTL_NAMESPACE_USING using namespace hgl::graph::mtl;
namespace hgl
{
namespace graph
{
namespace mtl
{
}//namespace mtl
}//namespace graph
}//namespace hgl

View File

@@ -50,7 +50,7 @@ constexpr const ShaderBufferSource SBS_MaterialInstanceData=
"mtl",
R"(
MaterialInstance mi[256];)"
MaterialInstance mi[MI_MAX_COUNT];)"
};
constexpr const ShaderBufferSource SBS_JointInfo=