#pragma once
#include <map>

#include "Texture.h"

class TextureManager {
public:
	static TextureManager * GetInstance();
	static void DestroyInstance();
	Texture* GetTexture(const std::string& name);

	TextureManager(const TextureManager& other) = delete;
	TextureManager& operator=(const TextureManager& other) = delete;
	TextureManager(TextureManager&& other) = delete;
	TextureManager& operator=(TextureManager&& other) = delete;
private:
	TextureManager() = default;
	~TextureManager();
	
	static TextureManager* m_pInstance;

	std::map<std::string, Texture *> m_Textures {};
};
