Bezeichnung
gl.InterleavedArrays -- gibt verschachtelte Felder an und aktiviert sie gleichzeitig
Übersicht
gl.InterleavedArrays(format, stride, data)
Beschreibung
gl.InterleavedArrays() ermöglicht es Ihnen, individuelle Farb-, Normal-, Textur- und Scheitelpunkt-Felder anzugeben und zu aktivieren, deren Elemente Teil eines größeren Aggregat-Feld-Element hat. Bei einigen Implementierungen ist dies effizienter als die separate Angabe der Felder.

data muss ein Zeiger auf einen Rohdatenspeicher sein, der von dem Hollywood-Befehl AllocMem() zugewiesen wird und die relevanten Felddaten enthält. Verwenden Sie den Hollywood-Befehl GetMemPointer(), um die Rohzeiger-Adresse von Speicherblöcken zu erhalten, die von AllocMem() zugewiesen wurden. Siehe Mit Zeigern arbeiten für Details zur Verwendung von Speicherzeigern mit Hollywood.

Wenn stride gleich 0 ist, werden die Aggregatelemente nacheinander gespeichert. Andernfalls treten stride Bytes zwischen dem Anfang eines Aggregat-Feld-Elements und dem Anfang des nächsten Aggregat-Feld-Elements auf.

format dient als Schlüssel, der die Extraktion einzelner Felder aus dem Aggregat-Feld beschreibt. Wenn format ein T enthält, dann werden Texturkoordinaten aus dem verschachtelten Feld extrahiert. Wenn ein C vorhanden ist, werden Farbwerte extrahiert. Wenn ein N vorhanden ist, werden normale Koordinaten extrahiert. Scheitelpunkt-Koordinaten werden immer extrahiert. Die Ziffern 2, 3 und 4 geben an, wie viele Werte extrahiert werden. F zeigt an, dass Werte als Fließkommazahlen extrahiert werden. Farben können auch als 4 unsignierte Bytes extrahiert werden, wenn 4UB dem C folgt. Wenn eine Farbe als 4 unsignierte Bytes extrahiert wird, befindet sich das nachfolgende Scheitelpunkt-Feld-Element an der ersten möglichen Fließkomma-Adresse. Die folgenden symbolischen Konstanten werden für format erkannt:

 
#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
#GL_T4F_C4F_N3F_V4F

Wenn gl.InterleavedArrays() beim kompilieren einer Display-Liste aufgerufen wird, wird sie nicht in die Liste kompiliert, sondern sofort ausgeführt.

Die Ausführung von gl.InterleavedArrays() ist zwischen gl.Begin() und gl.End() nicht erlaubt. Es kann ein Fehler auftreten oder aber auch nicht. Wenn kein Fehler erzeugt wird, ist der Vorgang undefiniert.

gl.InterleavedArrays() wird typischerweise auf der Klient-Seite implementiert.

Scheitelpunkt-Feld-Parameter sind klientseitig und werden daher nicht durch gl.PushAttrib() und gl.PopAttrib() gespeichert oder wiederhergestellt. Verwenden Sie stattdessen gl.PushClientAttrib() und gl.PopClientAttrib().

Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.

Eingaben
format
gibt den Typ des zu aktivierenden Feldes an (siehe oben für unterstützte Formate)
stride
gibt den Versatz in Bytes zwischen den einzelnen Aggregat-Feld-Elementen an
data
Rohspeicherzeiger mit Daten
Fehler
#GL_INVALID_ENUM wird erzeugt, wenn format kein akzeptierter Wert ist.


Navigation zeigen