From 1c72b3440c163314be755ac9615d7f3fec7f77bf Mon Sep 17 00:00:00 2001 From: Ivan Liang Date: Fri, 1 Mar 2024 02:38:49 -0500 Subject: [PATCH] Update gltf-model update w/ meshopt load callback This was an old upstream update that was missed ~2021 ref #621 --- src/aframe-mods/gltf-model-loading.js | 38 ++++++++++++++------------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/src/aframe-mods/gltf-model-loading.js b/src/aframe-mods/gltf-model-loading.js index fa00f976e..275547fbf 100644 --- a/src/aframe-mods/gltf-model-loading.js +++ b/src/aframe-mods/gltf-model-loading.js @@ -23,22 +23,24 @@ AFRAME.components['gltf-model'].Component.prototype.update = function update() { // register with model-progress system to handle model loading events document.querySelector('a-scene').systems['model-progress'].registerModel(el, src); - this.loader.load( - src, - (gltfModel) => { - self.model = gltfModel.scene || gltfModel.scenes[0]; - self.model.animations = gltfModel.animations; - self.model.asset = gltfModel.asset; // save asset - el.setObject3D('mesh', self.model); - el.emit('model-loaded', { format: 'gltf', model: self.model }); - }, - (xhr) => { - el.emit('model-progress', { src, loaded: xhr.loaded, total: xhr.total }); - }, - (error) => { - const message = error && error.message ? error.message : 'Failed to load glTF model'; - console.error(message); - el.emit('model-error', { format: 'gltf', src }); - } - ); + this.ready.then(() => { + self.loader.load( + src, + (gltfModel) => { + self.model = gltfModel.scene || gltfModel.scenes[0]; + self.model.animations = gltfModel.animations; + self.model.asset = gltfModel.asset; // save asset + el.setObject3D('mesh', self.model); + el.emit('model-loaded', { format: 'gltf', model: self.model }); + }, + (xhr) => { + el.emit('model-progress', { src, loaded: xhr.loaded, total: xhr.total }); + }, + (error) => { + const message = error && error.message ? error.message : 'Failed to load glTF model'; + console.error(message); + el.emit('model-error', { format: 'gltf', src }); + } + ); + }); };