glTexImage
(Mehr Informationen/weitere Artikel) {{{1}}} |
Inhaltsverzeichnis
glTexImage
Name
glTexImage - Einstellungen zum Texturen zeichnen
Spezifikation
procedure glTexImage1D(target: TGLenum; level: TGLint; internalformat: TGLint; width: TGLsizei; border: TGLint; format: TGLenum; _type: TGLenum; const pixels: PGLvoid);
procedure glTexImage2D(target: TGLenum; level: TGLint; internalformat: TGLint; width: TGLsizei; height: TGLsizei; border: TGLint; format: TGLenum; _type: TGLenum; const pixels: PGLvoid);
procedure glTexImage3D(target: TGLenum; level: TGLint; internalformat: TGLint; width: TGLsizei; height: TGLsizei; depth: TGLsizei; border: TGLint; format: TGLenum; _type: TGLenum; const pixels: PGLvoid);
Parameter
target | Gibt an, welche Texture erreicht werden soll. GL_TEXTURE_2D wird akzeptiert. |
level | Gibt den Detailgrad für das gewünschte Bild an. level 0 ist das Basisbild. Level n ist die n-te Mipmap reduzierung des Bildes. |
components | 1 - für R || 2 für R und A || 3 für RGB || 4 für RGBA |
width, | Breite = Anzahl der Pixel pro Zeile muss als Wert 2^n (+ 2 * (border) ) für n Integerwerte haben. |
height, | Höhe = Anzahl der Zeilen muss als Wert 2^n (+ 2 * (border) ) für n Integerwerte haben |
depth, | Tiefe = Anzahl der "Scheiben" muss als Wert 2^n (+ 2 * (border) ) für n Integerwerte haben |
border, | Breite des Rahmens || 0 oder 1 |
format | Bestimmt das Format der Pixeldaten. Folgende symbolische Werte werden akzeptiert: GL_COLOR_INDEX, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_RGBA, GL_LUMINANCE, und GL_LUMINANCE_ALPHA |
_type | Bestimmt den Pixeltyp für den Inhalt von pixels. Folgende Typen werden unterstützt: GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_BITMAP |
pixels | Die Texture-Image Daten vom Typ, der in format angegeben wurde ( Array wo die Pixel gespeichert sind ) |
Beschreibung
glTexImage nimmt die wichtige Einstellungen vor, die zum Zeichnen einer Textur unbedingt benötigt werden ( siehe Parameterliste ).
Gezeichnet werden die Texturen im glBegin() und glEnd() Block, immer abwechselnd mit glTexCoord und glVertex.
Wenn als type GL_BITMAP gewählt wird, bestehen die Daten aus einer Reihe von unsigned bytes und als format muss GL_COLOR_INDEX eingestellt sein.
Um das Zeichnen einer 2D Textur zu aktivieren: glEnable(GL_TEXTURE_2D);
Hinweise
glTexImage3D war bis zu OpenGL 1.2 noch eine Erweiterung. Deswegen bei manchen Chipsätzen nur als glTexImage3DEXT verfügbar.
Fehlermeldungen
GL_INVALID_ENUM wird generiert wenn target kein GL_TEXTURE_2D ist.
GL_INVALID_ENUM wird generiert wenn falsches format angegeben wurde.
GL_INVALID_ENUM wird generiert wenn falscher type angegeben wurde.
GL_INVALID_ENUM wird generiert wenn GL_BITMAP als type und kein GL_COLOR_INDEX als format angegeben wurde.
GL_INVALID_VALUE wird generiert wenn level kleiner 0 oder größer ld(max) ist, wobei max der Rückgabewert von GL_MAX_TEXTURE_SIZE ist. (ld = Logarithmus Dualis = Basis 2).
GL_INVALID_VALUE wird generiert wenn für components was anderes als 1, 2, 3 oder 4 angegeben wurde.
GL_INVALID_VALUE wird generiert wenn width oder height kleiner als 0 oder größer als 2 + GL_MAX_TEXTURE_SIZE ist, oder die Bedingung 2^k + 2 * (border) (k=Integerwerte) nich erfüllt.
GL_INVALID_VALUE wenn border nicht 0 oder 1 ist.
GL_INVALID_OPERATION wird generiert wenn glTexImage2D in einem glBegin- und glEnd-Block ausgeführt wird.
Siehe auch
glTexEnv, glTexGen, glTexImage3DEXT, glTexSubImage1D, glTexSubImage2D, glTexSubImage3D, glTexParameter, glTexCoord