TexturLoader.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #include "TexturLoader.h"
  2. TexturLoader::TexturLoader() : m_folder("")
  3. {
  4. // Constructeur par défaut
  5. }
  6. TexturLoader::TexturLoader(std::string folder) : m_folder(folder)
  7. {
  8. // Constructeur avec implémentation du dossier cible
  9. }
  10. TexturLoader::~TexturLoader()
  11. {
  12. for( m_it = m_paquet.begin(); m_it != m_paquet.end(); m_it++ )
  13. {
  14. delete m_it->second;
  15. m_it->second = 0x0;
  16. }
  17. }
  18. GLuint TexturLoader::take(std::string nom)
  19. {
  20. // Cherche la texture dans le tableau
  21. m_it = m_paquet.find(nom);
  22. // Si la texture est déjà chargée, on la donne
  23. if (m_it != m_paquet.end())
  24. return m_it->second->getID();
  25. // Sinon on la charge
  26. else
  27. {
  28. m_paquet[nom] = new Texture(m_folder + nom + ".bmp");
  29. return m_paquet[nom]->getID();
  30. }
  31. }
  32. void TexturLoader::addTextur(std::string nom, Texture* sampler)
  33. {
  34. m_it = m_paquet.find(nom);
  35. if (m_it == m_paquet.end())
  36. {
  37. m_paquet[nom] = sampler;
  38. return;
  39. }
  40. else
  41. {
  42. std::cout << "Attention ! La texture " <<nom<< " a déjà une surface associée. Destruction de la nouvelle surface." << std::endl;
  43. delete sampler;
  44. }
  45. }
  46. void TexturLoader::assignFolder(std::string folder)
  47. {
  48. m_folder = folder;
  49. }