diff options
| author | Rémi Verschelde | 2018-05-10 21:57:07 +0200 |
|---|---|---|
| committer | GitHub | 2018-05-10 21:57:07 +0200 |
| commit | a415efa4b749da90c86db5ac4664491e2ee125dd (patch) | |
| tree | 7cae2c9f71138c532c908763982abba926d097db /platform/javascript | |
| parent | 2766050c532c7a93957e35cd1e70852b322b6de7 (diff) | |
| parent | 96f907c023b687206df6233be383d724e2810088 (diff) | |
| download | godot-a415efa4b749da90c86db5ac4664491e2ee125dd.tar.gz godot-a415efa4b749da90c86db5ac4664491e2ee125dd.tar.zst godot-a415efa4b749da90c86db5ac4664491e2ee125dd.zip | |
Diffstat (limited to 'platform/javascript')
| -rw-r--r-- | platform/javascript/engine.js | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/platform/javascript/engine.js b/platform/javascript/engine.js index e3a28083a..c3ef5bbbb 100644 --- a/platform/javascript/engine.js +++ b/platform/javascript/engine.js @@ -10,6 +10,7 @@ var DOWNLOAD_ATTEMPTS_MAX = 4; var basePath = null; + var wasmFilenameExtensionOverride = null; var engineLoadPromise = null; var loadingFiles = {}; @@ -129,13 +130,17 @@ this.startGame = function(mainPack) { executableName = getBaseName(mainPack); + var mainArgs = []; + if (!getPathLeaf(mainPack).endsWith('.pck')) { + mainArgs = ['--main-pack', getPathLeaf(mainPack)]; + } return Promise.all([ // Load from directory, this.init(getBasePath(mainPack)), // ...but write to root where the engine expects it. this.preloadFile(mainPack, getPathLeaf(mainPack)) ]).then( - Function.prototype.apply.bind(synchronousStart, this, []) + Function.prototype.apply.bind(synchronousStart, this, mainArgs) ); }; @@ -303,6 +308,14 @@ return !!testContext; }; + Engine.setWebAssemblyFilenameExtension = function(override) { + + if (String(override).length === 0) { + throw new Error('Invalid WebAssembly filename extension override'); + } + wasmFilenameExtensionOverride = String(override); + } + Engine.load = function(newBasePath) { if (newBasePath !== undefined) basePath = getBasePath(newBasePath); @@ -310,7 +323,7 @@ if (typeof WebAssembly !== 'object') return Promise.reject(new Error("Browser doesn't support WebAssembly")); // TODO cache/retrieve module to/from idb - engineLoadPromise = loadPromise(basePath + '.wasm').then(function(xhr) { + engineLoadPromise = loadPromise(basePath + '.' + (wasmFilenameExtensionOverride || 'wasm')).then(function(xhr) { return xhr.response; }); engineLoadPromise = engineLoadPromise.catch(function(err) { |
