将static MaterialFactory 定义移到.h
This commit is contained in:
parent
fd1a629941
commit
2dd60fee7f
@ -1,5 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include<hgl/graph/mtl/MaterialLibrary.h>
|
||||||
#include<hgl/graph/mtl/MaterialConfig.h>
|
#include<hgl/graph/mtl/MaterialConfig.h>
|
||||||
#include<hgl/graph/CoordinateSystem.h>
|
#include<hgl/graph/CoordinateSystem.h>
|
||||||
#include<hgl/graph/VertexAttrib.h>
|
#include<hgl/graph/VertexAttrib.h>
|
||||||
@ -49,7 +50,8 @@ public:
|
|||||||
}
|
}
|
||||||
};//struct Material2DCreateConfig:public MaterialCreateConfig
|
};//struct Material2DCreateConfig:public MaterialCreateConfig
|
||||||
|
|
||||||
MaterialCreateInfo *CreateVertexColor2D(const GPUDeviceAttribute *dev_attr,const Material2DCreateConfig *);
|
DEFINE_MATERIAL_FACTORY_CLASS(VertexColor2D,CreateVertexColor2D,const Material2DCreateConfig)
|
||||||
|
|
||||||
MaterialCreateInfo *CreatePureColor2D(const GPUDeviceAttribute *dev_attr,const Material2DCreateConfig *);
|
MaterialCreateInfo *CreatePureColor2D(const GPUDeviceAttribute *dev_attr,const Material2DCreateConfig *);
|
||||||
|
|
||||||
MaterialCreateInfo *CreateLerpLine2D(const GPUDeviceAttribute *dev_attr,const Material2DCreateConfig *);
|
MaterialCreateInfo *CreateLerpLine2D(const GPUDeviceAttribute *dev_attr,const Material2DCreateConfig *);
|
||||||
|
@ -32,6 +32,8 @@ public:
|
|||||||
|
|
||||||
material_instance=false;
|
material_instance=false;
|
||||||
|
|
||||||
|
hgl_zero(rt_output);
|
||||||
|
|
||||||
shader_stage_flag_bit=VK_SHADER_STAGE_VERTEX_BIT|VK_SHADER_STAGE_FRAGMENT_BIT;
|
shader_stage_flag_bit=VK_SHADER_STAGE_VERTEX_BIT|VK_SHADER_STAGE_FRAGMENT_BIT;
|
||||||
|
|
||||||
prim=p;
|
prim=p;
|
||||||
|
@ -44,9 +44,11 @@ public:
|
|||||||
}
|
}
|
||||||
};//class RegistryMaterialFactoryClass
|
};//class RegistryMaterialFactoryClass
|
||||||
|
|
||||||
#define DEFINE_MATERIAL_FACTORY(name) namespace{static RegistryMaterialFactoryClass<MaterialFactory##name> MaterialFactoryInstance_##name;}
|
|
||||||
|
|
||||||
#define DEFINE_MATERIAL_FACTORY_CLASS(name,create_func,cfg_type) \
|
#define DEFINE_MATERIAL_FACTORY_CLASS(name,create_func,cfg_type) \
|
||||||
|
MaterialCreateInfo *Create##name(const GPUDeviceAttribute *dev_attr,cfg_type *); \
|
||||||
|
\
|
||||||
|
namespace \
|
||||||
|
{ \
|
||||||
class MaterialFactory##name:public MaterialFactory \
|
class MaterialFactory##name:public MaterialFactory \
|
||||||
{ \
|
{ \
|
||||||
public: \
|
public: \
|
||||||
@ -63,7 +65,8 @@ public:
|
|||||||
} \
|
} \
|
||||||
}; \
|
}; \
|
||||||
\
|
\
|
||||||
DEFINE_MATERIAL_FACTORY(name)
|
static RegistryMaterialFactoryClass<MaterialFactory##name> MaterialFactoryInstance_##name; \
|
||||||
|
}
|
||||||
|
|
||||||
MaterialCreateInfo *CreateMaterialCreateInfo(const GPUDeviceAttribute *dev_attr,const MaterialName &,MaterialCreateConfig *cfg);
|
MaterialCreateInfo *CreateMaterialCreateInfo(const GPUDeviceAttribute *dev_attr,const MaterialName &,MaterialCreateConfig *cfg);
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
#include"Std2DMaterial.h"
|
#include"Std2DMaterial.h"
|
||||||
#include<hgl/shadergen/MaterialCreateInfo.h>
|
#include<hgl/shadergen/MaterialCreateInfo.h>
|
||||||
#include<hgl/graph/mtl/MaterialLibrary.h>
|
|
||||||
|
|
||||||
STD_MTL_NAMESPACE_BEGIN
|
STD_MTL_NAMESPACE_BEGIN
|
||||||
namespace
|
namespace
|
||||||
@ -62,26 +61,4 @@ MaterialCreateInfo *CreateVertexColor2D(const GPUDeviceAttribute *dev_attr,const
|
|||||||
return mvc2d.Create(dev_attr);
|
return mvc2d.Create(dev_attr);
|
||||||
}
|
}
|
||||||
|
|
||||||
class MaterialFactoryVertexColor2D:public MaterialFactory
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
const MaterialName &GetName()const override
|
|
||||||
{
|
|
||||||
static MaterialName mtl_name("VertexColor2D");
|
|
||||||
|
|
||||||
return mtl_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
MaterialCreateInfo *Create(const GPUDeviceAttribute *dev_attr,MaterialCreateConfig *cfg) override
|
|
||||||
{
|
|
||||||
return CreateVertexColor2D(dev_attr,(Material2DCreateConfig *)cfg);
|
|
||||||
}
|
|
||||||
};//class MaterialFactoryVertexColor2D:public MaterialFactory
|
|
||||||
|
|
||||||
static RegistryMaterialFactoryClass<MaterialFactoryVertexColor2D> MaterialFactoryInstance_VertexColor2D;
|
|
||||||
|
|
||||||
|
|
||||||
//DEFINE_MATERIAL_FACTORY_CLASS(VertexColor2D,CreateVertexColor2D,Material2DCreateConfig)
|
|
||||||
|
|
||||||
STD_MTL_NAMESPACE_END
|
STD_MTL_NAMESPACE_END
|
||||||
|
Loading…
x
Reference in New Issue
Block a user