glTexImage1D-Funktion
Die glTexImage1D-Funktion gibt ein eindimensionales Texturbild an.
Syntax
void WINAPI glTexImage1D(
GLenum target,
GLint level,
GLint internalformat,
GLsizei width,
GLint border,
GLint format,
GLenum type,
const GLvoid *pixels
);
Parameter
-
Ziel
-
Die Zieltextur. Muss GL _ TEXTURE _ 1D sein.
-
level
-
Die Detailebenennummer. Ebene 0 ist die Basisimageebene. Ebene n ist das nTh-Mipmap-Reduzierungsbild.
-
internalformat
-
Gibt die Anzahl der Farbkomponenten in der Textur an. Muss 1, 2, 3 oder 4 oder eine der folgenden symbolischen Konstanten sein: GL _ ALPHA, GL _ ALPHA4, GL _ ALPHA8, GL _ ALPHA12, GL _ ALPHA16, GL _ LUMINANCE, GL _ LUMINANCE4, GL _ LUMINANCE8, GL _ LUMINANCE12, GL _ LUMINANCE16, GL _ LUMINANCE _ ALPHA, GL _ LUMINANCE4 _ ALPHA4, GL _ LUMINANCE6 _ ALPHA2, GL _ LUMINANCE8 _ ALPHA8, GL _ LUMINANCE12 _ ALPHA4, GL _ LUMINANCE12 _ ALPHA12, GL _ LUMINANCE16 _ ALPHA16, GL _ LUMINANCE, GL LUMINANCE, GL _ INTENSITY4, GL _ INTENSITY8, GL _ INTENSITY12, GL _ INTENSITY16, GL _ RGB, GL _ _ R3 G3 _ B2, GL _ RGB4, GL _ RGB5, GL _ RGB8, GL _ RGB10, GL _ RGB12, GL _ RGB16, GL _ RGBA, GL _ RGBA2, GL _ RGBA4, GL _ RGB5 _ A1, GL _ RGBA8, GL _ RGB10 _ A2, GL _ RGBA12 oder GL _ RGBA16.
-
width
-
Die Breite des Texturbilds. Muss 2 n + 2( Border ) für eine ganze Zahl n sein. Die Höhe des Texturbilds ist 1.
-
Grenze
-
Die Breite des Rahmens. Muss entweder 0 oder 1 sein.
-
format
-
Das Format der Pixeldaten. Es kann einer von neun symbolischen Werten angenommen werden.
Wert Bedeutung - GL _ COLOR _ INDEX
Jedes Element ist ein einzelner Wert, ein Farbindex. Er wird in einen festen Punkt konvertiert (mit einer nicht angegebenen Anzahl von 0 Bits rechts vom Binärpunkt), nach links oder rechts verschoben, je nach Wert und Vorzeichen von GL _ INDEX _ SHIFT, und zu 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 Gleitkomma 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. Sie wird in Gleitkomma konvertiert und zu einem 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 Gleitkomma konvertiert und in ein RGBA-Element zusammengesetzt, 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 rote Komponente. Sie wird in Gleitkomma 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 Gleitkomma 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 _ BGR _ EXT
Jedes Pixel ist eine Gruppe von drei Komponenten in dieser Reihenfolge: blau, grün, rot.
GL _ BGR _ EXT bietet ein Format, das dem Speicherlayout von Windows geräteunabhängigen Bitmaps (DIBs) entspricht. Daher können Ihre Anwendungen die gleichen Daten mit Windows Funktionsaufrufen und OpenGL-Pixelfunktionsaufrufen verwenden.- GL _ BGRA _ EXT
Jedes Pixel ist eine Gruppe von vier Komponenten in dieser Reihenfolge: blau, grün, rot, alpha.
GL _ BGRA _ EXT bietet ein Format, das dem Speicherlayout von Windows geräteunabhängigen Bitmaps (DIBs) entspricht. Daher können Ihre Anwendungen die gleichen Daten mit Windows Funktionsaufrufen und OpenGL-Pixelfunktionsaufrufen verwenden.- GL _ LUMINANCE
Jedes Element ist ein einzelner Leuchtdichtewert. Er wird in Gleitkomma konvertiert und dann zu einem RGBA-Element zusammengesetzt, indem der Leuchtdichtewert 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 Gleitkomma konvertiert und dann zu einem RGBA-Element zusammengefügt, indem der Leuchtwert 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 keine GL _ TEXTURE. |
|
format war keine akzeptierte Formatkonstante. Es werden nur andere Formatkonstanten als GL _ STENCIL _ INDEX und GL DEPTH COMPONENT _ _ akzeptiert. Eine Liste möglicher Werte finden Sie in der Parameterbeschreibung des Formats. |
|
type war keine Typkonstante. |
|
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. |
|
internalformat war nicht 1, 2, 3 oder 4. |
|
width war kleiner als 0 (null) oder größer als 2 + GL _ MAX TEXTURE _ _ SIZE, oder sie konnte nicht als 2 n + 2 (Rahmen) für einen ganzzahligen Wert von n dargestellt werden. |
|
border war nicht 0 oder 1. |
|
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen. |
Bemerkungen
Die glTexImage1D-Funktion gibt ein eindimensionales Texturbild an. Die Texturierung ordnet einen Teil eines angegebenen Texturbilds jedem grafischen Primitiven zu, für das Texturierung aktiviert ist. Die eindimensionale Texturierung wird mit glEnable und glDisable mit dem Argument GL _ TEXTURE _ 1D aktiviert und deaktiviert.
Texturbilder werden mit glTexImage1D definiert. Die Argumente beschreiben die Parameter des Texturbilds, z. B. Breite, Breite des Rahmens, Detailebenennummer (siehe glTexParameter) und Anzahl der bereitgestellten Farbkomponenten. Die letzten drei Argumente beschreiben die Darstellung des Bilds im Arbeitsspeicher. Diese Argumente sind identisch mit den Pixelformaten, die für glDrawPixels verwendet werden.
Daten werden aus Pixeln als Sequenz von Bytes mit oder ohne Vorzeichen, Shorts oder Longs oder Gleitkommawerten mit einzelner Genauigkeit gelesen, je nach Typ. Diese Werte werden je nach Format in Sätze von einem, zwei, drei oder vier Werten zum Bilden von Elementen gruppiert. Wenn type GL BITMAP ist, werden die Daten als Zeichenfolge von Bytes ohne Vorzeichen betrachtet _ (und das Format muss GL COLOR _ INDEX _ sein). Jedes Daten byte wird als acht 1-Bit-Elemente behandelt, und die Bit reihenfolge wird durch GL _ UNPACK _ LSB _ FIRST bestimmt (siehe glPixelStore).
Ein Texturbild kann je nach Komponenten bis zu vier Komponenten pro Texturelement aufweisen. Ein Texturbild mit einer Komponente verwendet nur die rote Komponente der RGBA-Farbe, die aus Pixeln extrahiert wurde. Ein Bild mit zwei Komponenten verwendet die R- und A-Werte. Ein Image mit drei Komponenten verwendet die R-, G- und B-Werte. Ein Bild mit vier Komponenten verwendet alle RGBA-Komponenten.
Die Texturierung hat keine Auswirkungen im Farbindexmodus.
Das Texturbild kann durch die gleichen 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.
Ein Texturbild mit einer Breite von 0 (null) gibt die NULL-Textur an. Wenn die NULL-Textur für Detailebene 0 angegeben wird, ist dies so, als wäre die Texturierung deaktiviert.
Die folgenden Funktionen rufen Informationen im Zusammenhang mit glTexImageID ab:
glIsEnabled mit Argument GL _ TEXTURE _ 1D
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 |
|
| Bibliothek |
|
| DLL |
|