Bezeichnung
gl.GetTexImage -- gibt ein Texturbild zurück
Übersicht
pixelsArray = gl.GetTexImage(target, level, format)
Beschreibung
gl.GetTexImage() gibt die Pixel eines Texturbildes zurück. Eindimensionale Texturen werden in einer eindimensionalen Tabelle zurückgegeben, während zweidimensionale Texturen in einer Tabelle zurückgegeben werden, die Untertabellen für alle Zeilen der Textur enthält. Die Pixel werden als Werte vom Typ #GL_FLOAT zurückgegeben. target gibt an, ob das gewünschte Texturbild eines ist, das durch gl.TexImage1D() (#GL_TEXTURE_1D) oder gl.TexImage2D() (#GL_TEXTURE_2D) angegeben wird. level gibt die Detaillierungsstufe des gewünschten Bildes an. format gibt das Format des gewünschten Bildfeldes an. Siehe gl.TexImage2D für eine Beschreibung der zulässigen Werte für den Formatparameter..

Um die Funktionsweise von gl.GetTexImage() zu verstehen, betrachten Sie das ausgewählte interne Vierkomponenten-Texturbild als einen RGBA-Farbpuffer in der Größe des Bildes. Die Semantik von gl.GetTexImage() ist dann identisch mit gl.ReadPixels(), mit der Ausnahme, dass keine Pixelübertragungsoperationen durchgeführt werden, wenn sie mit dem gleichen Format und Typ aufgerufen werden, wobei x und y auf 0 gesetzt sind, die Breite auf die Breite des Texturbildes (einschließlich Rand, wenn einer angegeben wurde) und die Höhe auf 1 für 1D-Bilder oder auf die Höhe des Texturbildes (einschließlich Rand, wenn einer angegeben wurde) für 2D-Bilder eingestellt ist. Da das interne Texturbild ein RGBA-Bild ist, werden die Pixelformate #GL_COLOR_INDEX, #GL_STENCIL_INDEX und #GL_DEPTH_COMPONENT sowie der Pixeltyp #GL_BITMAP nicht akzeptiert.

Wenn das ausgewählte Texturbild keine vier Komponenten enthält, werden die folgenden Zuordnungen angewendet: Einkomponenten-Texturen werden als RGBA-Puffer mit Rot auf den Einkomponentenwert, Grün auf 0, Blau auf 0 und Alpha auf 1 gesetzt. Zweikomponenten-Texturen werden als RGBA-Puffer mit Rot auf den Wert der Komponente 0, Alpha auf den Wert der Komponente 1 und Grün und Blau auf 0 gesetzt. 3-Komponenten-Texturen werden schließlich als RGBA-Puffer mit Rot auf Komponente 0, Grün auf Komponente 1, Blau auf Komponente 2 und Alpha auf 1 gesetzt.

Wenn Sie eine fein abgestimmte Kontrolle über den Pixeltyp haben möchten oder wenn Sie wollen, dass die Pixel in einen Speicherpuffer anstelle einer Tabelle geschrieben werden, können Sie den Befehl gl.GetTexImageRaw() verwenden.

Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.

Eingaben
target
gibt an, welche Textur erhalten werden soll (muss #GL_TEXTURE_1D oder #GL_TEXTURE_2D sein)
level
gibt die Detaillierungsstufe des gewünschten Bildes an; Stufe 0 ist die Basis-Bildebene; Stufe n ist das n-te Mipmap-Reduktionsbild
format
gibt ein Pixelformat für die zurückgegebenen Daten an; die unterstützten Formate sind #GL_RED, #GL_GREEN, #GL_BLUE, #GL_ALPHA, #GL_RGB, #GL_RGBA, #GL_LUMINANCE und #GL_LUMINANCE_ALPHA
Rückgabewerte
pixelsArray
Tabelle mit den Rohpixeln
Fehler
#GL_INVALID_ENUM wird erzeugt, wenn target oder format kein akzeptierter Wert ist.

#GL_INVALID_VALUE wird erzeugt, wenn level kleiner als Null oder größer als ld(max) ist, wobei max der Rückgabewert von #GL_MAX_TEXTURE_SIZE ist.

#GL_INVALID_OPERATION wird erzeugt, wenn gl.GetTexImage() zwischen gl.Begin() und gl.End() ausgeführt wird.

Verbundene get-operationen
gl.GetTexLevelParameter() mit dem Argument #GL_TEXTURE_WIDTH

gl.GetTexLevelParameter() mit dem Argument #GL_TEXTURE_HEIGHT

gl.GetTexLevelParameter() mit dem Argument #GL_TEXTURE_BORDER

gl.GetTexLevelParameter() mit dem Argument #GL_TEXTURE_COMPONENTS

gl.Get() mit dem Argumente #GL_PACK_ALIGNMENT und andere


Navigation zeigen