Bezeichnung
gl.CopyTexImage -- kopiert Pixel in ein Texturbild
Übersicht
gl.CopyTexImage(level, internalformat, border, x, y, width[, height])
Beschreibung
gl.CopyTexImage() definiert ein ein- oder zweidimensionales Texturbild mit Pixeln aus dem aktuellen #GL_READ_BUFFER. Wenn das optionale Argument height weggelassen wird, wird eine eindimensionale Textur definiert, andernfalls wird eine zweidimensionale Textur definiert.

Das bildschirmausgerichtete Pixelrechteck mit der unteren linken Ecke bei (x, y) und mit einer Breite von Breite+2*Rand und einer Höhe von Höhe+2*Rand definiert das Texturfeld auf dem Mipmap-Level, welches durch level definiert ist.

internalformat definiert das interne Format des Texturfeldes. Siehe Interne Pixelformate für Details. Beachten Sie, dass im Gegensatz zu gl.TexImage1D() und gl.TexImage2D() die Werte 1, 2, 3 und 4 nicht von dem Parameter internalformat mit gl.CopyTexImage() unterstützt werden.

Die Pixel im Rechteck werden genau so verarbeitet, als wäre gl.CopyPixels() aufgerufen worden, aber der Prozess stoppt kurz vor der endgültigen Konvertierung. An diesem Punkt werden alle Pixelkomponentenwerte auf den Bereich [0,1] festgelegt und dann in das interne Format der Textur zum Speichern in dem Texel-Feld umgewandelt.

Die Pixelordnung ist derart, dass niedrigere x- und y-Bildschirmkoordinaten niedrigeren s- und t-Texturkoordinaten entsprechen.

Wenn eines der Pixel innerhalb des angegebenen Rechtecks des aktuellen #GL_READ_BUFFER außerhalb des Fensters liegt, das dem aktuellen Renderkontext zugeordnet ist, sind die für diese Pixel erhaltenen Werte nicht definiert.

Die Texturierung hat im Farbindexmodus keine Wirkung.

Ein Bild mit einer Höhe oder Breite von 0 zeigt eine NULL-Textur an.

Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.

Eingaben
level
gibt die Detaillierungsstufe an; Level 0 ist die Grundbildstufe; Level n ist das n-te Mipmap-Reduzierungsbild
internalformat
definiert das interne Format der Textur; muss eine der Pixelformatkonstanten sein (siehe oben)
border
legt die Breite des Rahmens fest; muss entweder 0 oder 1 sein
x
gibt die x-Koordinate der unteren linken Ecke des rechteckigen Bereichs der zu kopierenden Pixel an
y
gibt die y-Koordinate der unteren linken Ecke des rechteckigen Bereichs der zu kopierenden Pixel an
width
legt die Breite des Texturbildes fest. Muss 0 oder 2^n+2*Rand für eine ganze Zahl n sein
height
optional: Gibt die Höhe des Texturbildes an. Muss 0 oder 2^n+2*Rand für eine ganze Zahl n sein (voreingestellt ist 1)
Fehler
#GL_INVALID_VALUE wird generiert, wenn level kleiner als 0 ist.

#GL_INVALID_VALUE wird generiert werden, wenn level größer als log2(max) ist, wobei max der zurückgegebene Wert von #GL_MAX_TEXTURE_SIZE ist.

#GL_INVALID_VALUE wird generiert, wenn internalformat kein zulässiger Wert ist.

#GL_INVALID_VALUE wird generiert, wenn width kleiner als 0 oder größer als 2 + #GL_MAX_TEXTURE_SIZE ist.

#GL_INVALID_VALUE wird generiert, wenn Not-Power-of-Two-Texturen nicht unterstützt werden und die Breite nicht 2^n+2*Rand für einen ganzzahligen Wert von n dargestellt werden kann.

#GL_INVALID_VALUE wird generiert, wenn der Rand nicht 0 oder 1 ist.

#GL_INVALID_OPERATION wird generiert, wenn gl.CopyTexImage() zwischen gl.Begin() und gl.End() ausgeführt wird.

Verbundene get-operationen
gl.GetTexImage()

gl.IsEnabled() mit dem Argument #GL_TEXTURE_2D oder #GL_TEXTURE_1D


Navigation zeigen