diff options
Diffstat (limited to 'src/library_gl.js')
-rw-r--r-- | src/library_gl.js | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/src/library_gl.js b/src/library_gl.js index db81e358..adf9d611 100644 --- a/src/library_gl.js +++ b/src/library_gl.js @@ -1439,26 +1439,17 @@ var LibraryGL = { tempQuadIndexBuffer: null, generateTempBuffers: function() { - function ceilPower2(x) { - return Math.pow(2, Math.ceil(Math.log(x || 1)/Math.log(2))); - } this.tempBufferIndexLookup = new Uint8Array(this.MAX_TEMP_BUFFER_SIZE+1); - var last = -1, curr = -1; - for (var i = 0; i <= this.MAX_TEMP_BUFFER_SIZE; i++) { - var size = ceilPower2(i); - if (size != last) { - curr++; - last = size; - } - this.tempBufferIndexLookup[i] = curr; - } this.tempVertexBuffers = []; this.tempIndexBuffers = []; - last = -1; + var last = -1, curr = -1; + var size = 1; for (var i = 0; i <= this.MAX_TEMP_BUFFER_SIZE; i++) { - var size = ceilPower2(i); - curr = this.tempBufferIndexLookup[i]; + if (i > size) { + size <<= 1; + } if (size != last) { + curr++; this.tempVertexBuffers[curr] = Module.ctx.createBuffer(); Module.ctx.bindBuffer(Module.ctx.ARRAY_BUFFER, this.tempVertexBuffers[curr]); Module.ctx.bufferData(Module.ctx.ARRAY_BUFFER, size, Module.ctx.DYNAMIC_DRAW); @@ -1469,8 +1460,8 @@ var LibraryGL = { Module.ctx.bindBuffer(Module.ctx.ELEMENT_ARRAY_BUFFER, null); last = size; } + this.tempBufferIndexLookup[i] = curr; } - // GL_QUAD indexes can be precalculated this.tempQuadIndexBuffer = Module.ctx.createBuffer(); Module.ctx.bindBuffer(Module.ctx.ELEMENT_ARRAY_BUFFER, this.tempQuadIndexBuffer); |