Level H Engine
ResourceManager.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <unordered_map>
4 #include "Audio.h"
5 #include "Music.h"
6 #include "Shader.h"
7 #include "Mesh.h"
8 #include "Primitives.h"
9 #include "Sprite.h"
10 
15 {
16 public:
17 
21  static void deleteResources();
22 
26  static void deleteAllMeshes();
27 
31  static void deleteAllShaders();
32 
36  static void deleteAllAudio();
37 
41  static void deleteAllMusic();
42 
46  static void deleteAllSprites();
47 
52  static void deleteMesh(std::string id) { meshes.erase(id); }
53 
58  static void deleteShader(std::string id) { shaders.erase(id); }
59 
64  static void deleteMusic(std::string id) { music.erase(id); }
65 
70  static void deleteAudio(std::string id) { audio.erase(id); }
71 
76  static void deleteSprite(std::string id) { sprites.erase(id); }
77 
82  static void stopMusic(std::string id);
83 
87  static void stopAllMusic();
88 
94  static std::string initialiseHeightmap(std::string heightmapFileName);
95 
102  static std::string initialiseHeightmap(std::string heightmapFileName, std::string textureFileName);
103 
109  static std::string initialisePrimitive(Primitives::PrimativeType primType);
110 
116  static std::string initialiseMesh(std::string objFileName);
117 
124  static std::string initialiseMesh(std::string objFileName, std::string textureFileName);
125 
132  static std::string initialiseShader(std::string vertexShaderFileName, std::string fragmentShaderFileName);
133 
139  static std::string initialiseAudio(std::string audioFileName);
140 
146  static std::string initialiseMusic(std::string musicFileName);
147 
153  static std::string initialiseSprite(std::string spriteFileName);
154 
159  static Mesh* getMesh(std::string id) { return meshes[id]; }
160 
165  static Shader* getShaders(std::string id) { return shaders[id]; }
166 
171  static Audio* getAudio(std::string id) { return audio[id]; }
172 
177  static Music* getMusic(std::string id) { return music[id]; }
178 
183  static Sprite* getSprite(std::string id) { return sprites[id]; }
184 
185 
186 private:
188  static std::unordered_map<std::string, Mesh*> meshes;
190  static std::unordered_map<std::string, Shader*> shaders;
192  static std::unordered_map<std::string, Audio*> audio;
194  static std::unordered_map<std::string, Music*> music;
196  static std::unordered_map<std::string, Sprite*> sprites;
197 };
static Shader * getShaders(std::string id)
A static function to get an shaders.
Definition: ResourceManager.h:165
Creates an object from an text file, this can then be used with OpenGL.
Definition: Mesh.h:11
static std::unordered_map< std::string, Mesh * > meshes
The loaded Mesh files.
Definition: ResourceManager.h:188
static Mesh * getMesh(std::string id)
A static function to get a mesh.
Definition: ResourceManager.h:159
static void deleteAllShaders()
A static function to delete all the shaders.
Definition: ResourceManager.cpp:31
static std::string initialiseHeightmap(std::string heightmapFileName)
A static function to initialise a heightmap.
Definition: ResourceManager.cpp:99
static void deleteAudio(std::string id)
A static function to delete the audio.
Definition: ResourceManager.h:70
static std::unordered_map< std::string, Music * > music
The loaded Music files.
Definition: ResourceManager.h:194
static void deleteSprite(std::string id)
A static function to delete the sprite.
Definition: ResourceManager.h:76
static std::string initialiseSprite(std::string spriteFileName)
A static function to initialise a sprite.
Definition: ResourceManager.cpp:227
static void deleteAllAudio()
A static function to delete all the audio.
Definition: ResourceManager.cpp:40
static void deleteAllMeshes()
A static function to delete all the meshes.
Definition: ResourceManager.cpp:22
static void deleteShader(std::string id)
A static function to delete the shader.
Definition: ResourceManager.h:58
static void deleteResources()
A static function to delete all the resources.
Definition: ResourceManager.cpp:13
static void deleteAllSprites()
A static function to delete all the sprites.
Definition: ResourceManager.cpp:58
Handles music using SDL_Mixer.
Definition: Music.h:9
static std::string initialiseShader(std::string vertexShaderFileName, std::string fragmentShaderFileName)
A static function to initialise a shader.
Definition: ResourceManager.cpp:173
Creates a Sprite for use with 2D.
Definition: Sprite.h:11
static std::unordered_map< std::string, Sprite * > sprites
The loaded Sprite files.
Definition: ResourceManager.h:196
static void stopAllMusic()
A static function to stop all music.
Definition: ResourceManager.cpp:72
static Audio * getAudio(std::string id)
A static function to get an audio.
Definition: ResourceManager.h:171
static std::string initialiseMusic(std::string musicFileName)
A static function to initialise a music file.
Definition: ResourceManager.cpp:210
static std::string initialiseMesh(std::string objFileName)
A static function to initialise a mesh without a texture.
Definition: ResourceManager.cpp:136
Creates a Shader from an text file, this can then be used with OpenGL.
Definition: Shader.h:10
static std::string initialisePrimitive(Primitives::PrimativeType primType)
A static function to initialise a primative.
Definition: ResourceManager.cpp:80
PrimativeType
Definition: Primitives.h:13
static void deleteAllMusic()
A static function to delete all the music.
Definition: ResourceManager.cpp:49
static std::unordered_map< std::string, Audio * > audio
The loaded Audio files.
Definition: ResourceManager.h:192
static void deleteMusic(std::string id)
A static function to delete the music.
Definition: ResourceManager.h:64
static Music * getMusic(std::string id)
A static function to get an music.
Definition: ResourceManager.h:177
static void stopMusic(std::string id)
A static function to stop the music.
Definition: ResourceManager.cpp:67
static std::string initialiseAudio(std::string audioFileName)
A static function to initialise an audio file.
Definition: ResourceManager.cpp:193
static void deleteMesh(std::string id)
A static function to delete the mesh.
Definition: ResourceManager.h:52
static Sprite * getSprite(std::string id)
A static function to get a sprite.
Definition: ResourceManager.h:183
Contains static variables and functions for use with resource manager.
Definition: ResourceManager.h:14
static std::unordered_map< std::string, Shader * > shaders
The loaded Shader files.
Definition: ResourceManager.h:190
Handles audio using SDL_Mixer.
Definition: Audio.h:9