glGetTexLevelParameter

Aus DGL Wiki
Wechseln zu: Navigation, Suche

glGetTexLevelParameter

Name

glGetTexLevelParameter - liefert Eigenschaften von Texturen für bestimmte Detailstufen (LOD = Level Of Detail).


Delphi-Spezifikation

procedure glGetTexLevelParameterfv(target: TGLenum; level: TGLint; pname: TGLenum; params: PGLfloat);
procedure glGetTexLevelParameteriv(target: TGLenum; level: TGLint; pname: TGLenum; params: PGLint);


Parameter

target Bestimmt den symbolischen Namen für die Zieltextur. target kann GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, oder GL_PROXY_TEXTURE_3D sein.
level Bestimmt den Detailgrad für das gewünschte Bild. Level 0 ist dabei das Ausgangsbild. Level n ist die n-te Mipmap Reduktion des Bildes.
pname Ist der symbolische Name des abzufragenden Texturparameters. Akzeptiert werden:
GL_TEXTURE_WIDTH, GL_TEXTURE_HEIGHT, GL_TEXTURE_DEPTH, GL_TEXTURE_INTERNAL_FORMAT, GL_TEXTURE_BORDER, GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_LUMINANCE_SIZE und GL_TEXTURE_INTENSITY_SIZE.
params Enthält die abgefragten Daten.



Beschreibung

glGetTexLevelParameter liefert über params die Werte der Textureigenschaften bei einem bestimmten Detailgrad der über level spezifiziert wurde. target definiert welcher Texturtyp abgefragt werden soll. Dieser kann GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, oder GL_PROXY_TEXTURE_3D sein. pname definiert schlußendlich die Eigenschaft der Textur deren Werte abgefragt werden sollen.

GL_MAX_TEXTURE_SIZE ist allerdings nicht wirklich brauchbar. Es (muss laut Spezifikation) die maximale Größe einer quadratischen Textur mit Mipmaps und Rändern zurückliefern, allerdings kann es sein dass lange, aber kaum breite Texturen, oder Texturen ohne Mipmaps und Rand trotzdem in den Videospeicher passen, auch wenn eine ihrere Dimensionen größer ist als zurückgeliefert. Proxy-Ziele geben dem Nutzer eine genauere Möglichkeit, abzufragen ob die GL eine Textur mit gegebener Konfiguration unterbringen kann. Wenn die Textur nicht mehr untergebracht werden kann, dann werden alle Texturenstatus-variablen (die mit glGetTexLevelParameter abgefragt werden können) auf 0 gesetzt. Wenn die Textur jedoch untergebracht werden kann, werden diese so gesetzt als ob sie von einem nicht-Proxy-Ziel aufgerufen worden wären.

Folgende Werte können dabei pname übergeben werden:

GL_TEXTURE_WIDTH

params liefert einen einzelnen Wert, der die Breite der Textur inklusive Rand repräsentiert.
Der Initialzustand ist 0.

GL_TEXTURE_HEIGHT

params liefert einen einzelnen Wert, der die Höhe der Textur inklusive Rand repräsentiert.
Der Initialzustand ist 0.

GL_TEXTURE_DEPTH

params liefert einen einzelnen Wert, der die Höhe der Textur inklusive Rand repräsentiert.
Der Initialzustand ist 0.

GL_TEXTURE_INTERNAL_FORMAT

params liefert einen einzelnen Wert, der das interne Format der Textur repräsentiert.

GL_TEXTURE_BORDER

params liefert einen einzelnen Wert, der die Breite des Randes in Pixel repräsentiert.

GL_TEXTURE_RED_SIZE,
GL_TEXTURE_GREEN_SIZE,
GL_TEXTURE_BLUE_SIZE,
GL_TEXTURE_ALPHA_SIZE,
GL_TEXTURE_LUMINANCE_SIZE,
GL_TEXTURE_INTENSITY_SIZE

Die interne Speicherauflösung der individuellen Komponenten. Die von der GL gewählte Auflösung wird so gewählt dass sie so nah wie möglich an der vom Nutzer über die via glTexImage1D, glTexImage2D und glTexImage3D angeforderte Komponentenauflösung heranreicht. Der Vorgabewert ist 0.



Hinweise

Wenn während der Ausführung der Funktion ein Fehler auftritt, werden keine Veränderungen am Inhalt von params durchgeführt.

GL_TEXTURE_INTERNAL_FORMAT ist erst ab OpenGL 1.1 oder höher verfügbar. In der Version 1.0 können Sie GL_TEXTURE_COMPONENTS als Ersatz benutzen.

GL_PROXY_TEXTURE_1D und GL_PROXY_TEXTURE_2D sind erst ab OpenGL 1.1 oder höher verfügbar.


Fehlermeldungen

GL_INVALID_ENUM wird generiert, wenn target oder pname ein ungültiger Wert übergeben wird.

GL_INVALID_VALUE wird generiert, wenn level kleiner 0 oder größer als ld(max) ist, wobei max der Rückgabewert von GL_MAX_TEXTURE_SIZE ist (ld = Logarithmus Dualis = zur Basis 2).

GL_INVALID_OPERATION wird generiert, wenn glGetTexLevelParameter inerhalb eines glBegin-glEnd-Blocks aufgerufen wird.


Siehe auch

glGetTexParameter, glCopyTexImage1D, glCopyTexImage2D, glCopyTexSubImage1D, glCopyTexSubImage2D, glTexEnv, glTexGen, glTexImage1D, glTexImage2D, glTexImage3D, glTexSubImage1D, glTexSubImage2D, glTexSubImage3D, glTexParameter