diff --git a/example/common/VulkanAppFramework.h b/example/common/VulkanAppFramework.h index de028542..e238a00a 100644 --- a/example/common/VulkanAppFramework.h +++ b/example/common/VulkanAppFramework.h @@ -53,7 +53,7 @@ protected: protected: - VulkanDevice * device =nullptr; + VulkanDevice * device =nullptr; RenderPass * device_render_pass =nullptr; SwapchainRenderTarget * sc_render_target =nullptr; diff --git a/inc/hgl/graph/VKPhysicalDevice.h b/inc/hgl/graph/VKPhysicalDevice.h index f3244ca6..e3ffd879 100644 --- a/inc/hgl/graph/VKPhysicalDevice.h +++ b/inc/hgl/graph/VKPhysicalDevice.h @@ -23,6 +23,7 @@ class VulkanPhyDevice VkPhysicalDeviceVulkan14Properties properties14; VkPhysicalDeviceMemoryProperties memory_properties; + ArrayList layer_properties; ArrayList extension_properties; ArrayList queue_family_properties; diff --git a/inc/hgl/graph/mtl/Material2DCreateConfig.h b/inc/hgl/graph/mtl/Material2DCreateConfig.h index 7b6d3221..022799ac 100644 --- a/inc/hgl/graph/mtl/Material2DCreateConfig.h +++ b/inc/hgl/graph/mtl/Material2DCreateConfig.h @@ -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系列函数? diff --git a/inc/hgl/graph/mtl/Material3DCreateConfig.h b/inc/hgl/graph/mtl/Material3DCreateConfig.h index 5c406997..fcb6ca4d 100644 --- a/inc/hgl/graph/mtl/Material3DCreateConfig.h +++ b/inc/hgl/graph/mtl/Material3DCreateConfig.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -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); /** * 从文件加载材质 diff --git a/inc/hgl/graph/mtl/MaterialLibrary.h b/inc/hgl/graph/mtl/MaterialLibrary.h index 04654fc3..e21a2e01 100644 --- a/inc/hgl/graph/mtl/MaterialLibrary.h +++ b/inc/hgl/graph/mtl/MaterialLibrary.h @@ -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); \ } \ }; \ \ diff --git a/src/ShaderGen/3d/M_Billboard.cpp b/src/ShaderGen/3d/M_Billboard.cpp index 27271892..fbab7ee9 100644 --- a/src/ShaderGen/3d/M_Billboard.cpp +++ b/src/ShaderGen/3d/M_Billboard.cpp @@ -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 \ No newline at end of file +STD_MTL_NAMESPACE_END diff --git a/src/ShaderGen/3d/M_Gizmo3D.cpp b/src/ShaderGen/3d/M_Gizmo3D.cpp index 7983e2f7..3d6dad2f 100644 --- a/src/ShaderGen/3d/M_Gizmo3D.cpp +++ b/src/ShaderGen/3d/M_Gizmo3D.cpp @@ -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);