glCopyTexSubImage2D-Funktion
Die glCopyTexSubImage2D-Funktion kopiert ein Unterbild eines zweidimensionalen Texturbilds aus dem Framebuffer.
Syntax
void WINAPI glCopyTexSubImage2D(
GLenum target,
GLint level,
GLint xoffset,
GLint yoffset,
GLint x,
GLint y,
GLsizei width,
GLsizei height
);
Parameter
-
Ziel
-
Das Ziel, in das die Bilddaten geändert werden. Muss den Wert GL_TEXTURE_2D haben.
-
level
-
Die Anzahl der Detailebenen. Ebene 0 ist das Basisimage. Ebene n ist das n-th-mipmap-Reduktionsbild.
-
xoffset
-
Der Texeloffset in x-Richtung innerhalb des Texturarrays.
-
yoffset
-
Der Texeloffset in y-Richtung innerhalb des Texturarrays.
-
x
-
Die X-Ebenen-Fensterkoordinaten der unteren linken Ecke der Zu kopierenden Pixelzeile.
-
y
-
Die Fensterkoordinaten der Y-Ebene der unteren linken Ecke der Zu kopierenden Pixelzeile.
-
width
-
Die Breite des Unterbilds des Texturbilds. Das Angeben eines Texturunterbilds mit der Breite 0 hat keine Auswirkungen.
-
height
-
Die Höhe des Unterbilds des Texturbilds. Das Angeben eines Texturunterbilds mit der Breite 0 hat keine Auswirkungen.
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Fehlercodes
Die folgenden Fehlercodes können von der glGetError-Funktion abgerufen werden.
Name | Bedeutung |
---|---|
|
target war kein akzeptierter Wert. |
|
level war kleiner als null oder größer als Protokoll2 (max), wobei max der zurückgegebene Wert von GL_MAX_TEXTURE_SIZE ist. |
|
xoffset war kleiner als rahmen oder (xoffset + width)war größer als (w + rahmen), yoffset war kleiner als rahmen, oder (yoffset + height) war größer als (h + border), wobei w GL_TEXTURE_WIDTH und rahmen GL_TEXTURE_BORDER ist. Beachten Sie, dass w die doppelte Rahmenbreite enthält. |
|
die Breite war kleiner als rahmen , oder y war kleiner als rahmen, wobei rahmen die Rahmenbreite des Texturarrays ist. |
|
Das Texturarray wurde nicht durch einen vorherigen glTexImage1D-Vorgang definiert. |
|
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen. |
Bemerkungen
Die glCopyTexSubImage2D-Funktion ersetzt einen rechteckigen Teil eines zweidimensionalen Texturbilds durch Pixel aus dem aktuellen Framebuffer und nicht wie bei glTexSubImage2D aus Standard Arbeitsspeicher.
Ein Rechteck von Pixeln, beginnend mit den x- und y-Fensterkoordinaten und mit den Dimensionen Breite und Höhe ersetzt den Teil des Texturarrays durch die Indizes xoffset bis xoffset + (Breite - 1), wobei die Indizes yoffset bis yoffset + (Breite - 1) auf der von der Ebene angegebenen MIPMAP-Ebene ersetzen. Das Zielrechteck im Texturarray darf keine Texel außerhalb des ursprünglich angegebenen Texturarrays enthalten.
Die glCopyTexSubImage2D-Funktion verarbeitet die Pixel in einer Zeile auf die gleiche Weise wie glCopyPixels, mit dem Unterschied, dass vor der endgültigen Konvertierung der Pixel alle Pixelkomponentenwerte in den Bereich [0,1] geklemmt und in das interne Format der Textur für die Speicherung im Texturarray konvertiert werden. Die Pixelreihenfolge wird mit niedrigeren x-Koordinaten bestimmt, die niedrigeren Texturkoordinaten entsprechen. Wenn sich einer der Pixel in einer angegebenen Zeile des aktuellen Framebuffers außerhalb des Fensters befindet, das dem aktuellen Renderingkontext zugeordnet ist, sind ihre Werte nicht definiert.
Wenn sich eines der Pixel innerhalb des angegebenen Rechtecks des aktuellen Framebuffers außerhalb des Lesefensters befindet, das dem aktuellen Renderingkontext zugeordnet ist, sind die für diese Pixel erhaltenen Werte nicht definiert. Es wird keine Änderung am internalFormat-, Width-, Height- oder Rahmenparameter des angegebenen Texturarrays oder an Texelwerten außerhalb des angegebenen Texturunterbilds vorgenommen.
Sie können keine Aufrufe von glCopyTexSubImage2D in Anzeigelisten einschließen.
Hinweis
Die glCopyTexSubImage2D-Funktion ist nur in OpenGL Version 1.1 oder höher verfügbar.
Die Texturierung hat keine Auswirkungen im Farbindexmodus. Die Funktionen glPixelStore und glPixelTransfer wirken sich auf Texturbilder genau so aus, wie sie die Art und Weise beeinflussen, wie Pixel mit glDrawPixels gezeichnet werden.
Die folgenden Funktionen rufen Informationen im Zusammenhang mit glCopyTexSubImage2D ab:
glIsEnabled mit Argument GL_TEXTURE_2D
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows 2000 Server [nur Desktop-Apps] |
Header |
|
Bibliothek |
|
DLL |
|