glInterleavedArrays: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Fehlermeldungen)
K (GlInterleavedArrays wurde nach glInterleavedArrays verschoben)
(kein Unterschied)

Version vom 5. Dezember 2005, 20:28 Uhr

glInterleavedArrays


Name

glInterleavedArrays - spezifiziert und aktiviert gleichzeitig überlappende Arrays.


Delphi-Spezifikation

procedure glInterleavedArrays(format: TGLenum; stride: TGLsizei; const _pointer: PGLvoid);



Parameter

format Gibt den Typ des Arrays an der aktiviert werden soll. Folgende Konstanten werden akzeptiert:
GL_V2F, GL_V3F, GL_C4UB_V2F, GL_C4UB_V3F, GL_C3F_V3F, GL_N3F_V3F, GL_C4F_N3F_V3F, GL_T2F_V3F, GL_T4F_V4F, GL_T2F_C4UB_V3F, GL_T2F_C3F_V3F, GL_T2F_N3F_V3F, GL_T2F_C4F_N3F_V3F und GL_T4F_C4F_N3F_V4F.
stride Legt den Abstand in Bytes zwischen jedem ganzen Array Element fest.


Beschreibung

glInterleavedArrays konfiguriert und aktiviert individuelle Farben, Normalen, Textur und Vertex Arrays, die Teil eines größeren Array Elementes sind. Bei manchen Implementationen ist diese effizienter als mehre kleine Arrays zu haben.

Wenn stride 0 ist, werden die zusammengefügten Elemente im Speicher hintereinander abgelegt. Andernfalls liegen stride Bytes zwichen dem Anfang des einen kompletten Array Elementes und dem Anfang des Nachfolgenden.

format funktioniert als ein Schlüssel welcher die Extraktion der einzelen Arrays aus dem großen gesammten Array regelt. Falls format ein T beinhaltet, enthält das Gesammtarray Texturkoordinaten, falls ein C vorhanden ist, enthält das Array Farbwerte, und falls ein N vorhanden ist sind Normalen im Array mitabgespeichert. Vertexkoordinaten sind immer im Array enthalten.

Die Ziffern 2, 3 und 4 geben an wieviele Werte extrahiert werden. F bedeutet das die Werte als Gleitkommazahlen extrahiert werden. Falls eine Farbe als 4 vorzeichenlose Bytes extrahiert wird, dann befindet sich das darauf folgende Array Element an der ersten möglichen gleitkomma Adresse.


Hinweise

glInterleavedArrays ist erst ab der OpenGL Version 1.1 verfügbar.

Wird glInterleavedArrays wärend dem Kompilervorgang einer Displayliste aufgerufen, dann wird es nicht in die Liste kompilert sondern sofort ausgeführt.

Die Ausführung von glInterleavedArrays zwischen glBegin und dem dazugehörigen glEnd ist nicht erlaubt. Jedoch wird eventuell kein Fehler generiert. Falls kein Fehler geniert wird, ist der Ausgang der Operation nicht definiert.

glInterleavedArrays ist normalerweise auf der Clientseite implementiert.

Vertex Array Parameter sind Zustände der Clientseite und werden daher nicht mit glPushAttrib gespeichert oder mit glPopAttrib geladen. Statt dessen kann glPushClientAttrib und glPopClientAttrib dafür verwendet werden.


Fehlermeldungen

GL_INVALID_ENUM wird generiert wenn format nicht akzeptiert wird
GL_INVALID_VALUE wird generiert wenn stride negativ ist


Siehe auch

glArrayElement, glColorPointer, glDrawArrays, glDrawElements, glEdgeFlagPointer, glEnableClientState, glGetPointerv, glIndexPointer, glNormalPointer, glTexCoordPointer, glVertexPointer