glNormalPointer: Unterschied zwischen den Versionen
DGLBot (Diskussion | Beiträge) K (GlNormalPointer wurde nach glNormalPointer verschoben) |
DGLBot (Diskussion | Beiträge) K (Bot: konvertiere/korrigiere <BR>) |
||
Zeile 1: | Zeile 1: | ||
= glNormalPointer = | = glNormalPointer = | ||
− | + | ||
+ | |||
== Name == | == Name == | ||
'''glNormalPointer''' - Spezifiziert ein Feld mit [[Normalen]]. | '''glNormalPointer''' - Spezifiziert ein Feld mit [[Normalen]]. | ||
− | + | ||
+ | |||
== Delphi-Spezifikation == | == Delphi-Spezifikation == | ||
procedure '''glNormalPointer'''(''_type'': TGLenum; ''stride'': TGLsizei; const ''_pointer'': PGLvoid); | procedure '''glNormalPointer'''(''_type'': TGLenum; ''stride'': TGLsizei; const ''_pointer'': PGLvoid); | ||
− | + | ||
+ | |||
== Parameter == | == Parameter == | ||
Zeile 27: | Zeile 30: | ||
|} | |} | ||
− | + | ||
+ | |||
== Beschreibung == | == Beschreibung == | ||
Zeile 46: | Zeile 50: | ||
− | + | ||
+ | |||
== Hinweise == | == Hinweise == | ||
Zeile 60: | Zeile 65: | ||
− | + | ||
+ | |||
== Fehlermeldungen == | == Fehlermeldungen == | ||
'''GL_INVALID_ENUM''' wird generiert wenn ''_type'' ein ungültiger Wert übergeben wurde.<br> | '''GL_INVALID_ENUM''' wird generiert wenn ''_type'' ein ungültiger Wert übergeben wurde.<br> | ||
'''GL_INVALID_VALUE''' wird generiert wenn ''stride'' ein negativer Wert übergeben wurde.<br> | '''GL_INVALID_VALUE''' wird generiert wenn ''stride'' ein negativer Wert übergeben wurde.<br> | ||
− | + | ||
+ | |||
== Zugehörige Wertrückgaben == | == Zugehörige Wertrückgaben == | ||
Zeile 74: | Zeile 81: | ||
− | + | ||
+ | |||
== Siehe auch == | == Siehe auch == |
Version vom 22. April 2006, 19:23 Uhr
Inhaltsverzeichnis
glNormalPointer
Name
glNormalPointer - Spezifiziert ein Feld mit Normalen.
Delphi-Spezifikation
procedure glNormalPointer(_type: TGLenum; stride: TGLsizei; const _pointer: PGLvoid);
Parameter
_type | Bestimmt den Datentyp aller Koordinaten im Feld. Folgende symbolische Konstanten sind erlaubt: GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, sowie GL_DOUBLE |
---|---|
stride | Beschreibt den Byteabstand (Versatz/Offset) zwischen zwei aufeinanderfolgenden Normalen. Ist stride gleich 0 heißt dies, die Normalen sind eng aneinander gepackt im Feld gespeichert. |
_pointer | Ist ein Zeiger, der auf die erste Koordinate der ersten Normale im Feld zeigt. |
Beschreibung
glNormalPointer beschreibt Ort und Datenformat eines Feldes welches Pointer enthält und wärend des Renderns benutzt werden soll.
_type bestimmt den Datentyp der einzelnen Koordinaten einer Normale.
stride beschreibt den Byteabstand zwischen zwei aufeinanderfolgenden Normalen. Dies erlaubt es Vertices und Normalen zusammen innerhalb eines Feldes oder getrennt in verschiedenen Feldern zu speichern. (Das speichern innerhalb eines Feldes kann bei einigen Implementationen effizienter sein; siehe glInterleavedArrays)
Wird ein Normalenfeld erstellt, werden _type, stride und _pointer clientseitig gespeichert.
Um das Normalenfeld zu aktivieren bzw. deaktivieren rufen sie glEnableClientState bzw. glDisableClientState mit dem Parameter GL_NORMAL_ARRAY auf. Wenn das Feld aktiviert ist, wird es bei Aufrufen von glArrayElement, glDrawElements, oder glDrawArrays benutzt.
Benutzen sie glDrawArrays wenn sie eine Sequenz von Primitiven (alle vom selben Typ) aus vordefinierten Vertex- und Vertexattributfeldern erstellen wollen.
Benutzen sie glArrayElement um Primitive durch Indexierung von Vertex- und Vertexattributfeldern zu erstellen und benutzen sie glDrawElements um eine Folge von Primitiven (des selben Typs) durch Indexierung von Vertex- und Vertexattributfeldern zu erstellen.
Hinweise
glNormalPointer ist erst ab OpenGl 1.1 verfügbar.
Das Normalenfeld ist standardmäßig deaktiviert und wird bei Aufrufen von glArrayElement, glDrawElements, or glDrawArrays nicht benutzt.
Das Ausführen von glNormalPointer innerhalb eines glBegin-glEnd blocks ist nicht erlaubt. Trotzdem kann nicht garantiert werden, dass ein Fehler ausgelöst wird. Wird kein Fehler generiert, ist das Ergebnis des Aufrufs undefiniert.
glNormalPointer ist normalerweise Clientseitig implementiert. (siehe OpenGL Eigenschaften)
Da die Eigenschaften der Normalenfeldes clientseitig gespeichert werden, kann glPushAttrib und glPopAttrib nicht zum speichern bzw. laden dieser Eigenschaften verwendet werden. Benutzen Sie statt dessen glPushClientAttrib bzw. glPopClientAttrib.
Fehlermeldungen
GL_INVALID_ENUM wird generiert wenn _type ein ungültiger Wert übergeben wurde.
GL_INVALID_VALUE wird generiert wenn stride ein negativer Wert übergeben wurde.
Zugehörige Wertrückgaben
glIsEnabled mit Token GL_NORMAL_ARRAY
glGet mit Token GL_NORMAL_ARRAY_TYPE
glGet mit Token GL_NORMAL_ARRAY_STRIDE
glGetPointerv mit Token GL_NORMAL_ARRAY_POINTER
Siehe auch
glArrayElement, glColorPointer, glDrawArrays, glDrawElements, glEdgeFlagPointer, glEnable, glGetPointerv, glIndexPointer, glInterleavedArrays, glPopClientAttrib, glPushClientAttrib, glTexCoordPointer, glVertexPointer