aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-04-19 18:34:28 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-04-19 18:34:28 -0700
commit53698855ba5ca8be949ab5cc3233363080296d53 (patch)
tree068a96874217124a5e9c0d5bf4839ab222610b16 /src
parent41828702b171f24e430b1096de162e86d15d00b3 (diff)
some fake support for gl texture matrix
Diffstat (limited to 'src')
-rw-r--r--src/library_gl.js17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/library_gl.js b/src/library_gl.js
index 86b23210..92548f8d 100644
--- a/src/library_gl.js
+++ b/src/library_gl.js
@@ -996,6 +996,8 @@ var LibraryGL = {
HEAPF32.set(GL.immediate.matrix['m'], params >> 2);
} else if (pname == 0x0BA7) { // GL_PROJECTION_MATRIX
HEAPF32.set(GL.immediate.matrix['p'], params >> 2);
+ } else if (pname == 0x0BA8) { // GL_TEXTURE_MATRIX
+ HEAPF32.set(GL.immediate.matrix['t'], params >> 2);
} else {
glGetFloatv(pname, params);
}
@@ -1094,17 +1096,20 @@ var LibraryGL = {
// The following data structures are used for OpenGL Immediate Mode matrix routines.
matrix: {
'm': null, // modelview
- 'p': null // projection
+ 'p': null, // projection
+ 't': null // texture
},
matrixStack: {
- 'm': [], // modelview
- 'p': [] // projection
+ 'm': [],
+ 'p': [],
+ 't': []
},
currentMatrix: 'm', // default is modelview
tempMatrix: null,
initMatrixLibrary: function() {
GL.immediate.matrix['m'] = GL.immediate.matrix.lib.mat4.create();
GL.immediate.matrix['p'] = GL.immediate.matrix.lib.mat4.create();
+ GL.immediate.matrix['t'] = GL.immediate.matrix.lib.mat4.create();
GL.immediate.currentMatrix = GL.immediate.matrix.lib.mat4.create();
},
@@ -1220,8 +1225,8 @@ var LibraryGL = {
Module.ctx.bindTexture(Module.ctx.TEXTURE_2D, texture);
Module.ctx.uniform1i(this.textureLocation, 0);
- Module.ctx.uniformMatrix4fv(this.modelViewLocation, false, GL.immediate.matrix["m"]);
- Module.ctx.uniformMatrix4fv(this.projectionLocation, false, GL.immediate.matrix["p"]);
+ Module.ctx.uniformMatrix4fv(this.modelViewLocation, false, GL.immediate.matrix['m']);
+ Module.ctx.uniformMatrix4fv(this.projectionLocation, false, GL.immediate.matrix['p']);
}
};
this.renderers[renderer].init();
@@ -1453,6 +1458,8 @@ var LibraryGL = {
GL.immediate.currentMatrix = 'm';
} else if (mode == 0x1701 /* GL_PROJECTION */) {
GL.immediate.currentMatrix = 'p';
+ } else if (mode == 0x1702) { // GL_TEXTURE
+ GL.immediate.currentMatrix = 't';
} else {
throw "Wrong mode " + mode + " passed to glMatrixMode";
}