Ich habe zur Zeit die Variable <Bild>, ein TglBitmap2D-Objekt, in das ich nacheinander verschiedene Bilder reinlade:
Code:
Bild := TglBitmap2D.Create;
.
.
.
Bild.LoadFromFile(Bild);
Bild.AssignToBitmap(bmp);
Bild.AssignFromBitmap(bmp);
Bild.GenTexture(False);
Bild.Bind;
.
.
.
Bild.Free;
Die mittleren 5 Schritte wiederhole ich beliebig oft. Über das alte Bild wird dann einfach ein neues "darübergeleaden". Mein Problem ist jetzt aber, dass das den Speicherbedarf immer mehr in die höhe jagt. Je öfter ich diese Schritte wiederhole, desto mehr Speicher benötigt mein Programm...
Ich weiß aber nicht, was ich dagegen tun kann. Ich habe schon <Bild.UnBind> probiert, aber das hilft nichts. Ich würde gerne das Bild wieder löschen, aber dazu habe ich keinen Befehl gefunden.
Kann mir da jemand weiterhelfen? Wie könnte ich das Bild wieder freigeben, so dass ich ein neues Bild reinladen kann?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Hallo Simon,
per default wird der Speicher des Bildes in GenTexture wieder frei gegeben. Es gibt eine Eigenschaft FreeDataAfterGenTexture mit der kann dieses verhalten auch unterdrückt werden. Normal ist es aber per default so, dass der Speicher wieder gelöscht wird. Die OpenGL Textur wieder löschen geht allerdings nur in dem die Klasse frei gibst oder per Hand glDeleteTextures mit der ID. Aber davon kann ich nur abraten. Aber sobald GenTexture erneut aufgerufen wird und die OpenGL Textur schon existieren sollte wird diese natürlich frei gegeben.
Sonst wüsste ich jetzt so spontan nicht wo der Speicher verlohren geht. Ich würde evtl auch mal genau das BMP betrachten. Ansonsten werde ich auch morgen früh mal meinen Code anschauen ob ich da evtl etwas vergessen habe. Falls dem nicht der Fall ist bräuchte ich auch etwas mehr Code. Also von dem Drumherum.
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.