@galacean/engine 1.1.3 → 1.1.6

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/browser.js CHANGED
@@ -24592,7 +24592,21 @@
24592
24592
  mesh.uploadData(false);
24593
24593
  };
24594
24594
  _proto._initMesh = function _initMesh(engine) {
24595
- this._mesh = this._createPlane(engine);
24595
+ var mesh = this._mesh = this._createPlane(engine);
24596
+ engine.resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
24597
+ var _class = function _class() {
24598
+ return ContentRestorer.call(this, mesh);
24599
+ };
24600
+ _inherits$2(_class, ContentRestorer);
24601
+ var _proto = _class.prototype;
24602
+ _proto.restoreContent = function restoreContent() {
24603
+ mesh.setPositions(mesh.getPositions());
24604
+ mesh.setUVs(mesh.getUVs());
24605
+ mesh.setIndices(mesh.getIndices());
24606
+ mesh.uploadData(false);
24607
+ };
24608
+ return _class;
24609
+ }(ContentRestorer))());
24596
24610
  this._mesh._addReferCount(1);
24597
24611
  };
24598
24612
  _proto._initMaterial = function _initMaterial(engine) {
@@ -38300,11 +38314,199 @@
38300
38314
  ]);
38301
38315
  return FileHeader;
38302
38316
  }();
38317
+ var ComponentMap = {
38318
+ Transform: Transform,
38319
+ Animator: Animator,
38320
+ DirectLight: DirectLight,
38321
+ Camera: exports.Camera,
38322
+ MeshRenderer: MeshRenderer,
38323
+ ParticleRenderer: ParticleRenderer,
38324
+ PointLight: PointLight,
38325
+ SpotLight: SpotLight,
38326
+ Script: Script,
38327
+ SpriteMask: SpriteMask,
38328
+ SpriteRenderer: SpriteRenderer,
38329
+ TextRenderer: TextRenderer
38330
+ };
38331
+ exports.InterpolableValueType = void 0;
38332
+ (function(InterpolableValueType) {
38333
+ InterpolableValueType[InterpolableValueType["Float"] = 0] = "Float";
38334
+ InterpolableValueType[InterpolableValueType["FloatArray"] = 1] = "FloatArray";
38335
+ InterpolableValueType[InterpolableValueType["Vector2"] = 2] = "Vector2";
38336
+ InterpolableValueType[InterpolableValueType["Vector3"] = 3] = "Vector3";
38337
+ InterpolableValueType[InterpolableValueType["Vector4"] = 4] = "Vector4";
38338
+ InterpolableValueType[InterpolableValueType["Quaternion"] = 5] = "Quaternion";
38339
+ InterpolableValueType[InterpolableValueType["Color"] = 6] = "Color";
38340
+ InterpolableValueType[InterpolableValueType["Array"] = 7] = "Array";
38341
+ InterpolableValueType[InterpolableValueType["Boolean"] = 8] = "Boolean";
38342
+ InterpolableValueType[InterpolableValueType["Rect"] = 9] = "Rect";
38343
+ InterpolableValueType[InterpolableValueType["ReferResource"] = 10] = "ReferResource";
38344
+ })(exports.InterpolableValueType || (exports.InterpolableValueType = {}));
38345
+ exports.AnimationClipDecoder = /*#__PURE__*/ function() {
38346
+ var AnimationClipDecoder = function AnimationClipDecoder() {};
38347
+ AnimationClipDecoder.decode = function decode(engine, bufferReader) {
38348
+ return new Promise(function(resolve) {
38349
+ var name = bufferReader.nextStr();
38350
+ var clip = new AnimationClip(name);
38351
+ var eventsLen = bufferReader.nextUint16();
38352
+ for(var i = 0; i < eventsLen; ++i){
38353
+ var event = new AnimationEvent();
38354
+ event.time = bufferReader.nextFloat32();
38355
+ event.functionName = bufferReader.nextStr();
38356
+ event.parameter = JSON.parse(bufferReader.nextStr()).val;
38357
+ clip.addEvent(event);
38358
+ }
38359
+ var curveBindingsLen = bufferReader.nextUint16();
38360
+ for(var i1 = 0; i1 < curveBindingsLen; ++i1){
38361
+ var relativePath = bufferReader.nextStr();
38362
+ var componentStr = bufferReader.nextStr();
38363
+ var componentType = ComponentMap[componentStr];
38364
+ var property = bufferReader.nextStr();
38365
+ var curve = void 0;
38366
+ var interpolation = bufferReader.nextUint8();
38367
+ var keysLen = bufferReader.nextUint16();
38368
+ var curveType = bufferReader.nextStr();
38369
+ switch(curveType){
38370
+ case "AnimationFloatCurve":
38371
+ {
38372
+ curve = new exports.AnimationFloatCurve();
38373
+ curve.interpolation = interpolation;
38374
+ for(var j = 0; j < keysLen; ++j){
38375
+ var keyframe = new Keyframe();
38376
+ keyframe.time = bufferReader.nextFloat32();
38377
+ keyframe.value = bufferReader.nextFloat32();
38378
+ keyframe.inTangent = bufferReader.nextFloat32();
38379
+ keyframe.outTangent = bufferReader.nextFloat32();
38380
+ curve.addKey(keyframe);
38381
+ }
38382
+ break;
38383
+ }
38384
+ case "AnimationArrayCurve":
38385
+ {
38386
+ curve = new exports.AnimationArrayCurve();
38387
+ curve.interpolation = interpolation;
38388
+ for(var j1 = 0; j1 < keysLen; ++j1){
38389
+ var keyframe1 = new Keyframe();
38390
+ keyframe1.time = bufferReader.nextFloat32();
38391
+ var len = bufferReader.nextUint16();
38392
+ keyframe1.value = Array.from(bufferReader.nextFloat32Array(len));
38393
+ keyframe1.inTangent = Array.from(bufferReader.nextFloat32Array(len));
38394
+ keyframe1.outTangent = Array.from(bufferReader.nextFloat32Array(len));
38395
+ curve.addKey(keyframe1);
38396
+ }
38397
+ break;
38398
+ }
38399
+ case "AnimationFloatArrayCurve":
38400
+ {
38401
+ curve = new exports.AnimationFloatArrayCurve();
38402
+ curve.interpolation = interpolation;
38403
+ for(var j2 = 0; j2 < keysLen; ++j2){
38404
+ var keyframe2 = new Keyframe();
38405
+ keyframe2.time = bufferReader.nextFloat32();
38406
+ var len1 = bufferReader.nextUint16();
38407
+ keyframe2.value = bufferReader.nextFloat32Array(len1);
38408
+ keyframe2.inTangent = Array.from(bufferReader.nextFloat32Array(len1));
38409
+ keyframe2.outTangent = Array.from(bufferReader.nextFloat32Array(len1));
38410
+ curve.addKey(keyframe2);
38411
+ }
38412
+ break;
38413
+ }
38414
+ case "AnimationVector2Curve":
38415
+ {
38416
+ curve = new exports.AnimationVector2Curve();
38417
+ curve.interpolation = interpolation;
38418
+ for(var j3 = 0; j3 < keysLen; ++j3){
38419
+ var keyframe3 = new Keyframe();
38420
+ keyframe3.time = bufferReader.nextFloat32();
38421
+ keyframe3.value = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
38422
+ keyframe3.inTangent = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
38423
+ keyframe3.outTangent = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
38424
+ curve.addKey(keyframe3);
38425
+ }
38426
+ break;
38427
+ }
38428
+ case "AnimationVector3Curve":
38429
+ {
38430
+ curve = new exports.AnimationVector3Curve();
38431
+ curve.interpolation = interpolation;
38432
+ for(var j4 = 0; j4 < keysLen; ++j4){
38433
+ var keyframe4 = new Keyframe();
38434
+ keyframe4.time = bufferReader.nextFloat32();
38435
+ keyframe4.value = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38436
+ keyframe4.inTangent = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38437
+ keyframe4.outTangent = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38438
+ curve.addKey(keyframe4);
38439
+ }
38440
+ break;
38441
+ }
38442
+ case "AnimationVector4Curve":
38443
+ {
38444
+ curve = new exports.AnimationVector4Curve();
38445
+ curve.interpolation = interpolation;
38446
+ var keyframe5 = new Keyframe();
38447
+ keyframe5.time = bufferReader.nextFloat32();
38448
+ keyframe5.value = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38449
+ keyframe5.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38450
+ keyframe5.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38451
+ curve.addKey(keyframe5);
38452
+ break;
38453
+ }
38454
+ case "AnimationColorCurve":
38455
+ {
38456
+ curve = new exports.AnimationColorCurve();
38457
+ curve.interpolation = interpolation;
38458
+ for(var j5 = 0; j5 < keysLen; ++j5){
38459
+ var keyframe6 = new Keyframe();
38460
+ keyframe6.time = bufferReader.nextFloat32();
38461
+ keyframe6.value = new Color$1(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38462
+ keyframe6.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38463
+ keyframe6.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38464
+ curve.addKey(keyframe6);
38465
+ }
38466
+ break;
38467
+ }
38468
+ case "AnimationQuaternionCurve":
38469
+ {
38470
+ curve = new exports.AnimationQuaternionCurve();
38471
+ curve.interpolation = interpolation;
38472
+ for(var j6 = 0; j6 < keysLen; ++j6){
38473
+ var keyframe7 = new Keyframe();
38474
+ keyframe7.time = bufferReader.nextFloat32();
38475
+ keyframe7.value = new Quaternion(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38476
+ keyframe7.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38477
+ keyframe7.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38478
+ curve.addKey(keyframe7);
38479
+ }
38480
+ break;
38481
+ }
38482
+ case "AnimationRefCurve":
38483
+ {
38484
+ curve = new exports.AnimationRefCurve();
38485
+ curve.interpolation = interpolation;
38486
+ for(var j7 = 0; j7 < keysLen; ++j7){
38487
+ var keyframe8 = new Keyframe();
38488
+ keyframe8.time = bufferReader.nextFloat32();
38489
+ keyframe8.value = JSON.parse(bufferReader.nextStr());
38490
+ curve.addKey(keyframe8);
38491
+ }
38492
+ break;
38493
+ }
38494
+ }
38495
+ clip.addCurveBinding(relativePath, componentType, property, curve);
38496
+ }
38497
+ resolve(clip);
38498
+ });
38499
+ };
38500
+ return AnimationClipDecoder;
38501
+ }();
38502
+ exports.AnimationClipDecoder = __decorate([
38503
+ decoder("AnimationClip")
38504
+ ], exports.AnimationClipDecoder);
38303
38505
  exports.MeshDecoder = /*#__PURE__*/ function() {
38304
38506
  var MeshDecoder = function MeshDecoder() {};
38305
- MeshDecoder.decode = function decode(engine, bufferReader) {
38507
+ MeshDecoder.decode = function decode(engine, bufferReader, restoredMesh) {
38306
38508
  return new Promise(function(resolve) {
38307
- var modelMesh = new ModelMesh(engine);
38509
+ var modelMesh = restoredMesh || new ModelMesh(engine);
38308
38510
  var jsonDataString = bufferReader.nextStr();
38309
38511
  var encodedMeshData = JSON.parse(jsonDataString);
38310
38512
  // @ts-ignore Vector3 is not compatible with {x: number, y: number, z: number}.
@@ -38433,80 +38635,22 @@
38433
38635
  }
38434
38636
  return array;
38435
38637
  }
38436
- exports.Texture2DDecoder = /*#__PURE__*/ function() {
38437
- var Texture2DDecoder = function Texture2DDecoder() {};
38438
- Texture2DDecoder.decode = function decode(engine, bufferReader) {
38439
- return new Promise(function(resolve, reject) {
38440
- var objectId = bufferReader.nextStr();
38441
- var mipmap = !!bufferReader.nextUint8();
38442
- var filterMode = bufferReader.nextUint8();
38443
- var anisoLevel = bufferReader.nextUint8();
38444
- var wrapModeU = bufferReader.nextUint8();
38445
- var wrapModeV = bufferReader.nextUint8();
38446
- var format = bufferReader.nextUint8();
38447
- var width = bufferReader.nextUint16();
38448
- var height = bufferReader.nextUint16();
38449
- var isPixelBuffer = bufferReader.nextUint8();
38450
- var mipCount = bufferReader.nextUint8();
38451
- var imagesData = bufferReader.nextImagesData(mipCount);
38452
- var texture2D = new Texture2D(engine, width, height, format, mipmap);
38453
- texture2D.filterMode = filterMode;
38454
- texture2D.anisoLevel = anisoLevel;
38455
- texture2D.wrapModeU = wrapModeU;
38456
- texture2D.wrapModeV = wrapModeV;
38457
- if (isPixelBuffer) {
38458
- var pixelBuffer = imagesData[0];
38459
- texture2D.setPixelBuffer(pixelBuffer);
38460
- if (mipmap) {
38461
- texture2D.generateMipmaps();
38462
- for(var i = 1; i < mipCount; i++){
38463
- var pixelBuffer1 = imagesData[i];
38464
- texture2D.setPixelBuffer(pixelBuffer1, i);
38465
- }
38466
- }
38467
- // @ts-ignore
38468
- engine.resourceManager._objectPool[objectId] = texture2D;
38469
- resolve(texture2D);
38470
- } else {
38471
- var blob = new window.Blob([
38472
- imagesData[0]
38473
- ]);
38474
- var img = new Image();
38475
- img.onload = function() {
38476
- texture2D.setImageSource(img);
38477
- var completedCount = 0;
38478
- var onComplete = function onComplete() {
38479
- completedCount++;
38480
- if (completedCount >= mipCount) {
38481
- resolve(texture2D);
38482
- }
38483
- };
38484
- onComplete();
38485
- if (mipmap) {
38486
- var _loop = function _loop(i) {
38487
- var blob = new window.Blob([
38488
- imagesData[i]
38489
- ]);
38490
- var img = new Image();
38491
- img.onload = function() {
38492
- texture2D.setImageSource(img, i);
38493
- onComplete();
38494
- };
38495
- img.src = URL.createObjectURL(blob);
38496
- };
38497
- texture2D.generateMipmaps();
38498
- for(var i = 1; i < mipCount; i++)_loop(i);
38499
- }
38500
- };
38501
- img.src = URL.createObjectURL(blob);
38638
+ var PrefabParser = /*#__PURE__*/ function() {
38639
+ var PrefabParser = function PrefabParser() {};
38640
+ PrefabParser.parseChildren = function parseChildren(entitiesConfig, entities, parentId) {
38641
+ var children = entitiesConfig.get(parentId).children;
38642
+ if (children && children.length > 0) {
38643
+ var parent = entities.get(parentId);
38644
+ for(var i = 0; i < children.length; i++){
38645
+ var childId = children[i];
38646
+ var entity = entities.get(childId);
38647
+ parent.addChild(entity);
38648
+ this.parseChildren(entitiesConfig, entities, childId);
38502
38649
  }
38503
- });
38650
+ }
38504
38651
  };
38505
- return Texture2DDecoder;
38652
+ return PrefabParser;
38506
38653
  }();
38507
- exports.Texture2DDecoder = __decorate([
38508
- decoder("Texture2D")
38509
- ], exports.Texture2DDecoder);
38510
38654
  function _is_native_reflect_construct() {
38511
38655
  if (typeof Reflect === "undefined" || !Reflect.construct) return false;
38512
38656
  if (Reflect.construct.sham) return false;
@@ -38681,215 +38825,146 @@
38681
38825
  (function() {
38682
38826
  ReflectionParser.customParseComponentHandles = new Map();
38683
38827
  })();
38684
- var PrefabParser = /*#__PURE__*/ function() {
38685
- var PrefabParser = function PrefabParser() {};
38686
- PrefabParser.parseChildren = function parseChildren(entitiesConfig, entities, parentId) {
38687
- var children = entitiesConfig.get(parentId).children;
38688
- if (children && children.length > 0) {
38689
- var parent = entities.get(parentId);
38690
- for(var i = 0; i < children.length; i++){
38691
- var childId = children[i];
38692
- var entity = entities.get(childId);
38693
- parent.addChild(entity);
38694
- this.parseChildren(entitiesConfig, entities, childId);
38695
- }
38696
- }
38697
- };
38698
- return PrefabParser;
38699
- }();
38700
- var ComponentMap = {
38701
- Transform: Transform,
38702
- Animator: Animator,
38703
- DirectLight: DirectLight,
38704
- Camera: exports.Camera,
38705
- MeshRenderer: MeshRenderer,
38706
- ParticleRenderer: ParticleRenderer,
38707
- PointLight: PointLight,
38708
- SpotLight: SpotLight,
38709
- Script: Script,
38710
- SpriteMask: SpriteMask,
38711
- SpriteRenderer: SpriteRenderer,
38712
- TextRenderer: TextRenderer
38713
- };
38714
- exports.InterpolableValueType = void 0;
38715
- (function(InterpolableValueType) {
38716
- InterpolableValueType[InterpolableValueType["Float"] = 0] = "Float";
38717
- InterpolableValueType[InterpolableValueType["FloatArray"] = 1] = "FloatArray";
38718
- InterpolableValueType[InterpolableValueType["Vector2"] = 2] = "Vector2";
38719
- InterpolableValueType[InterpolableValueType["Vector3"] = 3] = "Vector3";
38720
- InterpolableValueType[InterpolableValueType["Vector4"] = 4] = "Vector4";
38721
- InterpolableValueType[InterpolableValueType["Quaternion"] = 5] = "Quaternion";
38722
- InterpolableValueType[InterpolableValueType["Color"] = 6] = "Color";
38723
- InterpolableValueType[InterpolableValueType["Array"] = 7] = "Array";
38724
- InterpolableValueType[InterpolableValueType["Boolean"] = 8] = "Boolean";
38725
- InterpolableValueType[InterpolableValueType["Rect"] = 9] = "Rect";
38726
- InterpolableValueType[InterpolableValueType["ReferResource"] = 10] = "ReferResource";
38727
- })(exports.InterpolableValueType || (exports.InterpolableValueType = {}));
38728
- exports.AnimationClipDecoder = /*#__PURE__*/ function() {
38729
- var AnimationClipDecoder = function AnimationClipDecoder() {};
38730
- AnimationClipDecoder.decode = function decode(engine, bufferReader) {
38731
- return new Promise(function(resolve) {
38732
- var name = bufferReader.nextStr();
38733
- var clip = new AnimationClip(name);
38734
- var eventsLen = bufferReader.nextUint16();
38735
- for(var i = 0; i < eventsLen; ++i){
38736
- var event = new AnimationEvent();
38737
- event.time = bufferReader.nextFloat32();
38738
- event.functionName = bufferReader.nextStr();
38739
- event.parameter = JSON.parse(bufferReader.nextStr()).val;
38740
- clip.addEvent(event);
38741
- }
38742
- var curveBindingsLen = bufferReader.nextUint16();
38743
- for(var i1 = 0; i1 < curveBindingsLen; ++i1){
38744
- var relativePath = bufferReader.nextStr();
38745
- var componentStr = bufferReader.nextStr();
38746
- var componentType = ComponentMap[componentStr];
38747
- var property = bufferReader.nextStr();
38748
- var curve = void 0;
38749
- var interpolation = bufferReader.nextUint8();
38750
- var keysLen = bufferReader.nextUint16();
38751
- var curveType = bufferReader.nextStr();
38752
- switch(curveType){
38753
- case "AnimationFloatCurve":
38754
- {
38755
- curve = new exports.AnimationFloatCurve();
38756
- curve.interpolation = interpolation;
38757
- for(var j = 0; j < keysLen; ++j){
38758
- var keyframe = new Keyframe();
38759
- keyframe.time = bufferReader.nextFloat32();
38760
- keyframe.value = bufferReader.nextFloat32();
38761
- keyframe.inTangent = bufferReader.nextFloat32();
38762
- keyframe.outTangent = bufferReader.nextFloat32();
38763
- curve.addKey(keyframe);
38764
- }
38765
- break;
38766
- }
38767
- case "AnimationArrayCurve":
38768
- {
38769
- curve = new exports.AnimationArrayCurve();
38770
- curve.interpolation = interpolation;
38771
- for(var j1 = 0; j1 < keysLen; ++j1){
38772
- var keyframe1 = new Keyframe();
38773
- keyframe1.time = bufferReader.nextFloat32();
38774
- var len = bufferReader.nextUint16();
38775
- keyframe1.value = Array.from(bufferReader.nextFloat32Array(len));
38776
- keyframe1.inTangent = Array.from(bufferReader.nextFloat32Array(len));
38777
- keyframe1.outTangent = Array.from(bufferReader.nextFloat32Array(len));
38778
- curve.addKey(keyframe1);
38779
- }
38780
- break;
38781
- }
38782
- case "AnimationFloatArrayCurve":
38783
- {
38784
- curve = new exports.AnimationFloatArrayCurve();
38785
- curve.interpolation = interpolation;
38786
- for(var j2 = 0; j2 < keysLen; ++j2){
38787
- var keyframe2 = new Keyframe();
38788
- keyframe2.time = bufferReader.nextFloat32();
38789
- var len1 = bufferReader.nextUint16();
38790
- keyframe2.value = bufferReader.nextFloat32Array(len1);
38791
- keyframe2.inTangent = Array.from(bufferReader.nextFloat32Array(len1));
38792
- keyframe2.outTangent = Array.from(bufferReader.nextFloat32Array(len1));
38793
- curve.addKey(keyframe2);
38794
- }
38795
- break;
38796
- }
38797
- case "AnimationVector2Curve":
38798
- {
38799
- curve = new exports.AnimationVector2Curve();
38800
- curve.interpolation = interpolation;
38801
- for(var j3 = 0; j3 < keysLen; ++j3){
38802
- var keyframe3 = new Keyframe();
38803
- keyframe3.time = bufferReader.nextFloat32();
38804
- keyframe3.value = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
38805
- keyframe3.inTangent = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
38806
- keyframe3.outTangent = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
38807
- curve.addKey(keyframe3);
38808
- }
38809
- break;
38810
- }
38811
- case "AnimationVector3Curve":
38812
- {
38813
- curve = new exports.AnimationVector3Curve();
38814
- curve.interpolation = interpolation;
38815
- for(var j4 = 0; j4 < keysLen; ++j4){
38816
- var keyframe4 = new Keyframe();
38817
- keyframe4.time = bufferReader.nextFloat32();
38818
- keyframe4.value = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38819
- keyframe4.inTangent = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38820
- keyframe4.outTangent = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38821
- curve.addKey(keyframe4);
38822
- }
38823
- break;
38824
- }
38825
- case "AnimationVector4Curve":
38826
- {
38827
- curve = new exports.AnimationVector4Curve();
38828
- curve.interpolation = interpolation;
38829
- var keyframe5 = new Keyframe();
38830
- keyframe5.time = bufferReader.nextFloat32();
38831
- keyframe5.value = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38832
- keyframe5.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38833
- keyframe5.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38834
- curve.addKey(keyframe5);
38835
- break;
38836
- }
38837
- case "AnimationColorCurve":
38838
- {
38839
- curve = new exports.AnimationColorCurve();
38840
- curve.interpolation = interpolation;
38841
- for(var j5 = 0; j5 < keysLen; ++j5){
38842
- var keyframe6 = new Keyframe();
38843
- keyframe6.time = bufferReader.nextFloat32();
38844
- keyframe6.value = new Color$1(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38845
- keyframe6.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38846
- keyframe6.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38847
- curve.addKey(keyframe6);
38848
- }
38849
- break;
38850
- }
38851
- case "AnimationQuaternionCurve":
38852
- {
38853
- curve = new exports.AnimationQuaternionCurve();
38854
- curve.interpolation = interpolation;
38855
- for(var j6 = 0; j6 < keysLen; ++j6){
38856
- var keyframe7 = new Keyframe();
38857
- keyframe7.time = bufferReader.nextFloat32();
38858
- keyframe7.value = new Quaternion(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38859
- keyframe7.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38860
- keyframe7.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38861
- curve.addKey(keyframe7);
38862
- }
38863
- break;
38864
- }
38865
- case "AnimationRefCurve":
38866
- {
38867
- curve = new exports.AnimationRefCurve();
38868
- curve.interpolation = interpolation;
38869
- for(var j7 = 0; j7 < keysLen; ++j7){
38870
- var keyframe8 = new Keyframe();
38871
- keyframe8.time = bufferReader.nextFloat32();
38872
- keyframe8.value = JSON.parse(bufferReader.nextStr());
38873
- curve.addKey(keyframe8);
38874
- }
38875
- break;
38876
- }
38828
+ exports.Texture2DDecoder = /*#__PURE__*/ function() {
38829
+ var Texture2DDecoder = function Texture2DDecoder() {};
38830
+ Texture2DDecoder.decode = function decode(engine, bufferReader, restoredTexture) {
38831
+ return new Promise(function(resolve, reject) {
38832
+ var objectId = bufferReader.nextStr();
38833
+ var mipmap = !!bufferReader.nextUint8();
38834
+ var filterMode = bufferReader.nextUint8();
38835
+ var anisoLevel = bufferReader.nextUint8();
38836
+ var wrapModeU = bufferReader.nextUint8();
38837
+ var wrapModeV = bufferReader.nextUint8();
38838
+ var format = bufferReader.nextUint8();
38839
+ var width = bufferReader.nextUint16();
38840
+ var height = bufferReader.nextUint16();
38841
+ var isPixelBuffer = bufferReader.nextUint8();
38842
+ var mipCount = bufferReader.nextUint8();
38843
+ var imagesData = bufferReader.nextImagesData(mipCount);
38844
+ var texture2D = restoredTexture || new Texture2D(engine, width, height, format, mipmap);
38845
+ texture2D.filterMode = filterMode;
38846
+ texture2D.anisoLevel = anisoLevel;
38847
+ texture2D.wrapModeU = wrapModeU;
38848
+ texture2D.wrapModeV = wrapModeV;
38849
+ if (isPixelBuffer) {
38850
+ var pixelBuffer = imagesData[0];
38851
+ texture2D.setPixelBuffer(pixelBuffer);
38852
+ if (mipmap) {
38853
+ texture2D.generateMipmaps();
38854
+ for(var i = 1; i < mipCount; i++){
38855
+ var pixelBuffer1 = imagesData[i];
38856
+ texture2D.setPixelBuffer(pixelBuffer1, i);
38857
+ }
38877
38858
  }
38878
- clip.addCurveBinding(relativePath, componentType, property, curve);
38859
+ // @ts-ignore
38860
+ engine.resourceManager._objectPool[objectId] = texture2D;
38861
+ resolve(texture2D);
38862
+ } else {
38863
+ var blob = new window.Blob([
38864
+ imagesData[0]
38865
+ ]);
38866
+ var img = new Image();
38867
+ img.onload = function() {
38868
+ texture2D.setImageSource(img);
38869
+ var completedCount = 0;
38870
+ var onComplete = function onComplete() {
38871
+ completedCount++;
38872
+ if (completedCount >= mipCount) {
38873
+ resolve(texture2D);
38874
+ }
38875
+ };
38876
+ onComplete();
38877
+ if (mipmap) {
38878
+ var _loop = function _loop(i) {
38879
+ var blob = new window.Blob([
38880
+ imagesData[i]
38881
+ ]);
38882
+ var img = new Image();
38883
+ img.onload = function() {
38884
+ texture2D.setImageSource(img, i);
38885
+ onComplete();
38886
+ };
38887
+ img.src = URL.createObjectURL(blob);
38888
+ };
38889
+ texture2D.generateMipmaps();
38890
+ for(var i = 1; i < mipCount; i++)_loop(i);
38891
+ }
38892
+ };
38893
+ img.src = URL.createObjectURL(blob);
38879
38894
  }
38880
- resolve(clip);
38881
38895
  });
38882
38896
  };
38883
- return AnimationClipDecoder;
38897
+ return Texture2DDecoder;
38884
38898
  }();
38885
- exports.AnimationClipDecoder = __decorate([
38886
- decoder("AnimationClip")
38887
- ], exports.AnimationClipDecoder);
38888
- exports.SpecularMode = void 0;
38889
- (function(SpecularMode) {
38890
- SpecularMode["Sky"] = "Sky";
38891
- SpecularMode["Custom"] = "Custom";
38892
- })(exports.SpecularMode || (exports.SpecularMode = {}));
38899
+ exports.Texture2DDecoder = __decorate([
38900
+ decoder("Texture2D")
38901
+ ], exports.Texture2DDecoder);
38902
+ exports.EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
38903
+ var EditorTextureLoader = function EditorTextureLoader() {
38904
+ return Loader1.apply(this, arguments);
38905
+ };
38906
+ _inherits(EditorTextureLoader, Loader1);
38907
+ var _proto = EditorTextureLoader.prototype;
38908
+ _proto.load = function load(item, resourceManager) {
38909
+ var _this = this;
38910
+ return new AssetPromise(function(resolve, reject) {
38911
+ var request = _this.request;
38912
+ request(item.url, _extends({}, item, {
38913
+ type: "arraybuffer"
38914
+ })).then(function(data) {
38915
+ decode(data, resourceManager.engine).then(function(texture) {
38916
+ resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
38917
+ var _class = function _class() {
38918
+ return ContentRestorer.apply(this, arguments);
38919
+ };
38920
+ _inherits(_class, ContentRestorer);
38921
+ var _proto = _class.prototype;
38922
+ _proto.restoreContent = function restoreContent() {
38923
+ return request(item.url, _extends({}, item, {
38924
+ type: "arraybuffer"
38925
+ })).then(function(data) {
38926
+ return decode(data, resourceManager.engine, texture);
38927
+ });
38928
+ };
38929
+ return _class;
38930
+ }(ContentRestorer))(texture));
38931
+ resolve(texture);
38932
+ });
38933
+ }).catch(reject);
38934
+ });
38935
+ };
38936
+ return EditorTextureLoader;
38937
+ }(Loader);
38938
+ exports.EditorTextureLoader = __decorate([
38939
+ resourceLoader("EditorTexture2D", [
38940
+ "prefab"
38941
+ ], true)
38942
+ ], exports.EditorTextureLoader);
38943
+ exports.MeshLoader = /*#__PURE__*/ function(Loader1) {
38944
+ var MeshLoader = function MeshLoader() {
38945
+ return Loader1.apply(this, arguments);
38946
+ };
38947
+ _inherits(MeshLoader, Loader1);
38948
+ var _proto = MeshLoader.prototype;
38949
+ _proto.load = function load(item, resourceManager) {
38950
+ var _this = this;
38951
+ return new AssetPromise(function(resolve, reject) {
38952
+ _this.request(item.url, {
38953
+ type: "arraybuffer"
38954
+ }).then(function(data) {
38955
+ decode(data, resourceManager.engine).then(function(mesh) {
38956
+ resolve(mesh);
38957
+ });
38958
+ }).catch(reject);
38959
+ });
38960
+ };
38961
+ return MeshLoader;
38962
+ }(Loader);
38963
+ exports.MeshLoader = __decorate([
38964
+ resourceLoader("Mesh", [
38965
+ "prefab"
38966
+ ], true)
38967
+ ], exports.MeshLoader);
38893
38968
  function _array_like_to_array(arr, len) {
38894
38969
  if (len == null || len > arr.length) len = arr.length;
38895
38970
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -39036,65 +39111,24 @@
39036
39111
  };
39037
39112
  return SceneParser;
39038
39113
  }();
39039
- exports.MeshLoader = /*#__PURE__*/ function(Loader1) {
39040
- var MeshLoader = function MeshLoader() {
39041
- return Loader1.apply(this, arguments);
39042
- };
39043
- _inherits(MeshLoader, Loader1);
39044
- var _proto = MeshLoader.prototype;
39045
- _proto.load = function load(item, resourceManager) {
39046
- var _this = this;
39047
- return new AssetPromise(function(resolve, reject) {
39048
- _this.request(item.url, {
39049
- type: "arraybuffer"
39050
- }).then(function(data) {
39051
- decode(data, resourceManager.engine).then(function(mesh) {
39052
- resolve(mesh);
39053
- });
39054
- }).catch(reject);
39055
- });
39056
- };
39057
- return MeshLoader;
39058
- }(Loader);
39059
- exports.MeshLoader = __decorate([
39060
- resourceLoader("Mesh", [
39061
- "prefab"
39062
- ], true)
39063
- ], exports.MeshLoader);
39064
- exports.EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
39065
- var EditorTextureLoader = function EditorTextureLoader() {
39066
- return Loader1.apply(this, arguments);
39067
- };
39068
- _inherits(EditorTextureLoader, Loader1);
39069
- var _proto = EditorTextureLoader.prototype;
39070
- _proto.load = function load(item, resourceManager) {
39071
- var _this = this;
39072
- return new AssetPromise(function(resolve, reject) {
39073
- _this.request(item.url, {
39074
- type: "arraybuffer"
39075
- }).then(function(data) {
39076
- decode(data, resourceManager.engine).then(function(texture) {
39077
- resolve(texture);
39078
- });
39079
- }).catch(reject);
39080
- });
39081
- };
39082
- return EditorTextureLoader;
39083
- }(Loader);
39084
- exports.EditorTextureLoader = __decorate([
39085
- resourceLoader("EditorTexture2D", [
39086
- "prefab"
39087
- ], true)
39088
- ], exports.EditorTextureLoader);
39114
+ exports.SpecularMode = void 0;
39115
+ (function(SpecularMode) {
39116
+ SpecularMode["Sky"] = "Sky";
39117
+ SpecularMode["Custom"] = "Custom";
39118
+ })(exports.SpecularMode || (exports.SpecularMode = {}));
39089
39119
  /**
39090
39120
  * Decode engine binary resource.
39091
39121
  * @param arrayBuffer - array buffer of decode binary file
39092
39122
  * @param engine - engine
39093
39123
  * @returns
39094
39124
  */ function decode(arrayBuffer, engine) {
39125
+ for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
39126
+ args[_key - 2] = arguments[_key];
39127
+ }
39128
+ var _decoderMap_header_type;
39095
39129
  var header = FileHeader.decode(arrayBuffer);
39096
39130
  var bufferReader = new BufferReader(new Uint8Array(arrayBuffer), header.headerLength, header.dataLength);
39097
- return decoderMap[header.type].decode(engine, bufferReader).then(function(object) {
39131
+ return (_decoderMap_header_type = decoderMap[header.type]).decode.apply(_decoderMap_header_type, [].concat(engine, bufferReader, args)).then(function(object) {
39098
39132
  object.name = header.name;
39099
39133
  return object;
39100
39134
  });
@@ -39258,39 +39292,42 @@
39258
39292
  ], false)
39259
39293
  ], BufferLoader);
39260
39294
  var EnvLoader = /*#__PURE__*/ function(Loader1) {
39261
- var EnvLoader = function EnvLoader() {
39295
+ var EnvLoader1 = function EnvLoader1() {
39262
39296
  return Loader1.apply(this, arguments);
39263
39297
  };
39264
- _inherits(EnvLoader, Loader1);
39265
- var _proto = EnvLoader.prototype;
39298
+ _inherits(EnvLoader1, Loader1);
39299
+ var _proto = EnvLoader1.prototype;
39266
39300
  _proto.load = function load(item, resourceManager) {
39267
39301
  var _this = this;
39268
39302
  return new AssetPromise(function(resolve, reject) {
39269
- _this.request(item.url, {
39303
+ var engine = resourceManager.engine;
39304
+ var request = _this.request;
39305
+ request(item.url, _extends({}, item, {
39270
39306
  type: "arraybuffer"
39271
- }).then(function(arraybuffer) {
39272
- var _this;
39273
- var shArray = new Float32Array(arraybuffer, 0, 27);
39274
- var shByteLength = 27 * 4;
39275
- var size = (_this = new Uint16Array(arraybuffer, shByteLength, 1)) == null ? void 0 : _this[0];
39276
- var engine = resourceManager.engine;
39277
- var texture = new TextureCube(engine, size);
39278
- texture.filterMode = exports.TextureFilterMode.Trilinear;
39279
- var mipmapCount = texture.mipmapCount;
39280
- var offset = shByteLength + 2;
39281
- for(var mipLevel = 0; mipLevel < mipmapCount; mipLevel++){
39282
- var mipSize = size >> mipLevel;
39283
- for(var face = 0; face < 6; face++){
39284
- var dataSize = mipSize * mipSize * 4;
39285
- var data = new Uint8Array(arraybuffer, offset, dataSize);
39286
- offset += dataSize;
39287
- texture.setPixelBuffer(exports.TextureCubeFace.PositiveX + face, data, mipLevel);
39288
- }
39289
- }
39307
+ })).then(function(arraybuffer) {
39308
+ var texture = EnvLoader._setTextureByBuffer(engine, arraybuffer);
39309
+ engine.resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
39310
+ var _class = function _class() {
39311
+ return ContentRestorer.apply(this, arguments);
39312
+ };
39313
+ _inherits(_class, ContentRestorer);
39314
+ var _proto = _class.prototype;
39315
+ _proto.restoreContent = function restoreContent() {
39316
+ return new AssetPromise(function(resolve, reject) {
39317
+ request(item.url, _extends({}, item, {
39318
+ type: "arraybuffer"
39319
+ })).then(function(buffer) {
39320
+ EnvLoader._setTextureByBuffer(engine, buffer, texture);
39321
+ resolve(texture);
39322
+ }).catch(reject);
39323
+ });
39324
+ };
39325
+ return _class;
39326
+ }(ContentRestorer))(texture));
39290
39327
  var ambientLight = new AmbientLight(engine);
39291
39328
  var sh = new SphericalHarmonics3();
39292
39329
  ambientLight.diffuseMode = exports.DiffuseMode.SphericalHarmonics;
39293
- sh.copyFromArray(shArray);
39330
+ sh.copyFromArray(new Float32Array(arraybuffer, 0, 27));
39294
39331
  ambientLight.diffuseSphericalHarmonics = sh;
39295
39332
  ambientLight.specularTexture = texture;
39296
39333
  ambientLight.specularTextureDecodeRGBM = true;
@@ -39300,7 +39337,28 @@
39300
39337
  });
39301
39338
  });
39302
39339
  };
39303
- return EnvLoader;
39340
+ /**
39341
+ * @internal
39342
+ */ EnvLoader1._setTextureByBuffer = function _setTextureByBuffer(engine, buffer, texture) {
39343
+ var _this;
39344
+ var shByteLength = 27 * 4;
39345
+ var size = (_this = new Uint16Array(buffer, shByteLength, 1)) == null ? void 0 : _this[0];
39346
+ texture || (texture = new TextureCube(engine, size));
39347
+ texture.filterMode = exports.TextureFilterMode.Trilinear;
39348
+ var mipmapCount = texture.mipmapCount;
39349
+ var offset = shByteLength + 2;
39350
+ for(var mipLevel = 0; mipLevel < mipmapCount; mipLevel++){
39351
+ var mipSize = size >> mipLevel;
39352
+ for(var face = 0; face < 6; face++){
39353
+ var dataSize = mipSize * mipSize * 4;
39354
+ var data = new Uint8Array(buffer, offset, dataSize);
39355
+ offset += dataSize;
39356
+ texture.setPixelBuffer(exports.TextureCubeFace.PositiveX + face, data, mipLevel);
39357
+ }
39358
+ }
39359
+ return texture;
39360
+ };
39361
+ return EnvLoader1;
39304
39362
  }(Loader);
39305
39363
  EnvLoader = __decorate([
39306
39364
  resourceLoader(exports.AssetType.Env, [
@@ -40010,28 +40068,29 @@
40010
40068
  BIN: 0x004e4942
40011
40069
  };
40012
40070
  var dataView = new DataView(originBuffer);
40013
- // read header
40071
+ // Read header
40014
40072
  var header = {
40015
40073
  magic: dataView.getUint32(0, true),
40016
40074
  version: dataView.getUint32(UINT32_LENGTH, true),
40017
40075
  length: dataView.getUint32(2 * UINT32_LENGTH, true)
40018
40076
  };
40077
+ // Return the original buffer if it is not a glb
40019
40078
  if (header.magic !== GLB_HEADER_MAGIC) {
40020
40079
  return {
40021
40080
  originBuffer: originBuffer
40022
40081
  };
40023
40082
  }
40024
- // read main data
40083
+ // Read main data
40025
40084
  var chunkLength = dataView.getUint32(GLB_HEADER_LENGTH, true);
40026
40085
  var chunkType = dataView.getUint32(GLB_HEADER_LENGTH + UINT32_LENGTH, true);
40027
- // read glTF json
40086
+ // Read glTF json
40028
40087
  if (chunkType !== GLB_CHUNK_TYPES.JSON) {
40029
40088
  console.error("Invalid glb chunk type. Expected 0x4E4F534A, found 0x" + chunkType.toString(16));
40030
40089
  return null;
40031
40090
  }
40032
40091
  var glTFData = new Uint8Array(originBuffer, GLB_HEADER_LENGTH + 2 * UINT32_LENGTH, chunkLength);
40033
40092
  var glTF = JSON.parse(Utils.decodeText(glTFData));
40034
- // read all buffers
40093
+ // Read all buffers
40035
40094
  var buffers = [];
40036
40095
  var byteOffset = GLB_HEADER_LENGTH + 2 * UINT32_LENGTH + chunkLength;
40037
40096
  var restoreGLBBufferSlice = context.contentRestorer.glbBufferSlices;
@@ -40912,13 +40971,39 @@
40912
40971
  /**
40913
40972
  * @internal
40914
40973
  */ _proto.load = function load(item, resourceManager) {
40915
- return this.request(item.url, {
40916
- type: "arraybuffer"
40917
- }).then(function(buffer) {
40918
- return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
40919
- var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
40920
- return exports.KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params);
40921
- });
40974
+ var _this = this;
40975
+ return new AssetPromise(function(resolve, reject) {
40976
+ var request = _this.request;
40977
+ request(item.url, _extends({}, item, {
40978
+ type: "arraybuffer"
40979
+ })).then(function(buffer) {
40980
+ return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
40981
+ var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
40982
+ return exports.KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params);
40983
+ }).then(function(texture) {
40984
+ resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
40985
+ var _class = function _class() {
40986
+ return ContentRestorer.apply(this, arguments);
40987
+ };
40988
+ _inherits(_class, ContentRestorer);
40989
+ var _proto = _class.prototype;
40990
+ _proto.restoreContent = function restoreContent() {
40991
+ return new AssetPromise(function(resolve, reject) {
40992
+ request(item.url, _extends({}, item, {
40993
+ type: "arraybuffer"
40994
+ })).then(function(buffer) {
40995
+ return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
40996
+ var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
40997
+ return exports.KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params, texture);
40998
+ });
40999
+ }).then(resolve).catch(reject);
41000
+ });
41001
+ };
41002
+ return _class;
41003
+ }(ContentRestorer))(texture));
41004
+ resolve(texture);
41005
+ });
41006
+ }).catch(reject);
40922
41007
  });
40923
41008
  };
40924
41009
  /**
@@ -40957,7 +41042,7 @@
40957
41042
  };
40958
41043
  });
40959
41044
  };
40960
- /** @internal */ KTX2Loader1._createTextureByBuffer = function _createTextureByBuffer(engine, transcodeResult, targetFormat, params) {
41045
+ /** @internal */ KTX2Loader1._createTextureByBuffer = function _createTextureByBuffer(engine, transcodeResult, targetFormat, params, restoredTexture) {
40961
41046
  var width = transcodeResult.width, height = transcodeResult.height, faces = transcodeResult.faces;
40962
41047
  var faceCount = faces.length;
40963
41048
  var mipmaps = faces[0];
@@ -40965,13 +41050,13 @@
40965
41050
  var engineFormat = this._getEngineTextureFormat(targetFormat, transcodeResult);
40966
41051
  var texture;
40967
41052
  if (faceCount !== 6) {
40968
- texture = new Texture2D(engine, width, height, engineFormat, mipmap);
41053
+ texture = restoredTexture || new Texture2D(engine, width, height, engineFormat, mipmap);
40969
41054
  for(var mipLevel = 0; mipLevel < mipmaps.length; mipLevel++){
40970
41055
  var data = mipmaps[mipLevel].data;
40971
41056
  texture.setPixelBuffer(data, mipLevel);
40972
41057
  }
40973
41058
  } else {
40974
- texture = new TextureCube(engine, height, engineFormat, mipmap);
41059
+ texture = restoredTexture || new TextureCube(engine, height, engineFormat, mipmap);
40975
41060
  for(var i = 0; i < faces.length; i++){
40976
41061
  var faceData = faces[i];
40977
41062
  for(var mipLevel1 = 0; mipLevel1 < mipmaps.length; mipLevel1++){
@@ -41446,8 +41531,13 @@
41446
41531
  type: "arraybuffer"
41447
41532
  };
41448
41533
  return request(url, requestConfig).then(function(buffer) {
41449
- restoreBufferRequests.push(new BufferRequestInfo(url, requestConfig));
41450
- return GLTFUtils.parseGLB(context, buffer);
41534
+ var _parseResult;
41535
+ var parseResult = GLTFUtils.parseGLB(context, buffer);
41536
+ // If the buffer is a GLB file, we need to restore the buffer data
41537
+ if ((_parseResult = parseResult) == null ? void 0 : _parseResult.glTF) {
41538
+ restoreBufferRequests.push(new BufferRequestInfo(url, requestConfig));
41539
+ }
41540
+ return parseResult;
41451
41541
  }).then(function(result) {
41452
41542
  var _result;
41453
41543
  if ((_result = result) == null ? void 0 : _result.glTF) {
@@ -42466,23 +42556,48 @@
42466
42556
  var _this = this;
42467
42557
  return new AssetPromise(function(resolve, reject) {
42468
42558
  var engine = resourceManager.engine;
42469
- _this.request(item.url, {
42559
+ var request = _this.request;
42560
+ _this.request(item.url, _extends({}, item, {
42470
42561
  type: "arraybuffer"
42471
- }).then(function(buffer) {
42472
- var uint8Array = new Uint8Array(buffer);
42473
- var _HDRLoader__parseHeader = HDRLoader._parseHeader(uint8Array), width = _HDRLoader__parseHeader.width, height = _HDRLoader__parseHeader.height, dataPosition = _HDRLoader__parseHeader.dataPosition;
42474
- var pixels = HDRLoader._readPixels(uint8Array.subarray(dataPosition), width, height);
42475
- var cubeSize = height >> 1;
42476
- var cubeMapData = HDRLoader._convertToCubemap(pixels, width, height, cubeSize);
42477
- var texture = new TextureCube(engine, cubeSize);
42478
- for(var faceIndex = 0; faceIndex < 6; faceIndex++){
42479
- texture.setPixelBuffer(exports.TextureCubeFace.PositiveX + faceIndex, cubeMapData[faceIndex], 0);
42480
- }
42481
- texture.generateMipmaps();
42562
+ })).then(function(buffer) {
42563
+ var texture = HDRLoader._setTextureByBuffer(engine, buffer);
42564
+ engine.resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
42565
+ var _class = function _class() {
42566
+ return ContentRestorer.apply(this, arguments);
42567
+ };
42568
+ _inherits(_class, ContentRestorer);
42569
+ var _proto = _class.prototype;
42570
+ _proto.restoreContent = function restoreContent() {
42571
+ return new AssetPromise(function(resolve, reject) {
42572
+ request(item.url, _extends({}, item, {
42573
+ type: "arraybuffer"
42574
+ })).then(function(buffer) {
42575
+ HDRLoader._setTextureByBuffer(engine, buffer, texture);
42576
+ resolve(texture);
42577
+ }).catch(reject);
42578
+ });
42579
+ };
42580
+ return _class;
42581
+ }(ContentRestorer))(texture));
42482
42582
  resolve(texture);
42483
42583
  }).catch(reject);
42484
42584
  });
42485
42585
  };
42586
+ /**
42587
+ * @internal
42588
+ */ HDRLoader1._setTextureByBuffer = function _setTextureByBuffer(engine, buffer, texture) {
42589
+ var bufferArray = new Uint8Array(buffer);
42590
+ var _HDRLoader__parseHeader = HDRLoader._parseHeader(bufferArray), width = _HDRLoader__parseHeader.width, height = _HDRLoader__parseHeader.height, dataPosition = _HDRLoader__parseHeader.dataPosition;
42591
+ var cubeSize = height >> 1;
42592
+ texture || (texture = new TextureCube(engine, cubeSize));
42593
+ var pixels = HDRLoader._readPixels(bufferArray.subarray(dataPosition), width, height);
42594
+ var cubeMapData = HDRLoader._convertToCubemap(pixels, width, height, cubeSize);
42595
+ for(var faceIndex = 0; faceIndex < 6; faceIndex++){
42596
+ texture.setPixelBuffer(exports.TextureCubeFace.PositiveX + faceIndex, cubeMapData[faceIndex], 0);
42597
+ }
42598
+ texture.generateMipmaps();
42599
+ return texture;
42600
+ };
42486
42601
  HDRLoader1._convertToCubemap = function _convertToCubemap(pixels, inputWidth, inputHeight, size) {
42487
42602
  if (!pixels) {
42488
42603
  throw "ConvertPanoramaToCubemap: input cannot be null";
@@ -43015,7 +43130,8 @@
43015
43130
  _proto.load = function load(item, resourceManager) {
43016
43131
  var _this = this;
43017
43132
  return new AssetPromise(function(resolve, reject) {
43018
- _this.request(item.url, _extends({}, item, {
43133
+ var request = _this.request;
43134
+ request(item.url, _extends({}, item, {
43019
43135
  type: "arraybuffer"
43020
43136
  })).then(function(bin) {
43021
43137
  var parsedData = parseSingleKTX(bin);
@@ -43026,6 +43142,32 @@
43026
43142
  var _mipmaps_miplevel = mipmaps[miplevel], width1 = _mipmaps_miplevel.width, height1 = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
43027
43143
  texture.setPixelBuffer(data, miplevel, 0, 0, width1, height1);
43028
43144
  }
43145
+ resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
43146
+ var _class = function _class() {
43147
+ return ContentRestorer.apply(this, arguments);
43148
+ };
43149
+ _inherits(_class, ContentRestorer);
43150
+ var _proto = _class.prototype;
43151
+ _proto.restoreContent = function restoreContent() {
43152
+ var _this = this;
43153
+ return new AssetPromise(function(resolve, reject) {
43154
+ request(item.url, _extends({}, item, {
43155
+ type: "arraybuffer"
43156
+ })).then(function(bin) {
43157
+ var mipmaps = parseSingleKTX(bin).mipmaps;
43158
+ var texture = _this.resource;
43159
+ for(var miplevel = 0; miplevel < mipmaps.length; miplevel++){
43160
+ var _mipmaps_miplevel = mipmaps[miplevel], width = _mipmaps_miplevel.width, height = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
43161
+ texture.setPixelBuffer(data, miplevel, 0, 0, width, height);
43162
+ }
43163
+ resolve(texture);
43164
+ }).catch(function(e) {
43165
+ reject(e);
43166
+ });
43167
+ });
43168
+ };
43169
+ return _class;
43170
+ }(ContentRestorer))(texture));
43029
43171
  resolve(texture);
43030
43172
  }).catch(function(e) {
43031
43173
  reject(e);
@@ -43129,11 +43271,32 @@
43129
43271
  _proto.load = function load(item, resourceManager) {
43130
43272
  var _this = this;
43131
43273
  return new AssetPromise(function(resolve, reject) {
43132
- _this.request(item.url, _extends({}, item, {
43274
+ var request = _this.request;
43275
+ var engine = resourceManager.engine;
43276
+ request(item.url, _extends({}, item, {
43133
43277
  type: "arraybuffer"
43134
43278
  })).then(function(data) {
43135
- return decode(data, resourceManager.engine);
43279
+ return decode(data, engine);
43136
43280
  }).then(function(mesh) {
43281
+ resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
43282
+ var _class = function _class() {
43283
+ return ContentRestorer.apply(this, arguments);
43284
+ };
43285
+ _inherits(_class, ContentRestorer);
43286
+ var _proto = _class.prototype;
43287
+ _proto.restoreContent = function restoreContent() {
43288
+ return new AssetPromise(function(resolve, reject) {
43289
+ request(item.url, _extends({}, item, {
43290
+ type: "arraybuffer"
43291
+ })).then(function(data) {
43292
+ return decode(data, engine, mesh);
43293
+ }).then(function(mesh) {
43294
+ resolve(mesh);
43295
+ }).catch(reject);
43296
+ });
43297
+ };
43298
+ return _class;
43299
+ }(ContentRestorer))(mesh));
43137
43300
  resolve(mesh);
43138
43301
  }).catch(reject);
43139
43302
  });
@@ -44106,7 +44269,7 @@
44106
44269
  ], GALACEAN_animation_event);
44107
44270
 
44108
44271
  //@ts-ignore
44109
- var version = "1.1.3";
44272
+ var version = "1.1.6";
44110
44273
  console.log("Galacean engine version: " + version);
44111
44274
  for(var key in CoreObjects){
44112
44275
  Loader.registerClass(key, CoreObjects[key]);