From b3cc003029741022a76f98676411a3a356bf0f11 Mon Sep 17 00:00:00 2001 From: Elohiem <20236-Elohiem@users.noreply.gitgud.io> Date: Sat, 21 May 2022 05:11:19 +0200 Subject: [PATCH] Load models asynchronously --- src/art/artJS.js | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/art/artJS.js b/src/art/artJS.js index c5ffbcbe01a..9ac36f8df0e 100644 --- a/src/art/artJS.js +++ b/src/art/artJS.js @@ -273,24 +273,28 @@ App.Art.webglArtElement = function(slave, artSize) { let container = document.createElement("div"); container.setAttribute("class", "artContainer"); container.style.fontSize = "large"; - container.innerText = "Loading..."; + // container.innerText = "Loading..."; container.addEventListener("engineLoaded", function() { - // when engine is ready, attach default scene - let scene = JSON.parse(JSON.stringify(App.Art.defaultScene)); + let img = document.createElement("img"); // hack to simulate onload event + img.onerror = function() { + // when engine is ready, attach default scene + let scene = JSON.parse(JSON.stringify(App.Art.defaultScene)); - // apply the model transforms - let p = App.Art.getArtParams(slave); - App.Art.applyFigures(slave, scene, p); - App.Art.applySurfaces(slave, scene, p); - App.Art.applyMaterials(slave, scene, p); - App.Art.applyMorphs(slave, scene, p); + // apply the model transforms + let p = App.Art.getArtParams(slave); + App.Art.applyFigures(slave, scene, p); + App.Art.applySurfaces(slave, scene, p); + App.Art.applyMaterials(slave, scene, p); + App.Art.applyMorphs(slave, scene, p); - // console.log(scene); + // console.log(scene); - // create UI and render based on active view - container.innerText = ""; - App.Art.createWebglUI(container, slave, artSize, scene, p); + // create UI and render based on active view + container.innerText = ""; + App.Art.createWebglUI(container, slave, artSize, scene, p); + }; + img.src = ''; }); container.addEventListener("engineFailed", function() { -- GitLab