glCopyTexSubImage2D-Funktion

Die glCopyTexSubImage2D-Funktion kopiert ein Unterbild eines zweidimensionalen Texturbilds aus dem Framepuffer.

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 aufweisen.

level

Die Detailebenennummer. Ebene 0 ist das Basisimage. Ebene n ist das n-te Mipmap-Reduzierungsbild.

xoffset

Der Texeloffset in x-Richtung innerhalb des Texturarrays.

yoffset

Der Texeloffset in y-Richtung innerhalb des Texturarrays.

x

Die x-Ebenenkoordinaten des Fensters in der unteren linken Ecke der zu kopierenden Pixelzeile.

y

Die y-Ebenenkoordinaten des Fensters in der unteren linken Ecke der zu kopierenden Pixelzeile.

width

Die Breite des Unterbilds des Texturbilds. Die Angabe eines Texturunterbilds mit einer Breite von 0 (null) hat keine Auswirkungen.

height

Die Höhe des Unterbilds des Texturbilds. Die Angabe eines Texturunterbilds mit einer Breite von 0 (null) 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
GL _ INVALID _ ENUM
target war kein akzeptierter Wert.
GL _ UNGÜLTIGER _ WERT
level war kleiner als 0 (null) oder größer als Protokoll 2 (max), wobei max der zurückgegebene Wert von GL _ MAX TEXTURE SIZE _ _ ist.
GL _ UNGÜLTIGER _ WERT
xoffset war kleiner als border oder (xoffset + width)was greater than (w + border), yoffset was less than border, or (yoffset height ) was greater than ( h border ), where w is GL TEXTURE WIDTH and + + _ _ border is GL TEXTURE _ _ BORDER. Beachten Sie, dass w die doppelte Rahmenbreite enthält.
GL _ UNGÜLTIGER _ WERT
width war kleiner als border oder y kleiner als border, wobei border die Rahmenbreite des Texturarrays ist.
UNGÜLTIGER _ _ GL-VORGANG
Das Texturarray wurde nicht durch einen vorherigen glTexImage1D-Vorgang definiert.
UNGÜLTIGER _ _ GL-VORGANG
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 Framepuffer und nicht aus dem Hauptspeicher, wie es bei glTexSubImage2Dder Fall ist.

Ein Rechteck aus Pixeln, das mit den x- und y-Fensterkoordinaten und mit den Abmessungen Breite und Höhe beginnt, ersetzt den Teil des Texturarrays durch die Indizes xoffset bis xoffset + (width - 1), mit den Indizes yoffset bis yoffset + (width - 1) auf der mipmap-Ebene, die durch ebene angegeben wird. 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 der Ausnahme, dass vor der endgültigen Konvertierung der Pixel alle Pixelkomponentenwerte an den Bereich 0,1 geklammert und zur Speicherung im Texturarray in das interne Format der Textur konvertiert [ ] werden. Die Pixel reihenfolge wird mit niedrigeren x Koordinaten bestimmt, die niedrigeren Texturkoordinaten entspricht. Wenn einer der Pixel innerhalb einer angegebenen Zeile des aktuellen Framepuffers außerhalb des Fensters liegt, das dem aktuellen Renderingkontext zugeordnet ist, sind ihre Werte nicht definiert.

Wenn sich eines der Pixel innerhalb des angegebenen Rechtecks des aktuellen Framepuffers außerhalb des Dem aktuellen Renderingkontexts zugeordneten Lesefensters befinden, sind die für diese Pixel erhaltenen Werte nicht definiert. Es wird keine Änderung am internalFormat-, Width-, Height- oder Border-Parameter des angegebenen Texturarrays oder an Texelwerten außerhalb des angegebenen Texturunterbilds vorgenommen.

Aufrufe von glCopyTexSubImage2D können nicht in Anzeigelisten enthalten sein.

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 genau so auf Texturbilder aus, wie sie sich auf die Art und Weise auswirken, wie Pixel mit glDrawPixel gezeichnet werden.

Die folgenden Funktionen rufen Informationen im Zusammenhang mit glCopyTexSubImage2D ab:

glGetTexImage

glIsEnabled mit Argument GL _ TEXTURE _ 2D

Requirements (Anforderungen)

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Gl.h
Bibliothek
Opengl32.lib
DLL
Opengl32.dll

Weitere Informationen

glBegin

glCopyPixels

glCopyTexSubImage1D

glDrawPixels

glEnd

glFog

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage2D

glTexSubImage2D

glTexParameter