UNPKG

meta-next

Version:

46 lines (37 loc) 1.01 kB
import Engine from "../Engine" class Mesh { constructor(buffer, indices) { const gl = Engine.gl this.buffer = gl.createBuffer() gl.bindBuffer(gl.ARRAY_BUFFER, this.buffer) gl.bufferData(gl.ARRAY_BUFFER, buffer, gl.DYNAMIC_DRAW) this.stride = buffer.length if(indices) { this.numElements = 6 this.indices = gl.createBuffer() gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indices) gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.DYNAMIC_DRAW) } else { this.numElements = 0 this.indices = null } } upload(buffer) { const gl = Engine.gl this.stride = buffer.length gl.bindBuffer(gl.ARRAY_BUFFER, this.buffer) gl.bufferData(gl.ARRAY_BUFFER, buffer, gl.DYNAMIC_DRAW) } uploadIndices(indices, numElements) { const gl = Engine.gl this.numElements = numElements gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indices) gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.DYNAMIC_DRAW) } } export default Mesh