@galacean/engine-loader 1.5.0-alpha.0 → 1.5.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -289,11 +289,216 @@ var FileHeader = /*#__PURE__*/ function() {
289
289
  return FileHeader;
290
290
  }();
291
291
 
292
+ var InterpolableValueType = /*#__PURE__*/ function(InterpolableValueType) {
293
+ InterpolableValueType[InterpolableValueType["Float"] = 0] = "Float";
294
+ InterpolableValueType[InterpolableValueType["FloatArray"] = 1] = "FloatArray";
295
+ InterpolableValueType[InterpolableValueType["Vector2"] = 2] = "Vector2";
296
+ InterpolableValueType[InterpolableValueType["Vector3"] = 3] = "Vector3";
297
+ InterpolableValueType[InterpolableValueType["Vector4"] = 4] = "Vector4";
298
+ InterpolableValueType[InterpolableValueType["Quaternion"] = 5] = "Quaternion";
299
+ InterpolableValueType[InterpolableValueType["Color"] = 6] = "Color";
300
+ InterpolableValueType[InterpolableValueType["Array"] = 7] = "Array";
301
+ InterpolableValueType[InterpolableValueType["Boolean"] = 8] = "Boolean";
302
+ InterpolableValueType[InterpolableValueType["Rect"] = 9] = "Rect";
303
+ InterpolableValueType[InterpolableValueType["ReferResource"] = 10] = "ReferResource";
304
+ return InterpolableValueType;
305
+ }({});
306
+ exports.AnimationClipDecoder = /*#__PURE__*/ function() {
307
+ function AnimationClipDecoder() {}
308
+ AnimationClipDecoder.decode = function decode(engine, bufferReader) {
309
+ return new engineCore.AssetPromise(function(resolve) {
310
+ var name = bufferReader.nextStr();
311
+ var clip = new engineCore.AnimationClip(name);
312
+ var eventsLen = bufferReader.nextUint16();
313
+ for(var i = 0; i < eventsLen; ++i){
314
+ var event = new engineCore.AnimationEvent();
315
+ event.time = bufferReader.nextFloat32();
316
+ event.functionName = bufferReader.nextStr();
317
+ event.parameter = JSON.parse(bufferReader.nextStr()).val;
318
+ clip.addEvent(event);
319
+ }
320
+ var curveBindingsLen = bufferReader.nextUint16();
321
+ for(var i1 = 0; i1 < curveBindingsLen; ++i1){
322
+ var relativePath = bufferReader.nextStr();
323
+ var componentStr = bufferReader.nextStr();
324
+ var componentType = engineCore.Loader.getClass(componentStr);
325
+ var property = bufferReader.nextStr();
326
+ var getProperty = bufferReader.nextStr();
327
+ var curve = void 0;
328
+ var interpolation = bufferReader.nextUint8();
329
+ var keysLen = bufferReader.nextUint16();
330
+ var curveType = bufferReader.nextStr();
331
+ switch(curveType){
332
+ case "AnimationFloatCurve":
333
+ {
334
+ curve = new engineCore.AnimationFloatCurve();
335
+ curve.interpolation = interpolation;
336
+ for(var j = 0; j < keysLen; ++j){
337
+ var keyframe = new engineCore.Keyframe();
338
+ keyframe.time = bufferReader.nextFloat32();
339
+ keyframe.value = bufferReader.nextFloat32();
340
+ keyframe.inTangent = bufferReader.nextFloat32();
341
+ keyframe.outTangent = bufferReader.nextFloat32();
342
+ curve.addKey(keyframe);
343
+ }
344
+ break;
345
+ }
346
+ case "AnimationArrayCurve":
347
+ {
348
+ curve = new engineCore.AnimationArrayCurve();
349
+ curve.interpolation = interpolation;
350
+ for(var j1 = 0; j1 < keysLen; ++j1){
351
+ var keyframe1 = new engineCore.Keyframe();
352
+ keyframe1.time = bufferReader.nextFloat32();
353
+ var len = bufferReader.nextUint16();
354
+ keyframe1.value = Array.from(bufferReader.nextFloat32Array(len));
355
+ keyframe1.inTangent = Array.from(bufferReader.nextFloat32Array(len));
356
+ keyframe1.outTangent = Array.from(bufferReader.nextFloat32Array(len));
357
+ curve.addKey(keyframe1);
358
+ }
359
+ break;
360
+ }
361
+ case "AnimationFloatArrayCurve":
362
+ {
363
+ curve = new engineCore.AnimationFloatArrayCurve();
364
+ curve.interpolation = interpolation;
365
+ for(var j2 = 0; j2 < keysLen; ++j2){
366
+ var keyframe2 = new engineCore.Keyframe();
367
+ keyframe2.time = bufferReader.nextFloat32();
368
+ var len1 = bufferReader.nextUint16();
369
+ keyframe2.value = bufferReader.nextFloat32Array(len1);
370
+ keyframe2.inTangent = Array.from(bufferReader.nextFloat32Array(len1));
371
+ keyframe2.outTangent = Array.from(bufferReader.nextFloat32Array(len1));
372
+ curve.addKey(keyframe2);
373
+ }
374
+ break;
375
+ }
376
+ case "AnimationVector2Curve":
377
+ {
378
+ curve = new engineCore.AnimationVector2Curve();
379
+ curve.interpolation = interpolation;
380
+ for(var j3 = 0; j3 < keysLen; ++j3){
381
+ var keyframe3 = new engineCore.Keyframe();
382
+ keyframe3.time = bufferReader.nextFloat32();
383
+ keyframe3.value = new engineMath.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
384
+ keyframe3.inTangent = new engineMath.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
385
+ keyframe3.outTangent = new engineMath.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
386
+ curve.addKey(keyframe3);
387
+ }
388
+ break;
389
+ }
390
+ case "AnimationVector3Curve":
391
+ {
392
+ curve = new engineCore.AnimationVector3Curve();
393
+ curve.interpolation = interpolation;
394
+ for(var j4 = 0; j4 < keysLen; ++j4){
395
+ var keyframe4 = new engineCore.Keyframe();
396
+ keyframe4.time = bufferReader.nextFloat32();
397
+ keyframe4.value = new engineMath.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
398
+ keyframe4.inTangent = new engineMath.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
399
+ keyframe4.outTangent = new engineMath.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
400
+ curve.addKey(keyframe4);
401
+ }
402
+ break;
403
+ }
404
+ case "AnimationVector4Curve":
405
+ {
406
+ curve = new engineCore.AnimationVector4Curve();
407
+ curve.interpolation = interpolation;
408
+ var keyframe5 = new engineCore.Keyframe();
409
+ keyframe5.time = bufferReader.nextFloat32();
410
+ keyframe5.value = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
411
+ keyframe5.inTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
412
+ keyframe5.outTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
413
+ curve.addKey(keyframe5);
414
+ break;
415
+ }
416
+ case "AnimationColorCurve":
417
+ {
418
+ curve = new engineCore.AnimationColorCurve();
419
+ curve.interpolation = interpolation;
420
+ for(var j5 = 0; j5 < keysLen; ++j5){
421
+ var keyframe6 = new engineCore.Keyframe();
422
+ keyframe6.time = bufferReader.nextFloat32();
423
+ keyframe6.value = new engineMath.Color(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
424
+ keyframe6.inTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
425
+ keyframe6.outTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
426
+ curve.addKey(keyframe6);
427
+ }
428
+ break;
429
+ }
430
+ case "AnimationQuaternionCurve":
431
+ {
432
+ curve = new engineCore.AnimationQuaternionCurve();
433
+ curve.interpolation = interpolation;
434
+ for(var j6 = 0; j6 < keysLen; ++j6){
435
+ var keyframe7 = new engineCore.Keyframe();
436
+ keyframe7.time = bufferReader.nextFloat32();
437
+ keyframe7.value = new engineMath.Quaternion(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
438
+ keyframe7.inTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
439
+ keyframe7.outTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
440
+ curve.addKey(keyframe7);
441
+ }
442
+ break;
443
+ }
444
+ case "AnimationRefCurve":
445
+ {
446
+ curve = new engineCore.AnimationRefCurve();
447
+ curve.interpolation = interpolation;
448
+ for(var j7 = 0; j7 < keysLen; ++j7){
449
+ var keyframe8 = new engineCore.Keyframe();
450
+ keyframe8.time = bufferReader.nextFloat32();
451
+ var str = bufferReader.nextStr();
452
+ if (str) {
453
+ keyframe8.value = JSON.parse(str);
454
+ } else {
455
+ keyframe8.value = null;
456
+ }
457
+ curve.addKey(keyframe8);
458
+ }
459
+ break;
460
+ }
461
+ case "AnimationBoolCurve":
462
+ {
463
+ curve = new engineCore.AnimationBoolCurve();
464
+ curve.interpolation = interpolation;
465
+ for(var j8 = 0; j8 < keysLen; ++j8){
466
+ var keyframe9 = new engineCore.Keyframe();
467
+ keyframe9.time = bufferReader.nextFloat32();
468
+ keyframe9.value = bufferReader.nextUint8() === 1;
469
+ curve.addKey(keyframe9);
470
+ }
471
+ break;
472
+ }
473
+ case "AnimationStringCurve":
474
+ {
475
+ curve = new engineCore.AnimationStringCurve();
476
+ curve.interpolation = interpolation;
477
+ for(var j9 = 0; j9 < keysLen; ++j9){
478
+ var keyframe10 = new engineCore.Keyframe();
479
+ keyframe10.time = bufferReader.nextFloat32();
480
+ keyframe10.value = bufferReader.nextStr();
481
+ curve.addKey(keyframe10);
482
+ }
483
+ break;
484
+ }
485
+ }
486
+ clip.addCurveBinding(relativePath, componentType, property, getProperty, curve);
487
+ }
488
+ resolve(clip);
489
+ });
490
+ };
491
+ return AnimationClipDecoder;
492
+ }();
493
+ exports.AnimationClipDecoder = __decorate([
494
+ decoder("AnimationClip")
495
+ ], exports.AnimationClipDecoder);
496
+
292
497
  exports.MeshDecoder = /*#__PURE__*/ function() {
293
498
  function MeshDecoder() {}
294
- MeshDecoder.decode = function decode(engine, bufferReader) {
499
+ MeshDecoder.decode = function decode(engine, bufferReader, restoredMesh) {
295
500
  return new engineCore.AssetPromise(function(resolve) {
296
- var modelMesh = new engineCore.ModelMesh(engine);
501
+ var modelMesh = restoredMesh || new engineCore.ModelMesh(engine);
297
502
  var jsonDataString = bufferReader.nextStr();
298
503
  var encodedMeshData = JSON.parse(jsonDataString);
299
504
  // @ts-ignore Vector3 is not compatible with {x: number, y: number, z: number}.
@@ -423,82 +628,6 @@ function float32ArrayToVector2(float32Array, vertexCount) {
423
628
  return array;
424
629
  }
425
630
 
426
- exports.Texture2DDecoder = /*#__PURE__*/ function() {
427
- function Texture2DDecoder() {}
428
- Texture2DDecoder.decode = function decode(engine, bufferReader) {
429
- return new engineCore.AssetPromise(function(resolve, reject) {
430
- var objectId = bufferReader.nextStr();
431
- var mipmap = !!bufferReader.nextUint8();
432
- var filterMode = bufferReader.nextUint8();
433
- var anisoLevel = bufferReader.nextUint8();
434
- var wrapModeU = bufferReader.nextUint8();
435
- var wrapModeV = bufferReader.nextUint8();
436
- var format = bufferReader.nextUint8();
437
- var width = bufferReader.nextUint16();
438
- var height = bufferReader.nextUint16();
439
- var isPixelBuffer = bufferReader.nextUint8();
440
- var isSRGBColorSpace = !!bufferReader.nextUint8();
441
- var mipCount = bufferReader.nextUint8();
442
- var imagesData = bufferReader.nextImagesData(mipCount);
443
- var texture2D = new engineCore.Texture2D(engine, width, height, format, mipmap, isSRGBColorSpace);
444
- texture2D.filterMode = filterMode;
445
- texture2D.anisoLevel = anisoLevel;
446
- texture2D.wrapModeU = wrapModeU;
447
- texture2D.wrapModeV = wrapModeV;
448
- if (isPixelBuffer) {
449
- var pixelBuffer = imagesData[0];
450
- texture2D.setPixelBuffer(pixelBuffer);
451
- if (mipmap) {
452
- texture2D.generateMipmaps();
453
- for(var i = 1; i < mipCount; i++){
454
- var pixelBuffer1 = imagesData[i];
455
- texture2D.setPixelBuffer(pixelBuffer1, i);
456
- }
457
- }
458
- // @ts-ignore
459
- engine.resourceManager._objectPool[objectId] = texture2D;
460
- resolve(texture2D);
461
- } else {
462
- var blob = new window.Blob([
463
- imagesData[0]
464
- ]);
465
- var img = new Image();
466
- img.onload = function() {
467
- texture2D.setImageSource(img);
468
- var completedCount = 0;
469
- var onComplete = function() {
470
- completedCount++;
471
- if (completedCount >= mipCount) {
472
- resolve(texture2D);
473
- }
474
- };
475
- onComplete();
476
- if (mipmap) {
477
- var _loop = function(i) {
478
- var blob = new window.Blob([
479
- imagesData[i]
480
- ]);
481
- var img = new Image();
482
- img.onload = function() {
483
- texture2D.setImageSource(img, i);
484
- onComplete();
485
- };
486
- img.src = URL.createObjectURL(blob);
487
- };
488
- texture2D.generateMipmaps();
489
- for(var i = 1; i < mipCount; i++)_loop(i);
490
- }
491
- };
492
- img.src = URL.createObjectURL(blob);
493
- }
494
- });
495
- };
496
- return Texture2DDecoder;
497
- }();
498
- exports.Texture2DDecoder = __decorate([
499
- decoder("Texture2D")
500
- ], exports.Texture2DDecoder);
501
-
502
631
  function _is_native_reflect_construct() {
503
632
  // Since Reflect.construct can't be properly polyfilled, some
504
633
  // implementations (e.g. core-js@2) don't set the correct internal slots.
@@ -761,249 +890,149 @@ var ReflectionParser = /*#__PURE__*/ function() {
761
890
  this.customParseComponentHandles[componentType] = handle;
762
891
  };
763
892
  ReflectionParser._isClass = function _isClass(value) {
764
- return value["class"] !== undefined;
765
- };
766
- ReflectionParser._isClassType = function _isClassType(value) {
767
- return value["classType"] !== undefined;
768
- };
769
- ReflectionParser._isAssetRef = function _isAssetRef(value) {
770
- return value["refId"] !== undefined;
771
- };
772
- ReflectionParser._isEntityRef = function _isEntityRef(value) {
773
- return value["entityId"] !== undefined;
774
- };
775
- ReflectionParser._isComponentRef = function _isComponentRef(value) {
776
- return value["ownerId"] !== undefined && value["componentId"] !== undefined;
777
- };
778
- ReflectionParser._isMethodObject = function _isMethodObject(value) {
779
- return Array.isArray(value == null ? void 0 : value.params);
780
- };
781
- return ReflectionParser;
782
- }();
783
- ReflectionParser.customParseComponentHandles = new Map();
784
-
785
- var InterpolableValueType = /*#__PURE__*/ function(InterpolableValueType) {
786
- InterpolableValueType[InterpolableValueType["Float"] = 0] = "Float";
787
- InterpolableValueType[InterpolableValueType["FloatArray"] = 1] = "FloatArray";
788
- InterpolableValueType[InterpolableValueType["Vector2"] = 2] = "Vector2";
789
- InterpolableValueType[InterpolableValueType["Vector3"] = 3] = "Vector3";
790
- InterpolableValueType[InterpolableValueType["Vector4"] = 4] = "Vector4";
791
- InterpolableValueType[InterpolableValueType["Quaternion"] = 5] = "Quaternion";
792
- InterpolableValueType[InterpolableValueType["Color"] = 6] = "Color";
793
- InterpolableValueType[InterpolableValueType["Array"] = 7] = "Array";
794
- InterpolableValueType[InterpolableValueType["Boolean"] = 8] = "Boolean";
795
- InterpolableValueType[InterpolableValueType["Rect"] = 9] = "Rect";
796
- InterpolableValueType[InterpolableValueType["ReferResource"] = 10] = "ReferResource";
797
- return InterpolableValueType;
798
- }({});
799
- exports.AnimationClipDecoder = /*#__PURE__*/ function() {
800
- function AnimationClipDecoder() {}
801
- AnimationClipDecoder.decode = function decode(engine, bufferReader) {
802
- return new engineCore.AssetPromise(function(resolve) {
803
- var name = bufferReader.nextStr();
804
- var clip = new engineCore.AnimationClip(name);
805
- var eventsLen = bufferReader.nextUint16();
806
- for(var i = 0; i < eventsLen; ++i){
807
- var event = new engineCore.AnimationEvent();
808
- event.time = bufferReader.nextFloat32();
809
- event.functionName = bufferReader.nextStr();
810
- event.parameter = JSON.parse(bufferReader.nextStr()).val;
811
- clip.addEvent(event);
812
- }
813
- var curveBindingsLen = bufferReader.nextUint16();
814
- for(var i1 = 0; i1 < curveBindingsLen; ++i1){
815
- var relativePath = bufferReader.nextStr();
816
- var componentStr = bufferReader.nextStr();
817
- var componentType = engineCore.Loader.getClass(componentStr);
818
- var property = bufferReader.nextStr();
819
- var getProperty = bufferReader.nextStr();
820
- var curve = void 0;
821
- var interpolation = bufferReader.nextUint8();
822
- var keysLen = bufferReader.nextUint16();
823
- var curveType = bufferReader.nextStr();
824
- switch(curveType){
825
- case "AnimationFloatCurve":
826
- {
827
- curve = new engineCore.AnimationFloatCurve();
828
- curve.interpolation = interpolation;
829
- for(var j = 0; j < keysLen; ++j){
830
- var keyframe = new engineCore.Keyframe();
831
- keyframe.time = bufferReader.nextFloat32();
832
- keyframe.value = bufferReader.nextFloat32();
833
- keyframe.inTangent = bufferReader.nextFloat32();
834
- keyframe.outTangent = bufferReader.nextFloat32();
835
- curve.addKey(keyframe);
836
- }
837
- break;
838
- }
839
- case "AnimationArrayCurve":
840
- {
841
- curve = new engineCore.AnimationArrayCurve();
842
- curve.interpolation = interpolation;
843
- for(var j1 = 0; j1 < keysLen; ++j1){
844
- var keyframe1 = new engineCore.Keyframe();
845
- keyframe1.time = bufferReader.nextFloat32();
846
- var len = bufferReader.nextUint16();
847
- keyframe1.value = Array.from(bufferReader.nextFloat32Array(len));
848
- keyframe1.inTangent = Array.from(bufferReader.nextFloat32Array(len));
849
- keyframe1.outTangent = Array.from(bufferReader.nextFloat32Array(len));
850
- curve.addKey(keyframe1);
851
- }
852
- break;
853
- }
854
- case "AnimationFloatArrayCurve":
855
- {
856
- curve = new engineCore.AnimationFloatArrayCurve();
857
- curve.interpolation = interpolation;
858
- for(var j2 = 0; j2 < keysLen; ++j2){
859
- var keyframe2 = new engineCore.Keyframe();
860
- keyframe2.time = bufferReader.nextFloat32();
861
- var len1 = bufferReader.nextUint16();
862
- keyframe2.value = bufferReader.nextFloat32Array(len1);
863
- keyframe2.inTangent = Array.from(bufferReader.nextFloat32Array(len1));
864
- keyframe2.outTangent = Array.from(bufferReader.nextFloat32Array(len1));
865
- curve.addKey(keyframe2);
866
- }
867
- break;
868
- }
869
- case "AnimationVector2Curve":
870
- {
871
- curve = new engineCore.AnimationVector2Curve();
872
- curve.interpolation = interpolation;
873
- for(var j3 = 0; j3 < keysLen; ++j3){
874
- var keyframe3 = new engineCore.Keyframe();
875
- keyframe3.time = bufferReader.nextFloat32();
876
- keyframe3.value = new engineMath.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
877
- keyframe3.inTangent = new engineMath.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
878
- keyframe3.outTangent = new engineMath.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
879
- curve.addKey(keyframe3);
880
- }
881
- break;
882
- }
883
- case "AnimationVector3Curve":
884
- {
885
- curve = new engineCore.AnimationVector3Curve();
886
- curve.interpolation = interpolation;
887
- for(var j4 = 0; j4 < keysLen; ++j4){
888
- var keyframe4 = new engineCore.Keyframe();
889
- keyframe4.time = bufferReader.nextFloat32();
890
- keyframe4.value = new engineMath.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
891
- keyframe4.inTangent = new engineMath.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
892
- keyframe4.outTangent = new engineMath.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
893
- curve.addKey(keyframe4);
894
- }
895
- break;
896
- }
897
- case "AnimationVector4Curve":
898
- {
899
- curve = new engineCore.AnimationVector4Curve();
900
- curve.interpolation = interpolation;
901
- var keyframe5 = new engineCore.Keyframe();
902
- keyframe5.time = bufferReader.nextFloat32();
903
- keyframe5.value = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
904
- keyframe5.inTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
905
- keyframe5.outTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
906
- curve.addKey(keyframe5);
907
- break;
908
- }
909
- case "AnimationColorCurve":
910
- {
911
- curve = new engineCore.AnimationColorCurve();
912
- curve.interpolation = interpolation;
913
- for(var j5 = 0; j5 < keysLen; ++j5){
914
- var keyframe6 = new engineCore.Keyframe();
915
- keyframe6.time = bufferReader.nextFloat32();
916
- keyframe6.value = new engineMath.Color(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
917
- keyframe6.inTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
918
- keyframe6.outTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
919
- curve.addKey(keyframe6);
920
- }
921
- break;
922
- }
923
- case "AnimationQuaternionCurve":
924
- {
925
- curve = new engineCore.AnimationQuaternionCurve();
926
- curve.interpolation = interpolation;
927
- for(var j6 = 0; j6 < keysLen; ++j6){
928
- var keyframe7 = new engineCore.Keyframe();
929
- keyframe7.time = bufferReader.nextFloat32();
930
- keyframe7.value = new engineMath.Quaternion(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
931
- keyframe7.inTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
932
- keyframe7.outTangent = new engineMath.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
933
- curve.addKey(keyframe7);
934
- }
935
- break;
936
- }
937
- case "AnimationRefCurve":
938
- {
939
- curve = new engineCore.AnimationRefCurve();
940
- curve.interpolation = interpolation;
941
- for(var j7 = 0; j7 < keysLen; ++j7){
942
- var keyframe8 = new engineCore.Keyframe();
943
- keyframe8.time = bufferReader.nextFloat32();
944
- var str = bufferReader.nextStr();
945
- if (str) {
946
- keyframe8.value = JSON.parse(str);
947
- } else {
948
- keyframe8.value = null;
949
- }
950
- curve.addKey(keyframe8);
951
- }
952
- break;
953
- }
954
- case "AnimationBoolCurve":
955
- {
956
- curve = new engineCore.AnimationBoolCurve();
957
- curve.interpolation = interpolation;
958
- for(var j8 = 0; j8 < keysLen; ++j8){
959
- var keyframe9 = new engineCore.Keyframe();
960
- keyframe9.time = bufferReader.nextFloat32();
961
- keyframe9.value = bufferReader.nextUint8() === 1;
962
- curve.addKey(keyframe9);
963
- }
964
- break;
965
- }
966
- case "AnimationStringCurve":
967
- {
968
- curve = new engineCore.AnimationStringCurve();
969
- curve.interpolation = interpolation;
970
- for(var j9 = 0; j9 < keysLen; ++j9){
971
- var keyframe10 = new engineCore.Keyframe();
972
- keyframe10.time = bufferReader.nextFloat32();
973
- keyframe10.value = bufferReader.nextStr();
974
- curve.addKey(keyframe10);
975
- }
976
- break;
977
- }
893
+ return value["class"] !== undefined;
894
+ };
895
+ ReflectionParser._isClassType = function _isClassType(value) {
896
+ return value["classType"] !== undefined;
897
+ };
898
+ ReflectionParser._isAssetRef = function _isAssetRef(value) {
899
+ return value["refId"] !== undefined;
900
+ };
901
+ ReflectionParser._isEntityRef = function _isEntityRef(value) {
902
+ return value["entityId"] !== undefined;
903
+ };
904
+ ReflectionParser._isComponentRef = function _isComponentRef(value) {
905
+ return value["ownerId"] !== undefined && value["componentId"] !== undefined;
906
+ };
907
+ ReflectionParser._isMethodObject = function _isMethodObject(value) {
908
+ return Array.isArray(value == null ? void 0 : value.params);
909
+ };
910
+ return ReflectionParser;
911
+ }();
912
+ ReflectionParser.customParseComponentHandles = new Map();
913
+
914
+ exports.Texture2DDecoder = /*#__PURE__*/ function() {
915
+ function Texture2DDecoder() {}
916
+ Texture2DDecoder.decode = function decode(engine, bufferReader, restoredTexture) {
917
+ return new engineCore.AssetPromise(function(resolve, reject) {
918
+ var objectId = bufferReader.nextStr();
919
+ var mipmap = !!bufferReader.nextUint8();
920
+ var filterMode = bufferReader.nextUint8();
921
+ var anisoLevel = bufferReader.nextUint8();
922
+ var wrapModeU = bufferReader.nextUint8();
923
+ var wrapModeV = bufferReader.nextUint8();
924
+ var format = bufferReader.nextUint8();
925
+ var width = bufferReader.nextUint16();
926
+ var height = bufferReader.nextUint16();
927
+ var isPixelBuffer = bufferReader.nextUint8();
928
+ var isSRGBColorSpace = !!bufferReader.nextUint8();
929
+ var mipCount = bufferReader.nextUint8();
930
+ var imagesData = bufferReader.nextImagesData(mipCount);
931
+ var texture2D = restoredTexture || new engineCore.Texture2D(engine, width, height, format, mipmap, isSRGBColorSpace);
932
+ texture2D.filterMode = filterMode;
933
+ texture2D.anisoLevel = anisoLevel;
934
+ texture2D.wrapModeU = wrapModeU;
935
+ texture2D.wrapModeV = wrapModeV;
936
+ if (isPixelBuffer) {
937
+ var pixelBuffer = imagesData[0];
938
+ texture2D.setPixelBuffer(pixelBuffer);
939
+ if (mipmap) {
940
+ texture2D.generateMipmaps();
941
+ for(var i = 1; i < mipCount; i++){
942
+ var pixelBuffer1 = imagesData[i];
943
+ texture2D.setPixelBuffer(pixelBuffer1, i);
944
+ }
978
945
  }
979
- clip.addCurveBinding(relativePath, componentType, property, getProperty, curve);
946
+ // @ts-ignore
947
+ engine.resourceManager._objectPool[objectId] = texture2D;
948
+ resolve(texture2D);
949
+ } else {
950
+ var blob = new window.Blob([
951
+ imagesData[0]
952
+ ]);
953
+ var img = new Image();
954
+ img.onload = function() {
955
+ texture2D.setImageSource(img);
956
+ var completedCount = 0;
957
+ var onComplete = function() {
958
+ completedCount++;
959
+ if (completedCount >= mipCount) {
960
+ resolve(texture2D);
961
+ }
962
+ };
963
+ onComplete();
964
+ if (mipmap) {
965
+ var _loop = function(i) {
966
+ var blob = new window.Blob([
967
+ imagesData[i]
968
+ ]);
969
+ var img = new Image();
970
+ img.onload = function() {
971
+ texture2D.setImageSource(img, i);
972
+ onComplete();
973
+ };
974
+ img.src = URL.createObjectURL(blob);
975
+ };
976
+ texture2D.generateMipmaps();
977
+ for(var i = 1; i < mipCount; i++)_loop(i);
978
+ }
979
+ };
980
+ img.src = URL.createObjectURL(blob);
980
981
  }
981
- resolve(clip);
982
982
  });
983
983
  };
984
- return AnimationClipDecoder;
984
+ return Texture2DDecoder;
985
985
  }();
986
- exports.AnimationClipDecoder = __decorate([
987
- decoder("AnimationClip")
988
- ], exports.AnimationClipDecoder);
989
-
990
- var MaterialLoaderType = /*#__PURE__*/ function(MaterialLoaderType) {
991
- MaterialLoaderType["Vector2"] = "Vector2";
992
- MaterialLoaderType["Vector3"] = "Vector3";
993
- MaterialLoaderType["Vector4"] = "Vector4";
994
- MaterialLoaderType["Color"] = "Color";
995
- MaterialLoaderType["Float"] = "Float";
996
- MaterialLoaderType["Texture"] = "Texture";
997
- MaterialLoaderType["Boolean"] = "Boolean";
998
- MaterialLoaderType["Integer"] = "Integer";
999
- return MaterialLoaderType;
1000
- }({});
986
+ exports.Texture2DDecoder = __decorate([
987
+ decoder("Texture2D")
988
+ ], exports.Texture2DDecoder);
1001
989
 
1002
- var SpecularMode = /*#__PURE__*/ function(SpecularMode) {
1003
- SpecularMode["Sky"] = "Sky";
1004
- SpecularMode["Custom"] = "Custom";
1005
- return SpecularMode;
1006
- }({});
990
+ exports.EditorTextureLoader = /*#__PURE__*/ function(Loader) {
991
+ _inherits(EditorTextureLoader, Loader);
992
+ function EditorTextureLoader() {
993
+ return Loader.apply(this, arguments) || this;
994
+ }
995
+ var _proto = EditorTextureLoader.prototype;
996
+ _proto.load = function load(item, resourceManager) {
997
+ var requestConfig = _extends({}, item, {
998
+ type: "arraybuffer"
999
+ });
1000
+ var url = item.url;
1001
+ return new engineCore.AssetPromise(function(resolve, reject) {
1002
+ resourceManager// @ts-ignore
1003
+ ._request(url, requestConfig).then(function(data) {
1004
+ decode(data, resourceManager.engine).then(function(texture) {
1005
+ resourceManager.addContentRestorer(new EditorTexture2DContentRestorer(texture, url, requestConfig));
1006
+ resolve(texture);
1007
+ });
1008
+ }).catch(reject);
1009
+ });
1010
+ };
1011
+ return EditorTextureLoader;
1012
+ }(engineCore.Loader);
1013
+ exports.EditorTextureLoader = __decorate([
1014
+ engineCore.resourceLoader("EditorTexture2D", [
1015
+ "prefab"
1016
+ ], true)
1017
+ ], exports.EditorTextureLoader);
1018
+ var EditorTexture2DContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
1019
+ _inherits(EditorTexture2DContentRestorer, ContentRestorer);
1020
+ function EditorTexture2DContentRestorer(resource, url, requestConfig) {
1021
+ var _this;
1022
+ _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
1023
+ return _this;
1024
+ }
1025
+ var _proto = EditorTexture2DContentRestorer.prototype;
1026
+ _proto.restoreContent = function restoreContent() {
1027
+ var texture = this.resource;
1028
+ var engine = texture.engine;
1029
+ return engine.resourceManager// @ts-ignore
1030
+ ._request(this.url, this.requestConfig).then(function(data) {
1031
+ return decode(data, engine, texture);
1032
+ });
1033
+ };
1034
+ return EditorTexture2DContentRestorer;
1035
+ }(engineCore.ContentRestorer);
1007
1036
 
1008
1037
  function _instanceof(left, right) {
1009
1038
  if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
@@ -1418,31 +1447,23 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
1418
1447
  return SceneParser;
1419
1448
  }(HierarchyParser);
1420
1449
 
1421
- exports.EditorTextureLoader = /*#__PURE__*/ function(Loader) {
1422
- _inherits(EditorTextureLoader, Loader);
1423
- function EditorTextureLoader() {
1424
- return Loader.apply(this, arguments) || this;
1425
- }
1426
- var _proto = EditorTextureLoader.prototype;
1427
- _proto.load = function load(item, resourceManager) {
1428
- return new engineCore.AssetPromise(function(resolve, reject) {
1429
- resourceManager// @ts-ignore
1430
- ._request(item.url, _extends({}, item, {
1431
- type: "arraybuffer"
1432
- })).then(function(data) {
1433
- decode(data, resourceManager.engine).then(function(texture) {
1434
- resolve(texture);
1435
- });
1436
- }).catch(reject);
1437
- });
1438
- };
1439
- return EditorTextureLoader;
1440
- }(engineCore.Loader);
1441
- exports.EditorTextureLoader = __decorate([
1442
- engineCore.resourceLoader("EditorTexture2D", [
1443
- "prefab"
1444
- ], true)
1445
- ], exports.EditorTextureLoader);
1450
+ var MaterialLoaderType = /*#__PURE__*/ function(MaterialLoaderType) {
1451
+ MaterialLoaderType["Vector2"] = "Vector2";
1452
+ MaterialLoaderType["Vector3"] = "Vector3";
1453
+ MaterialLoaderType["Vector4"] = "Vector4";
1454
+ MaterialLoaderType["Color"] = "Color";
1455
+ MaterialLoaderType["Float"] = "Float";
1456
+ MaterialLoaderType["Texture"] = "Texture";
1457
+ MaterialLoaderType["Boolean"] = "Boolean";
1458
+ MaterialLoaderType["Integer"] = "Integer";
1459
+ return MaterialLoaderType;
1460
+ }({});
1461
+
1462
+ var SpecularMode = /*#__PURE__*/ function(SpecularMode) {
1463
+ SpecularMode["Sky"] = "Sky";
1464
+ SpecularMode["Custom"] = "Custom";
1465
+ return SpecularMode;
1466
+ }({});
1446
1467
 
1447
1468
  /**
1448
1469
  * Decode engine binary resource.
@@ -1450,9 +1471,16 @@ exports.EditorTextureLoader = __decorate([
1450
1471
  * @param engine - engine
1451
1472
  * @returns
1452
1473
  */ function decode(arrayBuffer, engine) {
1474
+ for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
1475
+ args[_key - 2] = arguments[_key];
1476
+ }
1477
+ var _decoderMap_header_type;
1453
1478
  var header = FileHeader.decode(arrayBuffer);
1454
1479
  var bufferReader = new BufferReader(new Uint8Array(arrayBuffer), header.headerLength, header.dataLength);
1455
- return decoderMap[header.type].decode(engine, bufferReader).then(function(object) {
1480
+ return (_decoderMap_header_type = decoderMap[header.type]).decode.apply(_decoderMap_header_type, [].concat([
1481
+ engine,
1482
+ bufferReader
1483
+ ], args)).then(function(object) {
1456
1484
  object.name = header.name;
1457
1485
  return object;
1458
1486
  });
@@ -1668,10 +1696,11 @@ var EnvLoader = /*#__PURE__*/ function(Loader) {
1668
1696
  type: "arraybuffer"
1669
1697
  });
1670
1698
  var engine = resourceManager.engine;
1699
+ var url = item.url;
1671
1700
  resourceManager// @ts-ignore
1672
- ._request(item.url, requestConfig).then(function(arraybuffer) {
1701
+ ._request(url, requestConfig).then(function(arraybuffer) {
1673
1702
  var texture = EnvLoader._setTextureByBuffer(engine, arraybuffer);
1674
- engine.resourceManager.addContentRestorer(new EnvContentRestorer(texture, item.url, requestConfig));
1703
+ engine.resourceManager.addContentRestorer(new EnvContentRestorer(texture, url, requestConfig));
1675
1704
  var ambientLight = new engineCore.AmbientLight(engine);
1676
1705
  var sh = new engineMath.SphericalHarmonics3();
1677
1706
  ambientLight.diffuseMode = engineCore.DiffuseMode.SphericalHarmonics;
@@ -1726,9 +1755,12 @@ EnvLoader = __decorate([
1726
1755
  _proto.restoreContent = function restoreContent() {
1727
1756
  var _this = this;
1728
1757
  return new engineCore.AssetPromise(function(resolve, reject) {
1729
- engineCore.request(_this.url, _this.requestConfig).then(function(buffer) {
1730
- EnvLoader._setTextureByBuffer(_this.resource.engine, buffer, _this.resource);
1731
- resolve(_this.resource);
1758
+ var resource = _this.resource;
1759
+ var engine = resource.engine;
1760
+ engine.resourceManager// @ts-ignore
1761
+ ._request(_this.url, _this.requestConfig).then(function(buffer) {
1762
+ EnvLoader._setTextureByBuffer(engine, buffer, resource);
1763
+ resolve(resource);
1732
1764
  }).catch(reject);
1733
1765
  });
1734
1766
  };
@@ -3612,15 +3644,20 @@ exports.KTX2Loader = /*#__PURE__*/ function(Loader) {
3612
3644
  * @internal
3613
3645
  */ _proto.load = function load(item, resourceManager) {
3614
3646
  return new engineCore.AssetPromise(function(resolve, reject, setTaskCompleteProgress, setTaskDetailProgress) {
3615
- resourceManager// @ts-ignore
3616
- ._request(item.url, {
3647
+ var requestConfig = _extends({}, item, {
3617
3648
  type: "arraybuffer"
3618
- }).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(buffer) {
3649
+ });
3650
+ var url = item.url;
3651
+ resourceManager// @ts-ignore
3652
+ ._request(url, requestConfig).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(buffer) {
3619
3653
  return KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
3620
3654
  var ktx2Container = param.ktx2Container, engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
3621
3655
  return KTX2Loader._createTextureByBuffer(engine, ktx2Container.isSRGB, result, targetFormat, params);
3656
+ }).then(function(texture) {
3657
+ resourceManager.addContentRestorer(new KTX2ContentRestorer(texture, url, requestConfig));
3658
+ resolve(texture);
3622
3659
  });
3623
- }).then(resolve).catch(reject);
3660
+ }).catch(reject);
3624
3661
  });
3625
3662
  };
3626
3663
  /**
@@ -3660,7 +3697,7 @@ exports.KTX2Loader = /*#__PURE__*/ function(Loader) {
3660
3697
  };
3661
3698
  });
3662
3699
  };
3663
- /** @internal */ KTX2Loader._createTextureByBuffer = function _createTextureByBuffer(engine, isSRGB, transcodeResult, targetFormat, params) {
3700
+ /** @internal */ KTX2Loader._createTextureByBuffer = function _createTextureByBuffer(engine, isSRGB, transcodeResult, targetFormat, params, restoredTexture) {
3664
3701
  var width = transcodeResult.width, height = transcodeResult.height, faces = transcodeResult.faces;
3665
3702
  var faceCount = faces.length;
3666
3703
  var mipmaps = faces[0];
@@ -3668,13 +3705,13 @@ exports.KTX2Loader = /*#__PURE__*/ function(Loader) {
3668
3705
  var engineFormat = this._getEngineTextureFormat(targetFormat, transcodeResult);
3669
3706
  var texture;
3670
3707
  if (faceCount !== 6) {
3671
- texture = new engineCore.Texture2D(engine, width, height, engineFormat, mipmap, isSRGB);
3708
+ texture = restoredTexture || new engineCore.Texture2D(engine, width, height, engineFormat, mipmap, isSRGB);
3672
3709
  for(var mipLevel = 0; mipLevel < mipmaps.length; mipLevel++){
3673
3710
  var data = mipmaps[mipLevel].data;
3674
3711
  texture.setPixelBuffer(data, mipLevel);
3675
3712
  }
3676
3713
  } else {
3677
- texture = new engineCore.TextureCube(engine, height, engineFormat, mipmap, isSRGB);
3714
+ texture = restoredTexture || new engineCore.TextureCube(engine, height, engineFormat, mipmap, isSRGB);
3678
3715
  for(var i = 0; i < faces.length; i++){
3679
3716
  var faceData = faces[i];
3680
3717
  for(var mipLevel1 = 0; mipLevel1 < mipmaps.length; mipLevel1++){
@@ -3804,6 +3841,30 @@ exports.KTX2Loader = __decorate([
3804
3841
  "ktx2"
3805
3842
  ])
3806
3843
  ], exports.KTX2Loader);
3844
+ var KTX2ContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
3845
+ _inherits(KTX2ContentRestorer, ContentRestorer);
3846
+ function KTX2ContentRestorer(resource, url, requestConfig) {
3847
+ var _this;
3848
+ _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
3849
+ return _this;
3850
+ }
3851
+ var _proto = KTX2ContentRestorer.prototype;
3852
+ _proto.restoreContent = function restoreContent() {
3853
+ var _this = this;
3854
+ var _this1 = this, resource = _this1.resource, requestConfig = _this1.requestConfig;
3855
+ var engine = resource.engine;
3856
+ return new engineCore.AssetPromise(function(resolve, reject) {
3857
+ engine.resourceManager// @ts-ignore
3858
+ ._request(_this.url, requestConfig).then(function(buffer) {
3859
+ return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), engine, requestConfig.params).then(function(param) {
3860
+ var ktx2Container = param.ktx2Container, engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
3861
+ return exports.KTX2Loader._createTextureByBuffer(engine, ktx2Container.isSRGB, result, targetFormat, params, resource);
3862
+ });
3863
+ }).then(resolve).catch(reject);
3864
+ });
3865
+ };
3866
+ return KTX2ContentRestorer;
3867
+ }(engineCore.ContentRestorer);
3807
3868
  /** Used for initialize KTX2 transcoder. */ var KTX2Transcoder = /*#__PURE__*/ function(KTX2Transcoder) {
3808
3869
  /** BinomialLLC transcoder. */ KTX2Transcoder[KTX2Transcoder["BinomialLLC"] = 0] = "BinomialLLC";
3809
3870
  /** Khronos transcoder. */ KTX2Transcoder[KTX2Transcoder["Khronos"] = 1] = "Khronos";
@@ -4517,7 +4578,7 @@ exports.GLTFMaterialParser = /*#__PURE__*/ function(GLTFParser1) {
4517
4578
  if (pbrMetallicRoughness) {
4518
4579
  var baseColorFactor = pbrMetallicRoughness.baseColorFactor, baseColorTexture = pbrMetallicRoughness.baseColorTexture, metallicFactor = pbrMetallicRoughness.metallicFactor, roughnessFactor = pbrMetallicRoughness.roughnessFactor, metallicRoughnessTexture = pbrMetallicRoughness.metallicRoughnessTexture;
4519
4580
  if (baseColorFactor) {
4520
- material.baseColor = new engineMath.Color(engineMath.Color.linearToSRGBSpace(baseColorFactor[0]), engineMath.Color.linearToSRGBSpace(baseColorFactor[1]), engineMath.Color.linearToSRGBSpace(baseColorFactor[2]), baseColorFactor[3]);
4581
+ material.baseColor.copyFromArray(baseColorFactor);
4521
4582
  }
4522
4583
  if (baseColorTexture) {
4523
4584
  context.get(GLTFParserType.Texture, baseColorTexture.index).then(function(texture) {
@@ -4550,7 +4611,7 @@ exports.GLTFMaterialParser = /*#__PURE__*/ function(GLTFParser1) {
4550
4611
  });
4551
4612
  }
4552
4613
  if (emissiveFactor) {
4553
- material.emissiveColor = new engineMath.Color(engineMath.Color.linearToSRGBSpace(emissiveFactor[0]), engineMath.Color.linearToSRGBSpace(emissiveFactor[1]), engineMath.Color.linearToSRGBSpace(emissiveFactor[2]));
4614
+ material.emissiveColor.set(emissiveFactor[0], emissiveFactor[1], emissiveFactor[2], 1.0);
4554
4615
  }
4555
4616
  if (normalTexture) {
4556
4617
  var index = normalTexture.index, scale = normalTexture.scale;
@@ -5402,10 +5463,11 @@ var HDRLoader = /*#__PURE__*/ function(Loader) {
5402
5463
  var requestConfig = _extends({}, item, {
5403
5464
  type: "arraybuffer"
5404
5465
  });
5466
+ var url = item.url;
5405
5467
  resourceManager// @ts-ignore
5406
- ._request(item.url, requestConfig).then(function(buffer) {
5468
+ ._request(url, requestConfig).then(function(buffer) {
5407
5469
  var texture = HDRLoader._setTextureByBuffer(engine, buffer);
5408
- engine.resourceManager.addContentRestorer(new HDRContentRestorer(texture, item.url, requestConfig));
5470
+ engine.resourceManager.addContentRestorer(new HDRContentRestorer(texture, url, requestConfig));
5409
5471
  resolve(texture);
5410
5472
  }).catch(reject);
5411
5473
  });
@@ -5710,9 +5772,12 @@ HDRLoader = __decorate([
5710
5772
  _proto.restoreContent = function restoreContent() {
5711
5773
  var _this = this;
5712
5774
  return new engineCore.AssetPromise(function(resolve, reject) {
5713
- engineCore.request(_this.url, _this.requestConfig).then(function(buffer) {
5714
- HDRLoader._setTextureByBuffer(_this.resource.engine, buffer, _this.resource);
5715
- resolve(_this.resource);
5775
+ var resource = _this.resource;
5776
+ var engine = resource.engine;
5777
+ engine.resourceManager// @ts-ignore
5778
+ ._request(_this.url, _this.requestConfig).then(function(buffer) {
5779
+ HDRLoader._setTextureByBuffer(engine, buffer, resource);
5780
+ resolve(resource);
5716
5781
  }).catch(reject);
5717
5782
  });
5718
5783
  };
@@ -5968,11 +6033,12 @@ var KTXLoader = /*#__PURE__*/ function(Loader) {
5968
6033
  }
5969
6034
  var _proto = KTXLoader.prototype;
5970
6035
  _proto.load = function load(item, resourceManager) {
6036
+ var requestConfig = _extends({}, item, {
6037
+ type: "arraybuffer"
6038
+ });
5971
6039
  return new engineCore.AssetPromise(function(resolve, reject) {
5972
6040
  resourceManager// @ts-ignore
5973
- ._request(item.url, _extends({}, item, {
5974
- type: "arraybuffer"
5975
- })).then(function(bin) {
6041
+ ._request(item.url, requestConfig).then(function(bin) {
5976
6042
  var parsedData = parseSingleKTX(bin);
5977
6043
  var width = parsedData.width, height = parsedData.height, mipmaps = parsedData.mipmaps, engineFormat = parsedData.engineFormat;
5978
6044
  var mipmap = mipmaps.length > 1;
@@ -5981,6 +6047,7 @@ var KTXLoader = /*#__PURE__*/ function(Loader) {
5981
6047
  var _mipmaps_miplevel = mipmaps[miplevel], width1 = _mipmaps_miplevel.width, height1 = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
5982
6048
  texture.setPixelBuffer(data, miplevel, 0, 0, width1, height1);
5983
6049
  }
6050
+ resourceManager.addContentRestorer(new KTXContentRestorer(texture, item.url, requestConfig));
5984
6051
  resolve(texture);
5985
6052
  }).catch(function(e) {
5986
6053
  reject(e);
@@ -5994,6 +6061,34 @@ KTXLoader = __decorate([
5994
6061
  "ktx"
5995
6062
  ])
5996
6063
  ], KTXLoader);
6064
+ var KTXContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
6065
+ _inherits(KTXContentRestorer, ContentRestorer);
6066
+ function KTXContentRestorer(resource, url, requestConfig) {
6067
+ var _this;
6068
+ _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
6069
+ return _this;
6070
+ }
6071
+ var _proto = KTXContentRestorer.prototype;
6072
+ _proto.restoreContent = function restoreContent() {
6073
+ var _this = this;
6074
+ var resource = this.resource;
6075
+ var engine = resource.engine;
6076
+ return new engineCore.AssetPromise(function(resolve, reject) {
6077
+ engine.resourceManager// @ts-ignore
6078
+ ._request(_this.url, _this.requestConfig).then(function(bin) {
6079
+ var mipmaps = parseSingleKTX(bin).mipmaps;
6080
+ for(var miplevel = 0; miplevel < mipmaps.length; miplevel++){
6081
+ var _mipmaps_miplevel = mipmaps[miplevel], width = _mipmaps_miplevel.width, height = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
6082
+ resource.setPixelBuffer(data, miplevel, 0, 0, width, height);
6083
+ }
6084
+ resolve(resource);
6085
+ }).catch(function(e) {
6086
+ reject(e);
6087
+ });
6088
+ });
6089
+ };
6090
+ return KTXContentRestorer;
6091
+ }(engineCore.ContentRestorer);
5997
6092
 
5998
6093
  function parseProperty(object, key, value) {
5999
6094
  if ((typeof value === "undefined" ? "undefined" : _type_of(value)) === "object") {
@@ -6098,13 +6193,16 @@ var MeshLoader = /*#__PURE__*/ function(Loader) {
6098
6193
  }
6099
6194
  var _proto = MeshLoader.prototype;
6100
6195
  _proto.load = function load(item, resourceManager) {
6196
+ var requestConfig = _extends({}, item, {
6197
+ type: "arraybuffer"
6198
+ });
6199
+ var url = item.url;
6101
6200
  return new engineCore.AssetPromise(function(resolve, reject) {
6102
6201
  resourceManager// @ts-ignore
6103
- ._request(item.url, _extends({}, item, {
6104
- type: "arraybuffer"
6105
- })).then(function(data) {
6202
+ ._request(url, requestConfig).then(function(data) {
6106
6203
  return decode(data, resourceManager.engine);
6107
6204
  }).then(function(mesh) {
6205
+ resourceManager.addContentRestorer(new MeshContentRestorer(mesh, url, requestConfig));
6108
6206
  resolve(mesh);
6109
6207
  }).catch(reject);
6110
6208
  });
@@ -6116,6 +6214,29 @@ MeshLoader = __decorate([
6116
6214
  "mesh"
6117
6215
  ])
6118
6216
  ], MeshLoader);
6217
+ var MeshContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
6218
+ _inherits(MeshContentRestorer, ContentRestorer);
6219
+ function MeshContentRestorer(resource, url, requestConfig) {
6220
+ var _this;
6221
+ _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
6222
+ return _this;
6223
+ }
6224
+ var _proto = MeshContentRestorer.prototype;
6225
+ _proto.restoreContent = function restoreContent() {
6226
+ var _this = this;
6227
+ var resource = this.resource;
6228
+ var engine = resource.engine;
6229
+ return new engineCore.AssetPromise(function(resolve, reject) {
6230
+ engine.resourceManager// @ts-ignore
6231
+ ._request(_this.url, _this.requestConfig).then(function(data) {
6232
+ return decode(data, engine, resource);
6233
+ }).then(function(mesh) {
6234
+ resolve(mesh);
6235
+ }).catch(reject);
6236
+ });
6237
+ };
6238
+ return MeshContentRestorer;
6239
+ }(engineCore.ContentRestorer);
6119
6240
 
6120
6241
  var PrimitiveMeshLoader = /*#__PURE__*/ function(Loader) {
6121
6242
  _inherits(PrimitiveMeshLoader, Loader);
@@ -6841,9 +6962,8 @@ var KHR_lights_punctual = /*#__PURE__*/ function(GLTFExtensionParser) {
6841
6962
  light = entity.addComponent(engineCore.SpotLight);
6842
6963
  }
6843
6964
  if (color) {
6844
- light.color.set(color[0], color[1], color[2], 1);
6965
+ light.color.set(color[0] * intensity, color[1] * intensity, color[2] * intensity, 1);
6845
6966
  }
6846
- light.intensity = intensity;
6847
6967
  if (range && !_instanceof(light, engineCore.DirectLight)) {
6848
6968
  light.distance = range;
6849
6969
  }
@@ -6929,7 +7049,7 @@ var KHR_materials_pbrSpecularGlossiness = /*#__PURE__*/ function(GLTFExtensionPa
6929
7049
  var material = new engineCore.PBRSpecularMaterial(engine);
6930
7050
  var diffuseFactor = schema.diffuseFactor, diffuseTexture = schema.diffuseTexture, specularFactor = schema.specularFactor, glossinessFactor = schema.glossinessFactor, specularGlossinessTexture = schema.specularGlossinessTexture;
6931
7051
  if (diffuseFactor) {
6932
- material.baseColor = new engineMath.Color(engineMath.Color.linearToSRGBSpace(diffuseFactor[0]), engineMath.Color.linearToSRGBSpace(diffuseFactor[1]), engineMath.Color.linearToSRGBSpace(diffuseFactor[2]), diffuseFactor[3]);
7052
+ material.baseColor.copyFromArray(diffuseFactor);
6933
7053
  }
6934
7054
  if (diffuseTexture) {
6935
7055
  context.get(GLTFParserType.Texture, diffuseTexture.index).then(function(texture) {
@@ -6940,7 +7060,7 @@ var KHR_materials_pbrSpecularGlossiness = /*#__PURE__*/ function(GLTFExtensionPa
6940
7060
  });
6941
7061
  }
6942
7062
  if (specularFactor) {
6943
- material.specularColor = new engineMath.Color(engineMath.Color.linearToSRGBSpace(specularFactor[0]), engineMath.Color.linearToSRGBSpace(specularFactor[1]), engineMath.Color.linearToSRGBSpace(specularFactor[2]));
7063
+ material.specularColor.set(specularFactor[0], specularFactor[1], specularFactor[2], 1.0);
6944
7064
  }
6945
7065
  if (glossinessFactor !== undefined) {
6946
7066
  material.glossiness = glossinessFactor;
@@ -6972,7 +7092,7 @@ var KHR_materials_sheen = /*#__PURE__*/ function(GLTFExtensionParser) {
6972
7092
  _proto.additiveParse = function additiveParse(context, material, schema) {
6973
7093
  var sheenColorFactor = schema.sheenColorFactor, sheenColorTexture = schema.sheenColorTexture, _schema_sheenRoughnessFactor = schema.sheenRoughnessFactor, sheenRoughnessFactor = _schema_sheenRoughnessFactor === void 0 ? 0 : _schema_sheenRoughnessFactor, sheenRoughnessTexture = schema.sheenRoughnessTexture;
6974
7094
  if (sheenColorFactor) {
6975
- material.sheenColor.set(engineMath.Color.linearToSRGBSpace(sheenColorFactor[0]), engineMath.Color.linearToSRGBSpace(sheenColorFactor[1]), engineMath.Color.linearToSRGBSpace(sheenColorFactor[2]), undefined);
7095
+ material.sheenColor.set(sheenColorFactor[0], sheenColorFactor[1], sheenColorFactor[2], undefined);
6976
7096
  }
6977
7097
  material.sheenRoughness = sheenRoughnessFactor;
6978
7098
  if (sheenColorTexture) {
@@ -7087,7 +7207,7 @@ var KHR_materials_volume = /*#__PURE__*/ function(GLTFExtensionParser) {
7087
7207
  material.thickness = thicknessFactor;
7088
7208
  material.attenuationDistance = attenuationDistance;
7089
7209
  if (attenuationColor) {
7090
- material.attenuationColor.set(engineMath.Color.linearToSRGBSpace(attenuationColor[0]), engineMath.Color.linearToSRGBSpace(attenuationColor[1]), engineMath.Color.linearToSRGBSpace(attenuationColor[2]), undefined);
7210
+ material.attenuationColor.set(attenuationColor[0], attenuationColor[1], attenuationColor[2], undefined);
7091
7211
  }
7092
7212
  if (thicknessTexture) {
7093
7213
  exports.GLTFMaterialParser._checkOtherTextureTransform(thicknessTexture, "Thickness texture");