Einzelnen Beitrag anzeigen

Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#12

Re: glDeleteTextures gibt Speicher nicht frei

  Alt 16. Jul 2008, 23:19
Ich glaube ja [immer noch], dass es nicht an glDeleteTextures liegt, sondern dass du beim Laden irgendwas nicht wieder freigibst. Mach mal folgendes: du hast doch sicherlich eine Funktion in der Art LoadCoverFromFile(...) (oder so). Jetzt schreibst du folgende Methode hinein:

Delphi-Quellcode:
procedure CreateTempTexture(var Target: cardinal);
var pTexData: Pointer;
begin
  GetMem(pTexData, 512*512*3);
 
  // Textur generieren und drauf zeigen
  glGenTextures(1, @Target);
  glBindTexture(GL_TEXTURE_2D, Target);
 
  // Daten in den Speicher, Lineares Filtering aktivieren
  glTexImage2D(GL_TEXTURE_2D, 0, 3, 512, 512, 0, GL_RGB, GL_UNSIGNED_BYTE, pTexData);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
 
  // Freigeben
  FreeMem(pTexData);
end;
Jetzt rufst du anstatt deiner LoadCoverFromFile diese Funktion auf (vielleicht noch etwas anpassen!). Wenn dann der Speicher immernoch nicht wieder freigeräumt wird mit der glDeleteTextures - Methode, kann ich von hier auch nicht mehr groß helfen - ich hab dann überhaupt keine Ahnung woran es dann liegt.
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat