From 2e7c2663e0e48cbee20de770c4d6c992682aeb96 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Sat, 17 May 2025 20:47:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=80=E6=9C=89=E6=9D=90=E8=B4=A8=E5=85=A8?= =?UTF-8?q?=E9=83=A8=E4=BD=BF=E7=94=A8=E6=96=B0=E6=96=B9=E6=B3=95=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=EF=BC=8C=E4=BD=86=E6=AD=A4=E4=B8=BE=E5=B8=A6=E6=9D=A5?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E9=97=AE=E9=A2=98=E5=B0=B1=E6=98=AF=E6=89=80?= =?UTF-8?q?=E6=9C=89=E4=BB=A3=E7=A0=81=E4=B8=AD=E7=9A=84=E6=9D=90=E8=B4=A8?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E9=83=BD=E8=A2=AB=E9=93=BE=E6=8E=A5=EF=BC=8C?= =?UTF-8?q?=E4=BC=9A=E9=80=A0=E6=88=90=E6=A0=B8=E5=BF=83=E5=8F=AF=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E7=A8=8B=E5=BA=8F=E5=8F=98=E5=A4=A7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/common/VulkanAppFramework.h | 2 +- inc/hgl/graph/VKPhysicalDevice.h | 1 + inc/hgl/graph/mtl/Material2DCreateConfig.h | 14 ++++++-------- inc/hgl/graph/mtl/Material3DCreateConfig.h | 10 +++++----- inc/hgl/graph/mtl/MaterialLibrary.h | 4 ++-- src/ShaderGen/3d/M_Billboard.cpp | 12 ++++++------ src/ShaderGen/3d/M_Gizmo3D.cpp | 2 +- 7 files changed, 22 insertions(+), 23 deletions(-) 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);