|
@@ -1341,7 +1341,7 @@ class GLTFMeshoptCompression {
|
|
|
|
|
|
}
|
|
|
|
|
|
- return Promise.all( [ buffer, decoder.ready ] ).then( function ( res ) {
|
|
|
+ return buffer.then( function ( res ) {
|
|
|
|
|
|
const byteOffset = extensionDef.byteOffset || 0;
|
|
|
const byteLength = extensionDef.byteLength || 0;
|
|
@@ -1349,11 +1349,28 @@ class GLTFMeshoptCompression {
|
|
|
const count = extensionDef.count;
|
|
|
const stride = extensionDef.byteStride;
|
|
|
|
|
|
- const result = new ArrayBuffer( count * stride );
|
|
|
- const source = new Uint8Array( res[ 0 ], byteOffset, byteLength );
|
|
|
+ const source = new Uint8Array( res, byteOffset, byteLength );
|
|
|
|
|
|
- decoder.decodeGltfBuffer( new Uint8Array( result ), count, stride, source, extensionDef.mode, extensionDef.filter );
|
|
|
- return result;
|
|
|
+ if ( decoder.decodeGltfBufferAsync ) {
|
|
|
+
|
|
|
+ return decoder.decodeGltfBufferAsync( count, stride, source, extensionDef.mode, extensionDef.filter ).then( function ( res ) {
|
|
|
+
|
|
|
+ return res.buffer;
|
|
|
+
|
|
|
+ } );
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ // Support for MeshoptDecoder 0.18 or earlier, without decodeGltfBufferAsync
|
|
|
+ return decoder.ready.then( function () {
|
|
|
+
|
|
|
+ const result = new ArrayBuffer( count * stride );
|
|
|
+ decoder.decodeGltfBuffer( new Uint8Array( result ), count, stride, source, extensionDef.mode, extensionDef.filter );
|
|
|
+ return result;
|
|
|
+
|
|
|
+ } );
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
} );
|
|
|
|