aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-04-24 14:40:06 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-04-24 14:40:06 -0700
commit3ef18246fcf88b8115cd69d9e9182e841533aac7 (patch)
treebcda1eb56a55d5850497d9399d2b11bba90e013f
parent5798c7144dd32b64b8b6033aaff848fea671c65e (diff)
gix glLoadMatrix and related functions and add testing
-rw-r--r--src/library_gl.js24
-rw-r--r--tests/sdl_ogl_p.c8
2 files changed, 14 insertions, 18 deletions
diff --git a/src/library_gl.js b/src/library_gl.js
index ed592dda..79add78b 100644
--- a/src/library_gl.js
+++ b/src/library_gl.js
@@ -1238,7 +1238,7 @@ var LibraryGL = {
textureOffset = vertexSize;
}
} else {
- throw 'Cannot create shader rendederer for ' + renderer + ' because of ' + which;
+ console.log('Warning: Ignoring renderer attribute ' + which);
}
vertexSize += size * 4; // XXX assuming float
}
@@ -1554,8 +1554,8 @@ var LibraryGL = {
glTexCoordPointer: function(size, type, stride, pointer) {
GL.immediate.setClientAttribute('T' + GL.immediate.clientActiveTexture, size, type, stride, pointer);
},
- glNormalPointer: function(size, type, stride, pointer) {
- GL.immediate.setClientAttribute('N', size, type, stride, pointer);
+ glNormalPointer: function(type, stride, pointer) {
+ GL.immediate.setClientAttribute('N', 1, type, stride, pointer);
},
glColorPointer: function(size, type, stride, pointer) {
GL.immediate.setClientAttribute('C', size, type, stride, pointer);
@@ -1595,27 +1595,23 @@ var LibraryGL = {
},
glLoadMatrixd: function(matrix) {
- GL.immediate.matrix.lib.mat4.set(GL.immediate.matrix[GL.immediate.currentMatrix],
- {{{ makeHEAPView('F64', 'matrix', 'matrix+16*8') }}});
+ GL.immediate.matrix.lib.mat4.set({{{ makeHEAPView('F64', 'matrix', 'matrix+16*8') }}}, GL.immediate.matrix[GL.immediate.currentMatrix]);
},
glLoadMatrixf: function(matrix) {
#if GL_DEBUG
console.log('glLoadMatrixf receiving: ' + Array.prototype.slice.call(HEAPF32.subarray(matrix >> 2, (matrix >> 2) + 16)));
#endif
- GL.immediate.matrix.lib.mat4.set(GL.immediate.matrix[GL.immediate.currentMatrix],
- {{{ makeHEAPView('F32', 'matrix', 'matrix+16*4') }}});
+ GL.immediate.matrix.lib.mat4.set({{{ makeHEAPView('F32', 'matrix', 'matrix+16*4') }}}, GL.immediate.matrix[GL.immediate.currentMatrix]);
},
glLoadTransposeMatrixd: function(matrix) {
- GL.immediate.matrix.lib.mat4.set(GL.immediate.matrix[GL.immediate.currentMatrix],
- {{{ makeHEAPView('F64', 'matrix', 'matrix+16*8') }}});
+ GL.immediate.matrix.lib.mat4.set({{{ makeHEAPView('F64', 'matrix', 'matrix+16*8') }}}, GL.immediate.matrix[GL.immediate.currentMatrix]);
GL.immediate.matrix.lib.mat4.transpose(GL.immediate.matrix[GL.immediate.currentMatrix]);
},
glLoadTransposeMatrixf: function(matrix) {
- GL.immediate.matrix.lib.mat4.set(GL.immediate.matrix[GL.immediate.currentMatrix],
- {{{ makeHEAPView('F32', 'matrix', 'matrix+16*4') }}});
+ GL.immediate.matrix.lib.mat4.set({{{ makeHEAPView('F32', 'matrix', 'matrix+16*4') }}}, GL.immediate.matrix[GL.immediate.currentMatrix]);
GL.immediate.matrix.lib.mat4.transpose(GL.immediate.matrix[GL.immediate.currentMatrix]);
},
@@ -1631,16 +1627,14 @@ var LibraryGL = {
glMultTransposeMatrixd: function(matrix) {
var colMajor = GL.immediate.matrix.lib.mat4.create();
- GL.immediate.matrix.lib.mat4.set(colMajor,
- {{{ makeHEAPView('F64', 'matrix', 'matrix+16*8') }}});
+ GL.immediate.matrix.lib.mat4.set({{{ makeHEAPView('F64', 'matrix', 'matrix+16*8') }}}, colMajor);
GL.immediate.matrix.lib.mat4.transpose(colMajor);
GL.immediate.matrix.lib.mat4.multiply(GL.immediate.matrix[GL.immediate.currentMatrix], colMajor);
},
glMultTransposeMatrixf: function(matrix) {
var colMajor = GL.immediate.matrix.lib.mat4.create();
- GL.immediate.matrix.lib.mat4.set(colMajor,
- {{{ makeHEAPView('F32', 'matrix', 'matrix+16*4') }}});
+ GL.immediate.matrix.lib.mat4.set({{{ makeHEAPView('F32', 'matrix', 'matrix+16*4') }}}, colMajor);
GL.immediate.matrix.lib.mat4.transpose(colMajor);
GL.immediate.matrix.lib.mat4.multiply(GL.immediate.matrix[GL.immediate.currentMatrix], colMajor);
},
diff --git a/tests/sdl_ogl_p.c b/tests/sdl_ogl_p.c
index 3978f66c..949aaa44 100644
--- a/tests/sdl_ogl_p.c
+++ b/tests/sdl_ogl_p.c
@@ -58,10 +58,12 @@ int main(int argc, char *argv[])
glViewport( 0, 0, 640, 480 );
glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
+ GLfloat matrixData[] = { 2.0/640, 0, 0, 0,
+ 0, -2.0/480, 0, 0,
+ 0, 0, -1, 0,
+ -1, 1, 0, 1 };
+ glLoadMatrixf(matrixData); // test loadmatrix
- glOrtho( 0, 640, 480, 0, -1, 1 );
-
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();