Die einen ändern den Zustand von internen Variablen wie zum Beispiel
den Transformationsmatrizen, den aktiven Lichtquellen oder der
gewählten Textur, die anderen schicken Geometriedaten (Streams)
an die Grafikkarte. Letztere werden im Programm durch
und
zu Blöcken zusammengeschlossen um es dem Treiber zu ermöglichen
Optimierungen auf Geschwindigkeit vorzunehmen. Innerhalb dieser Blöcke
dürfen keine Änderungen am internen Zustand OpenGLs vorgenommen
werden.
Ein vollständiger Satz dieser internen Zustände wird Kontext genannt. Um OpenGL überhaupt nutzen zu können muss für ein Fenster in welches OpenGL zeichnen soll ein solcher Kontext erzeugt und vorgehalten werden. Dies muss ebenfalls vom Hostsystem erledigt werden.