glGetQueryObject
Inhaltsverzeichnis
glGetQueryObject
Name
glGetQueryObject - Fragt den Zustand eines Occlusion Query-Objektes ab.
Delphi-Spezifikation
procedure glGetQueryObjectiv(id: GLuint; pname: GLenum; params: PGLint); procedure glGetQueryObjectuiv(id: GLuint; pname: GLenum; params: PGLuint);
Parameter
id | Id des abzufragenden Query-Objektes. |
---|---|
pname | Parametername, der abgefragt werden soll. Mögliche Werte sind GL_QUERY_RESULT und GL_QUERY_RESULT_AVAILABLE. |
params | Enthält die angeforderten Daten bezüglich der Eigenschaft pname. |
Beschreibung
glGetQueryObject liefert über params Werte der Eigenschaft pname des Query-Objektes mit der Id id zurück.
Zwei verschiedene Eigenschaften können abgefragt werden:
GL_QUERY_RESULT
- params liefert das Ergebnis eines Query-Objektes, also den Wert des Sample-Zählers (siehe glBeginQuery).
- Falls GL_QUERY_COUNTER_BITS auf 0 gesetzt ist, wird immer 0 zurückgeliefert.
GL_QUERY_RESULT_AVAILABLE
- params liefert GL_TRUE, falls das Ergebnis für ein Query-Objekt vorliegt, ansonsten GL_FALSE.
Es kann zu einer unbestimmten Verzögerung kommen, bevor das Ergebnis einer Occlusion-Query vorliegt.
Daher ist es sinnvoll, vor der Abfrage eines Occlusion-Query-Objektes zu prüfen, ob GL_QUERY_RESULT_AVAILABLE den Wert GL_TRUE zurückliefert.
Hinweise
glGetQueryObject ist erst ab OpenGL 1.5 oder höher verfügbar.
Für jede Occlusion-Query muss nach endlicher Zeit ein Query-Ergebnis vorliegen.
Ist für eine Query ein Ergebnis verfügbar, so muss für jede Occlusion-Query, die vor dieser mit glBeginQuery/glEndQuery definiert wurde, GL_QUERY_RESULT_AVAILABLE gleich GL_TRUE sein.
Falls mehrere Queries mit demselben target-Wert und derselben Id vor getQueryObject erstellt wurden, wird sich das zurückgegebene Ergebnis immer auf die zuletzt erstellte Query beziehen. Die Ergebnisse aller Queries vor der zuletzt definierten gehen verloren, falls kein Ergebnis abgefragt wurde, bevor eine neue Query mit demselben target-Wert und derselben Id erstellt wurde.
Fehlermeldungen
- GL_INVALID_OPERATION
- id ist keine zulässige Id eines Query-Objektes oder das abzufragende Query-Objekt ist noch aktiv (ein Query-Objekt ist aktiv, wenn es mit glBeginQuery gestartet, aber noch nicht mit glEndQuery abgeschlossen wurde).
Zugehörige Wertrückgaben
glGetQuery mit Token GL_CURRENT_QUERY gibt die momentan aktive Query-ID zurück.
glGetQuery mit Token GL_QUERY_COUNTER_BITS gibt die Anzahl der Bits des Occlusion-Query-Zählers zurück.
Siehe auch
glBeginQuery, glDeleteQueries, glEndQuery, glGenQueries, glGetQuery, glIsQuery