Hallo Spieleprogrammierer!
Leider hat sich in meinen Code ein "Memory Leak" eingeschlichen. Gefunden habe ich es denke ich schon, nur wie ich es beheben kann, das ist eine andere Sache....
Ich habe in meinem kleinen Spielchen ein paar Texte, die dauerhaft aktualisiert werden (Stoppuhr etc.).
Zum Festlegen des Textes verwende ich die SDL_Funktion:
|
C-/C++-Quelltext
|
1
|
SDL_Surface* Text = TTF_RenderText_Blended(font, sText.c_str (), textColor); SDL_BlitSurface (Text, 0, Screen, &TextPosition);
|
Wobei sich sText.c_str () dauerhaft ändert da diese Funktion in einer while-Schleife immer wieder aufgerufen wird.
Nun habe ich in meinem Destruktor der Klasse Text (diese Klasse rufe ich immer wenn Texte benötigt werden auf) auch stehen:
|
C-/C++-Quelltext
|
1
|
TTF_CloseFont(font); SDL_FreeSurface (Text); SDL_FreeSurface (Screen);
|
Das Problem müsste glaube ich bei font liegen. Ich denke, dass ich da nach jedem mal ändern des Textes (s.Text.c_str ()) Speicher wieder freigeben müsste...
Den ganzen Code brauche ich glaube ich nicht posten, da dieser vollkommen unübersichtlich und 3000000 Seiten lang wäre...
Vielleicht ist der Fehler ja in diesen paar Zeilen...