glBeginQuery: Unterschied zwischen den Versionen
(neu erstellt) |
DGLBot (Diskussion | Beiträge) K (Bot: konvertiere/korrigiere <BR>) |
||
Zeile 4: | Zeile 4: | ||
'''glBeginQuery''' - Kennzeichnet den Anfang einer [[Occlusion Query]]. | '''glBeginQuery''' - Kennzeichnet den Anfang einer [[Occlusion Query]]. | ||
− | + | ||
+ | |||
== Delphi-Spezifikation == | == Delphi-Spezifikation == | ||
procedure '''glBeginQuery'''(''target'' : GLenum; ''id'' : GLuint) | procedure '''glBeginQuery'''(''target'' : GLenum; ''id'' : GLuint) | ||
Zeile 18: | Zeile 19: | ||
|} | |} | ||
− | + | ||
+ | |||
== Beschreibung == | == 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. | 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. |
Version vom 22. April 2006, 19:17 Uhr
Inhaltsverzeichnis
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 der Sample-Zähler für jedes Fragment, welches den Tiefentest besteht, um einen bestimmten Wert. Falls der Wert von GL_SAMPLE_BUFFERS 0 ist, dann erhöht sich der Sample-Zähler um den Wert 1 für jedes Fragment. 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. Implementation sind nach ihrem Ermessen jedoch befugt 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. Es wird empfohlen, ist jedoch nicht erforderlich, dass OpenGL-Implementationen 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