glGetError
Inhaltsverzeichnis
glGetError
Name
glGetError - liefert Informationen über OpenGL-Fehler.
Delphi-Spezifikation
Function glGetError : GLenum;
Beschreibung
glGetError liefert den Wert des Error-Flags.
Jeder bemerkbare Fehler hat OpenGL-Intern einen numerischen Wert und einen symbolischen Namen.
Wenn ein OpenGL-Fehler auftritt wird das Error-Flag auf den dafür vorgesehen Wert gesetzt.
Sobald dies geschehen ist, werden keine anderen OpenGL-Fehler mehr registriert bis glGetError aufgerufen wird.
(Das heißt, es wird immer nur der Fehler zurückgegeben, der zuerst auftrat.)
Durch den Aufruf von glGetError wird der Fehlercode zurückgegeben, und das
Error-Flag wieder auf GL_NO_ERROR gesetzt.
Wenn ein Aufruf von glGetError GL_NO_ERROR zurückgibt, bedeutet dies, dass kein registrierbarer Fehler seit dem letzten Aufruf von glGetError(bzw. seit dem die GL initialisiert wurde) aufgetreten ist.
Verteilte Implementationen:
Bei verteilten Implementationen, kann es mehrere Error_Flags geben. Sobald eins dieser Flags einen Fehler registriert hat, wird, bei einem Aufruf von glGetError, der Wert dieses Flags zurück geliefert und das entsprechende Flag auf GL_NO_ERROR gesetzt.
Wenn mehrere Flags einen Fehler registriert haben, liefert und löscht glGetError den Wert eines zufällig ausgewählten Flags. Aus diesem Grund sollte man glGetError in einer Schleife solange abrufen bis GL_NO_ERROR zurückgegeben wird.
Der Initialisierungszustand des Error-Flags ist GL_NO_ERROR.
In der aktuellen OpenGL Version sind folgende Fehler definiert:
GL_NO_ERROR
- Kein Fehler ist aufgetreten.
- Der Wert dieser Symbolischen Konstante ist garantiert immer 0.
GL_INVALID_ENUM
- Ein nicht akzeptierter Wert wurde einem numerischen Argument übergeben.
- Der fehlerhafte Befehl wird nicht ausgeführt und hat, abgesehen vom setzen des Error_Flags keine weiteren Seiteneffekte.
GL_INVALID_VALUE
- Ein numerisches Argument ist außerhalb des vorgesehenen Intervalls. (out of range)
- Der fehlerhafte Befehl wird nicht ausgeführt und hat, abgesehen vom setzen des Error_Flags keine weiteren Seiteneffekte.
GL_INVALID_OPERATION
- Der spezielle Befehl ist im momentanen Zustand von OpenGl nicht zulässig.
- Der fehlerhafte Befehl wird nicht ausgeführt und hat, abgesehen vom setzen des Error_Flags keine weiteren Seiteneffekte.
GL_STACK_OVERFLOW
- Der entsprechende Befehl würde zum überlaufen des Stacks führen. (Overflow)
- Der fehlerhafte Befehl wird nicht ausgeführt und hat, abgesehen vom setzen des Error_Flags keine weiteren Seiteneffekte.
- (Dieser Fehler tritt vorallem dann auf, wenn es mehr Aufrufe von glPushMatrix als von glPopMatrix gibt.)
GL_STACK_UNDERFLOW
- Der entsprechende Befehl würde zum unterlaufen des Stacks führen. (Underflow)
- Der fehlerhafte Befehl wird nicht ausgeführt und hat, abgesehen vom setzen des Error_Flags keine weiteren Seiteneffekte.
- (Dieser Fehler tritt vorallem dann auf, wenn es mehr Aufrufe von :glPopMatrix als von glPushMatrix gibt.)
GL_OUT_OF_MEMORY
- Es existiert nicht genug Speicher um den Befehl auszuführen.
- Der Status von OpenGL ist nach dem Auftrten dieses Fehlers undefiniert (abgesehen von den Error-Flags).
Hinweise
Wenn ein Error-Flag gesetzt wird, ist nur im Falle GL_OUT_OF_MEMORY das Ergebnis der OpenGL undefiniert. In allen anderen Fällen wird der fehlerauslösende Befehl ignoriert und hat damit keine Auswirkungen auf den Status der GL oder den Inhalt des Framebuffers.
Fehlermeldungen
GL_INVALID_OPERATION wird generiert wenn glGetError innerhalb eines glBegin-glEnd Blocks aufgerufen wird.
Zugehörige Wertrückgaben
glGetError liefert ihnen den Wert des Fehlers zurück, der als erstes, seit dem letzen Aufruf von glGetError, aufgetreten ist.
Siehe auch
andere Wertrückgabefunktionen: glGet