From 33976d9bf68a05f1b28bc20d2aeb2af0a9324335 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Wed, 7 May 2025 00:35:43 +0800 Subject: [PATCH] =?UTF-8?q?MaterialFactoryMap=E6=94=B9=E7=94=A8ObjectMap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ShaderGen/MaterialLibrary.cpp | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/src/ShaderGen/MaterialLibrary.cpp b/src/ShaderGen/MaterialLibrary.cpp index e192bf40..83e9e5b4 100644 --- a/src/ShaderGen/MaterialLibrary.cpp +++ b/src/ShaderGen/MaterialLibrary.cpp @@ -1,12 +1,12 @@ #include #include -#include +#include STD_MTL_NAMESPACE_BEGIN namespace { - using MaterialFactoryMap=tsl::robin_map; + using MaterialFactoryMap=ObjectMap; using MaterialFactoryMapPtr=MaterialFactoryMap *; MaterialFactoryMapPtr material_factory_map=nullptr; @@ -21,13 +21,13 @@ bool RegistryMaterialFactory(MaterialFactory *mf) if(!material_factory_map) { - material_factory_map=new MaterialFactoryMap; + material_factory_map=new MaterialFactoryMap(); } - if(material_factory_map->contains(name)) + if(material_factory_map->ContainsKey(name)) return(false); - material_factory_map->insert({name,mf}); + material_factory_map->Add(name,mf); return(true); } @@ -37,23 +37,12 @@ MaterialFactory *GetMaterialFactory(const AnsiString &name) if(!material_factory_map) return(nullptr); - auto it=material_factory_map->find(name); - - if(it==material_factory_map->end()) - return(nullptr); - - return(it->second); + return (*material_factory_map)[name]; } void ClearMaterialFactory() { - if(!material_factory_map) - return; - - SAFE_CLEAR_STD_MAP(*material_factory_map) - - delete material_factory_map; - material_factory_map=nullptr; + SAFE_CLEAR(material_factory_map); } MaterialCreateInfo *CreateMaterialCreateInfo(const AnsiString &name,MaterialCreateConfig *cfg,const VILConfig *vil_cfg)