aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-04-13 14:25:08 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-04-13 14:25:08 -0700
commit84c474ca1ee9c1c9972a36331e598bd8194287b0 (patch)
treed5cae09ceea760c70d5f9a16191fbc1809026272 /src
parent0cad53c1003f167ae83ed8c2d2adb6236e490843 (diff)
misc gl additions and corrections
Diffstat (limited to 'src')
-rw-r--r--src/library_gl.js46
1 files changed, 36 insertions, 10 deletions
diff --git a/src/library_gl.js b/src/library_gl.js
index f5652ff9..b14b345f 100644
--- a/src/library_gl.js
+++ b/src/library_gl.js
@@ -320,7 +320,7 @@ var LibraryGL = {
glIsTexture: function(texture) {
var fb = GL.textures[texture];
if (typeof(fb) == 'undefined') {
- return false;
+ return 0;
}
return Module.ctx.isTexture(fb);
},
@@ -341,6 +341,10 @@ var LibraryGL = {
}
},
+ glGetBufferParameteriv: function(target, value, data) {
+ {{{ makeSetValue('data', '0', 'Module.ctx.getBufferParameter(target, value)', 'i32') }}};
+ },
+
glBufferData: function(target, size, data, usage) {
Module.ctx.bufferData(target, HEAPU8.subarray(data, data+size), usage);
},
@@ -353,7 +357,7 @@ var LibraryGL = {
glIsBuffer: function(buffer) {
var fb = GL.buffers[buffer];
if (typeof(fb) == 'undefined') {
- return false;
+ return 0;
}
return Module.ctx.isBuffer(fb);
},
@@ -385,11 +389,33 @@ var LibraryGL = {
glIsRenderbuffer: function(renderbuffer) {
var fb = GL.renderbuffers[renderbuffer];
if (typeof(fb) == 'undefined') {
- return false;
+ return 0;
}
return Module.ctx.isRenderbuffer(fb);
},
+ glGetUniformfv: function(program, location, params) {
+ var data = Module.ctx.getUniform(GL.programs[program], GL.uniforms[location]);
+ if (typeof data == 'number') {
+ {{{ makeSetValue('params', '0', 'data', 'float') }}};
+ } else {
+ for (var i = 0; i < data.length; i++) {
+ {{{ makeSetValue('params', 'i', 'data[i]', 'float') }}};
+ }
+ }
+ },
+
+ glGetUniformiv: function(program, location, params) {
+ var data = Module.ctx.getUniform(GL.programs[program], GL.uniforms[location]);
+ if (typeof data == 'number') {
+ {{{ makeSetValue('params', '0', 'data', 'i32') }}};
+ } else {
+ for (var i = 0; i < data.length; i++) {
+ {{{ makeSetValue('params', 'i', 'data[i]', 'i32') }}};
+ }
+ }
+ },
+
glGetUniformLocation: function(program, name) {
name = Pointer_stringify(name);
var loc = Module.ctx.getUniformLocation(GL.programs[program], name);
@@ -679,7 +705,7 @@ var LibraryGL = {
glIsShader: function(shader) {
var fb = GL.shaders[shader];
if (typeof(fb) == 'undefined') {
- return false;
+ return 0;
}
return Module.ctx.isShader(fb);
},
@@ -735,7 +761,7 @@ var LibraryGL = {
glIsProgram: function(program) {
var fb = GL.programs[program];
if (typeof(fb) == 'undefined') {
- return false;
+ return 0;
}
return Module.ctx.isProgram(fb);
},
@@ -783,7 +809,7 @@ var LibraryGL = {
glIsFramebuffer: function(framebuffer) {
var fb = GL.framebuffers[framebuffer];
if (typeof(fb) == 'undefined') {
- return false;
+ return 0;
}
return Module.ctx.isFramebuffer(fb);
},
@@ -980,11 +1006,11 @@ var LibraryGL = {
};
// Simple pass-through functions. Starred ones have return values. [X] ones have X in the C name but not in the JS name
-[[0, 'shadeModel fogi fogfv getError finish flush'],
- [1, 'clearDepth clearDepth[f] depthFunc disable frontFace cullFace clear enableVertexAttribArray disableVertexAttribArray lineWidth clearStencil depthMask stencilMask stencilMaskSeparate checkFramebufferStatus* generateMipmap activeTexture blendEquation polygonOffset hint sampleCoverage'],
- [2, 'pixelStorei blendFunc blendEquationSeparate depthRange depthRange[f]'],
+[[0, 'shadeModel fogi fogfv getError* finish flush'],
+ [1, 'clearDepth clearDepth[f] depthFunc disable frontFace cullFace clear enableVertexAttribArray disableVertexAttribArray lineWidth clearStencil depthMask stencilMask checkFramebufferStatus* generateMipmap activeTexture blendEquation polygonOffset hint sampleCoverage isEnabled*'],
+ [2, 'pixelStorei blendFunc blendEquationSeparate depthRange depthRange[f] stencilMaskSeparate'],
[3, 'texParameteri texParameterf drawArrays vertexAttrib2f stencilFunc stencilOp'],
- [4, 'viewport clearColor scissor vertexAttrib3f colorMask drawElements renderbufferStorage blendFuncSeparate blendColor'],
+ [4, 'viewport clearColor scissor vertexAttrib3f colorMask drawElements renderbufferStorage blendFuncSeparate blendColor stencilFuncSeparate stencilOpSeparate'],
[5, 'vertexAttrib4f'],
[6, 'vertexAttribPointer'],
[8, 'copyTexImage2D copyTexSubImage2D']].forEach(function(data) {