glCopyTexImage2D-Funktion

Die glCopyTexImage2D-Funktion kopiert Pixel aus dem Framebuffer in ein zweidimensionales Texturbild.

Syntax

void WINAPI glCopyTexImage2D(
   GLenum  target,
   GLint   level,
   GLenum  internalFormat,
   GLint   x,
   GLint   y,
   GLsizei width,
   GLsizei height,
   GLint   border
);

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-temipmap-Reduktionsbild.

internalFormat

Das interne Format und die Auflösung der Texturdaten. Die Werte 1, 2, 3 und 4 werden für internalFormat nicht akzeptiert. Der Parameter kann einen der folgenden symbolischen Werte annehmen.

Konstant R Bits G-Bits B-Bits A Bits L-Bits I Bits
GL_ALPHA
GL_ALPHA4 4
GL_ALPHA8 8
GL_ALPHA12 12
GL_ALPHA16 16
GL_LUMINANCE
GL_LUMINANCE4 4
GL_LUMINANCE8 8
GL_LUMINANCE12 12
GL_LUMINANCE16 16
GL_LUMINANCE_ALPHA
GL_LUMINANCE4_ALPHA4 4 4
GL_LUMINANCE6_ALPHA2 2 6
GL_LUMINANCE8_ALPHA8 8 8
GL_LUMINANCE12_ALPHA4 4 12
GL_LUMINANCE12_ALPHA12 12 12
GL_LUMINANCE16_ALPHA16 16 16
GL_INTENSITY
GL_INTENSITY4 4
GL_INTENSITY8 8
GL_INTENSITY12 12
GL_INTENSITY16 16
GL_RGB
GL_R3_G3_B2 3 3 2
GL_RGB4 4 4 4
GL_RGB5 5 5 5
GL_RGB8 8 8 8
GL_RGB10 10 10 10
GL_RGB12 12 12 12
GL_RGB16 16 16 16
GL_RGBA
GL_RGBA2 2 2 2 2
GL_RGBA4 4 4 4 4
GL_RGB5_A1 5 5 5 1
GL_RGBA8 8 8 8 8
GL_RGB10_A2 10 10 10 2
GL_RGBA12 12 12 12 12
GL_RGBA16 16 16 16 16

x

Die x-ebenen Fensterkoordinate der unteren linken Ecke des rechteckigen Bereichs der zu kopierenden Pixel.

y

Die y-Ebenenkoordinate des Fensters der unteren linken Ecke des rechteckigen Bereichs der zu kopierenden Pixel.

width

Die Breite des Texturbilds. Muss 2n + 2 * Rahmen für eine ganze Zahl n sein.

height

Die Höhe des Texturbilds. Muss 2n + 2 * Rahmen für eine ganze Zahl n sein.

Grenze

Die Breite des Rahmens. Muss entweder null oder 1 sein.

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_INVALID_VALUE
level 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
rahmen war nicht null oder 1.
GL_INVALID_VALUE
width war kleiner als 0 (Null), größer als 2 + GL_MAX_TEXTURE_SIZE, oder die Breite kann nicht als Rahmen 2n + 2 * für eine ganze Zahl n dargestellt werden.
GL_INVALID_OPERATION
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen.

Bemerkungen

Die glCopyTexImage2D-Funktion definiert ein zweidimensionales Texturbild mithilfe von Pixeln aus dem aktuellen Framebuffer und nicht aus Standard Speicher, wie es bei glTexImage2D der Fall ist.

Mithilfe der mit level angegebenen Mipmap-Ebene werden Texturarrays als Rechteck von Pixeln definiert, wobei sich die linke untere Ecke an den Koordinaten x und y, breite + ( 2 * Rahmen) und höhe gleich Höhe + (2 * Rahmen) befindet. Das interne Format des Texturarrays wird mit dem parameter internalFormat angegeben.

Die glCopyTexImage2D-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 in den Bereich [0,1] eingespannt und in das interne Format der Textur für die Speicherung im Texturarray konvertiert werden. Die Pixelreihenfolge wird mit niedrigeren x - und y-Koordinaten bestimmt, die den niedrigeren Texturkoordinaten s und t 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.

Sie können keine Aufrufe von glCopyTexImage2D in Anzeigelisten einschließen.

Hinweis

Die glCopyTexImage2D-Funktion ist nur in OpenGL Version 1.1 oder höher verfügbar.

Texturierung hat keine Auswirkungen im Farbindexmodus. Die Funktionen glPixelStore und glPixelTransfer beeinflussen Texturbilder genau so, wie sie glDrawPixels beeinflussen.

Die folgende Funktion ruft Informationen im Zusammenhang mit glCopyTexImage2D 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
Gl.h
Bibliothek
Opengl32.lib
DLL
Opengl32.dll

Weitere Informationen

glBegin

glCopyTexImage1D

glDrawPixels

glEnd

glFog

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage1D

glTexImage2D

glTexParameter