glBeginQuery

Aus DGL Wiki
Wechseln zu: Navigation, Suche

glBeginQuery

Name

glBeginQuery - Kennzeichnet den Anfang einer Occlusion Query.


Delphi-Spezifikation

procedure glBeginQuery(target : GLenum; id : GLuint)

Parameter

target Muss GL_SAMPLES_PASSED sein.
id Name des Query-Objektes, welches neu begonnen werden soll.


Beschreibung

Eine Occlusion Query wird mit glBeginQuery gestartet und mit glEndQuery beendet, wobei der Parameter target stets GL_SAMPLES_PASSED sein muss. Falls glBeginQuery mit einer unbenutzten id aufgerufen wird, wird dieser Name als benutzt gekennzeichnet und einem neuen Query-Objekt zugewiesen.

glBeginQuery mit dem target GL_SAMPLES_PASSED setzt den aktuellen Sample-Zähler auf 0 zurück, die interne Variable Aktivstatus auf GL_TRUE und die aktive Query-ID auf id.

Wenn eine Occlusion-Query aktiv ist, erhöht sich für jedes Fragment, welches den Tiefentest besteht, der Sample-Zähler um einen bestimmten Wert.
Falls der Wert von GL_SAMPLE_BUFFERS 0 ist, erhöht sich für jedes Fragment der Sample-Zähler um den Wert 1.
Falls der Wert von GL_SAMPLE_BUFFERS 1 ist, erhöht sich der Sample-Zähler um die Anzahl der Samples, dessen Überdeckungs-Bit gesetzt ist.

OpenGL-Implementationen ist es jedoch nach ihrem eigenen Ermessen erlaubt, stattdessen den Sample-Zähler um den Wert von GL_SAMPLES zu erhöhen, falls irgendein Sample im Fragment überdeckt wird. Falls der Sample-Zähler überläuft, z.B. den Wert 2n - 1 überschreitet (wobei n die Anzahl der Bits des Zählers ist), wird sein Wert undefiniert. OpenGL-Implementationen können, müssen jedoch nicht, diesen Überlauf behandeln.

Hinweise

glGenQueries ist erst ab OpenGL 1.5 oder höher verfügbar.

Fehlermeldungen

GL_INVALID_ENUM
target ist nicht GL_SAMPLES_PASSED.
GL_INVALID_OPERATION
glBeginQuery wurde mit id gleich 0 aufgerufen, während eine andere Query mit demselben target-Wert ausgeführt wird oder id gleich dem Namen einer aktuell ausgeführten Query ist.

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

glDeleteQueries, glEndQuery, glGenQueries, glGetQuery, glGetQueryObject, glIsQuery