diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-06-05 14:40:28 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-06-05 14:40:28 -0700 |
commit | 700937cd2e667a1af4934121f9973439bee435b0 (patch) | |
tree | 024b50c028411a56007ccdc0da04ac350384c6ad /src/library_gl.js | |
parent | 3b39fa49c53aa07f88d3c3be95464d8208619854 (diff) |
refactor modifying of GL immediate state to nicer locations
Diffstat (limited to 'src/library_gl.js')
-rw-r--r-- | src/library_gl.js | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/library_gl.js b/src/library_gl.js index 578b8437..d18a3ffc 100644 --- a/src/library_gl.js +++ b/src/library_gl.js @@ -1630,6 +1630,7 @@ var LibraryGL = { GL.immediate.lastVertex = first + count; } GL.immediate.flush(null, first); + GL.immediate.mode = 0; }; _glDrawElements = function(mode, count, type, indices, start, end) { // start, end are given if we come from glDrawRangeElements @@ -1648,10 +1649,12 @@ var LibraryGL = { GL.immediate.vertexData = {{{ makeHEAPView('F32', 'GL.immediate.vertexPointer', '(end ? GL.immediate.vertexPointer + (end+1)*GL.immediate.stride : TOTAL_MEMORY)') }}}; // XXX assuming float } GL.immediate.flush(count, 0, indices); + GL.immediate.mode = 0; }; }, // Prepares and analyzes client attributes. + // Modifies liveClientAttributes, stride, vertexPointer, vertexCounter // count: number of elements we will draw // beginEnd: whether we are drawing the results of a begin/end block prepareClientAttributes: function(count, beginEnd) { @@ -1792,9 +1795,6 @@ var LibraryGL = { if (!GL.currProgram) { Module.ctx.useProgram(null); } - - this.mode = 0; - this.vertexCounter = 0; } }, @@ -1804,6 +1804,7 @@ var LibraryGL = { glBegin__deps: ['$GLImmediateSetup'], glBegin: function(mode) { GL.immediate.mode = mode; + GL.immediate.vertexCounter = 0; GL.immediate.rendererComponents = {}; // XXX GL.immediate.rendererComponentPointer = 0; GL.immediate.vertexData = GL.immediate.tempData; @@ -1815,6 +1816,7 @@ var LibraryGL = { GL.immediate.lastVertex = GL.immediate.vertexCounter / (GL.immediate.stride >> 2); GL.immediate.flush(); GL.immediate.disableBeginEndClientAttributes(); + GL.immediate.mode = 0; }, glVertex3f: function(x, y, z) { |