@galacean/engine-loader 1.4.15 → 1.4.16

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
@@ -289,11 +289,216 @@ var FileHeader = /*#__PURE__*/ function() {
289
289
  return FileHeader;
290
290
  }();
291
291
 
292
+ var InterpolableValueType = /*#__PURE__*/ function(InterpolableValueType) {
293
+ InterpolableValueType[InterpolableValueType["Float"] = 0] = "Float";
294
+ InterpolableValueType[InterpolableValueType["FloatArray"] = 1] = "FloatArray";
295
+ InterpolableValueType[InterpolableValueType["Vector2"] = 2] = "Vector2";
296
+ InterpolableValueType[InterpolableValueType["Vector3"] = 3] = "Vector3";
297
+ InterpolableValueType[InterpolableValueType["Vector4"] = 4] = "Vector4";
298
+ InterpolableValueType[InterpolableValueType["Quaternion"] = 5] = "Quaternion";
299
+ InterpolableValueType[InterpolableValueType["Color"] = 6] = "Color";
300
+ InterpolableValueType[InterpolableValueType["Array"] = 7] = "Array";
301
+ InterpolableValueType[InterpolableValueType["Boolean"] = 8] = "Boolean";
302
+ InterpolableValueType[InterpolableValueType["Rect"] = 9] = "Rect";
303
+ InterpolableValueType[InterpolableValueType["ReferResource"] = 10] = "ReferResource";
304
+ return InterpolableValueType;
305
+ }({});
306
+ exports.AnimationClipDecoder = /*#__PURE__*/ function() {
307
+ function AnimationClipDecoder() {}
308
+ AnimationClipDecoder.decode = function decode(engine, bufferReader) {
309
+ return new engineCore.AssetPromise(function(resolve) {
310
+ var name = bufferReader.nextStr();
311
+ var clip = new engineCore.AnimationClip(name);
312
+ var eventsLen = bufferReader.nextUint16();
313
+ for(var i = 0; i < eventsLen; ++i){
314
+ var event = new engineCore.AnimationEvent();
315
+ event.time = bufferReader.nextFloat32();
316
+ event.functionName = bufferReader.nextStr();
317
+ event.parameter = JSON.parse(bufferReader.nextStr()).val;
318
+ clip.addEvent(event);
319
+ }
320
+ var curveBindingsLen = bufferReader.nextUint16();
321
+ for(var i1 = 0; i1 < curveBindingsLen; ++i1){
322
+ var relativePath = bufferReader.nextStr();
323
+ var componentStr = bufferReader.nextStr();
324
+ var componentType = engineCore.Loader.getClass(componentStr);
325
+ var property = bufferReader.nextStr();
326
+ var getProperty = bufferReader.nextStr();
327
+ var curve = void 0;
328
+ var interpolation = bufferReader.nextUint8();
329
+ var keysLen = bufferReader.nextUint16();
330
+ var curveType = bufferReader.nextStr();
331
+ switch(curveType){
332
+ case "AnimationFloatCurve":
333
+ {
334
+ curve = new engineCore.AnimationFloatCurve();
335
+ curve.interpolation = interpolation;
336
+ for(var j = 0; j < keysLen; ++j){
337
+ var keyframe = new engineCore.Keyframe();
338
+ keyframe.time = bufferReader.nextFloat32();
339
+ keyframe.value = bufferReader.nextFloat32();
340
+ keyframe.inTangent = bufferReader.nextFloat32();
341
+ keyframe.outTangent = bufferReader.nextFloat32();
342
+ curve.addKey(keyframe);
343
+ }
344
+ break;
345
+ }
346
+ case "AnimationArrayCurve":
347
+ {
348
+ curve = new engineCore.AnimationArrayCurve();
349
+ curve.interpolation = interpolation;
350
+ for(var j1 = 0; j1 < keysLen; ++j1){
351
+ var keyframe1 = new engineCore.Keyframe();
352
+ keyframe1.time = bufferReader.nextFloat32();
353
+ var len = bufferReader.nextUint16();
354
+ keyframe1.value = Array.from(bufferReader.nextFloat32Array(len));
355
+ keyframe1.inTangent = Array.from(bufferReader.nextFloat32Array(len));
356
+ keyframe1.outTangent = Array.from(bufferReader.nextFloat32Array(len));
357
+ curve.addKey(keyframe1);
358
+ }
359
+ break;
360
+ }
361
+ case "AnimationFloatArrayCurve":
362
+ {
363
+ curve = new engineCore.AnimationFloatArrayCurve();
364
+ curve.interpolation = interpolation;
365
+ for(var j2 = 0; j2 < keysLen; ++j2){
366
+ var keyframe2 = new engineCore.Keyframe();
367
+ keyframe2.time = bufferReader.nextFloat32();
368
+ var len1 = bufferReader.nextUint16();
369
+ keyframe2.value = bufferReader.nextFloat32Array(len1);
370
+ keyframe2.inTangent = Array.from(bufferReader.nextFloat32Array(len1));
371
+ keyframe2.outTangent = Array.from(bufferReader.nextFloat32Array(len1));
372
+ curve.addKey(keyframe2);
373
+ }
374
+ break;
375
+ }
376
+ case "AnimationVector2Curve":
377
+ {
378
+ curve = new engineCore.AnimationVector2Curve();
379
+ curve.interpolation = interpolation;
380
+ for(var j3 = 0; j3 < keysLen; ++j3){
381
+ var keyframe3 = new engineCore.Keyframe();
382
+ keyframe3.time = bufferReader.nextFloat32();
383
+ keyframe3.value = new engineMath.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
384
+ keyframe3.inTangent = new engineMath.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
385
+ keyframe3.outTangent = new engineMath.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
386
+ curve.addKey(keyframe3);
387
+ }
388
+ break;
389
+ }
390
+ case "AnimationVector3Curve":
391
+ {
392
+ curve = new engineCore.AnimationVector3Curve();
393
+ curve.interpolation = interpolation;
394
+ for(var j4 = 0; j4 < keysLen; ++j4){
395
+ var keyframe4 = new engineCore.Keyframe();
396
+ keyframe4.time = bufferReader.nextFloat32();
397
+ keyframe4.value = new engineMath.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
398
+ keyframe4.inTangent = new engineMath.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
399
+ keyframe4.outTangent = new engineMath.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
400
+ curve.addKey(keyframe4);
401
+ }
402
+ break;
403
+ }
404
+ case "AnimationVector4Curve":
405
+ {
406
+ curve = new engineCore.AnimationVector4Curve();
407
+ curve.interpolation = interpolation;
408
+ var keyframe5 = new engineCore.Keyframe();
409
+ keyframe5.time = bufferReader.nextFloat32();
410
+ keyframe5.value = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
411
+ keyframe5.inTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
412
+ keyframe5.outTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
413
+ curve.addKey(keyframe5);
414
+ break;
415
+ }
416
+ case "AnimationColorCurve":
417
+ {
418
+ curve = new engineCore.AnimationColorCurve();
419
+ curve.interpolation = interpolation;
420
+ for(var j5 = 0; j5 < keysLen; ++j5){
421
+ var keyframe6 = new engineCore.Keyframe();
422
+ keyframe6.time = bufferReader.nextFloat32();
423
+ keyframe6.value = new engineMath.Color(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
424
+ keyframe6.inTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
425
+ keyframe6.outTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
426
+ curve.addKey(keyframe6);
427
+ }
428
+ break;
429
+ }
430
+ case "AnimationQuaternionCurve":
431
+ {
432
+ curve = new engineCore.AnimationQuaternionCurve();
433
+ curve.interpolation = interpolation;
434
+ for(var j6 = 0; j6 < keysLen; ++j6){
435
+ var keyframe7 = new engineCore.Keyframe();
436
+ keyframe7.time = bufferReader.nextFloat32();
437
+ keyframe7.value = new engineMath.Quaternion(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
438
+ keyframe7.inTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
439
+ keyframe7.outTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
440
+ curve.addKey(keyframe7);
441
+ }
442
+ break;
443
+ }
444
+ case "AnimationRefCurve":
445
+ {
446
+ curve = new engineCore.AnimationRefCurve();
447
+ curve.interpolation = interpolation;
448
+ for(var j7 = 0; j7 < keysLen; ++j7){
449
+ var keyframe8 = new engineCore.Keyframe();
450
+ keyframe8.time = bufferReader.nextFloat32();
451
+ var str = bufferReader.nextStr();
452
+ if (str) {
453
+ keyframe8.value = JSON.parse(str);
454
+ } else {
455
+ keyframe8.value = null;
456
+ }
457
+ curve.addKey(keyframe8);
458
+ }
459
+ break;
460
+ }
461
+ case "AnimationBoolCurve":
462
+ {
463
+ curve = new engineCore.AnimationBoolCurve();
464
+ curve.interpolation = interpolation;
465
+ for(var j8 = 0; j8 < keysLen; ++j8){
466
+ var keyframe9 = new engineCore.Keyframe();
467
+ keyframe9.time = bufferReader.nextFloat32();
468
+ keyframe9.value = bufferReader.nextUint8() === 1;
469
+ curve.addKey(keyframe9);
470
+ }
471
+ break;
472
+ }
473
+ case "AnimationStringCurve":
474
+ {
475
+ curve = new engineCore.AnimationStringCurve();
476
+ curve.interpolation = interpolation;
477
+ for(var j9 = 0; j9 < keysLen; ++j9){
478
+ var keyframe10 = new engineCore.Keyframe();
479
+ keyframe10.time = bufferReader.nextFloat32();
480
+ keyframe10.value = bufferReader.nextStr();
481
+ curve.addKey(keyframe10);
482
+ }
483
+ break;
484
+ }
485
+ }
486
+ clip.addCurveBinding(relativePath, componentType, property, getProperty, curve);
487
+ }
488
+ resolve(clip);
489
+ });
490
+ };
491
+ return AnimationClipDecoder;
492
+ }();
493
+ exports.AnimationClipDecoder = __decorate([
494
+ decoder("AnimationClip")
495
+ ], exports.AnimationClipDecoder);
496
+
292
497
  exports.MeshDecoder = /*#__PURE__*/ function() {
293
498
  function MeshDecoder() {}
294
- MeshDecoder.decode = function decode(engine, bufferReader) {
499
+ MeshDecoder.decode = function decode(engine, bufferReader, restoredMesh) {
295
500
  return new engineCore.AssetPromise(function(resolve) {
296
- var modelMesh = new engineCore.ModelMesh(engine);
501
+ var modelMesh = restoredMesh || new engineCore.ModelMesh(engine);
297
502
  var jsonDataString = bufferReader.nextStr();
298
503
  var encodedMeshData = JSON.parse(jsonDataString);
299
504
  // @ts-ignore Vector3 is not compatible with {x: number, y: number, z: number}.
@@ -423,81 +628,6 @@ function float32ArrayToVector2(float32Array, vertexCount) {
423
628
  return array;
424
629
  }
425
630
 
426
- exports.Texture2DDecoder = /*#__PURE__*/ function() {
427
- function Texture2DDecoder() {}
428
- Texture2DDecoder.decode = function decode(engine, bufferReader) {
429
- return new engineCore.AssetPromise(function(resolve, reject) {
430
- var objectId = bufferReader.nextStr();
431
- var mipmap = !!bufferReader.nextUint8();
432
- var filterMode = bufferReader.nextUint8();
433
- var anisoLevel = bufferReader.nextUint8();
434
- var wrapModeU = bufferReader.nextUint8();
435
- var wrapModeV = bufferReader.nextUint8();
436
- var format = bufferReader.nextUint8();
437
- var width = bufferReader.nextUint16();
438
- var height = bufferReader.nextUint16();
439
- var isPixelBuffer = bufferReader.nextUint8();
440
- var mipCount = bufferReader.nextUint8();
441
- var imagesData = bufferReader.nextImagesData(mipCount);
442
- var texture2D = new engineCore.Texture2D(engine, width, height, format, mipmap);
443
- texture2D.filterMode = filterMode;
444
- texture2D.anisoLevel = anisoLevel;
445
- texture2D.wrapModeU = wrapModeU;
446
- texture2D.wrapModeV = wrapModeV;
447
- if (isPixelBuffer) {
448
- var pixelBuffer = imagesData[0];
449
- texture2D.setPixelBuffer(pixelBuffer);
450
- if (mipmap) {
451
- texture2D.generateMipmaps();
452
- for(var i = 1; i < mipCount; i++){
453
- var pixelBuffer1 = imagesData[i];
454
- texture2D.setPixelBuffer(pixelBuffer1, i);
455
- }
456
- }
457
- // @ts-ignore
458
- engine.resourceManager._objectPool[objectId] = texture2D;
459
- resolve(texture2D);
460
- } else {
461
- var blob = new window.Blob([
462
- imagesData[0]
463
- ]);
464
- var img = new Image();
465
- img.onload = function() {
466
- texture2D.setImageSource(img);
467
- var completedCount = 0;
468
- var onComplete = function() {
469
- completedCount++;
470
- if (completedCount >= mipCount) {
471
- resolve(texture2D);
472
- }
473
- };
474
- onComplete();
475
- if (mipmap) {
476
- var _loop = function(i) {
477
- var blob = new window.Blob([
478
- imagesData[i]
479
- ]);
480
- var img = new Image();
481
- img.onload = function() {
482
- texture2D.setImageSource(img, i);
483
- onComplete();
484
- };
485
- img.src = URL.createObjectURL(blob);
486
- };
487
- texture2D.generateMipmaps();
488
- for(var i = 1; i < mipCount; i++)_loop(i);
489
- }
490
- };
491
- img.src = URL.createObjectURL(blob);
492
- }
493
- });
494
- };
495
- return Texture2DDecoder;
496
- }();
497
- exports.Texture2DDecoder = __decorate([
498
- decoder("Texture2D")
499
- ], exports.Texture2DDecoder);
500
-
501
631
  function _is_native_reflect_construct() {
502
632
  // Since Reflect.construct can't be properly polyfilled, some
503
633
  // implementations (e.g. core-js@2) don't set the correct internal slots.
@@ -759,250 +889,149 @@ var ReflectionParser = /*#__PURE__*/ function() {
759
889
  ReflectionParser.registerCustomParseComponent = function registerCustomParseComponent(componentType, handle) {
760
890
  this.customParseComponentHandles[componentType] = handle;
761
891
  };
762
- ReflectionParser._isClass = function _isClass(value) {
763
- return value["class"] !== undefined;
764
- };
765
- ReflectionParser._isClassType = function _isClassType(value) {
766
- return value["classType"] !== undefined;
767
- };
768
- ReflectionParser._isAssetRef = function _isAssetRef(value) {
769
- return value["refId"] !== undefined;
770
- };
771
- ReflectionParser._isEntityRef = function _isEntityRef(value) {
772
- return value["entityId"] !== undefined;
773
- };
774
- ReflectionParser._isComponentRef = function _isComponentRef(value) {
775
- return value["ownerId"] !== undefined && value["componentId"] !== undefined;
776
- };
777
- ReflectionParser._isMethodObject = function _isMethodObject(value) {
778
- return Array.isArray(value == null ? void 0 : value.params);
779
- };
780
- return ReflectionParser;
781
- }();
782
- ReflectionParser.customParseComponentHandles = new Map();
783
-
784
- var InterpolableValueType = /*#__PURE__*/ function(InterpolableValueType) {
785
- InterpolableValueType[InterpolableValueType["Float"] = 0] = "Float";
786
- InterpolableValueType[InterpolableValueType["FloatArray"] = 1] = "FloatArray";
787
- InterpolableValueType[InterpolableValueType["Vector2"] = 2] = "Vector2";
788
- InterpolableValueType[InterpolableValueType["Vector3"] = 3] = "Vector3";
789
- InterpolableValueType[InterpolableValueType["Vector4"] = 4] = "Vector4";
790
- InterpolableValueType[InterpolableValueType["Quaternion"] = 5] = "Quaternion";
791
- InterpolableValueType[InterpolableValueType["Color"] = 6] = "Color";
792
- InterpolableValueType[InterpolableValueType["Array"] = 7] = "Array";
793
- InterpolableValueType[InterpolableValueType["Boolean"] = 8] = "Boolean";
794
- InterpolableValueType[InterpolableValueType["Rect"] = 9] = "Rect";
795
- InterpolableValueType[InterpolableValueType["ReferResource"] = 10] = "ReferResource";
796
- return InterpolableValueType;
797
- }({});
798
- exports.AnimationClipDecoder = /*#__PURE__*/ function() {
799
- function AnimationClipDecoder() {}
800
- AnimationClipDecoder.decode = function decode(engine, bufferReader) {
801
- return new engineCore.AssetPromise(function(resolve) {
802
- var name = bufferReader.nextStr();
803
- var clip = new engineCore.AnimationClip(name);
804
- var eventsLen = bufferReader.nextUint16();
805
- for(var i = 0; i < eventsLen; ++i){
806
- var event = new engineCore.AnimationEvent();
807
- event.time = bufferReader.nextFloat32();
808
- event.functionName = bufferReader.nextStr();
809
- event.parameter = JSON.parse(bufferReader.nextStr()).val;
810
- clip.addEvent(event);
811
- }
812
- var curveBindingsLen = bufferReader.nextUint16();
813
- for(var i1 = 0; i1 < curveBindingsLen; ++i1){
814
- var relativePath = bufferReader.nextStr();
815
- var componentStr = bufferReader.nextStr();
816
- var componentType = engineCore.Loader.getClass(componentStr);
817
- var property = bufferReader.nextStr();
818
- var getProperty = bufferReader.nextStr();
819
- var curve = void 0;
820
- var interpolation = bufferReader.nextUint8();
821
- var keysLen = bufferReader.nextUint16();
822
- var curveType = bufferReader.nextStr();
823
- switch(curveType){
824
- case "AnimationFloatCurve":
825
- {
826
- curve = new engineCore.AnimationFloatCurve();
827
- curve.interpolation = interpolation;
828
- for(var j = 0; j < keysLen; ++j){
829
- var keyframe = new engineCore.Keyframe();
830
- keyframe.time = bufferReader.nextFloat32();
831
- keyframe.value = bufferReader.nextFloat32();
832
- keyframe.inTangent = bufferReader.nextFloat32();
833
- keyframe.outTangent = bufferReader.nextFloat32();
834
- curve.addKey(keyframe);
835
- }
836
- break;
837
- }
838
- case "AnimationArrayCurve":
839
- {
840
- curve = new engineCore.AnimationArrayCurve();
841
- curve.interpolation = interpolation;
842
- for(var j1 = 0; j1 < keysLen; ++j1){
843
- var keyframe1 = new engineCore.Keyframe();
844
- keyframe1.time = bufferReader.nextFloat32();
845
- var len = bufferReader.nextUint16();
846
- keyframe1.value = Array.from(bufferReader.nextFloat32Array(len));
847
- keyframe1.inTangent = Array.from(bufferReader.nextFloat32Array(len));
848
- keyframe1.outTangent = Array.from(bufferReader.nextFloat32Array(len));
849
- curve.addKey(keyframe1);
850
- }
851
- break;
852
- }
853
- case "AnimationFloatArrayCurve":
854
- {
855
- curve = new engineCore.AnimationFloatArrayCurve();
856
- curve.interpolation = interpolation;
857
- for(var j2 = 0; j2 < keysLen; ++j2){
858
- var keyframe2 = new engineCore.Keyframe();
859
- keyframe2.time = bufferReader.nextFloat32();
860
- var len1 = bufferReader.nextUint16();
861
- keyframe2.value = bufferReader.nextFloat32Array(len1);
862
- keyframe2.inTangent = Array.from(bufferReader.nextFloat32Array(len1));
863
- keyframe2.outTangent = Array.from(bufferReader.nextFloat32Array(len1));
864
- curve.addKey(keyframe2);
865
- }
866
- break;
867
- }
868
- case "AnimationVector2Curve":
869
- {
870
- curve = new engineCore.AnimationVector2Curve();
871
- curve.interpolation = interpolation;
872
- for(var j3 = 0; j3 < keysLen; ++j3){
873
- var keyframe3 = new engineCore.Keyframe();
874
- keyframe3.time = bufferReader.nextFloat32();
875
- keyframe3.value = new engineMath.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
876
- keyframe3.inTangent = new engineMath.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
877
- keyframe3.outTangent = new engineMath.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
878
- curve.addKey(keyframe3);
879
- }
880
- break;
881
- }
882
- case "AnimationVector3Curve":
883
- {
884
- curve = new engineCore.AnimationVector3Curve();
885
- curve.interpolation = interpolation;
886
- for(var j4 = 0; j4 < keysLen; ++j4){
887
- var keyframe4 = new engineCore.Keyframe();
888
- keyframe4.time = bufferReader.nextFloat32();
889
- keyframe4.value = new engineMath.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
890
- keyframe4.inTangent = new engineMath.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
891
- keyframe4.outTangent = new engineMath.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
892
- curve.addKey(keyframe4);
893
- }
894
- break;
895
- }
896
- case "AnimationVector4Curve":
897
- {
898
- curve = new engineCore.AnimationVector4Curve();
899
- curve.interpolation = interpolation;
900
- var keyframe5 = new engineCore.Keyframe();
901
- keyframe5.time = bufferReader.nextFloat32();
902
- keyframe5.value = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
903
- keyframe5.inTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
904
- keyframe5.outTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
905
- curve.addKey(keyframe5);
906
- break;
907
- }
908
- case "AnimationColorCurve":
909
- {
910
- curve = new engineCore.AnimationColorCurve();
911
- curve.interpolation = interpolation;
912
- for(var j5 = 0; j5 < keysLen; ++j5){
913
- var keyframe6 = new engineCore.Keyframe();
914
- keyframe6.time = bufferReader.nextFloat32();
915
- keyframe6.value = new engineMath.Color(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
916
- keyframe6.inTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
917
- keyframe6.outTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
918
- curve.addKey(keyframe6);
919
- }
920
- break;
921
- }
922
- case "AnimationQuaternionCurve":
923
- {
924
- curve = new engineCore.AnimationQuaternionCurve();
925
- curve.interpolation = interpolation;
926
- for(var j6 = 0; j6 < keysLen; ++j6){
927
- var keyframe7 = new engineCore.Keyframe();
928
- keyframe7.time = bufferReader.nextFloat32();
929
- keyframe7.value = new engineMath.Quaternion(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
930
- keyframe7.inTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
931
- keyframe7.outTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
932
- curve.addKey(keyframe7);
933
- }
934
- break;
935
- }
936
- case "AnimationRefCurve":
937
- {
938
- curve = new engineCore.AnimationRefCurve();
939
- curve.interpolation = interpolation;
940
- for(var j7 = 0; j7 < keysLen; ++j7){
941
- var keyframe8 = new engineCore.Keyframe();
942
- keyframe8.time = bufferReader.nextFloat32();
943
- var str = bufferReader.nextStr();
944
- if (str) {
945
- keyframe8.value = JSON.parse(str);
946
- } else {
947
- keyframe8.value = null;
948
- }
949
- curve.addKey(keyframe8);
950
- }
951
- break;
952
- }
953
- case "AnimationBoolCurve":
954
- {
955
- curve = new engineCore.AnimationBoolCurve();
956
- curve.interpolation = interpolation;
957
- for(var j8 = 0; j8 < keysLen; ++j8){
958
- var keyframe9 = new engineCore.Keyframe();
959
- keyframe9.time = bufferReader.nextFloat32();
960
- keyframe9.value = bufferReader.nextUint8() === 1;
961
- curve.addKey(keyframe9);
962
- }
963
- break;
964
- }
965
- case "AnimationStringCurve":
966
- {
967
- curve = new engineCore.AnimationStringCurve();
968
- curve.interpolation = interpolation;
969
- for(var j9 = 0; j9 < keysLen; ++j9){
970
- var keyframe10 = new engineCore.Keyframe();
971
- keyframe10.time = bufferReader.nextFloat32();
972
- keyframe10.value = bufferReader.nextStr();
973
- curve.addKey(keyframe10);
974
- }
975
- break;
976
- }
892
+ ReflectionParser._isClass = function _isClass(value) {
893
+ return value["class"] !== undefined;
894
+ };
895
+ ReflectionParser._isClassType = function _isClassType(value) {
896
+ return value["classType"] !== undefined;
897
+ };
898
+ ReflectionParser._isAssetRef = function _isAssetRef(value) {
899
+ return value["refId"] !== undefined;
900
+ };
901
+ ReflectionParser._isEntityRef = function _isEntityRef(value) {
902
+ return value["entityId"] !== undefined;
903
+ };
904
+ ReflectionParser._isComponentRef = function _isComponentRef(value) {
905
+ return value["ownerId"] !== undefined && value["componentId"] !== undefined;
906
+ };
907
+ ReflectionParser._isMethodObject = function _isMethodObject(value) {
908
+ return Array.isArray(value == null ? void 0 : value.params);
909
+ };
910
+ return ReflectionParser;
911
+ }();
912
+ ReflectionParser.customParseComponentHandles = new Map();
913
+
914
+ exports.Texture2DDecoder = /*#__PURE__*/ function() {
915
+ function Texture2DDecoder() {}
916
+ Texture2DDecoder.decode = function decode(engine, bufferReader, restoredTexture) {
917
+ return new engineCore.AssetPromise(function(resolve, reject) {
918
+ var objectId = bufferReader.nextStr();
919
+ var mipmap = !!bufferReader.nextUint8();
920
+ var filterMode = bufferReader.nextUint8();
921
+ var anisoLevel = bufferReader.nextUint8();
922
+ var wrapModeU = bufferReader.nextUint8();
923
+ var wrapModeV = bufferReader.nextUint8();
924
+ var format = bufferReader.nextUint8();
925
+ var width = bufferReader.nextUint16();
926
+ var height = bufferReader.nextUint16();
927
+ var isPixelBuffer = bufferReader.nextUint8();
928
+ var mipCount = bufferReader.nextUint8();
929
+ var imagesData = bufferReader.nextImagesData(mipCount);
930
+ var texture2D = restoredTexture || new engineCore.Texture2D(engine, width, height, format, mipmap);
931
+ texture2D.filterMode = filterMode;
932
+ texture2D.anisoLevel = anisoLevel;
933
+ texture2D.wrapModeU = wrapModeU;
934
+ texture2D.wrapModeV = wrapModeV;
935
+ if (isPixelBuffer) {
936
+ var pixelBuffer = imagesData[0];
937
+ texture2D.setPixelBuffer(pixelBuffer);
938
+ if (mipmap) {
939
+ texture2D.generateMipmaps();
940
+ for(var i = 1; i < mipCount; i++){
941
+ var pixelBuffer1 = imagesData[i];
942
+ texture2D.setPixelBuffer(pixelBuffer1, i);
943
+ }
977
944
  }
978
- clip.addCurveBinding(relativePath, componentType, property, getProperty, curve);
945
+ // @ts-ignore
946
+ engine.resourceManager._objectPool[objectId] = texture2D;
947
+ resolve(texture2D);
948
+ } else {
949
+ var blob = new window.Blob([
950
+ imagesData[0]
951
+ ]);
952
+ var img = new Image();
953
+ img.onload = function() {
954
+ texture2D.setImageSource(img);
955
+ var completedCount = 0;
956
+ var onComplete = function() {
957
+ completedCount++;
958
+ if (completedCount >= mipCount) {
959
+ resolve(texture2D);
960
+ }
961
+ };
962
+ onComplete();
963
+ if (mipmap) {
964
+ var _loop = function(i) {
965
+ var blob = new window.Blob([
966
+ imagesData[i]
967
+ ]);
968
+ var img = new Image();
969
+ img.onload = function() {
970
+ texture2D.setImageSource(img, i);
971
+ onComplete();
972
+ };
973
+ img.src = URL.createObjectURL(blob);
974
+ };
975
+ texture2D.generateMipmaps();
976
+ for(var i = 1; i < mipCount; i++)_loop(i);
977
+ }
978
+ };
979
+ img.src = URL.createObjectURL(blob);
979
980
  }
980
- resolve(clip);
981
981
  });
982
982
  };
983
- return AnimationClipDecoder;
983
+ return Texture2DDecoder;
984
984
  }();
985
- exports.AnimationClipDecoder = __decorate([
986
- decoder("AnimationClip")
987
- ], exports.AnimationClipDecoder);
988
-
989
- var MaterialLoaderType = /*#__PURE__*/ function(MaterialLoaderType) {
990
- MaterialLoaderType["Vector2"] = "Vector2";
991
- MaterialLoaderType["Vector3"] = "Vector3";
992
- MaterialLoaderType["Vector4"] = "Vector4";
993
- MaterialLoaderType["Color"] = "Color";
994
- MaterialLoaderType["Float"] = "Float";
995
- MaterialLoaderType["Texture"] = "Texture";
996
- MaterialLoaderType["Boolean"] = "Boolean";
997
- MaterialLoaderType["Integer"] = "Integer";
998
- return MaterialLoaderType;
999
- }({});
985
+ exports.Texture2DDecoder = __decorate([
986
+ decoder("Texture2D")
987
+ ], exports.Texture2DDecoder);
1000
988
 
1001
- var SpecularMode = /*#__PURE__*/ function(SpecularMode) {
1002
- SpecularMode["Sky"] = "Sky";
1003
- SpecularMode["Custom"] = "Custom";
1004
- return SpecularMode;
1005
- }({});
989
+ exports.EditorTextureLoader = /*#__PURE__*/ function(Loader) {
990
+ _inherits(EditorTextureLoader, Loader);
991
+ function EditorTextureLoader() {
992
+ return Loader.apply(this, arguments) || this;
993
+ }
994
+ var _proto = EditorTextureLoader.prototype;
995
+ _proto.load = function load(item, resourceManager) {
996
+ var requestConfig = _extends({}, item, {
997
+ type: "arraybuffer"
998
+ });
999
+ var url = item.url;
1000
+ return new engineCore.AssetPromise(function(resolve, reject) {
1001
+ resourceManager// @ts-ignore
1002
+ ._request(url, requestConfig).then(function(data) {
1003
+ decode(data, resourceManager.engine).then(function(texture) {
1004
+ resourceManager.addContentRestorer(new EditorTexture2DContentRestorer(texture, url, requestConfig));
1005
+ resolve(texture);
1006
+ });
1007
+ }).catch(reject);
1008
+ });
1009
+ };
1010
+ return EditorTextureLoader;
1011
+ }(engineCore.Loader);
1012
+ exports.EditorTextureLoader = __decorate([
1013
+ engineCore.resourceLoader("EditorTexture2D", [
1014
+ "prefab"
1015
+ ], true)
1016
+ ], exports.EditorTextureLoader);
1017
+ var EditorTexture2DContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
1018
+ _inherits(EditorTexture2DContentRestorer, ContentRestorer);
1019
+ function EditorTexture2DContentRestorer(resource, url, requestConfig) {
1020
+ var _this;
1021
+ _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
1022
+ return _this;
1023
+ }
1024
+ var _proto = EditorTexture2DContentRestorer.prototype;
1025
+ _proto.restoreContent = function restoreContent() {
1026
+ var texture = this.resource;
1027
+ var engine = texture.engine;
1028
+ return engine.resourceManager// @ts-ignore
1029
+ ._request(this.url, this.requestConfig).then(function(data) {
1030
+ return decode(data, engine, texture);
1031
+ });
1032
+ };
1033
+ return EditorTexture2DContentRestorer;
1034
+ }(engineCore.ContentRestorer);
1006
1035
 
1007
1036
  function _instanceof(left, right) {
1008
1037
  if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
@@ -1417,31 +1446,23 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
1417
1446
  return SceneParser;
1418
1447
  }(HierarchyParser);
1419
1448
 
1420
- exports.EditorTextureLoader = /*#__PURE__*/ function(Loader) {
1421
- _inherits(EditorTextureLoader, Loader);
1422
- function EditorTextureLoader() {
1423
- return Loader.apply(this, arguments) || this;
1424
- }
1425
- var _proto = EditorTextureLoader.prototype;
1426
- _proto.load = function load(item, resourceManager) {
1427
- return new engineCore.AssetPromise(function(resolve, reject) {
1428
- resourceManager// @ts-ignore
1429
- ._request(item.url, _extends({}, item, {
1430
- type: "arraybuffer"
1431
- })).then(function(data) {
1432
- decode(data, resourceManager.engine).then(function(texture) {
1433
- resolve(texture);
1434
- });
1435
- }).catch(reject);
1436
- });
1437
- };
1438
- return EditorTextureLoader;
1439
- }(engineCore.Loader);
1440
- exports.EditorTextureLoader = __decorate([
1441
- engineCore.resourceLoader("EditorTexture2D", [
1442
- "prefab"
1443
- ], true)
1444
- ], exports.EditorTextureLoader);
1449
+ var MaterialLoaderType = /*#__PURE__*/ function(MaterialLoaderType) {
1450
+ MaterialLoaderType["Vector2"] = "Vector2";
1451
+ MaterialLoaderType["Vector3"] = "Vector3";
1452
+ MaterialLoaderType["Vector4"] = "Vector4";
1453
+ MaterialLoaderType["Color"] = "Color";
1454
+ MaterialLoaderType["Float"] = "Float";
1455
+ MaterialLoaderType["Texture"] = "Texture";
1456
+ MaterialLoaderType["Boolean"] = "Boolean";
1457
+ MaterialLoaderType["Integer"] = "Integer";
1458
+ return MaterialLoaderType;
1459
+ }({});
1460
+
1461
+ var SpecularMode = /*#__PURE__*/ function(SpecularMode) {
1462
+ SpecularMode["Sky"] = "Sky";
1463
+ SpecularMode["Custom"] = "Custom";
1464
+ return SpecularMode;
1465
+ }({});
1445
1466
 
1446
1467
  /**
1447
1468
  * Decode engine binary resource.
@@ -1449,9 +1470,16 @@ exports.EditorTextureLoader = __decorate([
1449
1470
  * @param engine - engine
1450
1471
  * @returns
1451
1472
  */ function decode(arrayBuffer, engine) {
1473
+ for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
1474
+ args[_key - 2] = arguments[_key];
1475
+ }
1476
+ var _decoderMap_header_type;
1452
1477
  var header = FileHeader.decode(arrayBuffer);
1453
1478
  var bufferReader = new BufferReader(new Uint8Array(arrayBuffer), header.headerLength, header.dataLength);
1454
- return decoderMap[header.type].decode(engine, bufferReader).then(function(object) {
1479
+ return (_decoderMap_header_type = decoderMap[header.type]).decode.apply(_decoderMap_header_type, [].concat([
1480
+ engine,
1481
+ bufferReader
1482
+ ], args)).then(function(object) {
1455
1483
  object.name = header.name;
1456
1484
  return object;
1457
1485
  });
@@ -1667,10 +1695,11 @@ var EnvLoader = /*#__PURE__*/ function(Loader) {
1667
1695
  type: "arraybuffer"
1668
1696
  });
1669
1697
  var engine = resourceManager.engine;
1698
+ var url = item.url;
1670
1699
  resourceManager// @ts-ignore
1671
- ._request(item.url, requestConfig).then(function(arraybuffer) {
1700
+ ._request(url, requestConfig).then(function(arraybuffer) {
1672
1701
  var texture = EnvLoader._setTextureByBuffer(engine, arraybuffer);
1673
- engine.resourceManager.addContentRestorer(new EnvContentRestorer(texture, item.url, requestConfig));
1702
+ engine.resourceManager.addContentRestorer(new EnvContentRestorer(texture, url, requestConfig));
1674
1703
  var ambientLight = new engineCore.AmbientLight(engine);
1675
1704
  var sh = new engineMath.SphericalHarmonics3();
1676
1705
  ambientLight.diffuseMode = engineCore.DiffuseMode.SphericalHarmonics;
@@ -1725,9 +1754,12 @@ EnvLoader = __decorate([
1725
1754
  _proto.restoreContent = function restoreContent() {
1726
1755
  var _this = this;
1727
1756
  return new engineCore.AssetPromise(function(resolve, reject) {
1728
- engineCore.request(_this.url, _this.requestConfig).then(function(buffer) {
1729
- EnvLoader._setTextureByBuffer(_this.resource.engine, buffer, _this.resource);
1730
- resolve(_this.resource);
1757
+ var resource = _this.resource;
1758
+ var engine = resource.engine;
1759
+ engine.resourceManager// @ts-ignore
1760
+ ._request(_this.url, _this.requestConfig).then(function(buffer) {
1761
+ EnvLoader._setTextureByBuffer(engine, buffer, resource);
1762
+ resolve(resource);
1731
1763
  }).catch(reject);
1732
1764
  });
1733
1765
  };
@@ -3606,15 +3638,20 @@ exports.KTX2Loader = /*#__PURE__*/ function(Loader) {
3606
3638
  * @internal
3607
3639
  */ _proto.load = function load(item, resourceManager) {
3608
3640
  return new engineCore.AssetPromise(function(resolve, reject, setTaskCompleteProgress, setTaskDetailProgress) {
3609
- resourceManager// @ts-ignore
3610
- ._request(item.url, {
3641
+ var requestConfig = _extends({}, item, {
3611
3642
  type: "arraybuffer"
3612
- }).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(buffer) {
3643
+ });
3644
+ var url = item.url;
3645
+ resourceManager// @ts-ignore
3646
+ ._request(url, requestConfig).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(buffer) {
3613
3647
  return KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
3614
3648
  var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
3615
3649
  return KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params);
3650
+ }).then(function(texture) {
3651
+ resourceManager.addContentRestorer(new KTX2ContentRestorer(texture, url, requestConfig));
3652
+ resolve(texture);
3616
3653
  });
3617
- }).then(resolve).catch(reject);
3654
+ }).catch(reject);
3618
3655
  });
3619
3656
  };
3620
3657
  /**
@@ -3653,7 +3690,7 @@ exports.KTX2Loader = /*#__PURE__*/ function(Loader) {
3653
3690
  };
3654
3691
  });
3655
3692
  };
3656
- /** @internal */ KTX2Loader._createTextureByBuffer = function _createTextureByBuffer(engine, transcodeResult, targetFormat, params) {
3693
+ /** @internal */ KTX2Loader._createTextureByBuffer = function _createTextureByBuffer(engine, transcodeResult, targetFormat, params, restoredTexture) {
3657
3694
  var width = transcodeResult.width, height = transcodeResult.height, faces = transcodeResult.faces;
3658
3695
  var faceCount = faces.length;
3659
3696
  var mipmaps = faces[0];
@@ -3661,13 +3698,13 @@ exports.KTX2Loader = /*#__PURE__*/ function(Loader) {
3661
3698
  var engineFormat = this._getEngineTextureFormat(targetFormat, transcodeResult);
3662
3699
  var texture;
3663
3700
  if (faceCount !== 6) {
3664
- texture = new engineCore.Texture2D(engine, width, height, engineFormat, mipmap);
3701
+ texture = restoredTexture || new engineCore.Texture2D(engine, width, height, engineFormat, mipmap);
3665
3702
  for(var mipLevel = 0; mipLevel < mipmaps.length; mipLevel++){
3666
3703
  var data = mipmaps[mipLevel].data;
3667
3704
  texture.setPixelBuffer(data, mipLevel);
3668
3705
  }
3669
3706
  } else {
3670
- texture = new engineCore.TextureCube(engine, height, engineFormat, mipmap);
3707
+ texture = restoredTexture || new engineCore.TextureCube(engine, height, engineFormat, mipmap);
3671
3708
  for(var i = 0; i < faces.length; i++){
3672
3709
  var faceData = faces[i];
3673
3710
  for(var mipLevel1 = 0; mipLevel1 < mipmaps.length; mipLevel1++){
@@ -3783,6 +3820,30 @@ exports.KTX2Loader = __decorate([
3783
3820
  "ktx2"
3784
3821
  ])
3785
3822
  ], exports.KTX2Loader);
3823
+ var KTX2ContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
3824
+ _inherits(KTX2ContentRestorer, ContentRestorer);
3825
+ function KTX2ContentRestorer(resource, url, requestConfig) {
3826
+ var _this;
3827
+ _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
3828
+ return _this;
3829
+ }
3830
+ var _proto = KTX2ContentRestorer.prototype;
3831
+ _proto.restoreContent = function restoreContent() {
3832
+ var _this = this;
3833
+ var _this1 = this, resource = _this1.resource, requestConfig = _this1.requestConfig;
3834
+ var engine = resource.engine;
3835
+ return new engineCore.AssetPromise(function(resolve, reject) {
3836
+ engine.resourceManager// @ts-ignore
3837
+ ._request(_this.url, requestConfig).then(function(buffer) {
3838
+ return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), engine, requestConfig.params).then(function(param) {
3839
+ var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
3840
+ return exports.KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params, resource);
3841
+ });
3842
+ }).then(resolve).catch(reject);
3843
+ });
3844
+ };
3845
+ return KTX2ContentRestorer;
3846
+ }(engineCore.ContentRestorer);
3786
3847
  /** Used for initialize KTX2 transcoder. */ var KTX2Transcoder = /*#__PURE__*/ function(KTX2Transcoder) {
3787
3848
  /** BinomialLLC transcoder. */ KTX2Transcoder[KTX2Transcoder["BinomialLLC"] = 0] = "BinomialLLC";
3788
3849
  /** Khronos transcoder. */ KTX2Transcoder[KTX2Transcoder["Khronos"] = 1] = "Khronos";
@@ -5359,10 +5420,11 @@ var HDRLoader = /*#__PURE__*/ function(Loader) {
5359
5420
  var requestConfig = _extends({}, item, {
5360
5421
  type: "arraybuffer"
5361
5422
  });
5423
+ var url = item.url;
5362
5424
  resourceManager// @ts-ignore
5363
- ._request(item.url, requestConfig).then(function(buffer) {
5425
+ ._request(url, requestConfig).then(function(buffer) {
5364
5426
  var texture = HDRLoader._setTextureByBuffer(engine, buffer);
5365
- engine.resourceManager.addContentRestorer(new HDRContentRestorer(texture, item.url, requestConfig));
5427
+ engine.resourceManager.addContentRestorer(new HDRContentRestorer(texture, url, requestConfig));
5366
5428
  resolve(texture);
5367
5429
  }).catch(reject);
5368
5430
  });
@@ -5667,9 +5729,12 @@ HDRLoader = __decorate([
5667
5729
  _proto.restoreContent = function restoreContent() {
5668
5730
  var _this = this;
5669
5731
  return new engineCore.AssetPromise(function(resolve, reject) {
5670
- engineCore.request(_this.url, _this.requestConfig).then(function(buffer) {
5671
- HDRLoader._setTextureByBuffer(_this.resource.engine, buffer, _this.resource);
5672
- resolve(_this.resource);
5732
+ var resource = _this.resource;
5733
+ var engine = resource.engine;
5734
+ engine.resourceManager// @ts-ignore
5735
+ ._request(_this.url, _this.requestConfig).then(function(buffer) {
5736
+ HDRLoader._setTextureByBuffer(engine, buffer, resource);
5737
+ resolve(resource);
5673
5738
  }).catch(reject);
5674
5739
  });
5675
5740
  };
@@ -5925,11 +5990,12 @@ var KTXLoader = /*#__PURE__*/ function(Loader) {
5925
5990
  }
5926
5991
  var _proto = KTXLoader.prototype;
5927
5992
  _proto.load = function load(item, resourceManager) {
5993
+ var requestConfig = _extends({}, item, {
5994
+ type: "arraybuffer"
5995
+ });
5928
5996
  return new engineCore.AssetPromise(function(resolve, reject) {
5929
5997
  resourceManager// @ts-ignore
5930
- ._request(item.url, _extends({}, item, {
5931
- type: "arraybuffer"
5932
- })).then(function(bin) {
5998
+ ._request(item.url, requestConfig).then(function(bin) {
5933
5999
  var parsedData = parseSingleKTX(bin);
5934
6000
  var width = parsedData.width, height = parsedData.height, mipmaps = parsedData.mipmaps, engineFormat = parsedData.engineFormat;
5935
6001
  var mipmap = mipmaps.length > 1;
@@ -5938,6 +6004,7 @@ var KTXLoader = /*#__PURE__*/ function(Loader) {
5938
6004
  var _mipmaps_miplevel = mipmaps[miplevel], width1 = _mipmaps_miplevel.width, height1 = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
5939
6005
  texture.setPixelBuffer(data, miplevel, 0, 0, width1, height1);
5940
6006
  }
6007
+ resourceManager.addContentRestorer(new KTXContentRestorer(texture, item.url, requestConfig));
5941
6008
  resolve(texture);
5942
6009
  }).catch(function(e) {
5943
6010
  reject(e);
@@ -5951,6 +6018,34 @@ KTXLoader = __decorate([
5951
6018
  "ktx"
5952
6019
  ])
5953
6020
  ], KTXLoader);
6021
+ var KTXContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
6022
+ _inherits(KTXContentRestorer, ContentRestorer);
6023
+ function KTXContentRestorer(resource, url, requestConfig) {
6024
+ var _this;
6025
+ _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
6026
+ return _this;
6027
+ }
6028
+ var _proto = KTXContentRestorer.prototype;
6029
+ _proto.restoreContent = function restoreContent() {
6030
+ var _this = this;
6031
+ var resource = this.resource;
6032
+ var engine = resource.engine;
6033
+ return new engineCore.AssetPromise(function(resolve, reject) {
6034
+ engine.resourceManager// @ts-ignore
6035
+ ._request(_this.url, _this.requestConfig).then(function(bin) {
6036
+ var mipmaps = parseSingleKTX(bin).mipmaps;
6037
+ for(var miplevel = 0; miplevel < mipmaps.length; miplevel++){
6038
+ var _mipmaps_miplevel = mipmaps[miplevel], width = _mipmaps_miplevel.width, height = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
6039
+ resource.setPixelBuffer(data, miplevel, 0, 0, width, height);
6040
+ }
6041
+ resolve(resource);
6042
+ }).catch(function(e) {
6043
+ reject(e);
6044
+ });
6045
+ });
6046
+ };
6047
+ return KTXContentRestorer;
6048
+ }(engineCore.ContentRestorer);
5954
6049
 
5955
6050
  function parseProperty(object, key, value) {
5956
6051
  if ((typeof value === "undefined" ? "undefined" : _type_of(value)) === "object") {
@@ -6055,13 +6150,16 @@ var MeshLoader = /*#__PURE__*/ function(Loader) {
6055
6150
  }
6056
6151
  var _proto = MeshLoader.prototype;
6057
6152
  _proto.load = function load(item, resourceManager) {
6153
+ var requestConfig = _extends({}, item, {
6154
+ type: "arraybuffer"
6155
+ });
6156
+ var url = item.url;
6058
6157
  return new engineCore.AssetPromise(function(resolve, reject) {
6059
6158
  resourceManager// @ts-ignore
6060
- ._request(item.url, _extends({}, item, {
6061
- type: "arraybuffer"
6062
- })).then(function(data) {
6159
+ ._request(url, requestConfig).then(function(data) {
6063
6160
  return decode(data, resourceManager.engine);
6064
6161
  }).then(function(mesh) {
6162
+ resourceManager.addContentRestorer(new MeshContentRestorer(mesh, url, requestConfig));
6065
6163
  resolve(mesh);
6066
6164
  }).catch(reject);
6067
6165
  });
@@ -6073,6 +6171,29 @@ MeshLoader = __decorate([
6073
6171
  "mesh"
6074
6172
  ])
6075
6173
  ], MeshLoader);
6174
+ var MeshContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
6175
+ _inherits(MeshContentRestorer, ContentRestorer);
6176
+ function MeshContentRestorer(resource, url, requestConfig) {
6177
+ var _this;
6178
+ _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
6179
+ return _this;
6180
+ }
6181
+ var _proto = MeshContentRestorer.prototype;
6182
+ _proto.restoreContent = function restoreContent() {
6183
+ var _this = this;
6184
+ var resource = this.resource;
6185
+ var engine = resource.engine;
6186
+ return new engineCore.AssetPromise(function(resolve, reject) {
6187
+ engine.resourceManager// @ts-ignore
6188
+ ._request(_this.url, _this.requestConfig).then(function(data) {
6189
+ return decode(data, engine, resource);
6190
+ }).then(function(mesh) {
6191
+ resolve(mesh);
6192
+ }).catch(reject);
6193
+ });
6194
+ };
6195
+ return MeshContentRestorer;
6196
+ }(engineCore.ContentRestorer);
6076
6197
 
6077
6198
  var PrimitiveMeshLoader = /*#__PURE__*/ function(Loader) {
6078
6199
  _inherits(PrimitiveMeshLoader, Loader);