glGetTexImage-Funktion

Die glGetTexImage-Funktion gibt ein Texturbild zurück.

Syntax

void WINAPI glGetTexImage(
   GLenum target,
   GLint  level,
   GLenum format,
   GLenum type,
   GLvoid *pixels
);

Parameter

Ziel

Gibt an, welche Textur abgerufen werden soll. GL_TEXTURE_1D und GL_TEXTURE_2D werden akzeptiert.

level

Die Detailanzahl des gewünschten Bilds. Ebene 0 ist die Basisimageebene. Ebene n ist das n-th-mipmap-Reduktionsbild.

format

Ein Pixelformat für die zurückgegebenen Daten. Die unterstützten Formate sind GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_RGBA, GL_LUMINANCE, GL_BGR_EXT, GL_BGRA_EXT und GL_LUMINANCE_ALPHA.

type

Ein Pixeltyp für die zurückgegebenen Daten. Die unterstützten Typen sind GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT und GL_FLOAT.

Pixel

Gibt das Texturbild zurück. Sollte ein Zeiger auf ein Array des vom Typ angegebenen Typs sein.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Fehlercodes

Die folgenden Fehlercodes können von der glGetError-Funktion abgerufen werden.

Name Bedeutung
GL_INVALID_ENUM
Target, Format oder Type war kein akzeptierter Wert.
GL_INVALID_VALUE
level ist kleiner als null oder größer als Log2 (max), wobei max der zurückgegebene Wert von GL_MAX_TEXTURE_SIZE ist.
GL_INVALID_OPERATION
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen.

Bemerkungen

Die funktion glGetTexImage gibt ein Texturbild in Pixel zurück. Der Zielparameter gibt an, ob das gewünschte Texturbild von glTexImage1D(GL_TEXTURE_1D) oder glTexImage2D(GL_TEXTURE_2D) angegeben ist. Der Level-Parameter gibt die Detailgradnummer des gewünschten Bilds an. Die Format- und Typparameter geben das Format und den Typ des gewünschten Bildarrays an. Eine Beschreibung der zulässigen Werte für die Format - und Typparameter finden Sie unter glTexImage1D und glDrawPixels.

Die Funktionsweise von glGetTexImage lässt sich am besten verstehen, indem man das ausgewählte interne Texturbild mit vier Komponenten als RGBA-Farbpuffer für die Größe des Bilds betrachtet. Die Semantik von glGetTexImage ist dann identisch mit der von glReadPixels , die mit demselben Format und Typ bezeichnet werden, wobei x und y auf Null festgelegt sind, die Breite auf die Breite des Texturbilds festgelegt ist (einschließlich Rahmen, falls eins angegeben wurde), und die Höhe für 1D-Bilder oder die Höhe des Texturbilds (einschließlich Rahmen, , wenn einer angegeben wurde) für 2D-Bilder.

Da es sich bei dem internen Texturbild um ein RGBA-Bild handelt, werden Pixelformate GL_COLOR_INDEX, GL_STENCIL_INDEX und GL_DEPTH_COMPONENT nicht akzeptiert, und der Pixeltyp GL_BITMAP wird nicht akzeptiert.

Wenn das ausgewählte Texturbild keine vier Komponenten enthält, werden die folgenden Zuordnungen angewendet. Einkomponententexturen werden als RGBA-Puffer behandelt, wobei rot auf den Einzelkomponentenwert festgelegt ist und grün, blau und alpha auf null festgelegt ist.

Zwei-Komponenten-Texturen werden als RGBA-Puffer behandelt, wobei Rot auf den Wert von Komponente null, Alpha auf den Wert von Komponente 1 und Grün und Blau auf 0 festgelegt ist. Schließlich werden Drei-Komponenten-Texturen als RGBA-Puffer behandelt, wobei rot auf Komponente 0, Grün auf Komponente 1, Blau auf Komponente 2 und Alpha auf 0 festgelegt ist.

Um die erforderliche Pixelgröße zu bestimmen, verwenden Sie glGetTexLevelParameter , um die Dimensionen des internen Texturbilds zu ermitteln, und skalieren Sie dann die erforderliche Anzahl von Pixeln anhand des für jedes Pixel erforderlichen Speichers, basierend auf Format und Typ. Achten Sie darauf, die Pixelspeicherparameter zu berücksichtigen, insbesondere GL_PACK_ALIGNMENT.

Wenn ein Fehler generiert wird, wird keine Änderung am Inhalt von Pixeln vorgenommen.

Die folgenden Funktionen rufen Informationen im Zusammenhang mit glGetTexImage ab:

glGet with argument GL_PACK_ALIGNMENT and others

glGetTexLevelParameter mit Argument GL_TEXTURE_WIDTH

glGetTexLevelParameter mit Argument GL_TEXTURE_HEIGHT

glGetTexLevelParameter mit Argument GL_TEXTURE_BORDER

glGetTexLevelParameter mit argument GL_TEXTURE_COMPONENTS

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Gl.h
Bibliothek
Opengl32.lib
DLL
Opengl32.dll

Weitere Informationen

glBegin

glDrawPixels

glEnd

glGetTexLevelParameter

glReadPixels

glTexImage1D

glTexImage2D