2009-03-11 3 views

Antwort

2

Ja.
binden Sie es erneut und rufen Sie glGetTexImage()
Wenn Sie nicht mit der Textur, die derzeit gebunden ist, wollen, können Sie es an eine andere Textureinheit binden. Eine Textureinheit ist ein Container, der eine gebundene Textur enthält. Sie können eine Textur an jede Textureinheit gebunden haben. OpenGL 2.1 erfordert, dass eine Implementierung mindestens zwei Textureinheiten hat. Die Standard-Textureinheit, die Sie regelmäßig verwenden ist Einheit 0 den aktuellen Textureinheit Anruf wechseln glActiveTexture():

glActiveTexture(GL_TEXTURE1); 
glBindTexture(texid); 
glGetTexImage(...); 
glActiveTexture(GL_TEXTURE0); // don't forget to switch it back 
+0

IMO ein konsequenter Weg zu ‚not mess‘ die zur Zeit gebunden Textur ist glPushAttrib oder glGet mit GL_TEXTURE_BINDING_2D zu verwenden Bewahren Sie es bei Bedarf auf. Das Umschalten und Zerlegen der Einheit 1 ist so beliebig wie die Messeinheit 0 ... – rotoglup