Unverified Commit a415efa4 by Rémi Verschelde Committed by GitHub

Merge pull request #18765 from eska014/enginejs-extalt

Facilitate using non-default filename extensions in HTML5 platform
parents 2766050c 96f907c0
......@@ -229,7 +229,7 @@ $GODOT_HEAD_INCLUDE
(function() {
const BASENAME = '$GODOT_BASENAME';
const MAIN_PACK = '$GODOT_BASENAME.pck';
const DEBUG_ENABLED = $GODOT_DEBUG_ENABLED;
const INDETERMINATE_STATUS_STEP_MS = 100;
......@@ -380,7 +380,7 @@ $GODOT_HEAD_INCLUDE
} else {
setStatusMode('indeterminate');
engine.setCanvas(canvas);
engine.startGame(BASENAME + '.pck').then(() => {
engine.startGame(MAIN_PACK).then(() => {
setStatusMode('hidden');
initializing = false;
}, displayFailureNotice);
......
......@@ -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) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment