glGetTexLevelParameter
Inhaltsverzeichnis
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