将static MaterialFactory 定义移到.h
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/graph/mtl/MaterialLibrary.h>
|
||||
#include<hgl/graph/mtl/MaterialConfig.h>
|
||||
#include<hgl/graph/CoordinateSystem.h>
|
||||
#include<hgl/graph/VertexAttrib.h>
|
||||
@@ -49,7 +50,8 @@ public:
|
||||
}
|
||||
};//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 *CreateLerpLine2D(const GPUDeviceAttribute *dev_attr,const Material2DCreateConfig *);
|
||||
|
@@ -32,6 +32,8 @@ public:
|
||||
|
||||
material_instance=false;
|
||||
|
||||
hgl_zero(rt_output);
|
||||
|
||||
shader_stage_flag_bit=VK_SHADER_STAGE_VERTEX_BIT|VK_SHADER_STAGE_FRAGMENT_BIT;
|
||||
|
||||
prim=p;
|
||||
|
@@ -44,9 +44,11 @@ public:
|
||||
}
|
||||
};//class RegistryMaterialFactoryClass
|
||||
|
||||
#define DEFINE_MATERIAL_FACTORY(name) namespace{static RegistryMaterialFactoryClass<MaterialFactory##name> MaterialFactoryInstance_##name;}
|
||||
|
||||
#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 \
|
||||
{ \
|
||||
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);
|
||||
|
||||
|
Reference in New Issue
Block a user