"use strict" var createVAONative = require("./lib/vao-native.js") var createVAOEmulated = require("./lib/vao-emulated.js") function ExtensionShim (gl) { this.bindVertexArrayOES = gl.bindVertexArray.bind(gl) this.createVertexArrayOES = gl.createVertexArray.bind(gl) this.deleteVertexArrayOES = gl.deleteVertexArray.bind(gl) } function createVAO(gl, attributes, elements, elementsType) { var ext = gl.createVertexArray ? new ExtensionShim(gl) : gl.getExtension('OES_vertex_array_object') var vao if(ext) { vao = createVAONative(gl, ext) } else { vao = createVAOEmulated(gl) } vao.update(attributes, elements, elementsType) return vao } module.exports = createVAO