glGetCompressedTexImage
Inhaltsverzeichnis
glGetCompressedTexImage
Name
glGetCompressedTexImage - liefert ein komprimiertes Texturbild zurück.
Delphi-Spezifikation
procedure glGetCompressedTexImage(target: TGLenum; level: TGLint; img: PGLvoid);
Parameter
target | Gibt die Zieltextur an, welche zurückgeliefert werden soll. GL_TEXTURE_1D, GL_TEXTURE_2D und GL_TEXTURE_3D werden akzeptiert. Für Cubemaps sind ausserdem die symbolischen Konstanten GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z und GL_TEXTURE_CUBE_MAP_NEGATIVE_Z erlaubt. |
---|---|
level | Gibt den Detailgrad für das gewünschte Bild an. Level 0 ist das Basisbild. Level n ist die n-te Mipmap-Reduzierung des Bildes. |
img | Zeiger auf Speicher, in den die komprimierten Texturdaten geladen werden sollen. |
Beschreibung
glGetCompressedTexImage liefert das aktuelle Texturbild über img zurück. Wenn Texturobjekte verwendet werden, so ist es diejenige Textur, welche zuletzt mit glBindTexture aktiviert wurde.
target bestimmt, ob die gewünschte Textur via glCompressedTexImage1D(GL_TEXTURE_1D), glCompressedTexImage2D (GL_TEXTURE_2D, oder glCompressedTexImage3D(GL_TEXTURE_3D) erstellt wurde. Zusätzlich ist es möglich Cubemap-Texturen, die mit glCompressedTexImage2D(GL_CUBE_MAP_*) geladen wurden, zurückzuholen.
level gibt den Detailsgrad (LOD - Level of Detail) für das gewünschte Bild an. Das Format der zurückgelieferten Textur entspricht dem komprimierten Format, das an die Textur beim Laden angegeben wurde. Es kann mit glGetTexLevelParameteriv und dem Parameter GL_TEXTURE_INTERNAL_FORMAT abgefragt werden.
Um genügend Speicher für das Feld (img) zu allokieren, kann mit der Funktion glGetTexLevelParameter und dem Parameter GL_TEXTURE_COMPRESSED_IMAGE_SIZE die benötigte Byteanzahl bestimmt werden.
Hinweise
glGetCompressedTexImage ist erst ab OpenGL Version 1.3 oder höher nutzbar.
Die Befehle glPixelTransfer und glPixelStore werden beim Aufruf von glGetCompressedTexImage komplett ignoriert.
Wenn während der Ausführung der Funktion ein Fehler ausgelöst wird, werden keine Veränderungen am Inhalt von img durchgeführt.
Fehlermeldungen
GL_INVALID_ENUM wird generiert, wenn target ein ungültiger Wert übergeben wurde.
GL_INVALID_VALUE wird generiert, wenn level kleiner 0 oder größer ld(max) ist, wobei max der Rückgabewert von GL_MAX_TEXTURE_SIZE ist (ld = Logarithmus Dualis = Basis 2).
GL_INVALID_OPERATION wird generiert, wenn glGetCompressedTexImage innerhalb eines glBegin-glEnd-Blocks aufgerufen wird.
GL_INVALID_OPERATION wird generiert, wenn das interne Format der Textur kein Komprimierungsformat war.
Zugehörige Wertrückgaben
glGetTexLevelParameter mit Token GL_TEXTURE_COMPRESSED_IMAGE_SIZE
glGetTexLevelParameter mit Token GL_TEXTURE_INTERNAL_FORMAT
Siehe auch
glCompressedTexImage1D, glCompressedTexImage2D, glCompressedTexImage3D, glCompressedTexSubImage1D, glCompressedTexSubImage2D, glCompressedTexSubImage3D, glGetTexImage, glGetTexLevelParameter, glTexParameter