meta-next
Version:
46 lines (37 loc) • 1.01 kB
JavaScript
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