TexturList.h 2.3 KB

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