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 |
---|---|
|
Target, Format oder Type war kein akzeptierter Wert. |
|
level ist kleiner als null oder größer als Log2 (max), wobei max der zurückgegebene Wert von GL_MAX_TEXTURE_SIZE ist. |
|
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 |
|
Bibliothek |
|
DLL |
|