Permettre au gest. de ressources de renvoyer des images
This commit is contained in:
		
							parent
							
								
									18553ce385
								
							
						
					
					
						commit
						f1c0d67b32
					
				|  | @ -20,14 +20,15 @@ private: | |||
|     bool preloaded; | ||||
| 
 | ||||
|     boost::filesystem::path textures_path; | ||||
|     std::unordered_map<std::string, std::unique_ptr<sf::Texture>> textures; | ||||
|     boost::filesystem::path fonts_path; | ||||
|     std::unordered_map<std::string, std::unique_ptr<sf::Font>> fonts; | ||||
| 
 | ||||
|     boost::filesystem::path levels_path; | ||||
| 
 | ||||
|     boost::filesystem::path musics_path; | ||||
| 
 | ||||
|     std::unordered_map<std::string, std::unique_ptr<sf::Image>> images; | ||||
|     std::unordered_map<std::string, std::unique_ptr<sf::Texture>> textures; | ||||
|     std::unordered_map<std::string, std::unique_ptr<sf::Font>> fonts; | ||||
|     sf::Music music; | ||||
| 
 | ||||
|     float music_volume; | ||||
|     bool playing_state; | ||||
|     std::string current_music; | ||||
|  | @ -40,6 +41,11 @@ public: | |||
|      */ | ||||
|     void preload(); | ||||
| 
 | ||||
|     /**
 | ||||
|      * Récupère une image préchargée | ||||
|      */ | ||||
|     sf::Image& getImage(std::string name); | ||||
| 
 | ||||
|     /**
 | ||||
|      * Récupère une texture préchargée | ||||
|      */ | ||||
|  |  | |||
|  | @ -29,16 +29,27 @@ void ResourceManager::preload() { | |||
|             std::string full_path = boost::filesystem::canonical(it->path()).string(); | ||||
|             std::string name = it->path().filename().string(); | ||||
| 
 | ||||
|             auto image = std::unique_ptr<sf::Image>(new sf::Image); | ||||
|             auto texture = std::unique_ptr<sf::Texture>(new sf::Texture); | ||||
|             texture->setSmooth(true); | ||||
|             std::cout << "Chargement de la texture " << name << "... "; | ||||
| 
 | ||||
|             if (!texture->loadFromFile(full_path)) { | ||||
|             std::cout << "Chargement de l'image " << name << "... "; | ||||
| 
 | ||||
|             if (!image->loadFromFile(full_path)) { | ||||
|                 std::cerr << "ERREUR!" << std::endl; | ||||
|             } else { | ||||
|                 std::cout << "OK!" << std::endl; | ||||
|             } | ||||
| 
 | ||||
|             std::cout << "Mise en mémoire de la texture " << name << "... "; | ||||
| 
 | ||||
|             if (!texture->loadFromImage(*image)) { | ||||
|                 std::cerr << "ERREUR!" << std::endl; | ||||
|             } else { | ||||
|                 std::cout << "OK!" << std::endl; | ||||
|             } | ||||
| 
 | ||||
|             images[name] = std::move(image); | ||||
|             textures[name] = std::move(texture); | ||||
|         } | ||||
|     } | ||||
|  | @ -65,10 +76,20 @@ void ResourceManager::preload() { | |||
|     preloaded = true; | ||||
| } | ||||
| 
 | ||||
| sf::Image& ResourceManager::getImage(std::string name) { | ||||
|     if (images.count(name) == 0) { | ||||
|         throw std::runtime_error( | ||||
|             "Impossible de récupérer l'image inexistante : " + name | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|     return *images[name]; | ||||
| } | ||||
| 
 | ||||
| sf::Texture& ResourceManager::getTexture(std::string name) { | ||||
|     if (textures.count(name) == 0) { | ||||
|         throw std::runtime_error( | ||||
|             "Impossible de charger la texture inexistante : " + name | ||||
|             "Impossible de récupérer la texture inexistante : " + name | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|  | @ -78,7 +99,7 @@ sf::Texture& ResourceManager::getTexture(std::string name) { | |||
| sf::Font& ResourceManager::getFont(std::string name) { | ||||
|     if (fonts.count(name) == 0) { | ||||
|         throw std::runtime_error( | ||||
|             "Impossible de charger la police inexistante : " + name | ||||
|             "Impossible de récupérer la police inexistante : " + name | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue