@galacean/engine-loader 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.
@@ -285,11 +285,201 @@ var FileHeader = /*#__PURE__*/ function() {
285
285
  return FileHeader;
286
286
  }();
287
287
 
288
+ var ComponentMap = {
289
+ Transform: miniprogram.Transform,
290
+ Animator: miniprogram.Animator,
291
+ DirectLight: miniprogram.DirectLight,
292
+ Camera: miniprogram.Camera,
293
+ MeshRenderer: miniprogram.MeshRenderer,
294
+ ParticleRenderer: miniprogram.ParticleRenderer,
295
+ PointLight: miniprogram.PointLight,
296
+ SpotLight: miniprogram.SpotLight,
297
+ Script: miniprogram.Script,
298
+ SpriteMask: miniprogram.SpriteMask,
299
+ SpriteRenderer: miniprogram.SpriteRenderer,
300
+ TextRenderer: miniprogram.TextRenderer
301
+ };
302
+
303
+ exports.InterpolableValueType = void 0;
304
+ (function(InterpolableValueType) {
305
+ InterpolableValueType[InterpolableValueType["Float"] = 0] = "Float";
306
+ InterpolableValueType[InterpolableValueType["FloatArray"] = 1] = "FloatArray";
307
+ InterpolableValueType[InterpolableValueType["Vector2"] = 2] = "Vector2";
308
+ InterpolableValueType[InterpolableValueType["Vector3"] = 3] = "Vector3";
309
+ InterpolableValueType[InterpolableValueType["Vector4"] = 4] = "Vector4";
310
+ InterpolableValueType[InterpolableValueType["Quaternion"] = 5] = "Quaternion";
311
+ InterpolableValueType[InterpolableValueType["Color"] = 6] = "Color";
312
+ InterpolableValueType[InterpolableValueType["Array"] = 7] = "Array";
313
+ InterpolableValueType[InterpolableValueType["Boolean"] = 8] = "Boolean";
314
+ InterpolableValueType[InterpolableValueType["Rect"] = 9] = "Rect";
315
+ InterpolableValueType[InterpolableValueType["ReferResource"] = 10] = "ReferResource";
316
+ })(exports.InterpolableValueType || (exports.InterpolableValueType = {}));
317
+ exports.AnimationClipDecoder = /*#__PURE__*/ function() {
318
+ function AnimationClipDecoder() {}
319
+ AnimationClipDecoder.decode = function decode(engine, bufferReader) {
320
+ return new Promise(function(resolve) {
321
+ var name = bufferReader.nextStr();
322
+ var clip = new miniprogram.AnimationClip(name);
323
+ var eventsLen = bufferReader.nextUint16();
324
+ for(var i = 0; i < eventsLen; ++i){
325
+ var event = new miniprogram.AnimationEvent();
326
+ event.time = bufferReader.nextFloat32();
327
+ event.functionName = bufferReader.nextStr();
328
+ event.parameter = JSON.parse(bufferReader.nextStr()).val;
329
+ clip.addEvent(event);
330
+ }
331
+ var curveBindingsLen = bufferReader.nextUint16();
332
+ for(var i1 = 0; i1 < curveBindingsLen; ++i1){
333
+ var relativePath = bufferReader.nextStr();
334
+ var componentStr = bufferReader.nextStr();
335
+ var componentType = ComponentMap[componentStr];
336
+ var property = bufferReader.nextStr();
337
+ var curve = void 0;
338
+ var interpolation = bufferReader.nextUint8();
339
+ var keysLen = bufferReader.nextUint16();
340
+ var curveType = bufferReader.nextStr();
341
+ switch(curveType){
342
+ case "AnimationFloatCurve":
343
+ {
344
+ curve = new miniprogram.AnimationFloatCurve();
345
+ curve.interpolation = interpolation;
346
+ for(var j = 0; j < keysLen; ++j){
347
+ var keyframe = new miniprogram.Keyframe();
348
+ keyframe.time = bufferReader.nextFloat32();
349
+ keyframe.value = bufferReader.nextFloat32();
350
+ keyframe.inTangent = bufferReader.nextFloat32();
351
+ keyframe.outTangent = bufferReader.nextFloat32();
352
+ curve.addKey(keyframe);
353
+ }
354
+ break;
355
+ }
356
+ case "AnimationArrayCurve":
357
+ {
358
+ curve = new miniprogram.AnimationArrayCurve();
359
+ curve.interpolation = interpolation;
360
+ for(var j1 = 0; j1 < keysLen; ++j1){
361
+ var keyframe1 = new miniprogram.Keyframe();
362
+ keyframe1.time = bufferReader.nextFloat32();
363
+ var len = bufferReader.nextUint16();
364
+ keyframe1.value = Array.from(bufferReader.nextFloat32Array(len));
365
+ keyframe1.inTangent = Array.from(bufferReader.nextFloat32Array(len));
366
+ keyframe1.outTangent = Array.from(bufferReader.nextFloat32Array(len));
367
+ curve.addKey(keyframe1);
368
+ }
369
+ break;
370
+ }
371
+ case "AnimationFloatArrayCurve":
372
+ {
373
+ curve = new miniprogram.AnimationFloatArrayCurve();
374
+ curve.interpolation = interpolation;
375
+ for(var j2 = 0; j2 < keysLen; ++j2){
376
+ var keyframe2 = new miniprogram.Keyframe();
377
+ keyframe2.time = bufferReader.nextFloat32();
378
+ var len1 = bufferReader.nextUint16();
379
+ keyframe2.value = bufferReader.nextFloat32Array(len1);
380
+ keyframe2.inTangent = Array.from(bufferReader.nextFloat32Array(len1));
381
+ keyframe2.outTangent = Array.from(bufferReader.nextFloat32Array(len1));
382
+ curve.addKey(keyframe2);
383
+ }
384
+ break;
385
+ }
386
+ case "AnimationVector2Curve":
387
+ {
388
+ curve = new miniprogram.AnimationVector2Curve();
389
+ curve.interpolation = interpolation;
390
+ for(var j3 = 0; j3 < keysLen; ++j3){
391
+ var keyframe3 = new miniprogram.Keyframe();
392
+ keyframe3.time = bufferReader.nextFloat32();
393
+ keyframe3.value = new miniprogram$1.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
394
+ keyframe3.inTangent = new miniprogram$1.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
395
+ keyframe3.outTangent = new miniprogram$1.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
396
+ curve.addKey(keyframe3);
397
+ }
398
+ break;
399
+ }
400
+ case "AnimationVector3Curve":
401
+ {
402
+ curve = new miniprogram.AnimationVector3Curve();
403
+ curve.interpolation = interpolation;
404
+ for(var j4 = 0; j4 < keysLen; ++j4){
405
+ var keyframe4 = new miniprogram.Keyframe();
406
+ keyframe4.time = bufferReader.nextFloat32();
407
+ keyframe4.value = new miniprogram$1.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
408
+ keyframe4.inTangent = new miniprogram$1.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
409
+ keyframe4.outTangent = new miniprogram$1.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
410
+ curve.addKey(keyframe4);
411
+ }
412
+ break;
413
+ }
414
+ case "AnimationVector4Curve":
415
+ {
416
+ curve = new miniprogram.AnimationVector4Curve();
417
+ curve.interpolation = interpolation;
418
+ var keyframe5 = new miniprogram.Keyframe();
419
+ keyframe5.time = bufferReader.nextFloat32();
420
+ keyframe5.value = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
421
+ keyframe5.inTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
422
+ keyframe5.outTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
423
+ curve.addKey(keyframe5);
424
+ break;
425
+ }
426
+ case "AnimationColorCurve":
427
+ {
428
+ curve = new miniprogram.AnimationColorCurve();
429
+ curve.interpolation = interpolation;
430
+ for(var j5 = 0; j5 < keysLen; ++j5){
431
+ var keyframe6 = new miniprogram.Keyframe();
432
+ keyframe6.time = bufferReader.nextFloat32();
433
+ keyframe6.value = new miniprogram$1.Color(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
434
+ keyframe6.inTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
435
+ keyframe6.outTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
436
+ curve.addKey(keyframe6);
437
+ }
438
+ break;
439
+ }
440
+ case "AnimationQuaternionCurve":
441
+ {
442
+ curve = new miniprogram.AnimationQuaternionCurve();
443
+ curve.interpolation = interpolation;
444
+ for(var j6 = 0; j6 < keysLen; ++j6){
445
+ var keyframe7 = new miniprogram.Keyframe();
446
+ keyframe7.time = bufferReader.nextFloat32();
447
+ keyframe7.value = new miniprogram$1.Quaternion(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
448
+ keyframe7.inTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
449
+ keyframe7.outTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
450
+ curve.addKey(keyframe7);
451
+ }
452
+ break;
453
+ }
454
+ case "AnimationRefCurve":
455
+ {
456
+ curve = new miniprogram.AnimationRefCurve();
457
+ curve.interpolation = interpolation;
458
+ for(var j7 = 0; j7 < keysLen; ++j7){
459
+ var keyframe8 = new miniprogram.Keyframe();
460
+ keyframe8.time = bufferReader.nextFloat32();
461
+ keyframe8.value = JSON.parse(bufferReader.nextStr());
462
+ curve.addKey(keyframe8);
463
+ }
464
+ break;
465
+ }
466
+ }
467
+ clip.addCurveBinding(relativePath, componentType, property, curve);
468
+ }
469
+ resolve(clip);
470
+ });
471
+ };
472
+ return AnimationClipDecoder;
473
+ }();
474
+ exports.AnimationClipDecoder = __decorate([
475
+ decoder("AnimationClip")
476
+ ], exports.AnimationClipDecoder);
477
+
288
478
  exports.MeshDecoder = /*#__PURE__*/ function() {
289
479
  function MeshDecoder() {}
290
- MeshDecoder.decode = function decode(engine, bufferReader) {
480
+ MeshDecoder.decode = function decode(engine, bufferReader, restoredMesh) {
291
481
  return new Promise(function(resolve) {
292
- var modelMesh = new miniprogram.ModelMesh(engine);
482
+ var modelMesh = restoredMesh || new miniprogram.ModelMesh(engine);
293
483
  var jsonDataString = bufferReader.nextStr();
294
484
  var encodedMeshData = JSON.parse(jsonDataString);
295
485
  // @ts-ignore Vector3 is not compatible with {x: number, y: number, z: number}.
@@ -419,80 +609,22 @@ function float32ArrayToVector2(float32Array, vertexCount) {
419
609
  return array;
420
610
  }
421
611
 
422
- exports.Texture2DDecoder = /*#__PURE__*/ function() {
423
- function Texture2DDecoder() {}
424
- Texture2DDecoder.decode = function decode(engine, bufferReader) {
425
- return new Promise(function(resolve, reject) {
426
- var objectId = bufferReader.nextStr();
427
- var mipmap = !!bufferReader.nextUint8();
428
- var filterMode = bufferReader.nextUint8();
429
- var anisoLevel = bufferReader.nextUint8();
430
- var wrapModeU = bufferReader.nextUint8();
431
- var wrapModeV = bufferReader.nextUint8();
432
- var format = bufferReader.nextUint8();
433
- var width = bufferReader.nextUint16();
434
- var height = bufferReader.nextUint16();
435
- var isPixelBuffer = bufferReader.nextUint8();
436
- var mipCount = bufferReader.nextUint8();
437
- var imagesData = bufferReader.nextImagesData(mipCount);
438
- var texture2D = new miniprogram.Texture2D(engine, width, height, format, mipmap);
439
- texture2D.filterMode = filterMode;
440
- texture2D.anisoLevel = anisoLevel;
441
- texture2D.wrapModeU = wrapModeU;
442
- texture2D.wrapModeV = wrapModeV;
443
- if (isPixelBuffer) {
444
- var pixelBuffer = imagesData[0];
445
- texture2D.setPixelBuffer(pixelBuffer);
446
- if (mipmap) {
447
- texture2D.generateMipmaps();
448
- for(var i = 1; i < mipCount; i++){
449
- var pixelBuffer1 = imagesData[i];
450
- texture2D.setPixelBuffer(pixelBuffer1, i);
451
- }
452
- }
453
- // @ts-ignore
454
- engine.resourceManager._objectPool[objectId] = texture2D;
455
- resolve(texture2D);
456
- } else {
457
- var blob = new engineMiniprogramAdapter.window.Blob([
458
- imagesData[0]
459
- ]);
460
- var img = new engineMiniprogramAdapter.Image();
461
- img.onload = function() {
462
- texture2D.setImageSource(img);
463
- var completedCount = 0;
464
- var onComplete = function() {
465
- completedCount++;
466
- if (completedCount >= mipCount) {
467
- resolve(texture2D);
468
- }
469
- };
470
- onComplete();
471
- if (mipmap) {
472
- var _loop = function(i) {
473
- var blob = new engineMiniprogramAdapter.window.Blob([
474
- imagesData[i]
475
- ]);
476
- var img = new engineMiniprogramAdapter.Image();
477
- img.onload = function() {
478
- texture2D.setImageSource(img, i);
479
- onComplete();
480
- };
481
- img.src = engineMiniprogramAdapter.URL.createObjectURL(blob);
482
- };
483
- texture2D.generateMipmaps();
484
- for(var i = 1; i < mipCount; i++)_loop(i);
485
- }
486
- };
487
- img.src = engineMiniprogramAdapter.URL.createObjectURL(blob);
612
+ var PrefabParser = /*#__PURE__*/ function() {
613
+ function PrefabParser() {}
614
+ PrefabParser.parseChildren = function parseChildren(entitiesConfig, entities, parentId) {
615
+ var children = entitiesConfig.get(parentId).children;
616
+ if (children && children.length > 0) {
617
+ var parent = entities.get(parentId);
618
+ for(var i = 0; i < children.length; i++){
619
+ var childId = children[i];
620
+ var entity = entities.get(childId);
621
+ parent.addChild(entity);
622
+ this.parseChildren(entitiesConfig, entities, childId);
488
623
  }
489
- });
624
+ }
490
625
  };
491
- return Texture2DDecoder;
626
+ return PrefabParser;
492
627
  }();
493
- exports.Texture2DDecoder = __decorate([
494
- decoder("Texture2D")
495
- ], exports.Texture2DDecoder);
496
628
 
497
629
  function _is_native_reflect_construct() {
498
630
  if (typeof Reflect === "undefined" || !Reflect.construct) return false;
@@ -656,236 +788,166 @@ var ReflectionParser = /*#__PURE__*/ function() {
656
788
  return Promise.resolve(entity);
657
789
  }
658
790
  };
659
- ReflectionParser.registerCustomParseComponent = function registerCustomParseComponent(componentType, handle) {
660
- this.customParseComponentHandles[componentType] = handle;
661
- };
662
- ReflectionParser._isClass = function _isClass(value) {
663
- return value["class"] != undefined;
664
- };
665
- ReflectionParser._isAssetRef = function _isAssetRef(value) {
666
- return value["refId"] != undefined;
667
- };
668
- ReflectionParser._isEntityRef = function _isEntityRef(value) {
669
- return value["entityId"] != undefined;
670
- };
671
- return ReflectionParser;
672
- }();
673
- (function() {
674
- ReflectionParser.customParseComponentHandles = new Map();
675
- })();
676
-
677
- var PrefabParser = /*#__PURE__*/ function() {
678
- function PrefabParser() {}
679
- PrefabParser.parseChildren = function parseChildren(entitiesConfig, entities, parentId) {
680
- var children = entitiesConfig.get(parentId).children;
681
- if (children && children.length > 0) {
682
- var parent = entities.get(parentId);
683
- for(var i = 0; i < children.length; i++){
684
- var childId = children[i];
685
- var entity = entities.get(childId);
686
- parent.addChild(entity);
687
- this.parseChildren(entitiesConfig, entities, childId);
688
- }
689
- }
690
- };
691
- return PrefabParser;
692
- }();
693
-
694
- var ComponentMap = {
695
- Transform: miniprogram.Transform,
696
- Animator: miniprogram.Animator,
697
- DirectLight: miniprogram.DirectLight,
698
- Camera: miniprogram.Camera,
699
- MeshRenderer: miniprogram.MeshRenderer,
700
- ParticleRenderer: miniprogram.ParticleRenderer,
701
- PointLight: miniprogram.PointLight,
702
- SpotLight: miniprogram.SpotLight,
703
- Script: miniprogram.Script,
704
- SpriteMask: miniprogram.SpriteMask,
705
- SpriteRenderer: miniprogram.SpriteRenderer,
706
- TextRenderer: miniprogram.TextRenderer
707
- };
708
-
709
- exports.InterpolableValueType = void 0;
710
- (function(InterpolableValueType) {
711
- InterpolableValueType[InterpolableValueType["Float"] = 0] = "Float";
712
- InterpolableValueType[InterpolableValueType["FloatArray"] = 1] = "FloatArray";
713
- InterpolableValueType[InterpolableValueType["Vector2"] = 2] = "Vector2";
714
- InterpolableValueType[InterpolableValueType["Vector3"] = 3] = "Vector3";
715
- InterpolableValueType[InterpolableValueType["Vector4"] = 4] = "Vector4";
716
- InterpolableValueType[InterpolableValueType["Quaternion"] = 5] = "Quaternion";
717
- InterpolableValueType[InterpolableValueType["Color"] = 6] = "Color";
718
- InterpolableValueType[InterpolableValueType["Array"] = 7] = "Array";
719
- InterpolableValueType[InterpolableValueType["Boolean"] = 8] = "Boolean";
720
- InterpolableValueType[InterpolableValueType["Rect"] = 9] = "Rect";
721
- InterpolableValueType[InterpolableValueType["ReferResource"] = 10] = "ReferResource";
722
- })(exports.InterpolableValueType || (exports.InterpolableValueType = {}));
723
- exports.AnimationClipDecoder = /*#__PURE__*/ function() {
724
- function AnimationClipDecoder() {}
725
- AnimationClipDecoder.decode = function decode(engine, bufferReader) {
726
- return new Promise(function(resolve) {
727
- var name = bufferReader.nextStr();
728
- var clip = new miniprogram.AnimationClip(name);
729
- var eventsLen = bufferReader.nextUint16();
730
- for(var i = 0; i < eventsLen; ++i){
731
- var event = new miniprogram.AnimationEvent();
732
- event.time = bufferReader.nextFloat32();
733
- event.functionName = bufferReader.nextStr();
734
- event.parameter = JSON.parse(bufferReader.nextStr()).val;
735
- clip.addEvent(event);
736
- }
737
- var curveBindingsLen = bufferReader.nextUint16();
738
- for(var i1 = 0; i1 < curveBindingsLen; ++i1){
739
- var relativePath = bufferReader.nextStr();
740
- var componentStr = bufferReader.nextStr();
741
- var componentType = ComponentMap[componentStr];
742
- var property = bufferReader.nextStr();
743
- var curve = void 0;
744
- var interpolation = bufferReader.nextUint8();
745
- var keysLen = bufferReader.nextUint16();
746
- var curveType = bufferReader.nextStr();
747
- switch(curveType){
748
- case "AnimationFloatCurve":
749
- {
750
- curve = new miniprogram.AnimationFloatCurve();
751
- curve.interpolation = interpolation;
752
- for(var j = 0; j < keysLen; ++j){
753
- var keyframe = new miniprogram.Keyframe();
754
- keyframe.time = bufferReader.nextFloat32();
755
- keyframe.value = bufferReader.nextFloat32();
756
- keyframe.inTangent = bufferReader.nextFloat32();
757
- keyframe.outTangent = bufferReader.nextFloat32();
758
- curve.addKey(keyframe);
759
- }
760
- break;
761
- }
762
- case "AnimationArrayCurve":
763
- {
764
- curve = new miniprogram.AnimationArrayCurve();
765
- curve.interpolation = interpolation;
766
- for(var j1 = 0; j1 < keysLen; ++j1){
767
- var keyframe1 = new miniprogram.Keyframe();
768
- keyframe1.time = bufferReader.nextFloat32();
769
- var len = bufferReader.nextUint16();
770
- keyframe1.value = Array.from(bufferReader.nextFloat32Array(len));
771
- keyframe1.inTangent = Array.from(bufferReader.nextFloat32Array(len));
772
- keyframe1.outTangent = Array.from(bufferReader.nextFloat32Array(len));
773
- curve.addKey(keyframe1);
774
- }
775
- break;
776
- }
777
- case "AnimationFloatArrayCurve":
778
- {
779
- curve = new miniprogram.AnimationFloatArrayCurve();
780
- curve.interpolation = interpolation;
781
- for(var j2 = 0; j2 < keysLen; ++j2){
782
- var keyframe2 = new miniprogram.Keyframe();
783
- keyframe2.time = bufferReader.nextFloat32();
784
- var len1 = bufferReader.nextUint16();
785
- keyframe2.value = bufferReader.nextFloat32Array(len1);
786
- keyframe2.inTangent = Array.from(bufferReader.nextFloat32Array(len1));
787
- keyframe2.outTangent = Array.from(bufferReader.nextFloat32Array(len1));
788
- curve.addKey(keyframe2);
789
- }
790
- break;
791
- }
792
- case "AnimationVector2Curve":
793
- {
794
- curve = new miniprogram.AnimationVector2Curve();
795
- curve.interpolation = interpolation;
796
- for(var j3 = 0; j3 < keysLen; ++j3){
797
- var keyframe3 = new miniprogram.Keyframe();
798
- keyframe3.time = bufferReader.nextFloat32();
799
- keyframe3.value = new miniprogram$1.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
800
- keyframe3.inTangent = new miniprogram$1.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
801
- keyframe3.outTangent = new miniprogram$1.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
802
- curve.addKey(keyframe3);
803
- }
804
- break;
805
- }
806
- case "AnimationVector3Curve":
807
- {
808
- curve = new miniprogram.AnimationVector3Curve();
809
- curve.interpolation = interpolation;
810
- for(var j4 = 0; j4 < keysLen; ++j4){
811
- var keyframe4 = new miniprogram.Keyframe();
812
- keyframe4.time = bufferReader.nextFloat32();
813
- keyframe4.value = new miniprogram$1.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
814
- keyframe4.inTangent = new miniprogram$1.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
815
- keyframe4.outTangent = new miniprogram$1.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
816
- curve.addKey(keyframe4);
817
- }
818
- break;
819
- }
820
- case "AnimationVector4Curve":
821
- {
822
- curve = new miniprogram.AnimationVector4Curve();
823
- curve.interpolation = interpolation;
824
- var keyframe5 = new miniprogram.Keyframe();
825
- keyframe5.time = bufferReader.nextFloat32();
826
- keyframe5.value = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
827
- keyframe5.inTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
828
- keyframe5.outTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
829
- curve.addKey(keyframe5);
830
- break;
831
- }
832
- case "AnimationColorCurve":
833
- {
834
- curve = new miniprogram.AnimationColorCurve();
835
- curve.interpolation = interpolation;
836
- for(var j5 = 0; j5 < keysLen; ++j5){
837
- var keyframe6 = new miniprogram.Keyframe();
838
- keyframe6.time = bufferReader.nextFloat32();
839
- keyframe6.value = new miniprogram$1.Color(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
840
- keyframe6.inTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
841
- keyframe6.outTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
842
- curve.addKey(keyframe6);
843
- }
844
- break;
845
- }
846
- case "AnimationQuaternionCurve":
847
- {
848
- curve = new miniprogram.AnimationQuaternionCurve();
849
- curve.interpolation = interpolation;
850
- for(var j6 = 0; j6 < keysLen; ++j6){
851
- var keyframe7 = new miniprogram.Keyframe();
852
- keyframe7.time = bufferReader.nextFloat32();
853
- keyframe7.value = new miniprogram$1.Quaternion(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
854
- keyframe7.inTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
855
- keyframe7.outTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
856
- curve.addKey(keyframe7);
857
- }
858
- break;
859
- }
860
- case "AnimationRefCurve":
861
- {
862
- curve = new miniprogram.AnimationRefCurve();
863
- curve.interpolation = interpolation;
864
- for(var j7 = 0; j7 < keysLen; ++j7){
865
- var keyframe8 = new miniprogram.Keyframe();
866
- keyframe8.time = bufferReader.nextFloat32();
867
- keyframe8.value = JSON.parse(bufferReader.nextStr());
868
- curve.addKey(keyframe8);
869
- }
870
- break;
871
- }
791
+ ReflectionParser.registerCustomParseComponent = function registerCustomParseComponent(componentType, handle) {
792
+ this.customParseComponentHandles[componentType] = handle;
793
+ };
794
+ ReflectionParser._isClass = function _isClass(value) {
795
+ return value["class"] != undefined;
796
+ };
797
+ ReflectionParser._isAssetRef = function _isAssetRef(value) {
798
+ return value["refId"] != undefined;
799
+ };
800
+ ReflectionParser._isEntityRef = function _isEntityRef(value) {
801
+ return value["entityId"] != undefined;
802
+ };
803
+ return ReflectionParser;
804
+ }();
805
+ (function() {
806
+ ReflectionParser.customParseComponentHandles = new Map();
807
+ })();
808
+
809
+ exports.Texture2DDecoder = /*#__PURE__*/ function() {
810
+ function Texture2DDecoder() {}
811
+ Texture2DDecoder.decode = function decode(engine, bufferReader, restoredTexture) {
812
+ return new Promise(function(resolve, reject) {
813
+ var objectId = bufferReader.nextStr();
814
+ var mipmap = !!bufferReader.nextUint8();
815
+ var filterMode = bufferReader.nextUint8();
816
+ var anisoLevel = bufferReader.nextUint8();
817
+ var wrapModeU = bufferReader.nextUint8();
818
+ var wrapModeV = bufferReader.nextUint8();
819
+ var format = bufferReader.nextUint8();
820
+ var width = bufferReader.nextUint16();
821
+ var height = bufferReader.nextUint16();
822
+ var isPixelBuffer = bufferReader.nextUint8();
823
+ var mipCount = bufferReader.nextUint8();
824
+ var imagesData = bufferReader.nextImagesData(mipCount);
825
+ var texture2D = restoredTexture || new miniprogram.Texture2D(engine, width, height, format, mipmap);
826
+ texture2D.filterMode = filterMode;
827
+ texture2D.anisoLevel = anisoLevel;
828
+ texture2D.wrapModeU = wrapModeU;
829
+ texture2D.wrapModeV = wrapModeV;
830
+ if (isPixelBuffer) {
831
+ var pixelBuffer = imagesData[0];
832
+ texture2D.setPixelBuffer(pixelBuffer);
833
+ if (mipmap) {
834
+ texture2D.generateMipmaps();
835
+ for(var i = 1; i < mipCount; i++){
836
+ var pixelBuffer1 = imagesData[i];
837
+ texture2D.setPixelBuffer(pixelBuffer1, i);
838
+ }
872
839
  }
873
- clip.addCurveBinding(relativePath, componentType, property, curve);
840
+ // @ts-ignore
841
+ engine.resourceManager._objectPool[objectId] = texture2D;
842
+ resolve(texture2D);
843
+ } else {
844
+ var blob = new engineMiniprogramAdapter.window.Blob([
845
+ imagesData[0]
846
+ ]);
847
+ var img = new engineMiniprogramAdapter.Image();
848
+ img.onload = function() {
849
+ texture2D.setImageSource(img);
850
+ var completedCount = 0;
851
+ var onComplete = function() {
852
+ completedCount++;
853
+ if (completedCount >= mipCount) {
854
+ resolve(texture2D);
855
+ }
856
+ };
857
+ onComplete();
858
+ if (mipmap) {
859
+ var _loop = function(i) {
860
+ var blob = new engineMiniprogramAdapter.window.Blob([
861
+ imagesData[i]
862
+ ]);
863
+ var img = new engineMiniprogramAdapter.Image();
864
+ img.onload = function() {
865
+ texture2D.setImageSource(img, i);
866
+ onComplete();
867
+ };
868
+ img.src = engineMiniprogramAdapter.URL.createObjectURL(blob);
869
+ };
870
+ texture2D.generateMipmaps();
871
+ for(var i = 1; i < mipCount; i++)_loop(i);
872
+ }
873
+ };
874
+ img.src = engineMiniprogramAdapter.URL.createObjectURL(blob);
874
875
  }
875
- resolve(clip);
876
876
  });
877
877
  };
878
- return AnimationClipDecoder;
878
+ return Texture2DDecoder;
879
879
  }();
880
- exports.AnimationClipDecoder = __decorate([
881
- decoder("AnimationClip")
882
- ], exports.AnimationClipDecoder);
880
+ exports.Texture2DDecoder = __decorate([
881
+ decoder("Texture2D")
882
+ ], exports.Texture2DDecoder);
883
883
 
884
- exports.SpecularMode = void 0;
885
- (function(SpecularMode) {
886
- SpecularMode["Sky"] = "Sky";
887
- SpecularMode["Custom"] = "Custom";
888
- })(exports.SpecularMode || (exports.SpecularMode = {}));
884
+ exports.EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
885
+ _inherits(EditorTextureLoader, Loader1);
886
+ function EditorTextureLoader() {
887
+ return Loader1.apply(this, arguments);
888
+ }
889
+ var _proto = EditorTextureLoader.prototype;
890
+ _proto.load = function load(item, resourceManager) {
891
+ var _this = this;
892
+ return new miniprogram.AssetPromise(function(resolve, reject) {
893
+ var request = _this.request;
894
+ request(item.url, _extends({}, item, {
895
+ type: "arraybuffer"
896
+ })).then(function(data) {
897
+ decode(data, resourceManager.engine).then(function(texture) {
898
+ resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
899
+ _inherits(_class, ContentRestorer);
900
+ function _class() {
901
+ return ContentRestorer.apply(this, arguments);
902
+ }
903
+ var _proto = _class.prototype;
904
+ _proto.restoreContent = function restoreContent() {
905
+ return request(item.url, _extends({}, item, {
906
+ type: "arraybuffer"
907
+ })).then(function(data) {
908
+ return decode(data, resourceManager.engine, texture);
909
+ });
910
+ };
911
+ return _class;
912
+ }(miniprogram.ContentRestorer))(texture));
913
+ resolve(texture);
914
+ });
915
+ }).catch(reject);
916
+ });
917
+ };
918
+ return EditorTextureLoader;
919
+ }(miniprogram.Loader);
920
+ exports.EditorTextureLoader = __decorate([
921
+ miniprogram.resourceLoader("EditorTexture2D", [
922
+ "prefab"
923
+ ], true)
924
+ ], exports.EditorTextureLoader);
925
+
926
+ exports.MeshLoader = /*#__PURE__*/ function(Loader1) {
927
+ _inherits(MeshLoader, Loader1);
928
+ function MeshLoader() {
929
+ return Loader1.apply(this, arguments);
930
+ }
931
+ var _proto = MeshLoader.prototype;
932
+ _proto.load = function load(item, resourceManager) {
933
+ var _this = this;
934
+ return new miniprogram.AssetPromise(function(resolve, reject) {
935
+ _this.request(item.url, {
936
+ type: "arraybuffer"
937
+ }).then(function(data) {
938
+ decode(data, resourceManager.engine).then(function(mesh) {
939
+ resolve(mesh);
940
+ });
941
+ }).catch(reject);
942
+ });
943
+ };
944
+ return MeshLoader;
945
+ }(miniprogram.Loader);
946
+ exports.MeshLoader = __decorate([
947
+ miniprogram.resourceLoader("Mesh", [
948
+ "prefab"
949
+ ], true)
950
+ ], exports.MeshLoader);
889
951
 
890
952
  function _array_like_to_array(arr, len) {
891
953
  if (len == null || len > arr.length) len = arr.length;
@@ -1042,57 +1104,11 @@ var SceneParserContext = /*#__PURE__*/ function() {
1042
1104
  return SceneParser;
1043
1105
  }();
1044
1106
 
1045
- exports.MeshLoader = /*#__PURE__*/ function(Loader1) {
1046
- _inherits(MeshLoader, Loader1);
1047
- function MeshLoader() {
1048
- return Loader1.apply(this, arguments);
1049
- }
1050
- var _proto = MeshLoader.prototype;
1051
- _proto.load = function load(item, resourceManager) {
1052
- var _this = this;
1053
- return new miniprogram.AssetPromise(function(resolve, reject) {
1054
- _this.request(item.url, {
1055
- type: "arraybuffer"
1056
- }).then(function(data) {
1057
- decode(data, resourceManager.engine).then(function(mesh) {
1058
- resolve(mesh);
1059
- });
1060
- }).catch(reject);
1061
- });
1062
- };
1063
- return MeshLoader;
1064
- }(miniprogram.Loader);
1065
- exports.MeshLoader = __decorate([
1066
- miniprogram.resourceLoader("Mesh", [
1067
- "prefab"
1068
- ], true)
1069
- ], exports.MeshLoader);
1070
-
1071
- exports.EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
1072
- _inherits(EditorTextureLoader, Loader1);
1073
- function EditorTextureLoader() {
1074
- return Loader1.apply(this, arguments);
1075
- }
1076
- var _proto = EditorTextureLoader.prototype;
1077
- _proto.load = function load(item, resourceManager) {
1078
- var _this = this;
1079
- return new miniprogram.AssetPromise(function(resolve, reject) {
1080
- _this.request(item.url, {
1081
- type: "arraybuffer"
1082
- }).then(function(data) {
1083
- decode(data, resourceManager.engine).then(function(texture) {
1084
- resolve(texture);
1085
- });
1086
- }).catch(reject);
1087
- });
1088
- };
1089
- return EditorTextureLoader;
1090
- }(miniprogram.Loader);
1091
- exports.EditorTextureLoader = __decorate([
1092
- miniprogram.resourceLoader("EditorTexture2D", [
1093
- "prefab"
1094
- ], true)
1095
- ], exports.EditorTextureLoader);
1107
+ exports.SpecularMode = void 0;
1108
+ (function(SpecularMode) {
1109
+ SpecularMode["Sky"] = "Sky";
1110
+ SpecularMode["Custom"] = "Custom";
1111
+ })(exports.SpecularMode || (exports.SpecularMode = {}));
1096
1112
 
1097
1113
  /**
1098
1114
  * Decode engine binary resource.
@@ -1100,9 +1116,13 @@ exports.EditorTextureLoader = __decorate([
1100
1116
  * @param engine - engine
1101
1117
  * @returns
1102
1118
  */ function decode(arrayBuffer, engine) {
1119
+ for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
1120
+ args[_key - 2] = arguments[_key];
1121
+ }
1122
+ var _decoderMap_header_type;
1103
1123
  var header = FileHeader.decode(arrayBuffer);
1104
1124
  var bufferReader = new BufferReader(new Uint8Array(arrayBuffer), header.headerLength, header.dataLength);
1105
- return decoderMap[header.type].decode(engine, bufferReader).then(function(object) {
1125
+ return (_decoderMap_header_type = decoderMap[header.type]).decode.apply(_decoderMap_header_type, [].concat(engine, bufferReader, args)).then(function(object) {
1106
1126
  object.name = header.name;
1107
1127
  return object;
1108
1128
  });
@@ -1270,39 +1290,42 @@ BufferLoader = __decorate([
1270
1290
  ], BufferLoader);
1271
1291
 
1272
1292
  var EnvLoader = /*#__PURE__*/ function(Loader1) {
1273
- _inherits(EnvLoader, Loader1);
1274
- function EnvLoader() {
1293
+ _inherits(EnvLoader1, Loader1);
1294
+ function EnvLoader1() {
1275
1295
  return Loader1.apply(this, arguments);
1276
1296
  }
1277
- var _proto = EnvLoader.prototype;
1297
+ var _proto = EnvLoader1.prototype;
1278
1298
  _proto.load = function load(item, resourceManager) {
1279
1299
  var _this = this;
1280
1300
  return new miniprogram.AssetPromise(function(resolve, reject) {
1281
- _this.request(item.url, {
1301
+ var engine = resourceManager.engine;
1302
+ var request = _this.request;
1303
+ request(item.url, _extends({}, item, {
1282
1304
  type: "arraybuffer"
1283
- }).then(function(arraybuffer) {
1284
- var _this;
1285
- var shArray = new Float32Array(arraybuffer, 0, 27);
1286
- var shByteLength = 27 * 4;
1287
- var size = (_this = new Uint16Array(arraybuffer, shByteLength, 1)) == null ? void 0 : _this[0];
1288
- var engine = resourceManager.engine;
1289
- var texture = new miniprogram.TextureCube(engine, size);
1290
- texture.filterMode = miniprogram.TextureFilterMode.Trilinear;
1291
- var mipmapCount = texture.mipmapCount;
1292
- var offset = shByteLength + 2;
1293
- for(var mipLevel = 0; mipLevel < mipmapCount; mipLevel++){
1294
- var mipSize = size >> mipLevel;
1295
- for(var face = 0; face < 6; face++){
1296
- var dataSize = mipSize * mipSize * 4;
1297
- var data = new Uint8Array(arraybuffer, offset, dataSize);
1298
- offset += dataSize;
1299
- texture.setPixelBuffer(miniprogram.TextureCubeFace.PositiveX + face, data, mipLevel);
1305
+ })).then(function(arraybuffer) {
1306
+ var texture = EnvLoader._setTextureByBuffer(engine, arraybuffer);
1307
+ engine.resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
1308
+ _inherits(_class, ContentRestorer);
1309
+ function _class() {
1310
+ return ContentRestorer.apply(this, arguments);
1300
1311
  }
1301
- }
1312
+ var _proto = _class.prototype;
1313
+ _proto.restoreContent = function restoreContent() {
1314
+ return new miniprogram.AssetPromise(function(resolve, reject) {
1315
+ request(item.url, _extends({}, item, {
1316
+ type: "arraybuffer"
1317
+ })).then(function(buffer) {
1318
+ EnvLoader._setTextureByBuffer(engine, buffer, texture);
1319
+ resolve(texture);
1320
+ }).catch(reject);
1321
+ });
1322
+ };
1323
+ return _class;
1324
+ }(miniprogram.ContentRestorer))(texture));
1302
1325
  var ambientLight = new miniprogram.AmbientLight(engine);
1303
1326
  var sh = new miniprogram$1.SphericalHarmonics3();
1304
1327
  ambientLight.diffuseMode = miniprogram.DiffuseMode.SphericalHarmonics;
1305
- sh.copyFromArray(shArray);
1328
+ sh.copyFromArray(new Float32Array(arraybuffer, 0, 27));
1306
1329
  ambientLight.diffuseSphericalHarmonics = sh;
1307
1330
  ambientLight.specularTexture = texture;
1308
1331
  ambientLight.specularTextureDecodeRGBM = true;
@@ -1312,7 +1335,28 @@ var EnvLoader = /*#__PURE__*/ function(Loader1) {
1312
1335
  });
1313
1336
  });
1314
1337
  };
1315
- return EnvLoader;
1338
+ /**
1339
+ * @internal
1340
+ */ EnvLoader1._setTextureByBuffer = function _setTextureByBuffer(engine, buffer, texture) {
1341
+ var _this;
1342
+ var shByteLength = 27 * 4;
1343
+ var size = (_this = new Uint16Array(buffer, shByteLength, 1)) == null ? void 0 : _this[0];
1344
+ texture || (texture = new miniprogram.TextureCube(engine, size));
1345
+ texture.filterMode = miniprogram.TextureFilterMode.Trilinear;
1346
+ var mipmapCount = texture.mipmapCount;
1347
+ var offset = shByteLength + 2;
1348
+ for(var mipLevel = 0; mipLevel < mipmapCount; mipLevel++){
1349
+ var mipSize = size >> mipLevel;
1350
+ for(var face = 0; face < 6; face++){
1351
+ var dataSize = mipSize * mipSize * 4;
1352
+ var data = new Uint8Array(buffer, offset, dataSize);
1353
+ offset += dataSize;
1354
+ texture.setPixelBuffer(miniprogram.TextureCubeFace.PositiveX + face, data, mipLevel);
1355
+ }
1356
+ }
1357
+ return texture;
1358
+ };
1359
+ return EnvLoader1;
1316
1360
  }(miniprogram.Loader);
1317
1361
  EnvLoader = __decorate([
1318
1362
  miniprogram.resourceLoader(miniprogram.AssetType.Env, [
@@ -2032,28 +2076,29 @@ function registerGLTFParser(pipeline) {
2032
2076
  BIN: 0x004e4942
2033
2077
  };
2034
2078
  var dataView = new DataView(originBuffer);
2035
- // read header
2079
+ // Read header
2036
2080
  var header = {
2037
2081
  magic: dataView.getUint32(0, true),
2038
2082
  version: dataView.getUint32(UINT32_LENGTH, true),
2039
2083
  length: dataView.getUint32(2 * UINT32_LENGTH, true)
2040
2084
  };
2085
+ // Return the original buffer if it is not a glb
2041
2086
  if (header.magic !== GLB_HEADER_MAGIC) {
2042
2087
  return {
2043
2088
  originBuffer: originBuffer
2044
2089
  };
2045
2090
  }
2046
- // read main data
2091
+ // Read main data
2047
2092
  var chunkLength = dataView.getUint32(GLB_HEADER_LENGTH, true);
2048
2093
  var chunkType = dataView.getUint32(GLB_HEADER_LENGTH + UINT32_LENGTH, true);
2049
- // read glTF json
2094
+ // Read glTF json
2050
2095
  if (chunkType !== GLB_CHUNK_TYPES.JSON) {
2051
2096
  console.error("Invalid glb chunk type. Expected 0x4E4F534A, found 0x" + chunkType.toString(16));
2052
2097
  return null;
2053
2098
  }
2054
2099
  var glTFData = new Uint8Array(originBuffer, GLB_HEADER_LENGTH + 2 * UINT32_LENGTH, chunkLength);
2055
2100
  var glTF = JSON.parse(miniprogram.Utils.decodeText(glTFData));
2056
- // read all buffers
2101
+ // Read all buffers
2057
2102
  var buffers = [];
2058
2103
  var byteOffset = GLB_HEADER_LENGTH + 2 * UINT32_LENGTH + chunkLength;
2059
2104
  var restoreGLBBufferSlice = context.contentRestorer.glbBufferSlices;
@@ -2944,13 +2989,39 @@ exports.KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
2944
2989
  /**
2945
2990
  * @internal
2946
2991
  */ _proto.load = function load(item, resourceManager) {
2947
- return this.request(item.url, {
2948
- type: "arraybuffer"
2949
- }).then(function(buffer) {
2950
- return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
2951
- var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
2952
- return exports.KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params);
2953
- });
2992
+ var _this = this;
2993
+ return new miniprogram.AssetPromise(function(resolve, reject) {
2994
+ var request = _this.request;
2995
+ request(item.url, _extends({}, item, {
2996
+ type: "arraybuffer"
2997
+ })).then(function(buffer) {
2998
+ return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
2999
+ var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
3000
+ return exports.KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params);
3001
+ }).then(function(texture) {
3002
+ resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
3003
+ _inherits(_class, ContentRestorer);
3004
+ function _class() {
3005
+ return ContentRestorer.apply(this, arguments);
3006
+ }
3007
+ var _proto = _class.prototype;
3008
+ _proto.restoreContent = function restoreContent() {
3009
+ return new miniprogram.AssetPromise(function(resolve, reject) {
3010
+ request(item.url, _extends({}, item, {
3011
+ type: "arraybuffer"
3012
+ })).then(function(buffer) {
3013
+ return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
3014
+ var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
3015
+ return exports.KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params, texture);
3016
+ });
3017
+ }).then(resolve).catch(reject);
3018
+ });
3019
+ };
3020
+ return _class;
3021
+ }(miniprogram.ContentRestorer))(texture));
3022
+ resolve(texture);
3023
+ });
3024
+ }).catch(reject);
2954
3025
  });
2955
3026
  };
2956
3027
  /**
@@ -2989,7 +3060,7 @@ exports.KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
2989
3060
  };
2990
3061
  });
2991
3062
  };
2992
- /** @internal */ KTX2Loader1._createTextureByBuffer = function _createTextureByBuffer(engine, transcodeResult, targetFormat, params) {
3063
+ /** @internal */ KTX2Loader1._createTextureByBuffer = function _createTextureByBuffer(engine, transcodeResult, targetFormat, params, restoredTexture) {
2993
3064
  var width = transcodeResult.width, height = transcodeResult.height, faces = transcodeResult.faces;
2994
3065
  var faceCount = faces.length;
2995
3066
  var mipmaps = faces[0];
@@ -2997,13 +3068,13 @@ exports.KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
2997
3068
  var engineFormat = this._getEngineTextureFormat(targetFormat, transcodeResult);
2998
3069
  var texture;
2999
3070
  if (faceCount !== 6) {
3000
- texture = new miniprogram.Texture2D(engine, width, height, engineFormat, mipmap);
3071
+ texture = restoredTexture || new miniprogram.Texture2D(engine, width, height, engineFormat, mipmap);
3001
3072
  for(var mipLevel = 0; mipLevel < mipmaps.length; mipLevel++){
3002
3073
  var data = mipmaps[mipLevel].data;
3003
3074
  texture.setPixelBuffer(data, mipLevel);
3004
3075
  }
3005
3076
  } else {
3006
- texture = new miniprogram.TextureCube(engine, height, engineFormat, mipmap);
3077
+ texture = restoredTexture || new miniprogram.TextureCube(engine, height, engineFormat, mipmap);
3007
3078
  for(var i = 0; i < faces.length; i++){
3008
3079
  var faceData = faces[i];
3009
3080
  for(var mipLevel1 = 0; mipLevel1 < mipmaps.length; mipLevel1++){
@@ -3482,8 +3553,13 @@ exports.GLTFSchemaParser = /*#__PURE__*/ function(GLTFParser1) {
3482
3553
  type: "arraybuffer"
3483
3554
  };
3484
3555
  return miniprogram.request(url, requestConfig).then(function(buffer) {
3485
- restoreBufferRequests.push(new BufferRequestInfo(url, requestConfig));
3486
- return GLTFUtils.parseGLB(context, buffer);
3556
+ var _parseResult;
3557
+ var parseResult = GLTFUtils.parseGLB(context, buffer);
3558
+ // If the buffer is a GLB file, we need to restore the buffer data
3559
+ if ((_parseResult = parseResult) == null ? void 0 : _parseResult.glTF) {
3560
+ restoreBufferRequests.push(new BufferRequestInfo(url, requestConfig));
3561
+ }
3562
+ return parseResult;
3487
3563
  }).then(function(result) {
3488
3564
  var _result;
3489
3565
  if ((_result = result) == null ? void 0 : _result.glTF) {
@@ -4515,23 +4591,48 @@ var HDRLoader = (_HDRLoader = /*#__PURE__*/ function(Loader1) {
4515
4591
  var _this = this;
4516
4592
  return new miniprogram.AssetPromise(function(resolve, reject) {
4517
4593
  var engine = resourceManager.engine;
4518
- _this.request(item.url, {
4594
+ var request = _this.request;
4595
+ _this.request(item.url, _extends({}, item, {
4519
4596
  type: "arraybuffer"
4520
- }).then(function(buffer) {
4521
- var uint8Array = new Uint8Array(buffer);
4522
- var _HDRLoader__parseHeader = HDRLoader._parseHeader(uint8Array), width = _HDRLoader__parseHeader.width, height = _HDRLoader__parseHeader.height, dataPosition = _HDRLoader__parseHeader.dataPosition;
4523
- var pixels = HDRLoader._readPixels(uint8Array.subarray(dataPosition), width, height);
4524
- var cubeSize = height >> 1;
4525
- var cubeMapData = HDRLoader._convertToCubemap(pixels, width, height, cubeSize);
4526
- var texture = new miniprogram.TextureCube(engine, cubeSize);
4527
- for(var faceIndex = 0; faceIndex < 6; faceIndex++){
4528
- texture.setPixelBuffer(miniprogram.TextureCubeFace.PositiveX + faceIndex, cubeMapData[faceIndex], 0);
4529
- }
4530
- texture.generateMipmaps();
4597
+ })).then(function(buffer) {
4598
+ var texture = HDRLoader._setTextureByBuffer(engine, buffer);
4599
+ engine.resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
4600
+ _inherits(_class, ContentRestorer);
4601
+ function _class() {
4602
+ return ContentRestorer.apply(this, arguments);
4603
+ }
4604
+ var _proto = _class.prototype;
4605
+ _proto.restoreContent = function restoreContent() {
4606
+ return new miniprogram.AssetPromise(function(resolve, reject) {
4607
+ request(item.url, _extends({}, item, {
4608
+ type: "arraybuffer"
4609
+ })).then(function(buffer) {
4610
+ HDRLoader._setTextureByBuffer(engine, buffer, texture);
4611
+ resolve(texture);
4612
+ }).catch(reject);
4613
+ });
4614
+ };
4615
+ return _class;
4616
+ }(miniprogram.ContentRestorer))(texture));
4531
4617
  resolve(texture);
4532
4618
  }).catch(reject);
4533
4619
  });
4534
4620
  };
4621
+ /**
4622
+ * @internal
4623
+ */ HDRLoader1._setTextureByBuffer = function _setTextureByBuffer(engine, buffer, texture) {
4624
+ var bufferArray = new Uint8Array(buffer);
4625
+ var _HDRLoader__parseHeader = HDRLoader._parseHeader(bufferArray), width = _HDRLoader__parseHeader.width, height = _HDRLoader__parseHeader.height, dataPosition = _HDRLoader__parseHeader.dataPosition;
4626
+ var cubeSize = height >> 1;
4627
+ texture || (texture = new miniprogram.TextureCube(engine, cubeSize));
4628
+ var pixels = HDRLoader._readPixels(bufferArray.subarray(dataPosition), width, height);
4629
+ var cubeMapData = HDRLoader._convertToCubemap(pixels, width, height, cubeSize);
4630
+ for(var faceIndex = 0; faceIndex < 6; faceIndex++){
4631
+ texture.setPixelBuffer(miniprogram.TextureCubeFace.PositiveX + faceIndex, cubeMapData[faceIndex], 0);
4632
+ }
4633
+ texture.generateMipmaps();
4634
+ return texture;
4635
+ };
4535
4636
  HDRLoader1._convertToCubemap = function _convertToCubemap(pixels, inputWidth, inputHeight, size) {
4536
4637
  if (!pixels) {
4537
4638
  throw "ConvertPanoramaToCubemap: input cannot be null";
@@ -5069,7 +5170,8 @@ var KTXLoader = /*#__PURE__*/ function(Loader1) {
5069
5170
  _proto.load = function load(item, resourceManager) {
5070
5171
  var _this = this;
5071
5172
  return new miniprogram.AssetPromise(function(resolve, reject) {
5072
- _this.request(item.url, _extends({}, item, {
5173
+ var request = _this.request;
5174
+ request(item.url, _extends({}, item, {
5073
5175
  type: "arraybuffer"
5074
5176
  })).then(function(bin) {
5075
5177
  var parsedData = parseSingleKTX(bin);
@@ -5080,6 +5182,32 @@ var KTXLoader = /*#__PURE__*/ function(Loader1) {
5080
5182
  var _mipmaps_miplevel = mipmaps[miplevel], width1 = _mipmaps_miplevel.width, height1 = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
5081
5183
  texture.setPixelBuffer(data, miplevel, 0, 0, width1, height1);
5082
5184
  }
5185
+ resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
5186
+ _inherits(_class, ContentRestorer);
5187
+ function _class() {
5188
+ return ContentRestorer.apply(this, arguments);
5189
+ }
5190
+ var _proto = _class.prototype;
5191
+ _proto.restoreContent = function restoreContent() {
5192
+ var _this = this;
5193
+ return new miniprogram.AssetPromise(function(resolve, reject) {
5194
+ request(item.url, _extends({}, item, {
5195
+ type: "arraybuffer"
5196
+ })).then(function(bin) {
5197
+ var mipmaps = parseSingleKTX(bin).mipmaps;
5198
+ var texture = _this.resource;
5199
+ for(var miplevel = 0; miplevel < mipmaps.length; miplevel++){
5200
+ var _mipmaps_miplevel = mipmaps[miplevel], width = _mipmaps_miplevel.width, height = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
5201
+ texture.setPixelBuffer(data, miplevel, 0, 0, width, height);
5202
+ }
5203
+ resolve(texture);
5204
+ }).catch(function(e) {
5205
+ reject(e);
5206
+ });
5207
+ });
5208
+ };
5209
+ return _class;
5210
+ }(miniprogram.ContentRestorer))(texture));
5083
5211
  resolve(texture);
5084
5212
  }).catch(function(e) {
5085
5213
  reject(e);
@@ -5186,11 +5314,32 @@ var MeshLoader = /*#__PURE__*/ function(Loader1) {
5186
5314
  _proto.load = function load(item, resourceManager) {
5187
5315
  var _this = this;
5188
5316
  return new miniprogram.AssetPromise(function(resolve, reject) {
5189
- _this.request(item.url, _extends({}, item, {
5317
+ var request = _this.request;
5318
+ var engine = resourceManager.engine;
5319
+ request(item.url, _extends({}, item, {
5190
5320
  type: "arraybuffer"
5191
5321
  })).then(function(data) {
5192
- return decode(data, resourceManager.engine);
5322
+ return decode(data, engine);
5193
5323
  }).then(function(mesh) {
5324
+ resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
5325
+ _inherits(_class, ContentRestorer);
5326
+ function _class() {
5327
+ return ContentRestorer.apply(this, arguments);
5328
+ }
5329
+ var _proto = _class.prototype;
5330
+ _proto.restoreContent = function restoreContent() {
5331
+ return new miniprogram.AssetPromise(function(resolve, reject) {
5332
+ request(item.url, _extends({}, item, {
5333
+ type: "arraybuffer"
5334
+ })).then(function(data) {
5335
+ return decode(data, engine, mesh);
5336
+ }).then(function(mesh) {
5337
+ resolve(mesh);
5338
+ }).catch(reject);
5339
+ });
5340
+ };
5341
+ return _class;
5342
+ }(miniprogram.ContentRestorer))(mesh));
5194
5343
  resolve(mesh);
5195
5344
  }).catch(reject);
5196
5345
  });