error = gl.GetError()
gl.GetError()
gibt den Wert des Fehlerflags zurück. Jedem erkennbaren Fehler
sind ein Zahlencode und ein symbolischer Name zugeordnet. Im Fehlerfall wird
das Fehlerflag auf den entsprechenden Fehlercodewert gesetzt. Es werden keine
weiteren Fehler aufgezeichnet, bis gl.GetError()
aufgerufen, der Fehlercode
zurückgegeben und das Flag auf #GL_NO_ERROR
zurückgesetzt wird. Wenn ein
Aufruf von gl.GetError()
#GL_NO_ERROR
zurückgibt, gab es seit dem letzten
Aufruf von gl.GetError()
oder seit der Initialisierung der GL keinen
erkennbaren Fehler.
Um verteilte Implementierungen zu ermöglichen, kann es mehrere Fehlerflags
geben. Wenn ein einzelnes Fehlerflag einen Fehler aufgezeichnet hat, wird
der Wert dieses Flags zurückgegeben und dieses Flag wird auf #GL_NO_ERROR
zurückgesetzt, wenn gl.GetError()
aufgerufen wird. Wenn mehr als ein Flag
einen Fehler aufgezeichnet hat, gibt gl.GetError()
einen beliebigen
Fehler-Flagwert zurück und löscht ihn. Daher sollte gl.GetError()
immer
in einer Schleife aufgerufen werden, bis es #GL_NO_ERROR
zurückgibt, wenn
alle Fehlerflags zurückgesetzt werden sollen.
Zunächst werden alle Fehlerflags auf #GL_NO_ERROR
gesetzt.
Die folgenden Fehler sind derzeit definiert:
#GL_NO_ERROR
#GL_INVALID_ENUM
#GL_INVALID_VALUE
#GL_INVALID_OPERATION
#GL_STACK_OVERFLOW
#GL_STACK_UNDERFLOW
#GL_OUT_OF_MEMORY
Wenn ein Fehlerflag gesetzt ist, sind die Ergebnisse einer GL-Operation nur
dann undefiniert, wenn #GL_OUT_OF_MEMORY
aufgetreten ist. In allen anderen
Fällen wird der Befehl, der den Fehler erzeugt, ignoriert und hat keinen
Einfluss auf den GL-Status- oder Rahmenpufferinhalt. Wenn der erzeugende
Befehl einen Wert zurückgibt, gibt er 0 zurück. Wenn gl.GetError()
selbst
einen Fehler erzeugt, gibt er 0 zurück.
Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.
#GL_INVALID_OPERATION
wird erzeugt, wenn gl.GetError()
zwischen
gl.Begin() und gl.End() ausgeführt
wird. In diesem Fall gibt gl.GetError()
0 zurück.