#pragma once #include "Array.h" #include "Critical.h" namespace Framework { class Textur; //! Textur.h //! Verwaltet alle geladenen Texturdaten, so dass mehrere Zeichnungen die selben Daten benutzen können class TexturList : public virtual ReferenceCounter { private: static int id; static Critical cs; RCArray< Textur > *textures; RCArray< Text > *names; public: //! Konstruktor TexturList(); //! Destruktor ~TexturList(); //! Löscht alle Texturen DLLEXPORT void leeren(); //! Fügt der Liste eine Textur hinzu //! \param t Die Textur //! \param name Der name, unter dem die Textur in der Liste gespeichert wird DLLEXPORT bool addTextur( Textur *t, const char *name ); //! Entfernt eine Textur aus der Liste //! \param name Der Name der Textur DLLEXPORT void removeTextur( const char *name ); //! Überprüft, ob unter einem bestimmten Namen eine Textur abgespeichert wurde //! \param name Der Name //! \return true, wenn eine Textur mit dem Namen existiert DLLEXPORT bool hatTextur( const char *name ) const; //! Gibt eine bestimmte Textur zurück //! \param name Der Name der Textur DLLEXPORT Textur *getTextur( const char *name ) const; //! Gibt eine bestimmte Textur zurück //! \param id Die Id der Textur DLLEXPORT Textur *getTextur( int id ) const; //! Gibt eine bestimmte Textur ohne erhöhten Reference Counter zurück //! \param name Der Name der Textur DLLEXPORT Textur *zTextur( const char *name ) const; //! Gibt eine bestimmte Textur ohne erhöhten Reference Counter zurück //! \param id Die Id der Textur DLLEXPORT Textur *zTextur( int id ) const; //! Initialisiert statische private member. Wird vom Framework automatisch aufgerufen. static void init(); //! Löscht statische private member. Wird vom Framework automatisch aufgerufen. static void destroy(); }; }