OES_vertex_array_object 扩展

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

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

注意:此扩展仅适用于 WebGL1 上下文。在 WebGL2 中,此扩展的功能默认在 WebGL2 上下文中可用,并且常量和方法无需 "OES" 后缀。

常量

此扩展公开了一个新的常量,它可以在 gl.getParameter() 方法中使用

ext.VERTEX_ARRAY_BINDING_OES

gl.getParameter() 方法中作为 pname 参数使用时,将返回一个 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 批准扩展规范

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅