2 OpenGL Befehls Syntax

OpenGL umfaßt ca. 120 Befehle, die alle einheitlichen Syntaxregeln folgen:

z.B.:

glVertex2i (1,3);           // Ein 2d Vertex als Integer übergeben
glVertex2f (1.0, 3.0);      // Ein 2d Vertex als Float übergeben
glVertex3d (1.0, 3.0, 4.0); // Ein 3d Vertex als Double übergeben
glVertex3fv (vector);       // Ein 3d Vertex als float Array
Hier eine Tabelle der zulässigen Suffixe, und des entsprechenden Datentyps

Suffix Daten Typ C-Typ OpenGL Typ
b 8-Bit Integer signed char GLbyte
s 16-Bit IntegershortGLshort
i32-Bit IntegerlongGlint, GLsizei
f32-Bit FloatfloatGLfloat
d64-Bit FloatdoubleGLdouble
ub 8-Bit unsigned Integer unsigned char Glubyte, GLboolean
us 16-Bit unsigned Integer unsigned short Glushort
ul 32-Bit unsigned Integer unsigned long Gluint, GLenum, GLbitfield

OpenGL ist eine ‘State Machine’. D.h. das ein Zustand (z.B. Farbe, Linienstärke, etc.) solange bestehen bleibt, bis er wieder geändert wird.

Zustände werden meist mit den Befehlen glEnable() oder glDisable() gesetzt. Zustände werden mit: glGetBooleanv(), glGetDoublev(), glGetFloatv() oder glGetIntegerv() ausgelesen.

Darüber hinaus können Zustände auch auf dem Stack gesichert werden: glPushAttrib() und glPopAttrib().

Über die ‘Standard’ OpenGL Befehle hinaus gibt’s einige mehr oder weniger standardisierte OpenGL - Bibliotheken, die auch plattformübergreifend angeboten werden.

In der ’OpenGL Utility Library’ sind einige nützliche Befehle zur Kameramanipulation, erzeugen von Mip-Maps, etc. enthalten. Die Befehle sind weiterhin sehr ‘tief’ angesiedelt und im Grunde einfach Zusammenfassungen von häufigen OpenGL - Befehlsfolgen. Alle Befehle aus dieser Bibliothek beginnen mit dem Präfix glu’.

In der ‘OpenGL Extension for the X Window System’ sind einige Befehle zur Fensterverwaltung auf X-Windows Syste-men enthalten. Alle Befehle beginnen mit ‘glx’. Es gibt für WindowsNT ein Pendant dazu, daß sehr ähnlich ist, und auf glw’ beginnt.

Die OpenGL Programming Guide Auxiliary Library wurde eigentlich nur als Hilfe für das Buch ‘OpenGL Programming Guide’ entwickelt, da dieses Buch aber ein derart legendäres Standardwerk unter den OpenGL Programmierern gewor-den ist, (‘the red book’) ist inzwischen auch die auxiliary library (bequemes öffnen von Fenstern, I/O handling, Standard Objekte (Teapot!), etc.) ein de facto Standard der plattformübergreifend vertreten ist. Befehle beginnen mit ‘aux’.

Und schließlich gibt’s noch den ‘Open Inventor’, der auf OpenGL aufbaut. Open Inventor ist eine objektorientierte Erweiterung von OpenGL, die wesentlich komplexere Befehle (Events, drucken von Graphiken, Objektstrukturen, etc.) und darum auch wesentlich langsamer ist.

Der Open Inventor ist auch plattformübergreifend.