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