EXT_disjoint_timer_query 扩展
EXT_disjoint_timer_query 扩展是 WebGL API 的一部分,提供了一种方法来测量一组 GL 命令的持续时间,而不会阻塞渲染管道。
WebGL 扩展可以使用 WebGLRenderingContext.getExtension()
方法访问。有关更多信息,请参阅 使用扩展 在 WebGL 教程 中。
注意: 此扩展应该只在 WebGL1 上下文中可用。 EXT_disjoint_timer_query_webgl2
在 WebGL 2 上下文中可用。
在 WebGL 2 中,OpenGL 方法 getQueryObject()
被重命名为 WebGL2RenderingContext.getQueryParameter
。在 WebGL 2 中,可以使用 WebGLQuery
对象执行其他查询(例如遮挡查询和图元查询)。
类型
此扩展公开了新的类型
GLuint64EXT
-
无符号 64 位整数。
常量
此扩展公开了七个新常量。
ext.QUERY_COUNTER_BITS_EXT
-
一个
GLint
,指示用于保存给定目标的查询结果的位数。 ext.CURRENT_QUERY_EXT
-
一个
WebGLQuery
对象,它是给定目标的当前活动查询。 ext.QUERY_RESULT_EXT
-
一个
GLuint64EXT
,包含查询结果。 ext.QUERY_RESULT_AVAILABLE_EXT
-
一个
GLboolean
,指示查询结果是否可用。 ext.TIME_ELAPSED_EXT
-
经过的时间(以纳秒为单位)。
ext.TIMESTAMP_EXT
-
当前时间。
ext.GPU_DISJOINT_EXT
-
一个
GLboolean
,指示 GPU 是否执行了任何分离操作。
实例方法
此扩展公开了八个新方法。
ext.createQueryEXT()
-
创建一个新的
WebGLQuery
。 ext.deleteQueryEXT()
-
删除给定的
WebGLQuery
。 ext.isQueryEXT()
-
如果给定对象是一个有效的
WebGLQuery
,则返回true
。 ext.beginQueryEXT()
-
当所有在
beginQueryEXT
之前的命令都已完全执行时,计时器开始。 ext.endQueryEXT()
-
当所有在
endQueryEXT
之前的命令都已完全执行时,计时器停止。 ext.queryCounterEXT()
-
将当前时间记录到相应的查询对象中。
ext.getQueryEXT()
-
返回有关查询目标的信息。
ext.getQueryObjectEXT()
-
返回查询对象的狀態。
示例
const ext = gl.getExtension("EXT_disjoint_timer_query");
规范
规范 |
---|
WebGL EXT_disjoint_timer_query 扩展规范 |
浏览器兼容性
BCD 表格只在启用了 JavaScript 的浏览器中加载。