浏览代码

GLTFLoader: Fix geometries order

Takahiro 7 年之前
父节点
当前提交
2d95f41595
共有 1 个文件被更改,包括 6 次插入15 次删除
  1. 6 15
      examples/js/loaders/GLTFLoader.js

+ 6 - 15
examples/js/loaders/GLTFLoader.js

@@ -2052,7 +2052,6 @@ THREE.GLTFLoader = ( function () {
 
 
 		return this.getDependencies( 'accessor' ).then( function ( accessors ) {
 		return this.getDependencies( 'accessor' ).then( function ( accessors ) {
 
 
-			var geometries = [];
 			var pending = [];
 			var pending = [];
 
 
 			for ( var i = 0, il = primitives.length; i < il; i ++ ) {
 			for ( var i = 0, il = primitives.length; i < il; i ++ ) {
@@ -2067,11 +2066,7 @@ THREE.GLTFLoader = ( function () {
 				if ( cached ) {
 				if ( cached ) {
 
 
 					// Use the cached geometry if it exists
 					// Use the cached geometry if it exists
-					pending.push( cached.then( function ( geometry ) {
-
-						geometries.push( geometry );
-
-					} ) );
+					pending.push( cached );
 
 
 				} else if ( primitive.extensions && primitive.extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ] ) {
 				} else if ( primitive.extensions && primitive.extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ] ) {
 
 
@@ -2082,8 +2077,6 @@ THREE.GLTFLoader = ( function () {
 
 
 							addPrimitiveAttributes( geometry, primitive, accessors );
 							addPrimitiveAttributes( geometry, primitive, accessors );
 
 
-							geometries.push( geometry );
-
 							return geometry;
 							return geometry;
 
 
 						} );
 						} );
@@ -2099,25 +2092,23 @@ THREE.GLTFLoader = ( function () {
 
 
 					addPrimitiveAttributes( geometry, primitive, accessors );
 					addPrimitiveAttributes( geometry, primitive, accessors );
 
 
+					var geometryPromise = Promise.resolve( geometry );
+
 					// Cache this geometry
 					// Cache this geometry
 					cache.push( {
 					cache.push( {
 
 
 						primitive: primitive,
 						primitive: primitive,
-						promise: Promise.resolve( geometry )
+						promise: geometryPromise
 
 
 					} );
 					} );
 
 
-					geometries.push( geometry );
+					pending.push( geometryPromise );
 
 
 				}
 				}
 
 
 			}
 			}
 
 
-			return Promise.all( pending ).then( function () {
-
-				return geometries;
-
-			} );
+			return Promise.all( pending );
 
 
 		} );
 		} );