diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-04-08 18:21:23 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-04-08 18:21:23 -0700 |
commit | 14f111041c952b0a1bb82c453d8f5a853869c7cb (patch) | |
tree | 15cfc2aaec4bea1b1aab349ddda69242adb61704 | |
parent | ce2b8ba4773cb086a9f3d631b1479b2a994615fa (diff) |
getProcAddress starting to work
-rw-r--r-- | src/library_gl.js | 37 | ||||
-rw-r--r-- | src/library_sdl.js | 3 |
2 files changed, 25 insertions, 15 deletions
diff --git a/src/library_gl.js b/src/library_gl.js index 36839268..ceca2738 100644 --- a/src/library_gl.js +++ b/src/library_gl.js @@ -55,20 +55,6 @@ var LibraryGL = { return true; } while (true); return false; - }, - - getProcAddress: function(original) { - // remove 'gl' and initial caps - var small = original.substr(2); - small = small[0].toLowerCase() + small.substr(1); - var func = Module.ctx[small]; - if (!func) { - console.log('WARNING: getProcAddress failed for ' + original + ' ==> ' + small); - func = function() { console.log('[empty replacement for ' + small + ']') }; - } - return Runtime.addFunction(function() { - return func.apply(Module.ctx, arguments); - }); } }, @@ -766,6 +752,29 @@ var LibraryGL = { return Module.ctx.isFramebuffer(fb); }, + // GL emulation: provides misc. functionality not present in OpenGL ES 2.0 or WebGL + + $GLEmulation__deps: ['glCreateShader'], + $GLEmulation: { + procReplacements: { + 'glCreateShaderObjectARB': 'glCreateShader' + }, + + getProcAddress: function(name_) { + name_ = GLEmulation.procReplacements[name_] || name_; + var func; + try { + func = eval('_' + name_); + } catch(e) { + console.log('WARNING: getProcAddress failed for ' + name_); + func = function() { + console.log('WARNING: empty replacement for ' + name_ + ' called, no-op'); + return 0; + }; + } + return Runtime.addFunction(func); + } + } }; // Simple pass-through functions diff --git a/src/library_sdl.js b/src/library_sdl.js index 672619ad..24b90dce 100644 --- a/src/library_sdl.js +++ b/src/library_sdl.js @@ -977,8 +977,9 @@ mergeInto(LibraryManager.library, { console.log('TODO: SDL_GL_SetAttribute'); }, + SDL_GL_GetProcAddress__deps: ['$GLEmulation'], SDL_GL_GetProcAddress: function(name_) { - return GL.getProcAddress(Pointer_stringify(name_)); + return GLEmulation.getProcAddress(Pointer_stringify(name_)); }, SDL_GL_SwapBuffers: function() {}, |