EXT_disjoint_timer_query-Erweiterung
Die EXT_disjoint_timer_query-Erweiterung ist Teil der WebGL API und bietet eine Möglichkeit, die Dauer einer Reihe von GL-Befehlen zu messen, ohne die Rendering-Pipeline zu blockieren.
WebGL-Erweiterungen sind mit der Methode WebGLRenderingContext.getExtension()
verfügbar. Für weitere Informationen siehe Verwendung von Erweiterungen im WebGL-Tutorial.
Hinweis: Diese Erweiterung sollte nur in WebGL1-Kontexten verfügbar sein. EXT_disjoint_timer_query_webgl2
ist in WebGL 2-Kontexten verfügbar.
In WebGL 2 wird die OpenGL-Methode getQueryObject()
in WebGL2RenderingContext.getQueryParameter
umbenannt.
In WebGL 2 sind andere Abfragen (wie Okklusionsabfragen und Primärabfragen) mit WebGLQuery
-Objekten möglich.
Typen
Diese Erweiterung führt einen neuen Typ ein:
GLuint64EXT
-
Unsigned 64-Bit-Ganzzahl.
Konstanten
Diese Erweiterung führt sieben neue Konstanten ein.
ext.QUERY_COUNTER_BITS_EXT
-
Ein
GLint
, der die Anzahl der Bits angibt, die verwendet werden, um das Abfrageergebnis für das gegebene Ziel zu speichern. ext.CURRENT_QUERY_EXT
-
Ein
WebGLQuery
-Objekt, das die derzeit aktive Abfrage für das gegebene Ziel ist. ext.QUERY_RESULT_EXT
-
Ein
GLuint64EXT
, das das Abfrageergebnis enthält. ext.QUERY_RESULT_AVAILABLE_EXT
-
Ein
GLboolean
, das angibt, ob ein Abfrageergebnis verfügbar ist oder nicht. ext.TIME_ELAPSED_EXT
-
Verstrichene Zeit (in Nanosekunden).
ext.TIMESTAMP_EXT
-
Die aktuelle Zeit.
ext.GPU_DISJOINT_EXT
-
Ein
GLboolean
, das angibt, ob die GPU irgendeine disjunkte Operation ausgeführt hat.
Instanzmethoden
Diese Erweiterung führt acht neue Methoden ein.
ext.createQueryEXT()
-
Erstellt eine neue
WebGLQuery
. ext.deleteQueryEXT()
-
Löscht eine gegebene
WebGLQuery
. ext.isQueryEXT()
-
Gibt
true
zurück, wenn ein gegebenes Objekt eine gültigeWebGLQuery
ist. ext.beginQueryEXT()
-
Der Timer startet, wenn alle Befehle vor
beginQueryEXT
vollständig ausgeführt wurden. ext.endQueryEXT()
-
Der Timer stoppt, wenn alle Befehle vor
endQueryEXT
vollständig ausgeführt wurden. ext.queryCounterEXT()
-
Nimmt die aktuelle Zeit in das entsprechende Abfrageobjekt auf.
ext.getQueryEXT()
-
Gibt Informationen über ein Abfrageziel zurück.
ext.getQueryObjectEXT()
-
Gibt den Status eines Abfrageobjekts zurück.
Beispiele
const ext = gl.getExtension("EXT_disjoint_timer_query");
Spezifikationen
Specification |
---|
WebGL EXT_disjoint_timer_query Extension Specification |
Browser-Kompatibilität
BCD tables only load in the browser