glGetCompressedTexImage: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(neu erstellt)
 
K (Ausserdem -> Außerdem)
 
(3 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= glGetCompressedTexImage =
 
= glGetCompressedTexImage =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
 
'''glGetCompressedTexImage''' - liefert ein komprimiertes Texturbild zurück.
 
'''glGetCompressedTexImage''' - liefert ein komprimiertes Texturbild zurück.
  
<br>
+
 
 +
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
 
  procedure '''glGetCompressedTexImage'''(''target'': TGLenum; ''level'': TGLint;
 
  procedure '''glGetCompressedTexImage'''(''target'': TGLenum; ''level'': TGLint;
 
                                   ''img'': PGLvoid);
 
                                   ''img'': PGLvoid);
  
<br>
+
 
 +
 
 
== Parameter ==
 
== Parameter ==
 
{| border="1" rules="all"
 
{| border="1" rules="all"
 
! ''target''
 
! ''target''
 
| Gibt die Zieltextur an, welche zurückgeliefert werden soll. '''GL_TEXTURE_1D''', '''GL_TEXTURE_2D''' und '''GL_TEXTURE_3D''' werden akzeptiert.<br>
 
| Gibt die Zieltextur an, welche zurückgeliefert werden soll. '''GL_TEXTURE_1D''', '''GL_TEXTURE_2D''' und '''GL_TEXTURE_3D''' werden akzeptiert.<br>
Für [[Cubemap|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.  
+
Für [[Cubemap|Cubemaps]] sind außerdem 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''
 
! ''level''
Zeile 25: Zeile 28:
 
|}
 
|}
  
<br>
+
 
 +
 
  
 
== Beschreibung ==  
 
== Beschreibung ==  
Zeile 38: Zeile 42:
 
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.
 
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.
  
<br>
+
 
 +
 
 
== Hinweise ==
 
== Hinweise ==
 
'''glGetCompressedTexImage''' ist erst ab OpenGL Version 1.3 oder höher nutzbar.
 
'''glGetCompressedTexImage''' ist erst ab OpenGL Version 1.3 oder höher nutzbar.
Zeile 46: Zeile 51:
 
Wenn während der Ausführung der Funktion ein Fehler ausgelöst wird, werden keine Veränderungen am Inhalt von ''img'' durchgeführt.
 
Wenn während der Ausführung der Funktion ein Fehler ausgelöst wird, werden keine Veränderungen am Inhalt von ''img'' durchgeführt.
  
<br>
+
 
 +
 
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
'''GL_INVALID_ENUM''' wird generiert, wenn ''taget'' ein ungültiger Wert übergeben wurde.<br>
+
'''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) <br>
+
 
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glGetCompressedTexImage''' innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird.<br>
+
'''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 das interne Format der Textur kein Komprimierungsformat war.<br>
+
 
 +
'''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.
 +
 
 +
 
  
<br>
 
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
[[glGetTexLevelParameter]] mit Token '''GL_TEXTURE_COMPRESSED_IMAGE_SIZE'''<br>
+
[[glGetTexLevelParameter]] mit Token '''GL_TEXTURE_COMPRESSED_IMAGE_SIZE'''
[[glGetTexLevelParameter]] mit Token '''GL_TEXTURE_INTERNAL_FORMAT'''<br>
+
 
<br>
+
[[glGetTexLevelParameter]] mit Token '''GL_TEXTURE_INTERNAL_FORMAT'''
 +
 
 +
 
  
 
== Siehe auch ==
 
== Siehe auch ==
Zeile 63: Zeile 75:
  
 
[[Kategorie:GL|GetCompressedTexImage]]
 
[[Kategorie:GL|GetCompressedTexImage]]
 +
[[Kategorie:GL1.3|GetCompressedTexImage]]

Aktuelle Version vom 21. März 2012, 15:57 Uhr

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 außerdem 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