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 ArrayHier 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 Integer | short | GLshort |
| i | 32-Bit Integer | long | Glint, GLsizei |
| f | 32-Bit Float | float | GLfloat |
| d | 64-Bit Float | double | GLdouble |
| 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.