glFogCoordPointer

Aus DGL Wiki
Wechseln zu: Navigation, Suche

glFogCoordPointer

Name

glFogCoordPointer - definiert ein Array mit Nebelkoordinaten für die OpenGL Vertexarray-Funktionalität.


Delphi-Spezifikation

procedure glFogCoordPointer(_type: TGLenum; stride: TGLsizei; const _pointer: PGLvoid);



Parameter

_type Der Datentyp des Arrays. Als symbolische Konstanten werden GL_FLOAT und GL_DOUBLE akzeptiert.
stride Bestimmt den Byteabstand zwischen aufeinenderfolgenden Nebelkoordinaten. Wenn stride 0 (Standard) ist, wird angenommen, dass die Koordinaten in dem Array dicht gepackt liegen.
_pointer Bestimmt einen Zeiger auf die erste Nebelkoordinate im Array.



Beschreibung

glFogCoordPointer bestimmt den Ort und das Datenformat eines Nebelkoordinaten-Arrays, das zum Rendern benutzt werden soll. _type bestimmt den Datentyp jeder Koordinate. stride legt den Abstand zwischen den Nebelkoordinaten fest. Dadurch ist es möglich, dass Vertices und Attribute in einem Einzelnen oder aber verschiedenen Arrays liegen können.(Einzelspeicherung kann in einigen Implementationen effizienter sein; siehe glInterleavedArrays)

Wenn ein Nebelkoordinten-Array festgelegt wird, werden _type, stride und _pointer als klientseitiger Status gespeichert.

Um das Nebelkoordinaten-Array ein- und auszuschalten, können glEnableClientState und glDisableClientState mit dem Argument GL_FOG_COORDINATE_ARRAY aufgerufen werden. Wenn aktiviert, wird das Array bei Aufrufen von glDrawArrays, glDrawElements, glDrawRangeElements, glMultiDrawElements und glArrayElement benutzt.

Es ist zu beachten, das die definierten Nebelkoordinaten nur eine Wirkung haben, wenn die Nebelkoordinatenquelle entsprechend eingestellt ist (mittels glFog(GL_FOG_COORD_SRC, GL_FOG_COORD), und der Nebeleffekt mittels glEnable(GL_FOG) aktiviert wurde.

Hinweise

glFogCoordPointer ist erst ab OpenGL Version 1.4 oder später verfügbar.

Im Initialisierungszustand ist das Nebelkoordinaten-Array deaktiviert und wird von glArrayElement, glDrawArrays, glDrawRangeElements, glMultiDrawElements bzw. glDrawElements nicht benutzt, wenn diese Befehle aufgerufen werden.

Ein Aufruf von glFogCoordPointer innerhalb eines glBegin-glEnd Blocks ist nicht erlaubt. Trotzdem kann es sein, dass kein Fehler generiert wird. Wenn dies geschieht, ist die Operation undefiniert.

glFogCoordPointer ist normalerweise auf der Klientseite implementiert.

Nebelkoordinaten-Array Parameter werden klientseitig gespeichert und können deshalb nicht mit glPushAttrib und glPopAttrib gespeichert bzw. wiederhergestellt werden. Benutzen Sie stattdessen glPushClientAttrib und glPopClientAttrib.


Fehlermeldungen

GL_INVALID_ENUM wird generiert wenn _type ein ungültiger Wert zugewiesen wird.
GL_INVALID_VALUE wird generiert wenn stride negativ ist.


Zugehörige Wertrückgaben

glIsEnabled mit dem Token GL_FOG_COORDINATE_ARRAY
glGet mit Token GL_FOG_COORDINATE_ARRAY_TYPE
glGet mit Token GL_FOG_COORDINATE_ARRAY_STRIDE
glGetPointerv mit dem Token GL_FOG_COORDINATE_ARRAY_POINTER



Siehe auch

glArrayElement, glColorPointer, glDrawArrays, glDrawElements, glDrawRangeElements, glEdgeFlagPointer, glEnable, glFogCoord, glGetPointerv, glIndexPointer, glInterleavedArrays, glMultiDrawElements, glNormalPointer, glPopClientAttrib, glPushClientAttrib, glSecondaryColorPointer, glTexCoordPointer, glVertexPointer