aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-04-14 10:28:17 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-04-14 10:28:17 -0700
commit21b34fed2da3e0b9f69e9a4fe038ebf1b47dfa7c (patch)
tree5a9295e066a0061aaa7de7dfe8ac8098283ffadc /src
parent040c61cbbe74717e8c797a0ef92144528e864faf (diff)
support for GL_TRIANGLE_STRIP
Diffstat (limited to 'src')
-rw-r--r--src/library_gl.js16
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';
}