TexturList.h 2.3 KB

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