gl.CopyTexImage(level, internalformat, border, x, y, width[, height])
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.
#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.
gl.IsEnabled() mit dem Argument #GL_TEXTURE_2D
oder #GL_TEXTURE_1D