EXT_disjoint_timer_query 扩展

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

EXT_disjoint_timer_query 扩展是 WebGL API 的一部分,它提供了一种在不阻塞渲染管线的情况下测量一组 GL 命令持续时间的方法。

可以使用 WebGLRenderingContext.getExtension() 方法来访问 WebGL 扩展。有关更多信息,请参阅 WebGL 教程中的 使用扩展

注意: 此扩展仅在 WebGL1 上下文中可用。在 WebGL 2 上下文中可使用 EXT_disjoint_timer_query_webgl2

在 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()

返回查询对象的状态。

示例

js
const ext = gl.getExtension("EXT_disjoint_timer_query");

规范

规范
WebGL EXT_disjoint_timer_query 扩展规范

浏览器兼容性

另见