diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-04-14 10:28:17 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-04-14 10:28:17 -0700 |
commit | 21b34fed2da3e0b9f69e9a4fe038ebf1b47dfa7c (patch) | |
tree | 5a9295e066a0061aaa7de7dfe8ac8098283ffadc /src | |
parent | 040c61cbbe74717e8c797a0ef92144528e864faf (diff) |
support for GL_TRIANGLE_STRIP
Diffstat (limited to 'src')
-rw-r--r-- | src/library_gl.js | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/library_gl.js b/src/library_gl.js index 65ab7d0f..47ce832d 100644 --- a/src/library_gl.js +++ b/src/library_gl.js @@ -1069,7 +1069,7 @@ var LibraryGL = { #endif if (GL.immediate.mode == 7) { // GL_QUADS if (GL.immediate.vertexCounter % 4 == 0) { - var start = GL.immediate.vertexCounter % 4; + var start = GL.immediate.vertexCounter - 4; GL.immediate.indexData[GL.immediate.indexCounter ] = start; GL.immediate.indexData[GL.immediate.indexCounter+1] = start+1; GL.immediate.indexData[GL.immediate.indexCounter+2] = start+2; @@ -1078,6 +1078,20 @@ var LibraryGL = { GL.immediate.indexData[GL.immediate.indexCounter+5] = start+3; GL.immediate.indexCounter += 6; } + } else if (GL.immediate.mode == 5) { // GL_TRIANGLE_STRIP + if (GL.immediate.vertexCounter >= 3) { + var start = GL.immediate.vertexCounter - 3; + if (GL.immediate.indexCounter % 6 == 0) { + GL.immediate.indexData[GL.immediate.indexCounter ] = start; + GL.immediate.indexData[GL.immediate.indexCounter+1] = start+1; + GL.immediate.indexData[GL.immediate.indexCounter+2] = start+2; + } else { + GL.immediate.indexData[GL.immediate.indexCounter ] = start+1; + GL.immediate.indexData[GL.immediate.indexCounter+1] = start; + GL.immediate.indexData[GL.immediate.indexCounter+2] = start+2; + } + GL.immediate.indexCounter += 3; + } } else { throw 'only GL_QUADS supported so far'; } |