Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
idontknow
unregistriert
C-/C++-Quelltext |
|
1 |
std::list<LoadedTexture> textureList; |
C-/C++-Quelltext |
|
1 2 |
std::list<std::auto_ptr<LoadedTexture>> textureList; textureList.push_back(std::auto_ptr<LoadedTexture>(new LoadedTexture())); |
Also bevor ich hier wieder gelehrt bekomme, dass Singletons böse sind frag ich lieber
Ist es schlimm wenn ich meinen Texturen Manager als Singleton implementiere?
Funktionen wären dann: Load, Unload, GarbageCollector etc.
Und die andere Frage: Ich hae für eine Textur eine Struktur erstellt:
C-/C++-Quelltext
1 2 3 4 5 6 struct LoadedTexture { unsigned int refCounter; IDirect3DTexture9* texture, std::string filename; };
kostet es leistung wenn ich die Instanzen der Struktur nicht per "new" erzeuge und dann in die Liste eintrage?
idontknow
unregistriert
Kaum einer wird ein Spiel machen dass sonderlich viele Ressourcen verwednet die gleichzeitig viel Speicher brauchen
Von überall kann man eben nicht darauf zugreifen, die Load, Unload funktionen sind private.
Im Fall des TexturenManagers ist z.B. die Sprite-klasse als friend definiert.
2 Manager werd ich nicht brauchen, da für 2D im meinem Fall nur textured quads benutzt werden, sprich nur texturen.
Wenn es mehere Manager gäbe(kein Singleton) besteht doch immer die Gefahr, dass eine Textur 2, 3 oder mehr mals geladen wird.
Dann kann ich den auch einfach ganz weg lassen.
Speicherlecks sind theroretisch auch ausgeschlossen, da wenn z.B. ein Sprite-objekt zerstört wird die textur entladen bzw. der referenceCounter subtrahiert.
Werbeanzeige