Spaces:
Running
Running
| var loadModules = function (modules, urlPrefix, doneCallback) { // eslint-disable-line no-unused-vars | |
| if (typeof modules === "undefined" || modules.length === 0) { | |
| // caller may depend on callback behaviour being async | |
| setTimeout(doneCallback); | |
| } else { | |
| let remaining = modules.length; | |
| const moduleLoaded = () => { | |
| if (--remaining === 0) { | |
| doneCallback(); | |
| } | |
| }; | |
| modules.forEach(function (m) { | |
| pc.WasmModule.setConfig(m.moduleName, { | |
| glueUrl: urlPrefix + m.glueUrl, | |
| wasmUrl: urlPrefix + m.wasmUrl, | |
| fallbackUrl: urlPrefix + m.fallbackUrl | |
| }); | |
| if (!m.hasOwnProperty('preload') || m.preload) { | |
| if (m.moduleName === 'BASIS') { | |
| // preload basis transcoder | |
| pc.basisInitialize(); | |
| moduleLoaded(); | |
| } else if (m.moduleName === 'DracoDecoderModule') { | |
| // preload draco decoder | |
| if (pc.dracoInitialize) { | |
| // 1.63 onwards | |
| pc.dracoInitialize(); | |
| moduleLoaded(); | |
| } else { | |
| // 1.62 and earlier | |
| pc.WasmModule.getInstance(m.moduleName, () => { moduleLoaded(); }); | |
| } | |
| } else { | |
| // load remaining modules in global scope | |
| pc.WasmModule.getInstance(m.moduleName, () => { moduleLoaded(); }); | |
| } | |
| } else { | |
| moduleLoaded(); | |
| } | |
| }); | |
| } | |
| }; | |
| window.loadModules = loadModules; | |