Expose Emscripten libs to engine.js discreetly

This commit is contained in:
Leon Krause 2018-03-27 09:06:19 +02:00
parent d8d9eea722
commit 63c7fc6358
3 changed files with 6 additions and 10 deletions

View File

@ -129,13 +129,6 @@ def configure(env):
# This setting just makes WebGL 2 APIs available, it does NOT disable WebGL 1. # This setting just makes WebGL 2 APIs available, it does NOT disable WebGL 1.
env.Append(LINKFLAGS=['-s', 'USE_WEBGL2=1']) env.Append(LINKFLAGS=['-s', 'USE_WEBGL2=1'])
# engine.js uses FS but is not currently evaluated by Emscripten, so export FS.
# TODO: Getting rid of this export is desirable.
extra_exports = [
'FS',
]
env.Append(LINKFLAGS=['-s', 'EXTRA_EXPORTED_RUNTIME_METHODS="%s"' % repr(extra_exports)])
env.Append(LINKFLAGS=['-s', 'INVOKE_RUN=0']) env.Append(LINKFLAGS=['-s', 'INVOKE_RUN=0'])
# TODO: Reevaluate usage of this setting now that engine.js manages engine runtime. # TODO: Reevaluate usage of this setting now that engine.js manages engine runtime.

View File

@ -1,3 +1,4 @@
exposedLibs['FS'] = FS;
return Module; return Module;
}, },
}; };
@ -31,6 +32,8 @@
this.rtenv = null; this.rtenv = null;
var LIBS = {};
var initPromise = null; var initPromise = null;
var unloadAfterInit = true; var unloadAfterInit = true;
@ -80,7 +83,7 @@
return new Promise(function(resolve, reject) { return new Promise(function(resolve, reject) {
rtenvProps.onRuntimeInitialized = resolve; rtenvProps.onRuntimeInitialized = resolve;
rtenvProps.onAbort = reject; rtenvProps.onAbort = reject;
rtenvProps.engine.rtenv = Engine.RuntimeEnvironment(rtenvProps); rtenvProps.engine.rtenv = Engine.RuntimeEnvironment(rtenvProps, LIBS);
}); });
} }
@ -163,7 +166,7 @@
this.rtenv.thisProgram = executableName || getBaseName(basePath); this.rtenv.thisProgram = executableName || getBaseName(basePath);
preloadedFiles.forEach(function(file) { preloadedFiles.forEach(function(file) {
this.rtenv.FS.createDataFile('/', file.name, new Uint8Array(file.buffer), true, true, true); LIBS.FS.createDataFile('/', file.name, new Uint8Array(file.buffer), true, true, true);
}, this); }, this);
preloadedFiles = null; preloadedFiles = null;

View File

@ -1,2 +1,2 @@
var Engine = { var Engine = {
RuntimeEnvironment: function(Module) { RuntimeEnvironment: function(Module, exposedLibs) {