2013-01-25 2 views
6

glTexImage2D Funktion nimmt einen Zeiger auf die Bilddaten. Jetzt, nachdem ich glGenTextures genannt haben, glBindTexture und dann glTexImage2Dkann ich den nach dem Aufruf von glTexImage2D zugewiesenen Speicher freigeben?

Textur in OpenGL-Modus zu verwenden. Kann ich den Speicher freigeben, der den Bilddaten ptr zugewiesen ist? oder opengl Kopiert die Daten vom Zeiger hält es in GPU nach Aufruf an glTexImage2D oder es verwendet meine Bilddaten für die Textur?

Antwort

11

Ja, Sie können Ihren Informationszeiger sicher löschen, sobald Sie ihn an glTexImage2D übergeben, er wird ihn einfach an einen Ort kopieren, der näher an der Karte liegt (z. B. Grafikkartenspeicher) und von dort verwenden.

int *p = getImagePixels(); 

glTexImage2D(GL_TEXTURE..., p); 

delete [] p; 
1

Eine Diskussion über die Freigabe von glTexImage2D finden Sie unter this similar question. Es scheint aber, dass du das kannst.

Verwandte Themen