diff --git a/inc/hgl/graph/mtl/Material2DCreateConfig.h b/inc/hgl/graph/mtl/Material2DCreateConfig.h index f1e9149e..e62bebe7 100644 --- a/inc/hgl/graph/mtl/Material2DCreateConfig.h +++ b/inc/hgl/graph/mtl/Material2DCreateConfig.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -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 *); diff --git a/inc/hgl/graph/mtl/MaterialConfig.h b/inc/hgl/graph/mtl/MaterialConfig.h index 4186498c..1cb74cc8 100644 --- a/inc/hgl/graph/mtl/MaterialConfig.h +++ b/inc/hgl/graph/mtl/MaterialConfig.h @@ -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; diff --git a/inc/hgl/graph/mtl/MaterialLibrary.h b/inc/hgl/graph/mtl/MaterialLibrary.h index ce1f5839..cca03e68 100644 --- a/inc/hgl/graph/mtl/MaterialLibrary.h +++ b/inc/hgl/graph/mtl/MaterialLibrary.h @@ -44,9 +44,11 @@ public: } };//class RegistryMaterialFactoryClass -#define DEFINE_MATERIAL_FACTORY(name) namespace{static RegistryMaterialFactoryClass 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 MaterialFactoryInstance_##name; \ +} MaterialCreateInfo *CreateMaterialCreateInfo(const GPUDeviceAttribute *dev_attr,const MaterialName &,MaterialCreateConfig *cfg); diff --git a/src/ShaderGen/2d/M_VertexColor2D.cpp b/src/ShaderGen/2d/M_VertexColor2D.cpp index 56907574..fbc67229 100644 --- a/src/ShaderGen/2d/M_VertexColor2D.cpp +++ b/src/ShaderGen/2d/M_VertexColor2D.cpp @@ -1,6 +1,5 @@ #include"Std2DMaterial.h" #include -#include STD_MTL_NAMESPACE_BEGIN namespace @@ -62,26 +61,4 @@ MaterialCreateInfo *CreateVertexColor2D(const GPUDeviceAttribute *dev_attr,const 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 MaterialFactoryInstance_VertexColor2D; - - -//DEFINE_MATERIAL_FACTORY_CLASS(VertexColor2D,CreateVertexColor2D,Material2DCreateConfig) - STD_MTL_NAMESPACE_END