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