Daniele Bartolini 10 年 前
コミット
7b6502f429
2 ファイル変更13 行追加33 行削除
  1. 5 24
      src/renderers/material_manager.cpp
  2. 8 9
      src/renderers/material_manager.h

+ 5 - 24
src/renderers/material_manager.cpp

@@ -11,29 +11,10 @@
 namespace crown
 {
 
-namespace material_manager
-{
-	static MaterialManager* s_mmgr = NULL;
-
-	void init(ResourceManager& rm)
-	{
-		s_mmgr = CE_NEW(default_allocator(), MaterialManager)(rm);
-	}
-
-	void shutdown()
-	{
-		CE_DELETE(default_allocator(), s_mmgr);
-	}
-
-	MaterialManager* get()
-	{
-		return s_mmgr;
-	}
-} // namespace material_manager
-
-MaterialManager::MaterialManager(ResourceManager& rm)
-	: _resource_manager(&rm)
-	, _materials(default_allocator())
+MaterialManager::MaterialManager(Allocator& a, ResourceManager& rm)
+	: _allocator(&a)
+	, _resource_manager(&rm)
+	, _materials(a)
 {
 }
 
@@ -70,7 +51,7 @@ void MaterialManager::destroy_material(StringId64 id)
 	sort_map::sort(_materials);
 }
 
-Material* MaterialManager::lookup_material(StringId64 id)
+Material* MaterialManager::get(StringId64 id)
 {
 	return sort_map::get(_materials, id, (Material*)NULL);
 }

+ 8 - 9
src/renderers/material_manager.h

@@ -16,24 +16,23 @@ namespace crown
 
 struct MaterialManager
 {
-	MaterialManager(ResourceManager& rm);
+	MaterialManager(Allocator& a, ResourceManager& rm);
 	~MaterialManager();
 
+	/// Creates the material @a id.
 	void create_material(StringId64 id);
+
+	/// Destroys the material @a id.
 	void destroy_material(StringId64 id);
-	Material* lookup_material(StringId64 id);
+
+	/// Returns the material @a id.
+	Material* get(StringId64 id);
 
 private:
 
+	Allocator* _allocator;
 	ResourceManager* _resource_manager;
 	SortMap<StringId64, Material*> _materials;
 };
 
-namespace material_manager
-{
-	void init(ResourceManager& rm);
-	void shutdown();
-	MaterialManager* get();
-} // namespace material_manager
-
 } // namespace crown