所有材质全部使用新方法注册,但此举带来一个问题就是所有代码中的材质代码都被链接,会造成核心可执行程序变大。
This commit is contained in:
parent
0e789b6f47
commit
2e7c2663e0
@ -23,6 +23,7 @@ class VulkanPhyDevice
|
|||||||
VkPhysicalDeviceVulkan14Properties properties14;
|
VkPhysicalDeviceVulkan14Properties properties14;
|
||||||
|
|
||||||
VkPhysicalDeviceMemoryProperties memory_properties;
|
VkPhysicalDeviceMemoryProperties memory_properties;
|
||||||
|
|
||||||
ArrayList<VkLayerProperties> layer_properties;
|
ArrayList<VkLayerProperties> layer_properties;
|
||||||
ArrayList<VkExtensionProperties> extension_properties;
|
ArrayList<VkExtensionProperties> extension_properties;
|
||||||
ArrayList<VkQueueFamilyProperties> queue_family_properties;
|
ArrayList<VkQueueFamilyProperties> queue_family_properties;
|
||||||
|
@ -50,15 +50,13 @@ public:
|
|||||||
}
|
}
|
||||||
};//struct Material2DCreateConfig:public MaterialCreateConfig
|
};//struct Material2DCreateConfig:public MaterialCreateConfig
|
||||||
|
|
||||||
DEFINE_MATERIAL_FACTORY_CLASS(VertexColor2D,CreateVertexColor2D,const Material2DCreateConfig)
|
DEFINE_MATERIAL_FACTORY_CLASS(VertexColor2D, const Material2DCreateConfig)
|
||||||
|
DEFINE_MATERIAL_FACTORY_CLASS(PureColor2D, const Material2DCreateConfig)
|
||||||
|
//DEFINE_MATERIAL_FACTORY_CLASS(LerpLine2D, const Material2DCreateConfig);
|
||||||
|
|
||||||
MaterialCreateInfo *CreatePureColor2D(const VulkanDevAttr *dev_attr,const Material2DCreateConfig *);
|
DEFINE_MATERIAL_FACTORY_CLASS(PureTexture2D, const Material2DCreateConfig);
|
||||||
|
DEFINE_MATERIAL_FACTORY_CLASS(RectTexture2D, Material2DCreateConfig);
|
||||||
MaterialCreateInfo *CreateLerpLine2D(const VulkanDevAttr *dev_attr,const Material2DCreateConfig *);
|
DEFINE_MATERIAL_FACTORY_CLASS(RectTexture2DArray, Material2DCreateConfig);
|
||||||
|
|
||||||
MaterialCreateInfo *CreatePureTexture2D(const VulkanDevAttr *dev_attr,const Material2DCreateConfig *);
|
|
||||||
MaterialCreateInfo *CreateRectTexture2D(const VulkanDevAttr *dev_attr,Material2DCreateConfig *);
|
|
||||||
MaterialCreateInfo *CreateRectTexture2DArray(const VulkanDevAttr *dev_attr,Material2DCreateConfig *);
|
|
||||||
|
|
||||||
// 为什么有了LoadMaterialFromFile,还需要保留以上Create系列函数?
|
// 为什么有了LoadMaterialFromFile,还需要保留以上Create系列函数?
|
||||||
|
|
||||||
|
@ -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>
|
||||||
@ -50,10 +51,9 @@ public:
|
|||||||
}
|
}
|
||||||
};//struct Material3DCreateConfig:public MaterialCreateConfig
|
};//struct Material3DCreateConfig:public MaterialCreateConfig
|
||||||
|
|
||||||
MaterialCreateInfo *CreateVertexColor3D(const VulkanDevAttr *dev_attr,const Material3DCreateConfig *);
|
DEFINE_MATERIAL_FACTORY_CLASS(VertexColor3D, const Material3DCreateConfig);
|
||||||
MaterialCreateInfo *CreateVertexLuminance3D(const VulkanDevAttr *dev_attr,const Material3DCreateConfig *);
|
DEFINE_MATERIAL_FACTORY_CLASS(VertexLuminance3D,const Material3DCreateConfig);
|
||||||
|
DEFINE_MATERIAL_FACTORY_CLASS(Gizmo3D, const Material3DCreateConfig);
|
||||||
MaterialCreateInfo *CreateMaterialGizmo3D(const VulkanDevAttr *dev_attr,const Material3DCreateConfig *cfg);
|
|
||||||
|
|
||||||
struct BillboardMaterialCreateConfig:public Material3DCreateConfig
|
struct BillboardMaterialCreateConfig:public Material3DCreateConfig
|
||||||
{
|
{
|
||||||
@ -66,7 +66,7 @@ public:
|
|||||||
using Material3DCreateConfig::Material3DCreateConfig;
|
using Material3DCreateConfig::Material3DCreateConfig;
|
||||||
};
|
};
|
||||||
|
|
||||||
MaterialCreateInfo *CreateBillboard2D(const VulkanDevAttr *dev_attr,mtl::BillboardMaterialCreateConfig *);
|
DEFINE_MATERIAL_FACTORY_CLASS(Billboard2D,BillboardMaterialCreateConfig);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 从文件加载材质
|
* 从文件加载材质
|
||||||
|
@ -44,7 +44,7 @@ public:
|
|||||||
}
|
}
|
||||||
};//class RegistryMaterialFactoryClass
|
};//class RegistryMaterialFactoryClass
|
||||||
|
|
||||||
#define DEFINE_MATERIAL_FACTORY_CLASS(name,create_func,cfg_type) \
|
#define DEFINE_MATERIAL_FACTORY_CLASS(name,cfg_type) \
|
||||||
MaterialCreateInfo *Create##name(const VulkanDevAttr *dev_attr,cfg_type *); \
|
MaterialCreateInfo *Create##name(const VulkanDevAttr *dev_attr,cfg_type *); \
|
||||||
\
|
\
|
||||||
namespace \
|
namespace \
|
||||||
@ -61,7 +61,7 @@ namespace \
|
|||||||
\
|
\
|
||||||
MaterialCreateInfo *Create(const VulkanDevAttr *dev_attr,MaterialCreateConfig *cfg) override \
|
MaterialCreateInfo *Create(const VulkanDevAttr *dev_attr,MaterialCreateConfig *cfg) override \
|
||||||
{ \
|
{ \
|
||||||
return create_func(dev_attr,(cfg_type *)cfg); \
|
return Create##name(dev_attr,(cfg_type *)cfg); \
|
||||||
} \
|
} \
|
||||||
}; \
|
}; \
|
||||||
\
|
\
|
||||||
|
@ -2,15 +2,15 @@
|
|||||||
|
|
||||||
STD_MTL_NAMESPACE_BEGIN
|
STD_MTL_NAMESPACE_BEGIN
|
||||||
|
|
||||||
MaterialCreateInfo *CreateBillboard2DDynamic(mtl::BillboardMaterialCreateConfig *cfg);
|
MaterialCreateInfo *CreateBillboard2DDynamic(const VulkanDevAttr *,mtl::BillboardMaterialCreateConfig *cfg);
|
||||||
MaterialCreateInfo *CreateBillboard2DFixedSize(mtl::BillboardMaterialCreateConfig *cfg);
|
MaterialCreateInfo *CreateBillboard2DFixedSize(const VulkanDevAttr *,mtl::BillboardMaterialCreateConfig *cfg);
|
||||||
|
|
||||||
MaterialCreateInfo *CreateBillboard2D(mtl::BillboardMaterialCreateConfig *cfg)
|
MaterialCreateInfo *CreateBillboard2D(const VulkanDevAttr *dev_attr,mtl::BillboardMaterialCreateConfig *cfg)
|
||||||
{
|
{
|
||||||
if(cfg->fixed_size)
|
if(cfg->fixed_size)
|
||||||
return CreateBillboard2DFixedSize(cfg);
|
return CreateBillboard2DFixedSize(dev_attr,cfg);
|
||||||
else
|
else
|
||||||
return CreateBillboard2DDynamic(cfg);
|
return CreateBillboard2DDynamic(dev_attr,cfg);
|
||||||
}
|
}
|
||||||
|
|
||||||
STD_MTL_NAMESPACE_END
|
STD_MTL_NAMESPACE_END
|
@ -93,7 +93,7 @@ void main()
|
|||||||
};//class MaterialGizmo3D:public Std3DMaterial
|
};//class MaterialGizmo3D:public Std3DMaterial
|
||||||
}//namespace
|
}//namespace
|
||||||
|
|
||||||
MaterialCreateInfo *CreateMaterialGizmo3D(const VulkanDevAttr *dev_attr,const Material3DCreateConfig *cfg)
|
MaterialCreateInfo *CreateGizmo3D(const VulkanDevAttr *dev_attr,const Material3DCreateConfig *cfg)
|
||||||
{
|
{
|
||||||
MaterialGizmo3D mg3d(cfg);
|
MaterialGizmo3D mg3d(cfg);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user