TexturList.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #pragma once
  2. #include "Array.h"
  3. #include "Critical.h"
  4. namespace Framework
  5. {
  6. class Textur; //! Textur.h
  7. //! Verwaltet alle geladenen Texturdaten, so dass mehrere Zeichnungen die
  8. //! selben Daten benutzen können
  9. class TexturList : public virtual ReferenceCounter
  10. {
  11. private:
  12. static int id;
  13. static Critical cs;
  14. RCArray<Textur>* textures;
  15. RCArray<Text>* names;
  16. public:
  17. //! Konstruktor
  18. TexturList();
  19. //! Destruktor
  20. ~TexturList();
  21. //! Löscht alle Texturen
  22. DLLEXPORT void leeren();
  23. //! Fügt der Liste eine Textur hinzu
  24. //! \param t Die Textur
  25. //! \param name Der name, unter dem die Textur in der Liste gespeichert
  26. //! wird
  27. DLLEXPORT bool addTextur(Textur* t, const char* name);
  28. //! Entfernt eine Textur aus der Liste
  29. //! \param name Der Name der Textur
  30. DLLEXPORT void removeTextur(const char* name);
  31. //! Überprüft, ob unter einem bestimmten Namen eine Textur abgespeichert
  32. //! wurde \param name Der Name \return true, wenn eine Textur mit dem
  33. //! Namen existiert
  34. DLLEXPORT bool hatTextur(const char* name) const;
  35. //! Gibt eine bestimmte Textur zurück
  36. //! \param name Der Name der Textur
  37. DLLEXPORT Textur* getTextur(const char* name) const;
  38. //! Gibt eine bestimmte Textur zurück
  39. //! \param id Die Id der Textur
  40. DLLEXPORT Textur* getTextur(int id) const;
  41. //! Gibt eine bestimmte Textur ohne erhöhten Reference Counter zurück
  42. //! \param name Der Name der Textur
  43. DLLEXPORT Textur* zTextur(const char* name) const;
  44. //! Gibt eine bestimmte Textur ohne erhöhten Reference Counter zurück
  45. //! \param id Die Id der Textur
  46. DLLEXPORT Textur* zTextur(int id) const;
  47. //! Initialisiert statische private member. Wird vom Framework
  48. //! automatisch aufgerufen.
  49. static void init();
  50. //! Löscht statische private member. Wird vom Framework automatisch
  51. //! aufgerufen.
  52. static void destroy();
  53. };
  54. } // namespace Framework