aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-04-03 15:36:46 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-04-03 15:36:46 -0700
commit3f62d9c771c2ee342ef95944ddd5e9ab6790a251 (patch)
treee03c45aa2b9f53553a6a34dde1e041a2b4d25cc4
parente419c0a9bb69da5d553ab1aa535ff6d3e4e3e0b9 (diff)
parent6b6c8c6b7f60bfc7edb37801d0f92c45568a15fc (diff)
Merge pull request #343 from ehsan/gl_small_fixes
Gl small fixes
-rw-r--r--src/library_gl.js132
1 files changed, 88 insertions, 44 deletions
diff --git a/src/library_gl.js b/src/library_gl.js
index 86e6c45c..d893acf0 100644
--- a/src/library_gl.js
+++ b/src/library_gl.js
@@ -31,7 +31,7 @@ var LibraryGL = {
return i;
}
}
- return null;
+ return 0;
},
remove: function(id) {
if( id == 0 ) return;
@@ -65,7 +65,7 @@ var LibraryGL = {
}
},
- glGenIntegerv__deps: ['$GL'],
+ glGetIntegerv__deps: ['$GL'],
glGetIntegerv: function(name_, p) {
var result = Module.ctx.getParameter(name_);
switch (typeof(result)) {
@@ -85,7 +85,7 @@ var LibraryGL = {
result instanceof Int32Array ||
result instanceof Array) {
for (var i = 0; i < result.length; ++i) {
- {{{ makeSetValue('p', 'i', 'result[i]', 'i32') }}};
+ {{{ makeSetValue('p', 'i*4', 'result[i]', 'i32') }}};
}
} else if (result instanceof WebGLBuffer) {
{{{ makeSetValue('p', '0', 'GL.hashtable("buffer").id(result)', 'i32') }}};
@@ -108,6 +108,7 @@ var LibraryGL = {
}
},
+ glGetFloatv__deps: ['$GL'],
glGetFloatv: function(name_, p) {
var result = Module.ctx.getParameter(name_);
switch (typeof(result)) {
@@ -127,7 +128,7 @@ var LibraryGL = {
result instanceof Int32Array ||
result instanceof Array) {
for (var i = 0; i < result.length; ++i) {
- {{{ makeSetValue('p', 'i', 'result[i]', 'float') }}};
+ {{{ makeSetValue('p', 'i*4', 'result[i]', 'float') }}};
}
} else if (result instanceof WebGLBuffer) {
{{{ makeSetValue('p', '0', 'GL.hashtable("buffer").id(result)', 'float') }}};
@@ -150,6 +151,7 @@ var LibraryGL = {
}
},
+ glGetBooleanv__deps: ['$GL'],
glGetBooleanv: function(name_, p) {
var result = Module.ctx.getParameter(name_);
switch (typeof(result)) {
@@ -192,10 +194,11 @@ var LibraryGL = {
glGenTextures: function(n, textures) {
for (var i = 0; i < n; i++) {
var id = GL.hashtable("texture").add(Module.ctx.createTexture());
- {{{ makeSetValue('textures', 'i', 'id', 'i32') }}};
+ {{{ makeSetValue('textures', 'i*4', 'id', 'i32') }}};
}
},
+ glDeleteTextures__deps: ['$GL'],
glDeleteTextures: function(n, textures) {
for (var i = 0; i < n; i++) {
var id = {{{ makeGetValue('textures', 'i*4', 'i32') }}};
@@ -312,7 +315,7 @@ var LibraryGL = {
{{{ makeSetValue('params', '0', 'Module.getTexParameter(target, pname)', 'i32') }}};
},
- glIsTexture_deps: ['$GL'],
+ glIsTexture__deps: ['$GL'],
glIsTexture: function(texture) {
var fb = GL.hashtable("texture").get(texture);
if (typeof(fb) == 'undefined') {
@@ -325,10 +328,11 @@ var LibraryGL = {
glGenBuffers: function(n, buffers) {
for (var i = 0; i < n; i++) {
var id = GL.hashtable("buffer").add(Module.ctx.createBuffer());
- {{{ makeSetValue('buffers', 'i', 'id', 'i32') }}};
+ {{{ makeSetValue('buffers', 'i*4', 'id', 'i32') }}};
}
},
+ glDeleteBuffers__deps: ['$GL'],
glDeleteBuffers: function(n, buffers) {
for (var i = 0; i < n; i++) {
var id = {{{ makeGetValue('buffers', 'i*4', 'i32') }}};
@@ -346,7 +350,7 @@ var LibraryGL = {
Module.ctx.bufferSubData(target, offset, floatArray);
},
- glIsBuffer_deps: ['$GL'],
+ glIsBuffer__deps: ['$GL'],
glIsBuffer: function(buffer) {
var fb = GL.hashtable("buffer").get(buffer);
if (typeof(fb) == 'undefined') {
@@ -359,18 +363,20 @@ var LibraryGL = {
glGenRenderbuffers: function(n, renderbuffers) {
for (var i = 0; i < n; i++) {
var id = GL.hashtable("renderbuffer").add(Module.ctx.createRenderbuffer());
- {{{ makeSetValue('renderbuffers', 'i', 'id', 'i32') }}};
+ {{{ makeSetValue('renderbuffers', 'i*4', 'id', 'i32') }}};
}
},
+ glDeleteRenderbuffers__deps: ['$GL'],
glDeleteRenderbuffers: function(n, renderbuffers) {
for (var i = 0; i < n; i++) {
- var id = {{{ makeGetValue('renderbuffers', 'i', 'i32') }}};
+ var id = {{{ makeGetValue('renderbuffers', 'i*4', 'i32') }}};
Module.ctx.deleteRenderbuffer(GL.hashtable("renderbuffer").get(id));
GL.hashtable("renderbuffer").remove(id);
}
},
+ glBindRenderbuffer__deps: ['$GL'],
glBindRenderbuffer: function(target, renderbuffer) {
Module.ctx.bindRenderbuffer(target, GL.hashtable("renderbuffer").get(renderbuffer));
},
@@ -379,7 +385,7 @@ var LibraryGL = {
{{{ makeSetValue('params', '0', 'Module.ctx.getRenderbufferParameter(target, pname)', 'i32') }}};
},
- glIsRenderbuffer_deps: ['$GL'],
+ glIsRenderbuffer__deps: ['$GL'],
glIsRenderbuffer: function(renderbuffer) {
var fb = GL.hashtable("renderbuffer").get(renderbuffer);
if (typeof(fb) == 'undefined') {
@@ -388,7 +394,7 @@ var LibraryGL = {
return Module.ctx.isRenderbuffer(fb);
},
- glGetUniformLocation_deps: ['$GL'],
+ glGetUniformLocation__deps: ['$GL'],
glGetUniformLocation: function(program, name) {
name = Pointer_stringify(name);
var loc = Module.ctx.getUniformLocation(GL.hashtable("program").get(program), name);
@@ -396,52 +402,62 @@ var LibraryGL = {
return GL.hashtable("uniform").add(loc);
},
+ glUniform1f__deps: ['$GL'],
glUniform1f: function(Location, v0) {
Location = GL.hashtable("uniform").get(Location);
Module.ctx.uniform1f(Location, v0);
},
+ glUniform2f__deps: ['$GL'],
glUniform2f: function(Location, v0, v1) {
Location = GL.hashtable("uniform").get(Location);
Module.ctx.uniform2f(Location, v0, v1);
},
+ glUniform3f__deps: ['$GL'],
glUniform3f: function(Location, v0, v1, v2) {
Location = GL.hashtable("uniform").get(Location);
Module.ctx.uniform3f(Location, v0, v1, v2);
},
+ glUniform4f__deps: ['$GL'],
glUniform4f: function(Location, v0, v1, v2, v3) {
Location = GL.hashtable("uniform").get(Location);
Module.ctx.uniform4f(Location, v0, v1, v2, v3);
},
+ glUniform1i__deps: ['$GL'],
glUniform1i: function(Location, v0) {
Location = GL.hashtable("uniform").get(Location);
Module.ctx.uniform1i(Location, v0);
},
+ glUniform2i__deps: ['$GL'],
glUniform2i: function(Location, v0, v1) {
Location = GL.hashtable("uniform").get(Location);
Module.ctx.uniform2i(Location, v0, v1);
},
+ glUniform3i__deps: ['$GL'],
glUniform3i: function(Location, v0, v1, v2) {
Location = GL.hashtable("uniform").get(Location);
Module.ctx.uniform3i(Location, v0, v1, v2);
},
+ glUniform4i__deps: ['$GL'],
glUniform4i: function(Location, v0, v1, v2, v3) {
Location = GL.hashtable("uniform").get(Location);
Module.ctx.uniform4i(Location, v0, v1, v2, v3);
},
+ glUniform1fv__deps: ['$GL'],
glUniform1fv: function(Location, count, value) {
Location = GL.hashtable("uniform").get(Location);
value = new Float32Array(TypedArray_copy(value, count*4)); // TODO: optimize
Module.ctx.uniform1fv(Location, value);
},
+ glUniform2fv__deps: ['$GL'],
glUniform2fv: function(Location, count, value) {
Location = GL.hashtable("uniform").get(Location);
count *= 2;
@@ -449,6 +465,7 @@ var LibraryGL = {
Module.ctx.uniform2fv(Location, value);
},
+ glUniform3fv__deps: ['$GL'],
glUniform3fv: function(Location, count, value) {
Location = GL.hashtable("uniform").get(Location);
count *= 3;
@@ -456,6 +473,7 @@ var LibraryGL = {
Module.ctx.uniform3fv(Location, value);
},
+ glUniform4fv__deps: ['$GL'],
glUniform4fv: function(Location, count, value) {
Location = GL.hashtable("uniform").get(Location);
count *= 4;
@@ -463,6 +481,7 @@ var LibraryGL = {
Module.ctx.uniform4fv(Location, value);
},
+ glUniformMatrix2fv__deps: ['$GL'],
glUniformMatrix2fv: function(Location, count, transpose, value) {
Location = GL.hashtable("uniform").get(Location);
count *= 4;
@@ -470,6 +489,7 @@ var LibraryGL = {
Module.ctx.uniformMatrix2fv(Location, transpose, value);
},
+ glUniformMatrix3fv__deps: ['$GL'],
glUniformMatrix3fv: function(Location, count, transpose, value) {
Location = GL.hashtable("uniform").get(Location);
count *= 9;
@@ -477,6 +497,7 @@ var LibraryGL = {
Module.ctx.uniformMatrix3fv(Location, transpose, value);
},
+ glUniformMatrix4fv__deps: ['$GL'],
glUniformMatrix4fv: function(Location, count, transpose, value) {
Location = GL.hashtable("uniform").get(Location);
count *= 16;
@@ -484,6 +505,7 @@ var LibraryGL = {
Module.ctx.uniformMatrix4fv(Location, transpose, value);
},
+ glBindBuffer__deps: ['$GL'],
glBindBuffer: function(target, buffer) {
Module.ctx.bindBuffer(target, GL.hashtable("buffer").get(buffer));
},
@@ -508,28 +530,31 @@ var LibraryGL = {
Module.ctx.vertexAttrib4fv(index, v);
},
+ glGetAttribLocation__deps: ['$GL'],
glGetAttribLocation: function(program, name) {
program = GL.hashtable("program").get(program);
name = Pointer_stringify(name);
return Module.ctx.getAttribLocation(program, name);
},
- glCreateShader_deps: ['$GL'],
+ glCreateShader__deps: ['$GL'],
glCreateShader: function(shaderType) {
var shader = Module.ctx.createShader(shaderType);
return GL.hashtable("shader").add(shader);
},
- glDeleteShader_deps: ['$GL'],
+ glDeleteShader__deps: ['$GL'],
glDeleteShader: function(shader) {
Module.ctx.deleteShader(GL.hashtable("shader").get(shader));
},
+ glDetachShader__deps: ['$GL'],
glDetachShader: function(program, shader) {
Module.ctx.detachShader(GL.hashtable("program").get(program),
GL.hashtable("shader").get(shader));
},
+ glGetAttachedShaders__deps: ['$GL'],
glGetAttachedShaders: function(program, maxCount, count, shaders) {
var result = Module.ctx.getAttachedShaders(GL.hashtable("program").get(program));
var len = result.length;
@@ -538,11 +563,11 @@ var LibraryGL = {
}
{{{ makeSetValue('count', '0', 'len', 'i32') }}};
for (var i = 0; i < len; ++i) {
- {{{ makeSetValue('shaders', 'i', 'GL.hashtable("shader").get(result[i])', 'i32') }}};
+ {{{ makeSetValue('shaders', 'i*4', 'GL.hashtable("shader").get(result[i])', 'i32') }}};
}
},
- glShaderSource_deps: ['$GL'],
+ glShaderSource__deps: ['$GL'],
glShaderSource: function(shader, count, string, length) {
var source = "";
for (var i = 0; i < count; ++i) {
@@ -562,6 +587,7 @@ var LibraryGL = {
Module.ctx.shaderSource(GL.hashtable("shader").get(shader), source);
},
+ glGetShaderSource__deps: ['$GL'],
glGetShaderSource: function(shader, bufsize, length, source) {
var result = Module.ctx.getShaderSource(GL.hashtable("shader").get(shader));
result.slice(0, bufsize - 1);
@@ -571,12 +597,12 @@ var LibraryGL = {
}
},
- glCompileShader_deps: ['$GL'],
+ glCompileShader__deps: ['$GL'],
glCompileShader: function(shader) {
Module.ctx.compileShader(GL.hashtable("shader").get(shader));
},
- glGetShaderInfoLog_deps: ['$GL'],
+ glGetShaderInfoLog__deps: ['$GL'],
glGetShaderInfoLog: function(shader, maxLength, length, infoLog) {
var log = Module.ctx.getShaderInfoLog(GL.hashtable("shader").get(shader));
// Work around a bug in Chromium which causes getShaderInfoLog to return null
@@ -590,17 +616,17 @@ var LibraryGL = {
}
},
- glGetShaderiv_deps: ['$GL'],
+ glGetShaderiv__deps: ['$GL'],
glGetShaderiv : function(shader, pname, p) {
{{{ makeSetValue('p', '0', 'Module.ctx.getShaderParameter(GL.hashtable("shader").get(shader), pname)', 'i32') }}};
},
- glGetProgramiv_deps: ['$GL'],
+ glGetProgramiv__deps: ['$GL'],
glGetProgramiv : function(program, pname, p) {
{{{ makeSetValue('p', '0', 'Module.ctx.getProgramParameter(GL.hashtable("program").get(program), pname)', 'i32') }}};
},
- glIsShader_deps: ['$GL'],
+ glIsShader__deps: ['$GL'],
glIsShader: function(shader) {
var fb = GL.hashtable("shader").get(shader);
if (typeof(fb) == 'undefined') {
@@ -609,17 +635,17 @@ var LibraryGL = {
return Module.ctx.isShader(fb);
},
- glCreateProgram_deps: ['$GL'],
+ glCreateProgram__deps: ['$GL'],
glCreateProgram: function() {
return GL.hashtable("program").add(Module.ctx.createProgram());
},
- glDeleteProgram_deps: ['$GL'],
+ glDeleteProgram__deps: ['$GL'],
glDeleteProgram: function(program) {
Module.ctx.deleteProgram(GL.hashtable("program").get(program));
},
- glAttachShader_deps: ['$GL'],
+ glAttachShader__deps: ['$GL'],
glAttachShader: function(program, shader) {
Module.ctx.attachShader(GL.hashtable("program").get(program),
GL.hashtable("shader").get(shader));
@@ -628,16 +654,16 @@ var LibraryGL = {
glGetShaderPrecisionFormat: function(shaderType, precisionType, range, precision) {
var result = Module.ctx.getShaderPrecisionFormat(shaderType, precisionType);
{{{ makeSetValue('range', '0', 'result.rangeMin', 'i32') }}};
- {{{ makeSetValue('range', '1', 'result.rangeMax', 'i32') }}};
+ {{{ makeSetValue('range', '4', 'result.rangeMax', 'i32') }}};
{{{ makeSetValue('precision', '0', 'result.precision', 'i32') }}};
},
- glLinkProgram_deps: ['$GL'],
+ glLinkProgram__deps: ['$GL'],
glLinkProgram: function(program) {
Module.ctx.linkProgram(GL.hashtable("program").get(program));
},
- glGetProgramInfoLog_deps: ['$GL'],
+ glGetProgramInfoLog__deps: ['$GL'],
glGetProgramInfoLog: function(program, maxLength, length, infoLog) {
var log = Module.ctx.getProgramInfoLog(GL.hashtable("program").get(program));
// Work around a bug in Chromium which causes getProgramInfoLog to return null
@@ -651,17 +677,17 @@ var LibraryGL = {
}
},
- glUseProgram_deps: ['$Gl'],
+ glUseProgram__deps: ['$Gl'],
glUseProgram: function(program) {
Module.ctx.useProgram(GL.hashtable("program").get(program));
},
- glValidateProgram_deps: ['$Gl'],
+ glValidateProgram__deps: ['$Gl'],
glValidateProgram: function(program) {
Module.ctx.validateProgram(GL.hashtable("program").get(program));
},
- glIsProgram_deps: ['$GL'],
+ glIsProgram__deps: ['$GL'],
glIsProgram: function(program) {
var fb = GL.hashtable("program").get(program);
if (typeof(fb) == 'undefined') {
@@ -670,52 +696,52 @@ var LibraryGL = {
return Module.ctx.isProgram(fb);
},
- glBindAttribLocation_deps: ['$GL'],
+ glBindAttribLocation__deps: ['$GL'],
glBindAttribLocation: function(program, index, name) {
name = Pointer_stringify(name);
Module.ctx.bindAttribLocation(GL.hashtable("program").get(program), index, name);
},
- glBindFramebuffer_deps: ['$GL'],
+ glBindFramebuffer__deps: ['$GL'],
glBindFramebuffer: function(target, framebuffer) {
Module.ctx.bindFramebuffer(target, GL.hashtable("framebuffer").get(framebuffer));
},
- glGenFramebuffers_deps: ['$GL'],
+ glGenFramebuffers__deps: ['$GL'],
glGenFramebuffers: function(n, ids) {
for (var i = 0; i < n; ++i) {
var fb = GL.hashtable("framebuffer").add(Module.ctx.createFramebuffer());
- {{{ makeSetValue('ids', 'i', 'fb', 'i32') }}};
+ {{{ makeSetValue('ids', 'i*4', 'fb', 'i32') }}};
}
},
- glDeleteFramebuffers_deps: ['$GL'],
+ glDeleteFramebuffers__deps: ['$GL'],
glDeleteFramebuffers: function(n, framebuffers) {
for (var i = 0; i < n; ++i) {
- var fb = GL.hashtable("framebuffer").get({{{ makeGetValue('framebuffers', 'i', 'i32' ) }}});
+ var fb = GL.hashtable("framebuffer").get({{{ makeGetValue('framebuffers', 'i*4', 'i32' ) }}});
Module.ctx.deleteFramebuffer(fb);
}
},
- glFramebufferRenderbuffer_deps: ['$GL'],
+ glFramebufferRenderbuffer__deps: ['$GL'],
glFramebufferRenderbuffer: function(target, attachment, renderbuffertarget, renderbuffer) {
Module.ctx.framebufferRenderbuffer(target, attachment, renderbuffertarget,
GL.hashtable("renderbuffer").get(renderbuffer));
},
- glFramebufferTexture2D_deps: ['$GL'],
+ glFramebufferTexture2D__deps: ['$GL'],
glFramebufferTexture2D: function(target, attachment, textarget, texture, level) {
Module.ctx.framebufferTexture2D(target, attachment, textarget,
GL.hashtable("texture").get(texture), level);
},
- glGetFramebufferAttachmentParameteriv_deps: ['$GL'],
+ glGetFramebufferAttachmentParameteriv__deps: ['$GL'],
glGetFramebufferAttachmentParameteriv: function(target, attachment, pname, params) {
var result = Module.ctx.getFramebufferAttachmentParameter(target, attachment, pname);
{{{ makeSetValue('params', '0', 'params', 'i32') }}};
},
- glIsFramebuffer_deps: ['$GL'],
+ glIsFramebuffer__deps: ['$GL'],
glIsFramebuffer: function(framebuffer) {
var fb = GL.hashtable("framebuffer").get(framebuffer);
if (typeof(fb) == 'undefined') {
@@ -764,6 +790,7 @@ var LibraryGLUT = {
buttons: 0,
modifiers: 0,
+ saveModifiers__deps: ['$GLUT'],
saveModifiers: function(event) {
GLUT.modifiers = 0;
if (event['shiftKey'])
@@ -774,6 +801,7 @@ var LibraryGLUT = {
GLUT.modifiers += 4; /* GLUT_ACTIVE_ALT */
},
+ onMousemove__deps: ['$GLUT'],
onMousemove: function(event) {
GLUT.lastX = event['clientX'];
GLUT.lastY = event['clientY'];
@@ -821,6 +849,7 @@ var LibraryGLUT = {
return keycode;
},
+ onKeydown__deps: ['$GLUT'],
onKeydown: function(event) {
if (GLUT.specialFunc || GLUT.keyboardFunc) {
var key = GLUT.getSpecialKey(event['keyCode']);
@@ -843,6 +872,7 @@ var LibraryGLUT = {
}
},
+ onKeyup__deps: ['$GLUT'],
onKeyup: function(event) {
if (GLUT.specialUpFunc || GLUT.keyboardUpFunc) {
var key = GLUT.getSpecialKey(event['keyCode']);
@@ -865,6 +895,7 @@ var LibraryGLUT = {
}
},
+ onMouseButtonDown__deps: ['$GLUT'],
onMouseButtonDown: function(event){
GLUT.lastX = event['clientX'];
GLUT.lastY = event['clientY'];
@@ -877,6 +908,7 @@ var LibraryGLUT = {
}
},
+ onMouseButtonUp__deps: ['$GLUT'],
onMouseButtonUp: function(event){
GLUT.lastX = event['clientX'];
GLUT.lastY = event['clientY'];
@@ -890,6 +922,7 @@ var LibraryGLUT = {
},
},
+ glutGetModifiers__deps: ['$GLUT'],
glutGetModifiers: function() { return GLUT.modifiers; },
glutInit__deps: ['$GLUT'],
@@ -908,6 +941,7 @@ var LibraryGLUT = {
Module['canvas'].height = height;
},
+ glutGet__deps: ['$GLUT'],
glutGet: function(type) {
switch (type) {
case 700: /* GLUT_ELAPSED_TIME */
@@ -926,38 +960,47 @@ var LibraryGLUT = {
window.setTimeout(function() { FUNCTION_TABLE[func](value); }, msec);
},
+ glutDisplayFunc__deps: ['$GLUT'],
glutDisplayFunc: function(func) {
GLUT.displayFunc = func;
},
-
+
+ glutKeyboardFunc__deps: ['$GLUT'],
glutKeyboardFunc: function(func) {
GLUT.keyboardFunc = func;
},
-
+
+ glutKeyboardUpFunc__deps: ['$GLUT'],
glutKeyboardUpFunc: function(func) {
GLUT.keyboardUpFunc = func;
},
+ glutSpecialFunc__deps: ['$GLUT'],
glutSpecialFunc: function(func) {
GLUT.specialFunc = func;
},
+ glutSpecialUpFunc__deps: ['$GLUT'],
glutSpecialUpFunc: function(func) {
GLUT.specialUpFunc = func;
},
+ glutReshapeFunc__deps: ['$GLUT'],
glutReshapeFunc: function(func) {
GLUT.reshapeFunc = func;
},
-
+
+ glutMotionFunc__deps: ['$GLUT'],
glutMotionFunc: function(func) {
GLUT.motionFunc = func;
},
+ glutPassiveMotionFunc__deps: ['$GLUT'],
glutPassiveMotionFunc: function(func) {
GLUT.passiveMotionFunc = func;
},
+ glutMouseFunc__deps: ['$GLUT'],
glutMouseFunc: function(func) {
GLUT.mouseFunc = func;
},
@@ -1024,6 +1067,7 @@ var LibraryGLUT = {
glutInitDisplayMode: function(mode) {},
glutSwapBuffers: function() {},
+ glutPostRedisplay__deps: ['$GLUT'],
glutPostRedisplay: function() {
if (GLUT.displayFunc) {
var RAF = window['setTimeout'];
@@ -1040,7 +1084,7 @@ var LibraryGLUT = {
}
},
- glutMainLoop__deps: ['$GLUT', 'exit'],
+ glutMainLoop__deps: ['$GLUT', 'exit', 'glutPostRedisplay'],
glutMainLoop: function() {
if (GLUT.reshapeFunc) {
FUNCTION_TABLE[GLUT.reshapeFunc](Module['canvas'].width,