OES_vertex_array_object 扩展

Baseline 已广泛支持

此功能已成熟,可跨多种设备和浏览器版本工作。它自 ⁨2018 年 4 月⁩ 起已在所有浏览器中可用。

OES_vertex_array_object 扩展是 WebGL API 的一部分,它提供了顶点数组对象(VAO),这些对象封装了顶点数组状态。这些对象保留了指向顶点数据的指针,并为不同的顶点数据集合提供了名称。

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

注意:此扩展仅适用于 WebGL1 上下文。在 WebGL2 中,此扩展的功能默认在 WebGL2 上下文中可用,并且常量和方法在没有 OES_ 前缀的情况下即可使用。

常量

此扩展公开了一个新常量,可用于 gl.getParameter() 方法。

ext.VERTEX_ARRAY_BINDING_OES

pname 参数在 gl.getParameter() 方法中使用时,返回一个 WebGLVertexArrayObject 对象。

实例方法

此扩展公开了四个新方法。

ext.createVertexArrayOES()

创建一个新的 WebGLVertexArrayObject

ext.deleteVertexArrayOES()

删除给定的 WebGLVertexArrayObject

ext.isVertexArrayOES()

如果给定的对象是 WebGLVertexArrayObject,则返回 true

ext.bindVertexArrayOES()

将给定的 WebGLVertexArrayObject 绑定到缓冲区。

示例

js
const oes_vao_ext = gl.getExtension("OES_vertex_array_object");
const vao = oes_vao_ext.createVertexArrayOES();
oes_vao_ext.bindVertexArrayOES(vao);

// …
// calls to bindBuffer or vertexAttribPointer
// which will be "recorded" in the VAO
// …

规范

规范
WebGL OES_vertex_array_object Khronos 批准扩展规范

浏览器兼容性

另见