diff options
Diffstat (limited to 'src/library_gl.js')
-rw-r--r-- | src/library_gl.js | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/library_gl.js b/src/library_gl.js index ea0301ac..9bf206f5 100644 --- a/src/library_gl.js +++ b/src/library_gl.js @@ -1430,12 +1430,15 @@ var LibraryGL = { Module.ctx.bufferData(Module.ctx.ELEMENT_ARRAY_BUFFER, this.indexData.subarray(0, numIndexes), Module.ctx.STATIC_DRAW); } - Module.ctx.bindBuffer(Module.ctx.ARRAY_BUFFER, this.vertexObject); - Module.ctx.bufferData(Module.ctx.ARRAY_BUFFER, this.vertexData.subarray(0, this.vertexCounter), Module.ctx.STATIC_DRAW); + if (!GL.currArrayBuffer) { + Module.ctx.bindBuffer(Module.ctx.ARRAY_BUFFER, this.vertexObject); + Module.ctx.bufferData(Module.ctx.ARRAY_BUFFER, this.vertexData.subarray(0, this.vertexCounter), Module.ctx.STATIC_DRAW); + } // Render - Module.ctx.useProgram(renderer.program); - Module.ctx.bindBuffer(Module.ctx.ARRAY_BUFFER, this.vertexObject); + if (!GL.currProgram) { + Module.ctx.useProgram(renderer.program); + } renderer.prepare(); @@ -1448,6 +1451,13 @@ var LibraryGL = { Module.ctx.drawArrays(GL.immediate.mode, 0, numVertexes); } + if (!GL.currArrayBuffer) { + Module.ctx.bindBuffer(Module.ctx.ARRAY_BUFFER, null); + } + if (!GL.currProgram) { + Module.ctx.useProgram(null); + } + this.vertexCounter = 0; } }, |