// // Created by Neirokan on 09.05.2020 // #ifndef ENGINE_RESOURCEMANAGER_H #define ENGINE_RESOURCEMANAGER_H #include #include #include class ResourceManager final { private: std::map> _textures; std::map> _fonts; std::map> _soundBuffers; static ResourceManager* _instance; ResourceManager() = default; public: ResourceManager(const ResourceManager&) = delete; ResourceManager& operator=(ResourceManager&) = delete; // Unloads all currently loaded textures. static void unloadTextures(); static void unloadSoundBuffers(); static void unloadFonts(); static void unloadShaders(); static void unloadAllResources(); static void init(); static void free(); // Try to load texture from file. // If success returns pointer to texture. // Otherwise returns nullptr. static std::shared_ptr loadTexture(const std::string& filename); static std::shared_ptr loadFont(const std::string& filename); static std::shared_ptr loadSoundBuffer(const std::string& filename); }; #endif //PSEUDO3DENGINE_RESOURCEMANAGER_H