EXT_disjoint_timer_query 扩展

EXT_disjoint_timer_query 扩展是 WebGL API 的一部分,提供了一种方法来测量一组 GL 命令的持续时间,而不会阻塞渲染管道。

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

注意: 此扩展应该只在 WebGL1 上下文中可用。 EXT_disjoint_timer_query_webgl2WebGL 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()

返回查询对象的狀態。

示例

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

规范

规范
WebGL EXT_disjoint_timer_query 扩展规范

浏览器兼容性

BCD 表格只在启用了 JavaScript 的浏览器中加载。

另请参阅