diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-06-24 16:14:35 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-07-03 15:31:02 -0700 |
commit | 190b20e6088000640788bc5c8d0a7e6fc95c1c2d (patch) | |
tree | c79a4810623ebf2420027871c46fd32aa5d339f5 | |
parent | fac77c3ff04c2f228389fd3697239db263f62ab6 (diff) |
DISABLE_GL_EMULATION option
-rw-r--r-- | src/library_gl.js | 38 | ||||
-rw-r--r-- | src/settings.js | 2 | ||||
-rwxr-xr-x | tests/runner.py | 4 |
3 files changed, 25 insertions, 19 deletions
diff --git a/src/library_gl.js b/src/library_gl.js index 1fa0cc9c..084cdbb6 100644 --- a/src/library_gl.js +++ b/src/library_gl.js @@ -4409,25 +4409,29 @@ var LibraryGL = { autoAddDeps(LibraryGL, '$GL'); -// Emulation requires everything else, potentially -LibraryGL.$GLEmulation__deps = LibraryGL.$GLEmulation__deps.slice(0); // the __deps object is shared -var glFuncs = []; -for (var item in LibraryGL) { - if (item != '$GLEmulation' && item.substr(-6) != '__deps' && item.substr(-9) != '__postset' && item.substr(-5) != '__sig' && item.substr(0, 2) == 'gl') { - glFuncs.push(item); - } -} -LibraryGL.$GLEmulation__deps = LibraryGL.$GLEmulation__deps.concat(glFuncs); -LibraryGL.$GLEmulation__deps.push(function() { - for (var func in Functions.getIndex.tentative) { - Functions.getIndex(func); - Functions.unimplementedFunctions[func] = LibraryGL[func.substr(1) + '__sig']; +if (DISABLE_GL_EMULATION) { + delete LibraryGL.$GLEmulation; +} else { + // Emulation requires everything else, potentially + LibraryGL.$GLEmulation__deps = LibraryGL.$GLEmulation__deps.slice(0); // the __deps object is shared + var glFuncs = []; + for (var item in LibraryGL) { + if (item != '$GLEmulation' && item.substr(-6) != '__deps' && item.substr(-9) != '__postset' && item.substr(-5) != '__sig' && item.substr(0, 2) == 'gl') { + glFuncs.push(item); + } } -}); + LibraryGL.$GLEmulation__deps = LibraryGL.$GLEmulation__deps.concat(glFuncs); + LibraryGL.$GLEmulation__deps.push(function() { + for (var func in Functions.getIndex.tentative) { + Functions.getIndex(func); + Functions.unimplementedFunctions[func] = LibraryGL[func.substr(1) + '__sig']; + } + }); -if (FORCE_GL_EMULATION) { - LibraryGL.glDrawElements__deps = LibraryGL.glDrawElements__deps.concat('$GLEmulation'); - LibraryGL.glDrawArrays__deps = LibraryGL.glDrawArrays__deps.concat('$GLEmulation'); + if (FORCE_GL_EMULATION) { + LibraryGL.glDrawElements__deps = LibraryGL.glDrawElements__deps.concat('$GLEmulation'); + LibraryGL.glDrawArrays__deps = LibraryGL.glDrawArrays__deps.concat('$GLEmulation'); + } } mergeInto(LibraryManager.library, LibraryGL); diff --git a/src/settings.js b/src/settings.js index 37a118cb..7f9dca3b 100644 --- a/src/settings.js +++ b/src/settings.js @@ -186,6 +186,8 @@ var GL_MAX_TEMP_BUFFER_SIZE = 2097152; // How large GL emulation temp buffers ar var GL_UNSAFE_OPTS = 1; // Enables some potentially-unsafe optimizations in GL emulation code var FULL_ES2 = 0; // Forces support for all GLES2 features, not just the WebGL-friendly subset. var FORCE_GL_EMULATION = 0; // Forces inclusion of full GL emulation code. +var DISABLE_GL_EMULATION = 0; // Disable inclusion of full GL emulation code. Useful when you don't want emulation + // but do need INCLUDE_FULL_LIBRARY or MAIN_MODULE. var DISABLE_EXCEPTION_CATCHING = 0; // Disables generating code to actually catch exceptions. If the code you // are compiling does not actually rely on catching exceptions (but the diff --git a/tests/runner.py b/tests/runner.py index 15de7756..2c06c02f 100755 --- a/tests/runner.py +++ b/tests/runner.py @@ -10606,7 +10606,7 @@ f.close() self.assertContained('hello from lib', run_js(os.path.join(self.get_dir(), 'a.out.js'))) assert not os.path.exists('a.out') and not os.path.exists('a.exe'), 'Must not leave unneeded linker stubs' - def zzztest_static_link(self): + def test_static_link(self): open(os.path.join(self.get_dir(), 'main.cpp'), 'w').write(''' extern void printey(); int main() { @@ -10621,7 +10621,7 @@ f.close() } ''') Popen([PYTHON, EMCC, os.path.join(self.get_dir(), 'lib.cpp'), '-o', 'lib.js', '-s', 'SIDE_MODULE=1', '-O2']).communicate() - Popen([PYTHON, EMCC, os.path.join(self.get_dir(), 'main.cpp'), '-o', 'main.js', '-s', 'MAIN_MODULE=1', '-O2']).communicate() + Popen([PYTHON, EMCC, os.path.join(self.get_dir(), 'main.cpp'), '-o', 'main.js', '-s', 'MAIN_MODULE=1', '-O2', '-s', 'DISABLE_GL_EMULATION=1']).communicate() Popen([PYTHON, EMLINK, 'main.js', 'lib.js', 'together.js']) self.assertContained('hello from lib', run_js('together.js')) |