@galacean/engine-loader 1.3.27 → 1.3.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -420,6 +420,7 @@ function float32ArrayToVector2(float32Array, vertexCount) {
420
420
  exports.Texture2DDecoder = /*#__PURE__*/ function() {
421
421
  function Texture2DDecoder() {}
422
422
  Texture2DDecoder.decode = function decode(engine, bufferReader) {
423
+ var _this = this;
423
424
  return new engineCore.AssetPromise(function(resolve, reject) {
424
425
  var objectId = bufferReader.nextStr();
425
426
  var mipmap = !!bufferReader.nextUint8();
@@ -452,40 +453,52 @@ exports.Texture2DDecoder = /*#__PURE__*/ function() {
452
453
  engine.resourceManager._objectPool[objectId] = texture2D;
453
454
  resolve(texture2D);
454
455
  } else {
455
- var blob = new window.Blob([
456
- imagesData[0]
457
- ]);
458
- var img = new Image();
459
- img.onload = function() {
460
- texture2D.setImageSource(img);
461
- var completedCount = 0;
462
- var onComplete = function() {
463
- completedCount++;
464
- if (completedCount >= mipCount) {
465
- resolve(texture2D);
466
- }
467
- };
468
- onComplete();
469
- if (mipmap) {
470
- var _loop = function(i) {
471
- var blob = new window.Blob([
472
- imagesData[i]
473
- ]);
474
- var img = new Image();
475
- img.onload = function() {
476
- texture2D.setImageSource(img, i);
477
- onComplete();
478
- };
479
- img.src = URL.createObjectURL(blob);
480
- };
481
- texture2D.generateMipmaps();
482
- for(var i = 1; i < mipCount; i++)_loop(i);
456
+ var completedCount = 0;
457
+ var onComplete = function() {
458
+ completedCount++;
459
+ if (completedCount >= mipCount) {
460
+ resolve(texture2D);
483
461
  }
484
462
  };
485
- img.src = URL.createObjectURL(blob);
463
+ _this._loadImageBuffer(imagesData[0]).then(function(img) {
464
+ texture2D.setImageSource(img);
465
+ onComplete();
466
+ }, reject);
467
+ if (mipmap) {
468
+ var _loop = function(i1) {
469
+ _this._loadImageBuffer(imagesData[i1]).then(function(img) {
470
+ texture2D.setImageSource(img, i1);
471
+ onComplete();
472
+ }, reject);
473
+ };
474
+ texture2D.generateMipmaps();
475
+ for(var i1 = 1; i1 < mipCount; i1++)_loop(i1);
476
+ }
486
477
  }
487
478
  });
488
479
  };
480
+ Texture2DDecoder._loadImageBuffer = function _loadImageBuffer(imageBuffer) {
481
+ return new Promise(function(resolve, reject) {
482
+ var blob = new window.Blob([
483
+ imageBuffer
484
+ ]);
485
+ var img = new Image();
486
+ img.onerror = function() {
487
+ reject(new Error("Failed to load image buffer"));
488
+ };
489
+ img.onload = function() {
490
+ // Call requestAnimationFrame to avoid iOS's bug.
491
+ requestAnimationFrame(function() {
492
+ resolve(img);
493
+ img.onload = null;
494
+ img.onerror = null;
495
+ img.onabort = null;
496
+ });
497
+ };
498
+ img.crossOrigin = "anonymous";
499
+ img.src = URL.createObjectURL(blob);
500
+ });
501
+ };
489
502
  return Texture2DDecoder;
490
503
  }();
491
504
  exports.Texture2DDecoder = __decorate([
@@ -1336,15 +1349,11 @@ exports.EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
1336
1349
  }
1337
1350
  var _proto = EditorTextureLoader.prototype;
1338
1351
  _proto.load = function load(item, resourceManager) {
1339
- return new engineCore.AssetPromise(function(resolve, reject) {
1340
- resourceManager// @ts-ignore
1341
- ._request(item.url, _extends({}, item, {
1342
- type: "arraybuffer"
1343
- })).then(function(data) {
1344
- decode(data, resourceManager.engine).then(function(texture) {
1345
- resolve(texture);
1346
- });
1347
- }).catch(reject);
1352
+ return resourceManager// @ts-ignore
1353
+ ._request(item.url, _extends({}, item, {
1354
+ type: "arraybuffer"
1355
+ })).then(function(data) {
1356
+ return decode(data, resourceManager.engine);
1348
1357
  });
1349
1358
  };
1350
1359
  return EditorTextureLoader;
@@ -1430,79 +1439,77 @@ var AnimatorControllerLoader = /*#__PURE__*/ function(Loader1) {
1430
1439
  var _proto = AnimatorControllerLoader.prototype;
1431
1440
  _proto.load = function load(item, resourceManager) {
1432
1441
  var _this = this;
1433
- return new engineCore.AssetPromise(function(resolve, reject) {
1434
- resourceManager// @ts-ignore
1435
- ._request(item.url, _extends({}, item, {
1436
- type: "json"
1437
- })).then(function(data) {
1438
- var animatorController = new engineCore.AnimatorController(resourceManager.engine);
1439
- var layers = data.layers, parameters = data.parameters;
1440
- var promises = [];
1441
- layers.forEach(function(layerData, layerIndex) {
1442
- var name = layerData.name, blendingMode = layerData.blendingMode, weight = layerData.weight, stateMachineData = layerData.stateMachine;
1443
- var layer = new engineCore.AnimatorControllerLayer(name);
1444
- layer.blendingMode = blendingMode;
1445
- layer.weight = weight;
1446
- if (stateMachineData) {
1447
- var states = stateMachineData.states, transitions = stateMachineData.transitions, entryTransitions = stateMachineData.entryTransitions, anyTransitions = stateMachineData.anyTransitions;
1448
- var stateMachine = layer.stateMachine;
1449
- var statesMap = {};
1450
- var transitionsMap = {};
1451
- states.forEach(function(stateData, stateIndex) {
1452
- var id = stateData.id, name = stateData.name, speed = stateData.speed, wrapMode = stateData.wrapMode, clipStartNormalizedTime = stateData.clipStartNormalizedTime, clipEndNormalizedTime = stateData.clipEndNormalizedTime, clipData = stateData.clip, scripts = stateData.scripts;
1453
- var state = stateMachine.addState(name);
1454
- state.speed = speed;
1455
- state.wrapMode = wrapMode;
1456
- state.clipStartTime = clipStartNormalizedTime;
1457
- state.clipEndTime = clipEndNormalizedTime;
1458
- scripts.forEach(function(script) {
1459
- state.addStateMachineScript(engineCore.Loader.getClass(script));
1460
- });
1461
- statesMap[id] = state;
1462
- if (clipData) {
1463
- promises.push(new Promise(function(resolve) {
1464
- //@ts-ignore
1465
- resourceManager.getResourceByRef(clipData).then(function(clip) {
1466
- resolve({
1467
- layerIndex: layerIndex,
1468
- stateIndex: stateIndex,
1469
- clip: clip
1470
- });
1471
- });
1472
- }));
1473
- }
1474
- });
1475
- transitions.forEach(function(transitionData) {
1476
- var transition = _this._createTransition(transitionData, statesMap[transitionData.destinationStateId]);
1477
- transitionsMap[transitionData.id] = transition;
1478
- });
1479
- states.forEach(function(stateData) {
1480
- var id = stateData.id, transitions = stateData.transitions;
1481
- transitions.forEach(function(transitionId) {
1482
- var transition = transitionsMap[transitionId];
1483
- transition && statesMap[id].addTransition(transition);
1484
- });
1485
- });
1486
- entryTransitions.forEach(function(entryTransitionData) {
1487
- stateMachine.addEntryStateTransition(_this._createTransition(entryTransitionData, statesMap[entryTransitionData.destinationStateId]));
1442
+ return resourceManager// @ts-ignore
1443
+ ._request(item.url, _extends({}, item, {
1444
+ type: "json"
1445
+ })).then(function(data) {
1446
+ var animatorController = new engineCore.AnimatorController(resourceManager.engine);
1447
+ var layers = data.layers, parameters = data.parameters;
1448
+ var promises = [];
1449
+ layers.forEach(function(layerData, layerIndex) {
1450
+ var name = layerData.name, blendingMode = layerData.blendingMode, weight = layerData.weight, stateMachineData = layerData.stateMachine;
1451
+ var layer = new engineCore.AnimatorControllerLayer(name);
1452
+ layer.blendingMode = blendingMode;
1453
+ layer.weight = weight;
1454
+ if (stateMachineData) {
1455
+ var states = stateMachineData.states, transitions = stateMachineData.transitions, entryTransitions = stateMachineData.entryTransitions, anyTransitions = stateMachineData.anyTransitions;
1456
+ var stateMachine = layer.stateMachine;
1457
+ var statesMap = {};
1458
+ var transitionsMap = {};
1459
+ states.forEach(function(stateData, stateIndex) {
1460
+ var id = stateData.id, name = stateData.name, speed = stateData.speed, wrapMode = stateData.wrapMode, clipStartNormalizedTime = stateData.clipStartNormalizedTime, clipEndNormalizedTime = stateData.clipEndNormalizedTime, clipData = stateData.clip, scripts = stateData.scripts;
1461
+ var state = stateMachine.addState(name);
1462
+ state.speed = speed;
1463
+ state.wrapMode = wrapMode;
1464
+ state.clipStartTime = clipStartNormalizedTime;
1465
+ state.clipEndTime = clipEndNormalizedTime;
1466
+ scripts.forEach(function(script) {
1467
+ state.addStateMachineScript(engineCore.Loader.getClass(script));
1488
1468
  });
1489
- anyTransitions.forEach(function(anyTransitionData) {
1490
- stateMachine.addAnyStateTransition(_this._createTransition(anyTransitionData, statesMap[anyTransitionData.destinationStateId]));
1469
+ statesMap[id] = state;
1470
+ if (clipData) {
1471
+ promises.push(//@ts-ignore
1472
+ resourceManager.getResourceByRef(clipData).then(function(clip) {
1473
+ return {
1474
+ layerIndex: layerIndex,
1475
+ stateIndex: stateIndex,
1476
+ clip: clip
1477
+ };
1478
+ }));
1479
+ }
1480
+ });
1481
+ transitions.forEach(function(transitionData) {
1482
+ var transition = _this._createTransition(transitionData, statesMap[transitionData.destinationStateId]);
1483
+ transitionsMap[transitionData.id] = transition;
1484
+ });
1485
+ states.forEach(function(stateData) {
1486
+ var id = stateData.id, transitions = stateData.transitions;
1487
+ transitions.forEach(function(transitionId) {
1488
+ var transition = transitionsMap[transitionId];
1489
+ transition && statesMap[id].addTransition(transition);
1491
1490
  });
1492
- }
1493
- animatorController.addLayer(layer);
1494
- });
1495
- parameters.forEach(function(parameterData) {
1496
- animatorController.addParameter(parameterData.name, parameterData.defaultValue);
1497
- });
1498
- Promise.all(promises).then(function(clipData) {
1491
+ });
1492
+ entryTransitions.forEach(function(entryTransitionData) {
1493
+ stateMachine.addEntryStateTransition(_this._createTransition(entryTransitionData, statesMap[entryTransitionData.destinationStateId]));
1494
+ });
1495
+ anyTransitions.forEach(function(anyTransitionData) {
1496
+ stateMachine.addAnyStateTransition(_this._createTransition(anyTransitionData, statesMap[anyTransitionData.destinationStateId]));
1497
+ });
1498
+ }
1499
+ animatorController.addLayer(layer);
1500
+ });
1501
+ parameters.forEach(function(parameterData) {
1502
+ animatorController.addParameter(parameterData.name, parameterData.defaultValue);
1503
+ });
1504
+ return new engineCore.AssetPromise(function(resolve, reject) {
1505
+ engineCore.AssetPromise.all(promises).then(function(clipData) {
1499
1506
  clipData.forEach(function(data) {
1500
1507
  var layerIndex = data.layerIndex, stateIndex = data.stateIndex, clip = data.clip;
1501
1508
  animatorController.layers[layerIndex].stateMachine.states[stateIndex].clip = clip;
1502
1509
  });
1503
1510
  resolve(animatorController);
1504
- });
1505
- }).catch(reject);
1511
+ }, reject).catch(reject);
1512
+ });
1506
1513
  });
1507
1514
  };
1508
1515
  _proto._createTransition = function _createTransition(transitionData, destinationState) {