@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/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, TextureUtils, 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, TextureUtils, 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,82 +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 isSRGBColorSpace = !!bufferReader.nextUint8();
437
- var mipCount = bufferReader.nextUint8();
438
- var imagesData = bufferReader.nextImagesData(mipCount);
439
- var texture2D = new Texture2D(engine, width, height, format, mipmap, isSRGBColorSpace);
440
- texture2D.filterMode = filterMode;
441
- texture2D.anisoLevel = anisoLevel;
442
- texture2D.wrapModeU = wrapModeU;
443
- texture2D.wrapModeV = wrapModeV;
444
- if (isPixelBuffer) {
445
- var pixelBuffer = imagesData[0];
446
- texture2D.setPixelBuffer(pixelBuffer);
447
- if (mipmap) {
448
- texture2D.generateMipmaps();
449
- for(var i = 1; i < mipCount; i++){
450
- var pixelBuffer1 = imagesData[i];
451
- texture2D.setPixelBuffer(pixelBuffer1, i);
452
- }
453
- }
454
- // @ts-ignore
455
- engine.resourceManager._objectPool[objectId] = texture2D;
456
- resolve(texture2D);
457
- } else {
458
- var blob = new window.Blob([
459
- imagesData[0]
460
- ]);
461
- var img = new Image();
462
- img.onload = function() {
463
- texture2D.setImageSource(img);
464
- var completedCount = 0;
465
- var onComplete = function() {
466
- completedCount++;
467
- if (completedCount >= mipCount) {
468
- resolve(texture2D);
469
- }
470
- };
471
- onComplete();
472
- if (mipmap) {
473
- var _loop = function(i) {
474
- var blob = new window.Blob([
475
- imagesData[i]
476
- ]);
477
- var img = new Image();
478
- img.onload = function() {
479
- texture2D.setImageSource(img, i);
480
- onComplete();
481
- };
482
- img.src = URL.createObjectURL(blob);
483
- };
484
- texture2D.generateMipmaps();
485
- for(var i = 1; i < mipCount; i++)_loop(i);
486
- }
487
- };
488
- img.src = URL.createObjectURL(blob);
489
- }
490
- });
491
- };
492
- return Texture2DDecoder;
493
- }();
494
- Texture2DDecoder = __decorate([
495
- decoder("Texture2D")
496
- ], Texture2DDecoder);
497
-
498
627
  function _is_native_reflect_construct() {
499
628
  // Since Reflect.construct can't be properly polyfilled, some
500
629
  // implementations (e.g. core-js@2) don't set the correct internal slots.
@@ -757,249 +886,149 @@ var ReflectionParser = /*#__PURE__*/ function() {
757
886
  this.customParseComponentHandles[componentType] = handle;
758
887
  };
759
888
  ReflectionParser._isClass = function _isClass(value) {
760
- return value["class"] !== undefined;
761
- };
762
- ReflectionParser._isClassType = function _isClassType(value) {
763
- return value["classType"] !== undefined;
764
- };
765
- ReflectionParser._isAssetRef = function _isAssetRef(value) {
766
- return value["refId"] !== undefined;
767
- };
768
- ReflectionParser._isEntityRef = function _isEntityRef(value) {
769
- return value["entityId"] !== undefined;
770
- };
771
- ReflectionParser._isComponentRef = function _isComponentRef(value) {
772
- return value["ownerId"] !== undefined && value["componentId"] !== undefined;
773
- };
774
- ReflectionParser._isMethodObject = function _isMethodObject(value) {
775
- return Array.isArray(value == null ? void 0 : value.params);
776
- };
777
- return ReflectionParser;
778
- }();
779
- ReflectionParser.customParseComponentHandles = new Map();
780
-
781
- var InterpolableValueType = /*#__PURE__*/ function(InterpolableValueType) {
782
- InterpolableValueType[InterpolableValueType["Float"] = 0] = "Float";
783
- InterpolableValueType[InterpolableValueType["FloatArray"] = 1] = "FloatArray";
784
- InterpolableValueType[InterpolableValueType["Vector2"] = 2] = "Vector2";
785
- InterpolableValueType[InterpolableValueType["Vector3"] = 3] = "Vector3";
786
- InterpolableValueType[InterpolableValueType["Vector4"] = 4] = "Vector4";
787
- InterpolableValueType[InterpolableValueType["Quaternion"] = 5] = "Quaternion";
788
- InterpolableValueType[InterpolableValueType["Color"] = 6] = "Color";
789
- InterpolableValueType[InterpolableValueType["Array"] = 7] = "Array";
790
- InterpolableValueType[InterpolableValueType["Boolean"] = 8] = "Boolean";
791
- InterpolableValueType[InterpolableValueType["Rect"] = 9] = "Rect";
792
- InterpolableValueType[InterpolableValueType["ReferResource"] = 10] = "ReferResource";
793
- return InterpolableValueType;
794
- }({});
795
- var AnimationClipDecoder = /*#__PURE__*/ function() {
796
- function AnimationClipDecoder() {}
797
- AnimationClipDecoder.decode = function decode(engine, bufferReader) {
798
- return new AssetPromise(function(resolve) {
799
- var name = bufferReader.nextStr();
800
- var clip = new AnimationClip(name);
801
- var eventsLen = bufferReader.nextUint16();
802
- for(var i = 0; i < eventsLen; ++i){
803
- var event = new AnimationEvent();
804
- event.time = bufferReader.nextFloat32();
805
- event.functionName = bufferReader.nextStr();
806
- event.parameter = JSON.parse(bufferReader.nextStr()).val;
807
- clip.addEvent(event);
808
- }
809
- var curveBindingsLen = bufferReader.nextUint16();
810
- for(var i1 = 0; i1 < curveBindingsLen; ++i1){
811
- var relativePath = bufferReader.nextStr();
812
- var componentStr = bufferReader.nextStr();
813
- var componentType = Loader.getClass(componentStr);
814
- var property = bufferReader.nextStr();
815
- var getProperty = bufferReader.nextStr();
816
- var curve = void 0;
817
- var interpolation = bufferReader.nextUint8();
818
- var keysLen = bufferReader.nextUint16();
819
- var curveType = bufferReader.nextStr();
820
- switch(curveType){
821
- case "AnimationFloatCurve":
822
- {
823
- curve = new AnimationFloatCurve();
824
- curve.interpolation = interpolation;
825
- for(var j = 0; j < keysLen; ++j){
826
- var keyframe = new Keyframe();
827
- keyframe.time = bufferReader.nextFloat32();
828
- keyframe.value = bufferReader.nextFloat32();
829
- keyframe.inTangent = bufferReader.nextFloat32();
830
- keyframe.outTangent = bufferReader.nextFloat32();
831
- curve.addKey(keyframe);
832
- }
833
- break;
834
- }
835
- case "AnimationArrayCurve":
836
- {
837
- curve = new AnimationArrayCurve();
838
- curve.interpolation = interpolation;
839
- for(var j1 = 0; j1 < keysLen; ++j1){
840
- var keyframe1 = new Keyframe();
841
- keyframe1.time = bufferReader.nextFloat32();
842
- var len = bufferReader.nextUint16();
843
- keyframe1.value = Array.from(bufferReader.nextFloat32Array(len));
844
- keyframe1.inTangent = Array.from(bufferReader.nextFloat32Array(len));
845
- keyframe1.outTangent = Array.from(bufferReader.nextFloat32Array(len));
846
- curve.addKey(keyframe1);
847
- }
848
- break;
849
- }
850
- case "AnimationFloatArrayCurve":
851
- {
852
- curve = new AnimationFloatArrayCurve();
853
- curve.interpolation = interpolation;
854
- for(var j2 = 0; j2 < keysLen; ++j2){
855
- var keyframe2 = new Keyframe();
856
- keyframe2.time = bufferReader.nextFloat32();
857
- var len1 = bufferReader.nextUint16();
858
- keyframe2.value = bufferReader.nextFloat32Array(len1);
859
- keyframe2.inTangent = Array.from(bufferReader.nextFloat32Array(len1));
860
- keyframe2.outTangent = Array.from(bufferReader.nextFloat32Array(len1));
861
- curve.addKey(keyframe2);
862
- }
863
- break;
864
- }
865
- case "AnimationVector2Curve":
866
- {
867
- curve = new AnimationVector2Curve();
868
- curve.interpolation = interpolation;
869
- for(var j3 = 0; j3 < keysLen; ++j3){
870
- var keyframe3 = new Keyframe();
871
- keyframe3.time = bufferReader.nextFloat32();
872
- keyframe3.value = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
873
- keyframe3.inTangent = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
874
- keyframe3.outTangent = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
875
- curve.addKey(keyframe3);
876
- }
877
- break;
878
- }
879
- case "AnimationVector3Curve":
880
- {
881
- curve = new AnimationVector3Curve();
882
- curve.interpolation = interpolation;
883
- for(var j4 = 0; j4 < keysLen; ++j4){
884
- var keyframe4 = new Keyframe();
885
- keyframe4.time = bufferReader.nextFloat32();
886
- keyframe4.value = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
887
- keyframe4.inTangent = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
888
- keyframe4.outTangent = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
889
- curve.addKey(keyframe4);
890
- }
891
- break;
892
- }
893
- case "AnimationVector4Curve":
894
- {
895
- curve = new AnimationVector4Curve();
896
- curve.interpolation = interpolation;
897
- var keyframe5 = new Keyframe();
898
- keyframe5.time = bufferReader.nextFloat32();
899
- keyframe5.value = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
900
- keyframe5.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
901
- keyframe5.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
902
- curve.addKey(keyframe5);
903
- break;
904
- }
905
- case "AnimationColorCurve":
906
- {
907
- curve = new AnimationColorCurve();
908
- curve.interpolation = interpolation;
909
- for(var j5 = 0; j5 < keysLen; ++j5){
910
- var keyframe6 = new Keyframe();
911
- keyframe6.time = bufferReader.nextFloat32();
912
- keyframe6.value = new Color(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
913
- keyframe6.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
914
- keyframe6.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
915
- curve.addKey(keyframe6);
916
- }
917
- break;
918
- }
919
- case "AnimationQuaternionCurve":
920
- {
921
- curve = new AnimationQuaternionCurve();
922
- curve.interpolation = interpolation;
923
- for(var j6 = 0; j6 < keysLen; ++j6){
924
- var keyframe7 = new Keyframe();
925
- keyframe7.time = bufferReader.nextFloat32();
926
- keyframe7.value = new Quaternion(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
927
- keyframe7.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
928
- keyframe7.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
929
- curve.addKey(keyframe7);
930
- }
931
- break;
932
- }
933
- case "AnimationRefCurve":
934
- {
935
- curve = new AnimationRefCurve();
936
- curve.interpolation = interpolation;
937
- for(var j7 = 0; j7 < keysLen; ++j7){
938
- var keyframe8 = new Keyframe();
939
- keyframe8.time = bufferReader.nextFloat32();
940
- var str = bufferReader.nextStr();
941
- if (str) {
942
- keyframe8.value = JSON.parse(str);
943
- } else {
944
- keyframe8.value = null;
945
- }
946
- curve.addKey(keyframe8);
947
- }
948
- break;
949
- }
950
- case "AnimationBoolCurve":
951
- {
952
- curve = new AnimationBoolCurve();
953
- curve.interpolation = interpolation;
954
- for(var j8 = 0; j8 < keysLen; ++j8){
955
- var keyframe9 = new Keyframe();
956
- keyframe9.time = bufferReader.nextFloat32();
957
- keyframe9.value = bufferReader.nextUint8() === 1;
958
- curve.addKey(keyframe9);
959
- }
960
- break;
961
- }
962
- case "AnimationStringCurve":
963
- {
964
- curve = new AnimationStringCurve();
965
- curve.interpolation = interpolation;
966
- for(var j9 = 0; j9 < keysLen; ++j9){
967
- var keyframe10 = new Keyframe();
968
- keyframe10.time = bufferReader.nextFloat32();
969
- keyframe10.value = bufferReader.nextStr();
970
- curve.addKey(keyframe10);
971
- }
972
- break;
973
- }
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 isSRGBColorSpace = !!bufferReader.nextUint8();
925
+ var mipCount = bufferReader.nextUint8();
926
+ var imagesData = bufferReader.nextImagesData(mipCount);
927
+ var texture2D = restoredTexture || new Texture2D(engine, width, height, format, mipmap, isSRGBColorSpace);
928
+ texture2D.filterMode = filterMode;
929
+ texture2D.anisoLevel = anisoLevel;
930
+ texture2D.wrapModeU = wrapModeU;
931
+ texture2D.wrapModeV = wrapModeV;
932
+ if (isPixelBuffer) {
933
+ var pixelBuffer = imagesData[0];
934
+ texture2D.setPixelBuffer(pixelBuffer);
935
+ if (mipmap) {
936
+ texture2D.generateMipmaps();
937
+ for(var i = 1; i < mipCount; i++){
938
+ var pixelBuffer1 = imagesData[i];
939
+ texture2D.setPixelBuffer(pixelBuffer1, i);
940
+ }
974
941
  }
975
- clip.addCurveBinding(relativePath, componentType, property, getProperty, curve);
942
+ // @ts-ignore
943
+ engine.resourceManager._objectPool[objectId] = texture2D;
944
+ resolve(texture2D);
945
+ } else {
946
+ var blob = new window.Blob([
947
+ imagesData[0]
948
+ ]);
949
+ var img = new Image();
950
+ img.onload = function() {
951
+ texture2D.setImageSource(img);
952
+ var completedCount = 0;
953
+ var onComplete = function() {
954
+ completedCount++;
955
+ if (completedCount >= mipCount) {
956
+ resolve(texture2D);
957
+ }
958
+ };
959
+ onComplete();
960
+ if (mipmap) {
961
+ var _loop = function(i) {
962
+ var blob = new window.Blob([
963
+ imagesData[i]
964
+ ]);
965
+ var img = new Image();
966
+ img.onload = function() {
967
+ texture2D.setImageSource(img, i);
968
+ onComplete();
969
+ };
970
+ img.src = URL.createObjectURL(blob);
971
+ };
972
+ texture2D.generateMipmaps();
973
+ for(var i = 1; i < mipCount; i++)_loop(i);
974
+ }
975
+ };
976
+ img.src = URL.createObjectURL(blob);
976
977
  }
977
- resolve(clip);
978
978
  });
979
979
  };
980
- return AnimationClipDecoder;
980
+ return Texture2DDecoder;
981
981
  }();
982
- AnimationClipDecoder = __decorate([
983
- decoder("AnimationClip")
984
- ], AnimationClipDecoder);
985
-
986
- var MaterialLoaderType = /*#__PURE__*/ function(MaterialLoaderType) {
987
- MaterialLoaderType["Vector2"] = "Vector2";
988
- MaterialLoaderType["Vector3"] = "Vector3";
989
- MaterialLoaderType["Vector4"] = "Vector4";
990
- MaterialLoaderType["Color"] = "Color";
991
- MaterialLoaderType["Float"] = "Float";
992
- MaterialLoaderType["Texture"] = "Texture";
993
- MaterialLoaderType["Boolean"] = "Boolean";
994
- MaterialLoaderType["Integer"] = "Integer";
995
- return MaterialLoaderType;
996
- }({});
982
+ Texture2DDecoder = __decorate([
983
+ decoder("Texture2D")
984
+ ], Texture2DDecoder);
997
985
 
998
- var SpecularMode = /*#__PURE__*/ function(SpecularMode) {
999
- SpecularMode["Sky"] = "Sky";
1000
- SpecularMode["Custom"] = "Custom";
1001
- return SpecularMode;
1002
- }({});
986
+ var EditorTextureLoader = /*#__PURE__*/ function(Loader) {
987
+ _inherits(EditorTextureLoader, Loader);
988
+ function EditorTextureLoader() {
989
+ return Loader.apply(this, arguments) || this;
990
+ }
991
+ var _proto = EditorTextureLoader.prototype;
992
+ _proto.load = function load(item, resourceManager) {
993
+ var requestConfig = _extends({}, item, {
994
+ type: "arraybuffer"
995
+ });
996
+ var url = item.url;
997
+ return new AssetPromise(function(resolve, reject) {
998
+ resourceManager// @ts-ignore
999
+ ._request(url, requestConfig).then(function(data) {
1000
+ decode(data, resourceManager.engine).then(function(texture) {
1001
+ resourceManager.addContentRestorer(new EditorTexture2DContentRestorer(texture, url, requestConfig));
1002
+ resolve(texture);
1003
+ });
1004
+ }).catch(reject);
1005
+ });
1006
+ };
1007
+ return EditorTextureLoader;
1008
+ }(Loader);
1009
+ EditorTextureLoader = __decorate([
1010
+ resourceLoader("EditorTexture2D", [
1011
+ "prefab"
1012
+ ], true)
1013
+ ], EditorTextureLoader);
1014
+ var EditorTexture2DContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
1015
+ _inherits(EditorTexture2DContentRestorer, ContentRestorer);
1016
+ function EditorTexture2DContentRestorer(resource, url, requestConfig) {
1017
+ var _this;
1018
+ _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
1019
+ return _this;
1020
+ }
1021
+ var _proto = EditorTexture2DContentRestorer.prototype;
1022
+ _proto.restoreContent = function restoreContent() {
1023
+ var texture = this.resource;
1024
+ var engine = texture.engine;
1025
+ return engine.resourceManager// @ts-ignore
1026
+ ._request(this.url, this.requestConfig).then(function(data) {
1027
+ return decode(data, engine, texture);
1028
+ });
1029
+ };
1030
+ return EditorTexture2DContentRestorer;
1031
+ }(ContentRestorer);
1003
1032
 
1004
1033
  function _instanceof(left, right) {
1005
1034
  if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
@@ -1414,31 +1443,23 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
1414
1443
  return SceneParser;
1415
1444
  }(HierarchyParser);
1416
1445
 
1417
- var EditorTextureLoader = /*#__PURE__*/ function(Loader) {
1418
- _inherits(EditorTextureLoader, Loader);
1419
- function EditorTextureLoader() {
1420
- return Loader.apply(this, arguments) || this;
1421
- }
1422
- var _proto = EditorTextureLoader.prototype;
1423
- _proto.load = function load(item, resourceManager) {
1424
- return new AssetPromise(function(resolve, reject) {
1425
- resourceManager// @ts-ignore
1426
- ._request(item.url, _extends({}, item, {
1427
- type: "arraybuffer"
1428
- })).then(function(data) {
1429
- decode(data, resourceManager.engine).then(function(texture) {
1430
- resolve(texture);
1431
- });
1432
- }).catch(reject);
1433
- });
1434
- };
1435
- return EditorTextureLoader;
1436
- }(Loader);
1437
- EditorTextureLoader = __decorate([
1438
- resourceLoader("EditorTexture2D", [
1439
- "prefab"
1440
- ], true)
1441
- ], EditorTextureLoader);
1446
+ var MaterialLoaderType = /*#__PURE__*/ function(MaterialLoaderType) {
1447
+ MaterialLoaderType["Vector2"] = "Vector2";
1448
+ MaterialLoaderType["Vector3"] = "Vector3";
1449
+ MaterialLoaderType["Vector4"] = "Vector4";
1450
+ MaterialLoaderType["Color"] = "Color";
1451
+ MaterialLoaderType["Float"] = "Float";
1452
+ MaterialLoaderType["Texture"] = "Texture";
1453
+ MaterialLoaderType["Boolean"] = "Boolean";
1454
+ MaterialLoaderType["Integer"] = "Integer";
1455
+ return MaterialLoaderType;
1456
+ }({});
1457
+
1458
+ var SpecularMode = /*#__PURE__*/ function(SpecularMode) {
1459
+ SpecularMode["Sky"] = "Sky";
1460
+ SpecularMode["Custom"] = "Custom";
1461
+ return SpecularMode;
1462
+ }({});
1442
1463
 
1443
1464
  /**
1444
1465
  * Decode engine binary resource.
@@ -1446,9 +1467,16 @@ EditorTextureLoader = __decorate([
1446
1467
  * @param engine - engine
1447
1468
  * @returns
1448
1469
  */ function decode(arrayBuffer, engine) {
1470
+ for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
1471
+ args[_key - 2] = arguments[_key];
1472
+ }
1473
+ var _decoderMap_header_type;
1449
1474
  var header = FileHeader.decode(arrayBuffer);
1450
1475
  var bufferReader = new BufferReader(new Uint8Array(arrayBuffer), header.headerLength, header.dataLength);
1451
- return decoderMap[header.type].decode(engine, bufferReader).then(function(object) {
1476
+ return (_decoderMap_header_type = decoderMap[header.type]).decode.apply(_decoderMap_header_type, [].concat([
1477
+ engine,
1478
+ bufferReader
1479
+ ], args)).then(function(object) {
1452
1480
  object.name = header.name;
1453
1481
  return object;
1454
1482
  });
@@ -1664,10 +1692,11 @@ var EnvLoader = /*#__PURE__*/ function(Loader) {
1664
1692
  type: "arraybuffer"
1665
1693
  });
1666
1694
  var engine = resourceManager.engine;
1695
+ var url = item.url;
1667
1696
  resourceManager// @ts-ignore
1668
- ._request(item.url, requestConfig).then(function(arraybuffer) {
1697
+ ._request(url, requestConfig).then(function(arraybuffer) {
1669
1698
  var texture = EnvLoader._setTextureByBuffer(engine, arraybuffer);
1670
- engine.resourceManager.addContentRestorer(new EnvContentRestorer(texture, item.url, requestConfig));
1699
+ engine.resourceManager.addContentRestorer(new EnvContentRestorer(texture, url, requestConfig));
1671
1700
  var ambientLight = new AmbientLight(engine);
1672
1701
  var sh = new SphericalHarmonics3();
1673
1702
  ambientLight.diffuseMode = DiffuseMode.SphericalHarmonics;
@@ -1722,9 +1751,12 @@ EnvLoader = __decorate([
1722
1751
  _proto.restoreContent = function restoreContent() {
1723
1752
  var _this = this;
1724
1753
  return new AssetPromise(function(resolve, reject) {
1725
- request(_this.url, _this.requestConfig).then(function(buffer) {
1726
- EnvLoader._setTextureByBuffer(_this.resource.engine, buffer, _this.resource);
1727
- resolve(_this.resource);
1754
+ var resource = _this.resource;
1755
+ var engine = resource.engine;
1756
+ engine.resourceManager// @ts-ignore
1757
+ ._request(_this.url, _this.requestConfig).then(function(buffer) {
1758
+ EnvLoader._setTextureByBuffer(engine, buffer, resource);
1759
+ resolve(resource);
1728
1760
  }).catch(reject);
1729
1761
  });
1730
1762
  };
@@ -3608,15 +3640,20 @@ var KTX2Loader = /*#__PURE__*/ function(Loader) {
3608
3640
  * @internal
3609
3641
  */ _proto.load = function load(item, resourceManager) {
3610
3642
  return new AssetPromise(function(resolve, reject, setTaskCompleteProgress, setTaskDetailProgress) {
3611
- resourceManager// @ts-ignore
3612
- ._request(item.url, {
3643
+ var requestConfig = _extends({}, item, {
3613
3644
  type: "arraybuffer"
3614
- }).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(buffer) {
3645
+ });
3646
+ var url = item.url;
3647
+ resourceManager// @ts-ignore
3648
+ ._request(url, requestConfig).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(buffer) {
3615
3649
  return KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
3616
3650
  var ktx2Container = param.ktx2Container, engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
3617
3651
  return KTX2Loader._createTextureByBuffer(engine, ktx2Container.isSRGB, result, targetFormat, params);
3652
+ }).then(function(texture) {
3653
+ resourceManager.addContentRestorer(new KTX2ContentRestorer(texture, url, requestConfig));
3654
+ resolve(texture);
3618
3655
  });
3619
- }).then(resolve).catch(reject);
3656
+ }).catch(reject);
3620
3657
  });
3621
3658
  };
3622
3659
  /**
@@ -3656,7 +3693,7 @@ var KTX2Loader = /*#__PURE__*/ function(Loader) {
3656
3693
  };
3657
3694
  });
3658
3695
  };
3659
- /** @internal */ KTX2Loader._createTextureByBuffer = function _createTextureByBuffer(engine, isSRGB, transcodeResult, targetFormat, params) {
3696
+ /** @internal */ KTX2Loader._createTextureByBuffer = function _createTextureByBuffer(engine, isSRGB, transcodeResult, targetFormat, params, restoredTexture) {
3660
3697
  var width = transcodeResult.width, height = transcodeResult.height, faces = transcodeResult.faces;
3661
3698
  var faceCount = faces.length;
3662
3699
  var mipmaps = faces[0];
@@ -3664,13 +3701,13 @@ var KTX2Loader = /*#__PURE__*/ function(Loader) {
3664
3701
  var engineFormat = this._getEngineTextureFormat(targetFormat, transcodeResult);
3665
3702
  var texture;
3666
3703
  if (faceCount !== 6) {
3667
- texture = new Texture2D(engine, width, height, engineFormat, mipmap, isSRGB);
3704
+ texture = restoredTexture || new Texture2D(engine, width, height, engineFormat, mipmap, isSRGB);
3668
3705
  for(var mipLevel = 0; mipLevel < mipmaps.length; mipLevel++){
3669
3706
  var data = mipmaps[mipLevel].data;
3670
3707
  texture.setPixelBuffer(data, mipLevel);
3671
3708
  }
3672
3709
  } else {
3673
- texture = new TextureCube(engine, height, engineFormat, mipmap, isSRGB);
3710
+ texture = restoredTexture || new TextureCube(engine, height, engineFormat, mipmap, isSRGB);
3674
3711
  for(var i = 0; i < faces.length; i++){
3675
3712
  var faceData = faces[i];
3676
3713
  for(var mipLevel1 = 0; mipLevel1 < mipmaps.length; mipLevel1++){
@@ -3800,6 +3837,30 @@ KTX2Loader = __decorate([
3800
3837
  "ktx2"
3801
3838
  ])
3802
3839
  ], KTX2Loader);
3840
+ var KTX2ContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
3841
+ _inherits(KTX2ContentRestorer, ContentRestorer);
3842
+ function KTX2ContentRestorer(resource, url, requestConfig) {
3843
+ var _this;
3844
+ _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
3845
+ return _this;
3846
+ }
3847
+ var _proto = KTX2ContentRestorer.prototype;
3848
+ _proto.restoreContent = function restoreContent() {
3849
+ var _this = this;
3850
+ var _this1 = this, resource = _this1.resource, requestConfig = _this1.requestConfig;
3851
+ var engine = resource.engine;
3852
+ return new AssetPromise(function(resolve, reject) {
3853
+ engine.resourceManager// @ts-ignore
3854
+ ._request(_this.url, requestConfig).then(function(buffer) {
3855
+ return KTX2Loader._parseBuffer(new Uint8Array(buffer), engine, requestConfig.params).then(function(param) {
3856
+ var ktx2Container = param.ktx2Container, engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
3857
+ return KTX2Loader._createTextureByBuffer(engine, ktx2Container.isSRGB, result, targetFormat, params, resource);
3858
+ });
3859
+ }).then(resolve).catch(reject);
3860
+ });
3861
+ };
3862
+ return KTX2ContentRestorer;
3863
+ }(ContentRestorer);
3803
3864
  /** Used for initialize KTX2 transcoder. */ var KTX2Transcoder = /*#__PURE__*/ function(KTX2Transcoder) {
3804
3865
  /** BinomialLLC transcoder. */ KTX2Transcoder[KTX2Transcoder["BinomialLLC"] = 0] = "BinomialLLC";
3805
3866
  /** Khronos transcoder. */ KTX2Transcoder[KTX2Transcoder["Khronos"] = 1] = "Khronos";
@@ -4513,7 +4574,7 @@ var GLTFMaterialParser = /*#__PURE__*/ function(GLTFParser1) {
4513
4574
  if (pbrMetallicRoughness) {
4514
4575
  var baseColorFactor = pbrMetallicRoughness.baseColorFactor, baseColorTexture = pbrMetallicRoughness.baseColorTexture, metallicFactor = pbrMetallicRoughness.metallicFactor, roughnessFactor = pbrMetallicRoughness.roughnessFactor, metallicRoughnessTexture = pbrMetallicRoughness.metallicRoughnessTexture;
4515
4576
  if (baseColorFactor) {
4516
- material.baseColor = new Color(Color.linearToSRGBSpace(baseColorFactor[0]), Color.linearToSRGBSpace(baseColorFactor[1]), Color.linearToSRGBSpace(baseColorFactor[2]), baseColorFactor[3]);
4577
+ material.baseColor.copyFromArray(baseColorFactor);
4517
4578
  }
4518
4579
  if (baseColorTexture) {
4519
4580
  context.get(GLTFParserType.Texture, baseColorTexture.index).then(function(texture) {
@@ -4546,7 +4607,7 @@ var GLTFMaterialParser = /*#__PURE__*/ function(GLTFParser1) {
4546
4607
  });
4547
4608
  }
4548
4609
  if (emissiveFactor) {
4549
- material.emissiveColor = new Color(Color.linearToSRGBSpace(emissiveFactor[0]), Color.linearToSRGBSpace(emissiveFactor[1]), Color.linearToSRGBSpace(emissiveFactor[2]));
4610
+ material.emissiveColor.set(emissiveFactor[0], emissiveFactor[1], emissiveFactor[2], 1.0);
4550
4611
  }
4551
4612
  if (normalTexture) {
4552
4613
  var index = normalTexture.index, scale = normalTexture.scale;
@@ -5398,10 +5459,11 @@ var HDRLoader = /*#__PURE__*/ function(Loader) {
5398
5459
  var requestConfig = _extends({}, item, {
5399
5460
  type: "arraybuffer"
5400
5461
  });
5462
+ var url = item.url;
5401
5463
  resourceManager// @ts-ignore
5402
- ._request(item.url, requestConfig).then(function(buffer) {
5464
+ ._request(url, requestConfig).then(function(buffer) {
5403
5465
  var texture = HDRLoader._setTextureByBuffer(engine, buffer);
5404
- engine.resourceManager.addContentRestorer(new HDRContentRestorer(texture, item.url, requestConfig));
5466
+ engine.resourceManager.addContentRestorer(new HDRContentRestorer(texture, url, requestConfig));
5405
5467
  resolve(texture);
5406
5468
  }).catch(reject);
5407
5469
  });
@@ -5706,9 +5768,12 @@ HDRLoader = __decorate([
5706
5768
  _proto.restoreContent = function restoreContent() {
5707
5769
  var _this = this;
5708
5770
  return new AssetPromise(function(resolve, reject) {
5709
- request(_this.url, _this.requestConfig).then(function(buffer) {
5710
- HDRLoader._setTextureByBuffer(_this.resource.engine, buffer, _this.resource);
5711
- resolve(_this.resource);
5771
+ var resource = _this.resource;
5772
+ var engine = resource.engine;
5773
+ engine.resourceManager// @ts-ignore
5774
+ ._request(_this.url, _this.requestConfig).then(function(buffer) {
5775
+ HDRLoader._setTextureByBuffer(engine, buffer, resource);
5776
+ resolve(resource);
5712
5777
  }).catch(reject);
5713
5778
  });
5714
5779
  };
@@ -5964,11 +6029,12 @@ var KTXLoader = /*#__PURE__*/ function(Loader) {
5964
6029
  }
5965
6030
  var _proto = KTXLoader.prototype;
5966
6031
  _proto.load = function load(item, resourceManager) {
6032
+ var requestConfig = _extends({}, item, {
6033
+ type: "arraybuffer"
6034
+ });
5967
6035
  return new AssetPromise(function(resolve, reject) {
5968
6036
  resourceManager// @ts-ignore
5969
- ._request(item.url, _extends({}, item, {
5970
- type: "arraybuffer"
5971
- })).then(function(bin) {
6037
+ ._request(item.url, requestConfig).then(function(bin) {
5972
6038
  var parsedData = parseSingleKTX(bin);
5973
6039
  var width = parsedData.width, height = parsedData.height, mipmaps = parsedData.mipmaps, engineFormat = parsedData.engineFormat;
5974
6040
  var mipmap = mipmaps.length > 1;
@@ -5977,6 +6043,7 @@ var KTXLoader = /*#__PURE__*/ function(Loader) {
5977
6043
  var _mipmaps_miplevel = mipmaps[miplevel], width1 = _mipmaps_miplevel.width, height1 = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
5978
6044
  texture.setPixelBuffer(data, miplevel, 0, 0, width1, height1);
5979
6045
  }
6046
+ resourceManager.addContentRestorer(new KTXContentRestorer(texture, item.url, requestConfig));
5980
6047
  resolve(texture);
5981
6048
  }).catch(function(e) {
5982
6049
  reject(e);
@@ -5990,6 +6057,34 @@ KTXLoader = __decorate([
5990
6057
  "ktx"
5991
6058
  ])
5992
6059
  ], KTXLoader);
6060
+ var KTXContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
6061
+ _inherits(KTXContentRestorer, ContentRestorer);
6062
+ function KTXContentRestorer(resource, url, requestConfig) {
6063
+ var _this;
6064
+ _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
6065
+ return _this;
6066
+ }
6067
+ var _proto = KTXContentRestorer.prototype;
6068
+ _proto.restoreContent = function restoreContent() {
6069
+ var _this = this;
6070
+ var resource = this.resource;
6071
+ var engine = resource.engine;
6072
+ return new AssetPromise(function(resolve, reject) {
6073
+ engine.resourceManager// @ts-ignore
6074
+ ._request(_this.url, _this.requestConfig).then(function(bin) {
6075
+ var mipmaps = parseSingleKTX(bin).mipmaps;
6076
+ for(var miplevel = 0; miplevel < mipmaps.length; miplevel++){
6077
+ var _mipmaps_miplevel = mipmaps[miplevel], width = _mipmaps_miplevel.width, height = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
6078
+ resource.setPixelBuffer(data, miplevel, 0, 0, width, height);
6079
+ }
6080
+ resolve(resource);
6081
+ }).catch(function(e) {
6082
+ reject(e);
6083
+ });
6084
+ });
6085
+ };
6086
+ return KTXContentRestorer;
6087
+ }(ContentRestorer);
5993
6088
 
5994
6089
  function parseProperty(object, key, value) {
5995
6090
  if ((typeof value === "undefined" ? "undefined" : _type_of(value)) === "object") {
@@ -6094,13 +6189,16 @@ var MeshLoader = /*#__PURE__*/ function(Loader) {
6094
6189
  }
6095
6190
  var _proto = MeshLoader.prototype;
6096
6191
  _proto.load = function load(item, resourceManager) {
6192
+ var requestConfig = _extends({}, item, {
6193
+ type: "arraybuffer"
6194
+ });
6195
+ var url = item.url;
6097
6196
  return new AssetPromise(function(resolve, reject) {
6098
6197
  resourceManager// @ts-ignore
6099
- ._request(item.url, _extends({}, item, {
6100
- type: "arraybuffer"
6101
- })).then(function(data) {
6198
+ ._request(url, requestConfig).then(function(data) {
6102
6199
  return decode(data, resourceManager.engine);
6103
6200
  }).then(function(mesh) {
6201
+ resourceManager.addContentRestorer(new MeshContentRestorer(mesh, url, requestConfig));
6104
6202
  resolve(mesh);
6105
6203
  }).catch(reject);
6106
6204
  });
@@ -6112,6 +6210,29 @@ MeshLoader = __decorate([
6112
6210
  "mesh"
6113
6211
  ])
6114
6212
  ], MeshLoader);
6213
+ var MeshContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
6214
+ _inherits(MeshContentRestorer, ContentRestorer);
6215
+ function MeshContentRestorer(resource, url, requestConfig) {
6216
+ var _this;
6217
+ _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
6218
+ return _this;
6219
+ }
6220
+ var _proto = MeshContentRestorer.prototype;
6221
+ _proto.restoreContent = function restoreContent() {
6222
+ var _this = this;
6223
+ var resource = this.resource;
6224
+ var engine = resource.engine;
6225
+ return new AssetPromise(function(resolve, reject) {
6226
+ engine.resourceManager// @ts-ignore
6227
+ ._request(_this.url, _this.requestConfig).then(function(data) {
6228
+ return decode(data, engine, resource);
6229
+ }).then(function(mesh) {
6230
+ resolve(mesh);
6231
+ }).catch(reject);
6232
+ });
6233
+ };
6234
+ return MeshContentRestorer;
6235
+ }(ContentRestorer);
6115
6236
 
6116
6237
  var PrimitiveMeshLoader = /*#__PURE__*/ function(Loader) {
6117
6238
  _inherits(PrimitiveMeshLoader, Loader);
@@ -6837,9 +6958,8 @@ var KHR_lights_punctual = /*#__PURE__*/ function(GLTFExtensionParser) {
6837
6958
  light = entity.addComponent(SpotLight);
6838
6959
  }
6839
6960
  if (color) {
6840
- light.color.set(color[0], color[1], color[2], 1);
6961
+ light.color.set(color[0] * intensity, color[1] * intensity, color[2] * intensity, 1);
6841
6962
  }
6842
- light.intensity = intensity;
6843
6963
  if (range && !_instanceof(light, DirectLight)) {
6844
6964
  light.distance = range;
6845
6965
  }
@@ -6925,7 +7045,7 @@ var KHR_materials_pbrSpecularGlossiness = /*#__PURE__*/ function(GLTFExtensionPa
6925
7045
  var material = new PBRSpecularMaterial(engine);
6926
7046
  var diffuseFactor = schema.diffuseFactor, diffuseTexture = schema.diffuseTexture, specularFactor = schema.specularFactor, glossinessFactor = schema.glossinessFactor, specularGlossinessTexture = schema.specularGlossinessTexture;
6927
7047
  if (diffuseFactor) {
6928
- material.baseColor = new Color(Color.linearToSRGBSpace(diffuseFactor[0]), Color.linearToSRGBSpace(diffuseFactor[1]), Color.linearToSRGBSpace(diffuseFactor[2]), diffuseFactor[3]);
7048
+ material.baseColor.copyFromArray(diffuseFactor);
6929
7049
  }
6930
7050
  if (diffuseTexture) {
6931
7051
  context.get(GLTFParserType.Texture, diffuseTexture.index).then(function(texture) {
@@ -6936,7 +7056,7 @@ var KHR_materials_pbrSpecularGlossiness = /*#__PURE__*/ function(GLTFExtensionPa
6936
7056
  });
6937
7057
  }
6938
7058
  if (specularFactor) {
6939
- material.specularColor = new Color(Color.linearToSRGBSpace(specularFactor[0]), Color.linearToSRGBSpace(specularFactor[1]), Color.linearToSRGBSpace(specularFactor[2]));
7059
+ material.specularColor.set(specularFactor[0], specularFactor[1], specularFactor[2], 1.0);
6940
7060
  }
6941
7061
  if (glossinessFactor !== undefined) {
6942
7062
  material.glossiness = glossinessFactor;
@@ -6968,7 +7088,7 @@ var KHR_materials_sheen = /*#__PURE__*/ function(GLTFExtensionParser) {
6968
7088
  _proto.additiveParse = function additiveParse(context, material, schema) {
6969
7089
  var sheenColorFactor = schema.sheenColorFactor, sheenColorTexture = schema.sheenColorTexture, _schema_sheenRoughnessFactor = schema.sheenRoughnessFactor, sheenRoughnessFactor = _schema_sheenRoughnessFactor === void 0 ? 0 : _schema_sheenRoughnessFactor, sheenRoughnessTexture = schema.sheenRoughnessTexture;
6970
7090
  if (sheenColorFactor) {
6971
- material.sheenColor.set(Color.linearToSRGBSpace(sheenColorFactor[0]), Color.linearToSRGBSpace(sheenColorFactor[1]), Color.linearToSRGBSpace(sheenColorFactor[2]), undefined);
7091
+ material.sheenColor.set(sheenColorFactor[0], sheenColorFactor[1], sheenColorFactor[2], undefined);
6972
7092
  }
6973
7093
  material.sheenRoughness = sheenRoughnessFactor;
6974
7094
  if (sheenColorTexture) {
@@ -7083,7 +7203,7 @@ var KHR_materials_volume = /*#__PURE__*/ function(GLTFExtensionParser) {
7083
7203
  material.thickness = thicknessFactor;
7084
7204
  material.attenuationDistance = attenuationDistance;
7085
7205
  if (attenuationColor) {
7086
- material.attenuationColor.set(Color.linearToSRGBSpace(attenuationColor[0]), Color.linearToSRGBSpace(attenuationColor[1]), Color.linearToSRGBSpace(attenuationColor[2]), undefined);
7206
+ material.attenuationColor.set(attenuationColor[0], attenuationColor[1], attenuationColor[2], undefined);
7087
7207
  }
7088
7208
  if (thicknessTexture) {
7089
7209
  GLTFMaterialParser._checkOtherTextureTransform(thicknessTexture, "Thickness texture");