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 |
|---|---|
|
Target war nicht GL _ TEXTURE _ 2D. |
|
format war keine akzeptierte Konstante. |
|
type war keine akzeptierte Konstante. |
|
Type war GL _ BITMAP, und das Format war nicht GL _ COLOR _ INDEX. |
|
level war kleiner als 0 (null) oder größer als log2 max, wobei max der zurückgegebene Wert von GL _ MAX TEXTURE SIZE _ _ war. |
|
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. |
|
width war kleiner als b, wobei b die Rahmenbreite des Texturarrays ist. |
|
border war nicht null oder 1. |
|
Das Texturarray wurde nicht durch einen vorherigen glTexImage2D-Vorgang definiert. |
|
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:
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 |
|