Parcourir la source

minor fix to loading sequence

Gary Hsu il y a 9 ans
Parent
commit
e17c2a76c5

+ 6 - 7
loaders/glTF/babylon.glTFBinaryExtension.ts

@@ -22,6 +22,8 @@
     };
     };
 
 
     export class GLTFBinaryExtension extends GLTFFileLoaderExtension {
     export class GLTFBinaryExtension extends GLTFFileLoaderExtension {
+        private _binary: IGLTFBinaryExtension;
+
         public constructor() {
         public constructor() {
             super("KHR_binary_glTF");
             super("KHR_binary_glTF");
         }
         }
@@ -31,21 +33,19 @@
                 return false;
                 return false;
             }
             }
 
 
-            var binary: IGLTFBinaryExtension = this._parseBinary(<ArrayBuffer>data);
-            if (!binary) {
+            this._binary = this._parseBinary(<ArrayBuffer>data);
+            if (!this._binary) {
                 onError();
                 onError();
                 return true;
                 return true;
             }
             }
 
 
-            var gltfRuntime = GLTFFileLoaderBase.CreateRuntime(binary.content, scene, rootUrl);
+            var gltfRuntime = GLTFFileLoaderBase.CreateRuntime(this._binary.content, scene, rootUrl);
 
 
             if (gltfRuntime.extensionsUsed.indexOf(this.name) === -1) {
             if (gltfRuntime.extensionsUsed.indexOf(this.name) === -1) {
                 Tools.Warn("glTF binary file does not have " + this.name + " specified in extensionsUsed");
                 Tools.Warn("glTF binary file does not have " + this.name + " specified in extensionsUsed");
                 gltfRuntime.extensionsUsed.push(this.name);
                 gltfRuntime.extensionsUsed.push(this.name);
             }
             }
 
 
-            gltfRuntime.loadedBufferViews[BinaryExtensionBufferName] = binary.body;
-
             onSuccess(gltfRuntime);
             onSuccess(gltfRuntime);
             return true;
             return true;
         }
         }
@@ -59,8 +59,7 @@
                 return false;
                 return false;
             }
             }
 
 
-            // Buffer is already loaded in loadRuntimeAsync
-            onSuccess(null);
+            onSuccess(this._binary.body);
             return true;
             return true;
         }
         }
 
 

+ 4 - 6
loaders/glTF/babylon.glTFFileLoader.js

@@ -1838,17 +1838,16 @@ var BABYLON;
             if (!(data instanceof ArrayBuffer)) {
             if (!(data instanceof ArrayBuffer)) {
                 return false;
                 return false;
             }
             }
-            var binary = this._parseBinary(data);
-            if (!binary) {
+            this._binary = this._parseBinary(data);
+            if (!this._binary) {
                 onError();
                 onError();
                 return true;
                 return true;
             }
             }
-            var gltfRuntime = BABYLON.GLTFFileLoaderBase.CreateRuntime(binary.content, scene, rootUrl);
+            var gltfRuntime = BABYLON.GLTFFileLoaderBase.CreateRuntime(this._binary.content, scene, rootUrl);
             if (gltfRuntime.extensionsUsed.indexOf(this.name) === -1) {
             if (gltfRuntime.extensionsUsed.indexOf(this.name) === -1) {
                 BABYLON.Tools.Warn("glTF binary file does not have " + this.name + " specified in extensionsUsed");
                 BABYLON.Tools.Warn("glTF binary file does not have " + this.name + " specified in extensionsUsed");
                 gltfRuntime.extensionsUsed.push(this.name);
                 gltfRuntime.extensionsUsed.push(this.name);
             }
             }
-            gltfRuntime.loadedBufferViews[BinaryExtensionBufferName] = binary.body;
             onSuccess(gltfRuntime);
             onSuccess(gltfRuntime);
             return true;
             return true;
         };
         };
@@ -1859,8 +1858,7 @@ var BABYLON;
             if (id !== BinaryExtensionBufferName) {
             if (id !== BinaryExtensionBufferName) {
                 return false;
                 return false;
             }
             }
-            // Buffer is already loaded in loadRuntimeAsync
-            onSuccess(null);
+            onSuccess(this._binary.body);
             return true;
             return true;
         };
         };
         GLTFBinaryExtension.prototype.loadTextureBufferAsync = function (gltfRuntime, id, onSuccess, onError) {
         GLTFBinaryExtension.prototype.loadTextureBufferAsync = function (gltfRuntime, id, onSuccess, onError) {