glGetTexLevelParameter: Unterschied zwischen den Versionen
() |
K (Kategorisierung) |
||
(4 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
= glGetTexLevelParameter = | = glGetTexLevelParameter = | ||
− | + | ||
+ | |||
== Name == | == Name == | ||
− | '''glGetTexLevelParameter''' - liefert Eigenschaften von Texturen für bestimmte Detailstufen | + | '''glGetTexLevelParameter''' - liefert Eigenschaften von Texturen für bestimmte Detailstufen (LOD = Level Of Detail). |
+ | |||
+ | |||
− | |||
== Delphi-Spezifikation == | == Delphi-Spezifikation == | ||
procedure '''glGetTexLevelParameterfv'''(''target'': TGLenum; ''level'': TGLint; ''pname'': TGLenum; ''params'': PGLfloat); | procedure '''glGetTexLevelParameterfv'''(''target'': TGLenum; ''level'': TGLint; ''pname'': TGLenum; ''params'': PGLfloat); | ||
procedure '''glGetTexLevelParameteriv'''(''target'': TGLenum; ''level'': TGLint; ''pname'': TGLenum; ''params'': PGLint); | procedure '''glGetTexLevelParameteriv'''(''target'': TGLenum; ''level'': TGLint; ''pname'': TGLenum; ''params'': PGLint); | ||
− | + | ||
+ | |||
== Parameter == | == Parameter == | ||
<table border=1 rules=all> | <table border=1 rules=all> | ||
Zeile 32: | Zeile 35: | ||
</table> | </table> | ||
− | + | ||
+ | |||
== Beschreibung == | == Beschreibung == | ||
Zeile 40: | Zeile 44: | ||
'''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. | '''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 | + | 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: | Folgende Werte können dabei ''pname'' übergeben werden: | ||
Zeile 70: | Zeile 74: | ||
: 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. | : 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 == | == Hinweise == | ||
Wenn während der Ausführung der Funktion ein Fehler auftritt, werden keine Veränderungen am Inhalt von ''params'' durchgeführt. | 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 | + | '''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. | '''GL_PROXY_TEXTURE_1D''' und '''GL_PROXY_TEXTURE_2D''' sind erst ab OpenGL 1.1 oder höher verfügbar. | ||
− | + | ||
+ | |||
== Fehlermeldungen == | == Fehlermeldungen == | ||
− | '''GL_INVALID_ENUM''' wird generiert wenn ''target'' oder ''pname'' ein ungültiger Wert übergeben wird. | + | '''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 | + | |
− | '''GL_INVALID_OPERATION''' wird generiert wenn '''glGetTexLevelParameter''' inerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen 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 == | == Siehe auch == | ||
[[glGetTexParameter]], [[glCopyTexImage1D]], [[glCopyTexImage2D]], [[glCopyTexSubImage1D]], [[glCopyTexSubImage2D]], [[glTexEnv]], [[glTexGen]], [[glTexImage1D]], [[glTexImage2D]], [[glTexImage3D]], [[glTexSubImage1D]], [[glTexSubImage2D]], [[glTexSubImage3D]], [[glTexParameter]] | [[glGetTexParameter]], [[glCopyTexImage1D]], [[glCopyTexImage2D]], [[glCopyTexSubImage1D]], [[glCopyTexSubImage2D]], [[glTexEnv]], [[glTexGen]], [[glTexImage1D]], [[glTexImage2D]], [[glTexImage3D]], [[glTexSubImage1D]], [[glTexSubImage2D]], [[glTexSubImage3D]], [[glTexParameter]] | ||
[[Kategorie:GL|GetTexLevelParameter]] | [[Kategorie:GL|GetTexLevelParameter]] | ||
+ | [[Kategorie:GL1.0|GetTexLevelParameter]] |
Aktuelle Version vom 18. Juni 2011, 18:42 Uhr
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