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 Detailnummer der Ebene. Ebene 0 ist das Basisbild. Level n ist das nth mipmap Reduction Image.

xoffset

Der Texelversatz in der x-Richtung innerhalb des Texturarrays.

yoffset

Der Texelversatz in der y-Richtung innerhalb des Texturarrays.

x

Die Fenster-X-Ebenenkoordinaten der unteren linken Ecke der zu kopierenden Pixelzeile.

y

Die Fensterebenenkoordinaten der unteren linken Ecke der zu kopierenden Pixelzeile.

width

Die Breite des Unterbilds des Texturbilds. Das Angeben eines Texturunterbilds mit Nullbreite hat keine Auswirkung.

height

Die Höhe des Unterbilds des Texturbilds. Das Angeben eines Texturunterbilds mit Nullbreite hat keine Auswirkung.

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
ziel war kein akzeptierter Wert.
GL_INVALID_VALUE
die Ebene war kleiner als null oder größer als log2 (max), wobei max . der zurückgegebene Wert von GL_MAX_TEXTURE_SIZE ist.
GL_INVALID_VALUE
xoffset war kleiner als Rahmen oder (xoffsetwidth + )war größer als (wborder + ), yoffset war kleiner als Rahmen oder (yoffsetheight + ) größer als (hborder + ), wobei w GL_TEXTURE_WIDTH und Rahmen GL_TEXTURE_BORDER ist. Beachten Sie, dass w zweimal die Rahmenbreite enthält.
GL_INVALID_VALUE
Die Breite war kleiner als rahmen oder y war kleiner als Rahmen, wobei Rahmen die Rahmenbreite des Texturarrays ist.
GL_INVALID_OPERATION
Das Texturarray wurde nicht durch einen vorherigen glTexImage1D-Vorgang definiert.
GL_INVALID_OPERATION
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, anstatt aus dem Hauptspeicher wie bei glTexSubImage2D.

Ein Rechteck von Pixeln beginnend mit den x- und y-Fensterkoordinaten und mit der Abmessungenbreite und Höhe ersetzt den Teil des Texturarrays durch die Indizes xoffset + (Breite - 1), wobei die Indizes yoffset bis yoffset + (Breite - 1) auf der mipmap-Ebene, die durch Ebene angegeben sind. 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 dieselbe Weise wie glCopyPixels, außer dass vor der endgültigen Konvertierung der Pixel alle Pixelkomponentenwerte an den Bereich [0,1] geklammert und in das interne Format der Textur für die Speicherung im Texturarray konvertiert werden. Die Pixelortierung wird mit niedrigeren x-Koordinaten bestimmt, die niedrigeren Texturkoordinaten entsprechen. Wenn sich eine der Pixel in einer angegebenen Zeile des aktuellen Framebuffers außerhalb des Fensters befindet, das dem aktuellen Renderingkontext zugeordnet ist, werden ihre Werte nicht definiert.

Wenn sich eine der Pixel innerhalb des angegebenen Rechtecks des aktuellen Framebuffers außerhalb des lesefensters befindet, das dem aktuellen Renderingkontext zugeordnet ist, werden die für diese Pixel abgerufenen Werte nicht definiert. Es wird keine Änderung an den internenFormat-, Breiten-, Höhen- oder Rahmenparametern des angegebenen Texturarrays oder an Texelwerte 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.

Texturierung hat keine Auswirkung im Farbindexmodus. Die Funktionen glPixelStore und glPixelTransfer wirken sich genau auf die Art und Weise aus, wie Pixel mithilfe von glDrawPixels 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

Siehe auch

glBegin

glCopyPixels

glCopyTexSubImage1D

glDrawPixels

glEnd

glFog

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage2D

glTexSubImage2D

glTexParameter