glTexSubImage2D-Funktion

Die glTexSubImage2D-Funktion gibt einen Teil eines vorhandenen eindimensionalen Texturbilds an. Sie können mit glTexSubImage2D keine neue Textur definieren.

Syntax

void WINAPI glTexSubImage2D(
         GLenum  target,
         GLint   level,
         GLint   xoffset,
         GLint   yoffset,
         GLsizei width,
         GLsizei height,
         GLenum  format,
         GLenum  type,
   const GLvoid  *pixels
);

Parameter

Ziel

Die Zieltextur. Muss GL _ TEXTURE _ 2D sein.

level

Die Detailebenennummer. Ebene 0 ist das Basisimage. Ebene n ist das Bild der n-ten Mipmapverringerung.

xoffset

Ein Texeloffset in x-Richtung innerhalb des Texturarrays.

yoffset

Ein Texeloffset in y-Richtung innerhalb des Texturarrays.

width

Die Breite des Texturunterbilds.

height

Die Höhe des Texturunterbilds.

format

Das Format der Pixeldaten. Es kann einer der folgenden symbolischen Werte angenommen werden.

Wert Bedeutung
GL _ COLOR _ INDEX
Jedes Element ist ein einzelner Wert, ein Farbindex. Sie wird in ein Festkommaformat (mit einer nicht angegebenen Anzahl von 0 Bits rechts vom Binärpunkt) konvertiert, je nach Wert und Vorzeichen von GL INDEX SHIFT nach links oder rechts verschoben _ und gl INDEX OFFSET hinzugefügt _ _ _ (siehe glPixelTransfer). Der resultierende Index wird mithilfe der Tabellen GL PIXEL MAP I TO R, GL PIXEL MAP I TO G, GL PIXEL MAP I TO B und GL PIXEL MAP I TO A in einen Satz von Farbkomponenten konvertiert _ _ _ und _ _ _ _ _ _ mit dem _ _ Bereich _ _ _ _ _ _ _ _ _ [ 0,1 ] verbunden.
GL _ RED
Jedes Element ist eine einzelne rote Komponente. Sie wird in das Gleitkommaformat konvertiert und in ein RGBA-Element zusammengesetzt, indem 0,0 für Grün und Blau und 1,0 für Alpha angefügt wird. Jede Komponente wird dann mit dem signierten Skalierungsfaktor GL _ c _ SCALE multipliziert, dem signierten Bias GL c BIAS hinzugefügt _ und an den Bereich _ [ 0,1 gebunden ] (siehe glPixelTransfer).
GL _ GREEN
Jedes Element ist eine einzelne grüne Komponente. Er wird in das Gleitkommaformat konvertiert und in ein RGBA-Element zusammengesetzt, indem 0,0 für Rot und Blau und 1,0 für Alpha angefügt wird. Jede Komponente wird dann mit dem signierten Skalierungsfaktor GL _ c _ SCALE multipliziert, dem signierten Bias GL c BIAS hinzugefügt _ und an den Bereich _ [ 0,1 gebunden ] (siehe glPixelTransfer).
GL _ BLUE
Jedes Element ist eine einzelne blaue Komponente. Sie wird in das Gleitkommaformat konvertiert und in ein RGBA-Element zusammengestellt, indem 0,0 für Rot und Grün und 1,0 für Alpha angefügt wird. Jede Komponente wird dann mit dem signierten Skalierungsfaktor GL _ c _ SCALE multipliziert, dem signierten Bias GL c BIAS hinzugefügt _ und an den Bereich _ [ 0,1 gebunden ] (siehe glPixelTransfer).
GL _ ALPHA
Jedes Element ist eine einzelne Alphakomponente. Sie wird in das Gleitkommaformat konvertiert und zu einem RGBA-Element zusammengesetzt, indem 0,0 für Rot, Grün und Blau angefügt wird. Jede Komponente wird dann mit dem signierten Skalierungsfaktor GL _ c _ SCALE multipliziert, dem signierten Bias GL c BIAS hinzugefügt _ und an den Bereich _ [ 0,1 gebunden ] (siehe glPixelTransfer).
GL _ RGB
Jedes Element ist ein RGB-Triple. Sie wird in das Gleitkommaformat konvertiert und durch Anfügen von 1.0 für Alpha in ein RGBA-Element zusammengesetzt. Jede Komponente wird dann mit dem signierten Skalierungsfaktor GL _ c _ SCALE multipliziert, dem signierten Bias GL c BIAS hinzugefügt _ und an den Bereich _ [ 0,1 gebunden ] (siehe glPixelTransfer).
GL _ RGBA
Jedes Element ist ein vollständiges RGBA-Element. Sie wird in Gleitkomma konvertiert. Jede Komponente wird dann mit dem signierten Skalierungsfaktor GL _ c _ SCALE multipliziert, dem signierten Bias GL c BIAS hinzugefügt _ und an den Bereich _ [ 0,1 gebunden ] (siehe glPixelTransfer).
GL _ LUMINANCE
Jedes Element ist ein einzelner Leuchtdichtewert. Er wird in das Gleitkommaformat konvertiert und dann zu einem RGBA-Element zusammengesetzt, indem der Leuchtwert dreimal für Rot, Grün und Blau repliziert und 1,0 für Alpha angefügt wird. Jede Komponente wird dann mit dem signierten Skalierungsfaktor GL _ c _ SCALE multipliziert, dem signierten Bias GL c BIAS hinzugefügt _ und an den Bereich _ [ 0,1 gebunden ] (siehe glPixelTransfer).
GL _ LUMINANCE _ ALPHA
Jedes Element ist ein Leuchtdichte-/Alphapaar. Sie wird in das Gleitkommaformat konvertiert und dann zu einem RGBA-Element zusammengesetzt, indem der Leuchtdichtewert dreimal für Rot, Grün und Blau repliziert wird. Jede Komponente wird dann mit dem signierten Skalierungsfaktor GL _ c _ SCALE multipliziert, dem signierten Bias GL c BIAS hinzugefügt _ und an den Bereich _ [ 0,1 gebunden ] (siehe glPixelTransfer).

type

Der Datentyp der Pixeldaten. Die folgenden symbolischen Werte werden akzeptiert: GL _ UNSIGNED _ BYTE, GL _ BYTE, GL _ BITMAP, GL _ UNSIGNED _ SHORT, GL _ _ UNSIGNED _ INT, GL _ INT und GL _ FLOAT.

Pixel

Ein Zeiger auf die Bilddaten im Arbeitsspeicher.

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 nicht GL _ TEXTURE _ 2D.
GL _ INVALID _ ENUM
format war keine akzeptierte Konstante.
GL _ INVALID _ ENUM
type war keine akzeptierte Konstante.
GL _ INVALID _ ENUM
Type war GL _ BITMAP, und das Format war nicht GL _ COLOR _ INDEX.
GL _ UNGÜLTIGER _ WERT
level war kleiner als 0 (null) oder größer als log2 max, wobei max der zurückgegebene Wert von GL _ MAX TEXTURE SIZE _ _ war.
GL _ UNGÜLTIGER _ WERT
xoffset war kleiner als -b; oder xoffset + width was greater than w - b; or yoffset was less than -b; or yoffset + height was greater than h - b, where w is the GL _ TEXTURE _ WIDTH, h is the GL _ TEXTURE _ HEIGHT, and b is the width of the GL TEXTURE BORDER of the texture image _ being _ modified.
Beachten Sie, dass w und h die doppelte Rahmenbreite enthalten.
GL _ UNGÜLTIGER _ WERT
width war kleiner als b, wobei b die Rahmenbreite des Texturarrays ist.
GL _ UNGÜLTIGER _ WERT
border war nicht null oder 1.
GL _ INVALID _ OPERATION
Das Texturarray wurde nicht durch einen vorherigen glTexImage2D-Vorgang definiert.
GL _ INVALID _ OPERATION
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEndaufgerufen.

Hinweise

Die zweidimensionale Texturierung für einen Primitiven wird mit glEnable und glDisable mit dem Argument GL _ TEXTURE _ 2D aktiviert. Während der Texturierung wird ein Teil eines angegebenen Texturbilds jedem aktivierten Primitiven zugeordnet. Sie verwenden die glTexSubImage2D-Funktion, um ein zusammenhängendes Unterbild eines vorhandenen zweidimensionalen Texturbilds für die Textur anzugeben.

Die Texel, auf die von Pixeln verwiesen wird, ersetzen einen Bereich des vorhandenen Texturarrays durch x-Indizes von xoffset und xoffset +( Breite 1) einschließlich und y-Indizes von yoffset und yoffset + (height 1) inclusive. Dieser Bereich darf keine Texel außerhalb des Bereichs des ursprünglich angegebenen Texturarrays enthalten.

Das Angeben eines Unterbilds mit einer Breite von 0 (null) hat keine Auswirkungen und generiert keinen Fehler.

Die Texturierung hat keine Auswirkungen im Farbindexmodus.

Im Allgemeinen können Texturbilder durch dieselben Datenformate wie die Pixel in einem glDrawPixels-Befehl dargestellt werden, mit der Ausnahme, dass GL STENCIL INDEX und GL DEPTH COMPONENT nicht verwendet werden _ _ _ _ können. Die Modi glPixelStore und glPixelTransfer wirken sich genau so auf Texturbilder aus, wie sie glDrawPixels beeinflussen.

Die folgenden Funktionen rufen Informationen im Zusammenhang mit glTexSubImage2D ab:

glGetTexImage

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

Siehe auch

glCopyTexImage1D

glCopyTexImage2D

glCopyTexSubImage1D

glCopyTexSubImage2D

glDrawPixels

glEnable

glFog

glGetTexImage

glIsEnabled

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage1D

glTexImage2D

glTexSubImage1D

glTexImage2D

glTexParameter