TexturList.h 2.0 KB

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