glTexCoordPointer

Aus DGL Wiki
Version vom 17. August 2005, 19:27 Uhr von La Boda (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

glTexCoordPointer


Name

glTexCoordPointer - Definiert ein Array mit Texturkoordinaten


Delphi-Spezifikation

procedure glTexCoordPointer(size : GLint; type : GLenum; stride : GLsizei ;
const _pointer : GLvoid)


Parameter

size Gibt die Anzahl der Koordinaten pro Array-Element an. Muss 1, 2, 3 oder 4 sein. Der Standard-Wert ist 4.
type Gibt den Datentyp der Texturkoordinaten an. Die symbolischen Konstanten GL_FLOAT, GL_INT, GL_SHORT und GL_DOUBLE sind zulässig. Der Standard-Wert ist GL_FLOAT.
stride Gibt den Byte-Abstand (?byte-offset?) zwischen aufeinander folgenden Array-Elementen an. Ist stride 0, liegen die Bytes direkt hntereinander. Der Standard-Wert ist 0.
_pointer Gibt den Pointer zur ersten Koordinate im ersten Element des Arrays an.


Beschreibung

glTexCoordPointer legt den Ort und das Datenformat eines Arrays mit Texturkoordinaten fest, die beim Rendern verwendet werden. size gibt die Anzahl der Koordinaten pro Element an und muss 1, 2, 3 oder 4 sein. type gibt den Datentyp der Texturkoordinaten und stride den Byte-Abstand von jedem Array-Element zum Nächsten an, was es ermöglicht, Vertizes und Attribute entweder in einem Array oder mehreren Arrays zu speichern. (Speicherung ein einziges Array dürfte in einigen Anwendungen effizienter sein, siehe glInterleavedArrays.) Wenn ein Texturkoordinaten-Array erzeugt wird, werden size, type, stride und _pointer client-seitig gespeichert.

Um das Texturkoordinaten-Array zu de- bzw. aktivieren, ruft man glEnableClientState und glDisableClientState mit den Argument GL_TEXTURE_COORD_ARRAY auf. Falls aktiviert, wird auf das Texturkoordinaten-Array mit dem Aufruf von glDrawArrays, glDrawElements oder glArrayElement aufgerufen.

Man kann glDrawArrays dazu benutzen, eine Sequenz von Polygonen eines Typs (also Triangles, Quads, etc.) aus vordefinierten Vertex- und Vertexattributenarrys zu erzeugen. glDrawElement wird benutzt, um Polygone durch Anlegen von Vertices und Vertex-Attributen zu erzeugen und glDrawElements, um eine Reihe von Polygonen durch Anlegen von Vertices und Vertex-Attributen zu erzeugen.

Hinweise

glTexCoordPointer ist nur verfügbar, wenn die OpenGL-Version 1.1 oder höher ist.

Das Texturkoordinaten-Array ist standardmäßig deaktiviert und wird beim Aufruf von glArrayElement, glDrawElements oder glDrawArrays nicht angesteuert.

Der Aufruf von glTexCoordPointer zwischen einem glBegin-glEnd nicht zulässig, ein Fehler kann generiert werden oder auch nicht. Wenn kein Fehler generiert wird, ist die Operation ohne Ergbnis.

glTexCoordPointer is normalerweise auf Client-Seite ohne Protokoll implementiert.

Die Parameter der Texturkoordinaten-Arrays werden Client-Seitig gespeichert und werden deswegen bei einem Aufruf von glPushAttrib bzw. glPopAttrib nicht gespeichert bzw. wiederhergestellt. Man benutze stattdessen glPushClientAttrib und glPopClientAttrib.

Fehlermeldungen

GL_INVALID_VALUE wird generiert, wenn size nicht 1, 2, 3 oder 4 ist.

GL_INVALID_ENUM wird generiert, wenn type keinen zulässigen Wert hat.

GL_INVALID_VALUE wird generiert, wenn stride negativ ist.

GL_INVALID_OPERATION könnte generiert werden, wenn glTexCoordPointer innerhalb eines glBegin-glEnd Blocks aufgerufen wird. (Siehe dazu die Hinweise!)


Zugehörige Wertrückgaben

glIsEnabled mit Argument GL_TEXTURE_COORD_ARRAY
glGet mit Token GL_TEXTURE_COORD_ARRAY_SIZE
glGet mit Token GL_TEXTURE_COORD_ARRAY_TYPE
glGet mit Token GL_TEXTURE_COORD_ARRAY_SIZE
glGetPointerv mit Argument GL_TEXTURE_COORD_ARRAY_POINTER

Siehe auch

glArrayElement, glColorPointer, glDrawArrays, glDrawElements, glEdgeFlagPointer, glEnable, glGetPointerv, glIndexPointer, glNormalPointer, glPopClientAttrib, glPushClientAttrib, glTexCoord, glVertexPointer