@galacean/engine 2.0.0-alpha.5 → 2.0.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28926,7 +28926,6 @@ PrimitiveChunk.subMeshPool = new ReturnableObjectPool(SubMesh, 10);
28926
28926
  /** Sprite Atlas. */ AssetType["SpriteAtlas"] = "SpriteAtlas";
28927
28927
  /** Ambient light. */ AssetType["Env"] = "Environment";
28928
28928
  /** Scene. */ AssetType["Scene"] = "Scene";
28929
- /** HDR to cube. */ AssetType["HDR"] = "HDR";
28930
28929
  /** Font. */ AssetType["Font"] = "Font";
28931
28930
  /** Source Font, include ttf, otf and woff. */ AssetType["SourceFont"] = "SourceFont";
28932
28931
  /** AudioClip, include ogg, wav and mp3. */ AssetType["Audio"] = "Audio";
@@ -29340,7 +29339,6 @@ var MultiExecutor = /*#__PURE__*/ function() {
29340
29339
  this._contentRestorerPool = Object.create(null);
29341
29340
  this._subAssetPromiseCallbacks = {};
29342
29341
  this./** @internal */ _objectPool = Object.create(null);
29343
- this./** @internal */ _idResourceMap = Object.create(null);
29344
29342
  this./** @internal */ _virtualPathResourceMap = Object.create(null);
29345
29343
  }
29346
29344
  var _proto = ResourceManager.prototype;
@@ -29739,30 +29737,29 @@ var MultiExecutor = /*#__PURE__*/ function() {
29739
29737
  * @internal
29740
29738
  * @beta Just for internal editor, not recommended for developers.
29741
29739
  */ _proto.getResourceByRef = function getResourceByRef(ref) {
29742
- var refId = ref.refId, key = ref.key, isClone = ref.isClone;
29743
- var obj = this._objectPool[refId];
29744
- var promise;
29745
- if (obj) {
29746
- promise = AssetPromise.resolve(obj);
29747
- } else {
29748
- var resourceConfig = this._idResourceMap[refId];
29749
- if (!resourceConfig) {
29750
- Logger.warn("refId:" + refId + " is not find in this._idResourceMap.");
29751
- return AssetPromise.resolve(null);
29752
- }
29753
- var url = resourceConfig.virtualPath;
29754
- if (key) {
29755
- url += "?q=" + key;
29756
- }
29757
- promise = this.load({
29758
- url: url,
29759
- type: resourceConfig.type,
29760
- params: resourceConfig.params
29761
- });
29740
+ var url = ref.url, key = ref.key, isClone = ref.isClone;
29741
+ if (!url) {
29742
+ Logger.warn("ResourceManager.getResourceByRef: url is empty.");
29743
+ return AssetPromise.resolve(null);
29744
+ }
29745
+ var cached = this._objectPool[url];
29746
+ if (cached) {
29747
+ return AssetPromise.resolve(isClone ? cached.clone() : cached);
29748
+ }
29749
+ var mapped = this._virtualPathResourceMap[url];
29750
+ if (!mapped) {
29751
+ Logger.warn('ResourceManager.getResourceByRef: url "' + url + '" not found in virtualPathResourceMap.');
29752
+ return AssetPromise.resolve(null);
29762
29753
  }
29763
- return promise.then(function(item) {
29764
- return isClone ? item.clone() : item;
29754
+ var loadUrl = key ? url + "?q=" + key : url;
29755
+ var promise = this.load({
29756
+ url: loadUrl,
29757
+ type: mapped.type,
29758
+ params: mapped.params
29765
29759
  });
29760
+ return isClone ? promise.then(function(item) {
29761
+ return item.clone();
29762
+ }) : promise;
29766
29763
  };
29767
29764
  /**
29768
29765
  * @internal
@@ -29771,7 +29768,6 @@ var MultiExecutor = /*#__PURE__*/ function() {
29771
29768
  var _this = this;
29772
29769
  config.forEach(function(element) {
29773
29770
  _this._virtualPathResourceMap[element.virtualPath] = element;
29774
- _this._idResourceMap[element.id] = element;
29775
29771
  if (element.dependentAssetMap) {
29776
29772
  _this._virtualPathResourceMap[element.virtualPath].dependentAssetMap = element.dependentAssetMap;
29777
29773
  }
@@ -45751,7 +45747,9 @@ var decoderMap = {};
45751
45747
  decoderMap[type] = target;
45752
45748
  };
45753
45749
  }
45754
- var FileHeader = /*#__PURE__*/ function() {
45750
+ /**
45751
+ * Binary format: [MAGIC(4B)] [totalLength(4B)] [version(1B)] [typeLen(2B)] [type] [nameLen(2B)] [name] [data...]
45752
+ */ var FileHeader = /*#__PURE__*/ function() {
45755
45753
  function FileHeader() {
45756
45754
  this.totalLength = 0;
45757
45755
  this.version = 0;
@@ -45759,14 +45757,23 @@ var FileHeader = /*#__PURE__*/ function() {
45759
45757
  this.name = "";
45760
45758
  this.headerLength = 0;
45761
45759
  }
45760
+ FileHeader.checkMagic = function checkMagic(arrayBuffer) {
45761
+ if (arrayBuffer.byteLength < 4) return false;
45762
+ var view = new DataView(arrayBuffer);
45763
+ return view.getUint32(0, true) === FileHeader.MAGIC;
45764
+ };
45762
45765
  FileHeader.decode = function decode(arrayBuffer) {
45763
45766
  var dataView = new DataView(arrayBuffer);
45764
- var totalLen = dataView.getUint32(0, true);
45765
- var fileVersion = dataView.getUint8(4);
45766
- var typeLen = dataView.getUint16(5, true);
45767
- var typeUint8Array = new Uint8Array(arrayBuffer, 7, typeLen);
45768
- var nameLen = dataView.getUint16(7 + typeLen, true);
45769
- var nameUint8Array = new Uint8Array(arrayBuffer, 9 + typeLen, nameLen);
45767
+ if (!FileHeader.checkMagic(arrayBuffer)) {
45768
+ throw new Error("Invalid Galacean binary file: missing GLCN magic header.");
45769
+ }
45770
+ var offset = 4;
45771
+ var totalLen = dataView.getUint32(offset, true);
45772
+ var fileVersion = dataView.getUint8(offset + 4);
45773
+ var typeLen = dataView.getUint16(offset + 5, true);
45774
+ var typeUint8Array = new Uint8Array(arrayBuffer, offset + 7, typeLen);
45775
+ var nameLen = dataView.getUint16(offset + 7 + typeLen, true);
45776
+ var nameUint8Array = new Uint8Array(arrayBuffer, offset + 9 + typeLen, nameLen);
45770
45777
  var name = Utils.decodeText(nameUint8Array);
45771
45778
  var type = Utils.decodeText(typeUint8Array);
45772
45779
  var header = new FileHeader();
@@ -45774,7 +45781,7 @@ var FileHeader = /*#__PURE__*/ function() {
45774
45781
  header.name = name;
45775
45782
  header.type = type;
45776
45783
  header.version = fileVersion;
45777
- header.headerLength = nameUint8Array.byteLength + typeUint8Array.byteLength + 9;
45784
+ header.headerLength = offset + nameUint8Array.byteLength + typeUint8Array.byteLength + 9;
45778
45785
  return header;
45779
45786
  };
45780
45787
  _create_class(FileHeader, [
@@ -45787,6 +45794,8 @@ var FileHeader = /*#__PURE__*/ function() {
45787
45794
  ]);
45788
45795
  return FileHeader;
45789
45796
  }();
45797
+ FileHeader.MAGIC = 0x4e434c47 // "GLCN" in little-endian
45798
+ ;
45790
45799
  var InterpolableValueType = /*#__PURE__*/ function(InterpolableValueType) {
45791
45800
  InterpolableValueType[InterpolableValueType["Float"] = 0] = "Float";
45792
45801
  InterpolableValueType[InterpolableValueType["FloatArray"] = 1] = "FloatArray";
@@ -46187,12 +46196,12 @@ var ParserType = /*#__PURE__*/ function(ParserType) {
46187
46196
  this.rootIds.length = 0;
46188
46197
  this.strippedIds.length = 0;
46189
46198
  };
46190
- /** @internal */ _proto._addDependentAsset = function _addDependentAsset(refID, promise) {
46199
+ /** @internal */ _proto._addDependentAsset = function _addDependentAsset(url, promise) {
46191
46200
  var _this = this;
46192
46201
  var tasks = this._tasks;
46193
- if (tasks.has(refID)) return;
46202
+ if (tasks.has(url)) return;
46194
46203
  ++this._total;
46195
- tasks.add(refID);
46204
+ tasks.add(url);
46196
46205
  promise.finally(function() {
46197
46206
  ++_this._loaded;
46198
46207
  _this._setTaskCompleteProgress(_this._loaded, _this._total);
@@ -46299,7 +46308,7 @@ var ReflectionParser = /*#__PURE__*/ function() {
46299
46308
  // reference object
46300
46309
  // @ts-ignore
46301
46310
  return context.resourceManager.getResourceByRef(value).then(function(resource) {
46302
- if (context.type === ParserType.Prefab) {
46311
+ if (resource && context.type === ParserType.Prefab) {
46303
46312
  // @ts-ignore
46304
46313
  context.resource._addDependenceAsset(resource);
46305
46314
  }
@@ -46342,18 +46351,18 @@ var ReflectionParser = /*#__PURE__*/ function() {
46342
46351
  _proto._getEntityByConfig = function _getEntityByConfig(entityConfig) {
46343
46352
  var _this = this;
46344
46353
  // @ts-ignore
46345
- var assetRefId = entityConfig.assetRefId;
46354
+ var assetUrl = entityConfig.assetUrl;
46346
46355
  var engine = this._context.engine;
46347
- if (assetRefId) {
46356
+ if (assetUrl) {
46348
46357
  return engine.resourceManager // @ts-ignore
46349
46358
  .getResourceByRef({
46350
- refId: assetRefId,
46359
+ url: assetUrl,
46351
46360
  key: entityConfig.key,
46352
46361
  isClone: entityConfig.isClone
46353
46362
  }).then(function(entity) {
46354
46363
  // @ts-ignore
46355
- var resource = engine.resourceManager._objectPool[assetRefId];
46356
- if (_this._context.type === ParserType.Prefab) {
46364
+ var resource = engine.resourceManager._objectPool[assetUrl];
46365
+ if (resource && _this._context.type === ParserType.Prefab) {
46357
46366
  // @ts-ignore
46358
46367
  _this._context.resource._addDependenceAsset(resource);
46359
46368
  }
@@ -46376,7 +46385,7 @@ var ReflectionParser = /*#__PURE__*/ function() {
46376
46385
  return value["classType"] !== undefined;
46377
46386
  };
46378
46387
  ReflectionParser._isAssetRef = function _isAssetRef(value) {
46379
- return value["refId"] !== undefined;
46388
+ return value["url"] !== undefined;
46380
46389
  };
46381
46390
  ReflectionParser._isEntityRef = function _isEntityRef(value) {
46382
46391
  return value["entityId"] !== undefined;
@@ -46394,7 +46403,7 @@ var Texture2DDecoder = /*#__PURE__*/ function() {
46394
46403
  function Texture2DDecoder() {}
46395
46404
  Texture2DDecoder.decode = function decode(engine, bufferReader, restoredTexture) {
46396
46405
  return new AssetPromise(function(resolve, reject) {
46397
- var objectId = bufferReader.nextStr();
46406
+ var url = bufferReader.nextStr();
46398
46407
  var mipmap = !!bufferReader.nextUint8();
46399
46408
  var filterMode = bufferReader.nextUint8();
46400
46409
  var anisoLevel = bufferReader.nextUint8();
@@ -46423,7 +46432,7 @@ var Texture2DDecoder = /*#__PURE__*/ function() {
46423
46432
  }
46424
46433
  }
46425
46434
  // @ts-ignore
46426
- engine.resourceManager._objectPool[objectId] = texture2D;
46435
+ engine.resourceManager._objectPool[url] = texture2D;
46427
46436
  resolve(texture2D);
46428
46437
  } else {
46429
46438
  var blob = new window.Blob([
@@ -46717,7 +46726,7 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
46717
46726
  _proto._getEntityByConfig = function _getEntityByConfig(entityConfig, engine) {
46718
46727
  var _this = this;
46719
46728
  var entityPromise;
46720
- if (entityConfig.assetRefId) {
46729
+ if (entityConfig.assetUrl) {
46721
46730
  entityPromise = this._parsePrefab(entityConfig, engine);
46722
46731
  } else if (entityConfig.strippedId) {
46723
46732
  entityPromise = this._parseStrippedEntity(entityConfig);
@@ -46737,10 +46746,10 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
46737
46746
  };
46738
46747
  _proto._parsePrefab = function _parsePrefab(entityConfig, engine) {
46739
46748
  var _this = this;
46740
- var assetRefId = entityConfig.assetRefId;
46749
+ var assetUrl = entityConfig.assetUrl;
46741
46750
  return engine.resourceManager // @ts-ignore
46742
46751
  .getResourceByRef({
46743
- refId: assetRefId
46752
+ url: assetUrl
46744
46753
  }).then(function(prefabResource) {
46745
46754
  var entity = _instanceof1(prefabResource, PrefabResource) ? prefabResource.instantiate() : prefabResource.instantiateSceneRoot();
46746
46755
  var instanceContext = new ParserContext(engine, ParserType.Prefab, null);
@@ -46791,7 +46800,7 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
46791
46800
  var componentConfigMap = context.componentConfigMap;
46792
46801
  for(var i = 0, n = components.length; i < n; i++){
46793
46802
  var componentConfig = components[i];
46794
- var key = !componentConfig.refId ? componentConfig.class : componentConfig.refId;
46803
+ var key = !componentConfig.url ? componentConfig.class : componentConfig.url;
46795
46804
  var componentId = componentConfig.id;
46796
46805
  var component = entity.addComponent(Loader.getClass(key));
46797
46806
  componentMap.set(componentId, component);
@@ -46838,52 +46847,6 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
46838
46847
  _proto._addEntityPlugin = function _addEntityPlugin(entityId, entity) {};
46839
46848
  return HierarchyParser;
46840
46849
  }();
46841
- var EditorTextureLoader = /*#__PURE__*/ function(Loader) {
46842
- _inherits(EditorTextureLoader, Loader);
46843
- function EditorTextureLoader() {
46844
- return Loader.apply(this, arguments) || this;
46845
- }
46846
- var _proto = EditorTextureLoader.prototype;
46847
- _proto.load = function load(item, resourceManager) {
46848
- var requestConfig = _extends({}, item, {
46849
- type: "arraybuffer"
46850
- });
46851
- var url = item.url;
46852
- return new AssetPromise(function(resolve, reject) {
46853
- resourceManager // @ts-ignore
46854
- ._request(url, requestConfig).then(function(data) {
46855
- decode(data, resourceManager.engine).then(function(texture) {
46856
- resourceManager.addContentRestorer(new EditorTexture2DContentRestorer(texture, url, requestConfig));
46857
- resolve(texture);
46858
- });
46859
- }).catch(reject);
46860
- });
46861
- };
46862
- return EditorTextureLoader;
46863
- }(Loader);
46864
- EditorTextureLoader = __decorate([
46865
- resourceLoader("EditorTexture2D", [
46866
- "prefab"
46867
- ], true)
46868
- ], EditorTextureLoader);
46869
- var EditorTexture2DContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
46870
- _inherits(EditorTexture2DContentRestorer, ContentRestorer);
46871
- function EditorTexture2DContentRestorer(resource, url, requestConfig) {
46872
- var _this;
46873
- _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
46874
- return _this;
46875
- }
46876
- var _proto = EditorTexture2DContentRestorer.prototype;
46877
- _proto.restoreContent = function restoreContent() {
46878
- var texture = this.resource;
46879
- var engine = texture.engine;
46880
- return engine.resourceManager // @ts-ignore
46881
- ._request(this.url, this.requestConfig).then(function(data) {
46882
- return decode(data, engine, texture);
46883
- });
46884
- };
46885
- return EditorTexture2DContentRestorer;
46886
- }(ContentRestorer);
46887
46850
  var MaterialLoaderType = /*#__PURE__*/ function(MaterialLoaderType) {
46888
46851
  MaterialLoaderType["Vector2"] = "Vector2";
46889
46852
  MaterialLoaderType["Vector3"] = "Vector3";
@@ -46922,11 +46885,11 @@ var SpecularMode = /*#__PURE__*/ function(SpecularMode) {
46922
46885
  var customAmbientLight = ambient.customAmbientLight, ambientLight = ambient.ambientLight;
46923
46886
  if (useCustomAmbient && customAmbientLight) {
46924
46887
  // @ts-ignore
46925
- context._addDependentAsset(customAmbientLight.refId, resourceManager.getResourceByRef(customAmbientLight));
46888
+ context._addDependentAsset(customAmbientLight.url, resourceManager.getResourceByRef(customAmbientLight));
46926
46889
  }
46927
46890
  if (ambientLight && (!useCustomAmbient || useSH)) {
46928
46891
  // @ts-ignore
46929
- context._addDependentAsset(ambientLight.refId, resourceManager.getResourceByRef(ambientLight));
46892
+ context._addDependentAsset(ambientLight.url, resourceManager.getResourceByRef(ambientLight));
46930
46893
  }
46931
46894
  }
46932
46895
  var background = scene.background;
@@ -46934,14 +46897,14 @@ var SpecularMode = /*#__PURE__*/ function(SpecularMode) {
46934
46897
  if (backgroundMode === BackgroundMode.Texture) {
46935
46898
  var texture = background.texture;
46936
46899
  // @ts-ignore
46937
- texture && context._addDependentAsset(texture.refId, resourceManager.getResourceByRef(texture));
46900
+ texture && context._addDependentAsset(texture.url, resourceManager.getResourceByRef(texture));
46938
46901
  } else if (backgroundMode === BackgroundMode.Sky) {
46939
46902
  var skyMesh = background.skyMesh, skyMaterial = background.skyMaterial;
46940
46903
  if (skyMesh && skyMaterial) {
46941
46904
  // @ts-ignore
46942
- context._addDependentAsset(skyMesh.refId, resourceManager.getResourceByRef(skyMesh));
46905
+ context._addDependentAsset(skyMesh.url, resourceManager.getResourceByRef(skyMesh));
46943
46906
  // @ts-ignore
46944
- context._addDependentAsset(skyMaterial.refId, resourceManager.getResourceByRef(skyMaterial));
46907
+ context._addDependentAsset(skyMaterial.url, resourceManager.getResourceByRef(skyMaterial));
46945
46908
  }
46946
46909
  }
46947
46910
  };
@@ -46957,12 +46920,12 @@ var SpecularMode = /*#__PURE__*/ function(SpecularMode) {
46957
46920
  var entities = file.entities;
46958
46921
  for(var i = 0, n = entities.length; i < n; i++){
46959
46922
  var entity = entities[i];
46960
- if (!!entity.assetRefId) {
46923
+ if (!!entity.assetUrl) {
46961
46924
  var context = this.context;
46962
- var refId = entity.assetRefId, key = entity.key;
46925
+ var url = entity.assetUrl, key = entity.key;
46963
46926
  // @ts-ignore
46964
- context._addDependentAsset(refId, context.resourceManager.getResourceByRef({
46965
- refId: refId,
46927
+ context._addDependentAsset(url, context.resourceManager.getResourceByRef({
46928
+ url: url,
46966
46929
  key: key
46967
46930
  }));
46968
46931
  } else if (entity.strippedId) {
@@ -46987,7 +46950,7 @@ var SpecularMode = /*#__PURE__*/ function(SpecularMode) {
46987
46950
  if (ReflectionParser._isAssetRef(value)) {
46988
46951
  var context = this.context;
46989
46952
  // @ts-ignore
46990
- context._addDependentAsset(value.refId, context.resourceManager.getResourceByRef(value));
46953
+ context._addDependentAsset(value.url, context.resourceManager.getResourceByRef(value));
46991
46954
  } else {
46992
46955
  for(var key in value){
46993
46956
  this._searchDependentAssets(value[key]);
@@ -47049,7 +47012,7 @@ var AnimationClipLoader = /*#__PURE__*/ function(Loader) {
47049
47012
  };
47050
47013
  _proto._parseKeyframeValue = function _parseKeyframeValue(keyframe, resourceManager) {
47051
47014
  var value = keyframe.value;
47052
- if ((typeof value === "undefined" ? "undefined" : _type_of1(value)) === "object" && (value == null ? void 0 : value.refId)) {
47015
+ if ((typeof value === "undefined" ? "undefined" : _type_of1(value)) === "object" && (value == null ? void 0 : value.url)) {
47053
47016
  return new Promise(function(resolve) {
47054
47017
  resourceManager // @ts-ignore
47055
47018
  .getResourceByRef(value).then(function(asset) {
@@ -47065,7 +47028,7 @@ var AnimationClipLoader = /*#__PURE__*/ function(Loader) {
47065
47028
  }(Loader);
47066
47029
  AnimationClipLoader = __decorate([
47067
47030
  resourceLoader(AssetType.AnimationClip, [
47068
- "ani"
47031
+ "anim"
47069
47032
  ])
47070
47033
  ], AnimationClipLoader);
47071
47034
  var AnimatorControllerLoader = /*#__PURE__*/ function(Loader1) {
@@ -47176,8 +47139,8 @@ var AnimatorControllerLoader = /*#__PURE__*/ function(Loader1) {
47176
47139
  }(Loader);
47177
47140
  AnimatorControllerLoader = __decorate([
47178
47141
  resourceLoader(AssetType.AnimatorController, [
47179
- "json"
47180
- ], false)
47142
+ "animCtrl"
47143
+ ])
47181
47144
  ], AnimatorControllerLoader);
47182
47145
  var base64Regex = /^data:(.+?);base64,/;
47183
47146
  var BufferLoader = /*#__PURE__*/ function(Loader) {
@@ -47204,8 +47167,7 @@ var BufferLoader = /*#__PURE__*/ function(Loader) {
47204
47167
  }(Loader);
47205
47168
  BufferLoader = __decorate([
47206
47169
  resourceLoader(AssetType.Buffer, [
47207
- "bin",
47208
- "r3bin"
47170
+ "bin"
47209
47171
  ])
47210
47172
  ], BufferLoader);
47211
47173
  var EnvLoader = /*#__PURE__*/ function(Loader) {
@@ -50744,340 +50706,6 @@ PrefabLoader = __decorate([
50744
50706
  "prefab"
50745
50707
  ])
50746
50708
  ], PrefabLoader);
50747
- var PI = Math.PI;
50748
- // referenece: https://www.flipcode.com/archives/HDR_Image_Reader.shtml
50749
- var HDRLoader = /*#__PURE__*/ function(Loader) {
50750
- _inherits(HDRLoader, Loader);
50751
- function HDRLoader() {
50752
- return Loader.apply(this, arguments) || this;
50753
- }
50754
- var _proto = HDRLoader.prototype;
50755
- _proto.load = function load(item, resourceManager) {
50756
- return new AssetPromise(function(resolve, reject) {
50757
- var engine = resourceManager.engine;
50758
- var requestConfig = _extends({}, item, {
50759
- type: "arraybuffer"
50760
- });
50761
- var url = item.url;
50762
- resourceManager // @ts-ignore
50763
- ._request(url, requestConfig).then(function(buffer) {
50764
- var texture = HDRLoader._setTextureByBuffer(engine, buffer);
50765
- engine.resourceManager.addContentRestorer(new HDRContentRestorer(texture, url, requestConfig));
50766
- resolve(texture);
50767
- }).catch(reject);
50768
- });
50769
- };
50770
- /**
50771
- * @internal
50772
- */ HDRLoader._setTextureByBuffer = function _setTextureByBuffer(engine, buffer, texture) {
50773
- var bufferArray = new Uint8Array(buffer);
50774
- var _HDRLoader__parseHeader = HDRLoader._parseHeader(bufferArray), width = _HDRLoader__parseHeader.width, height = _HDRLoader__parseHeader.height, dataPosition = _HDRLoader__parseHeader.dataPosition;
50775
- var cubeSize = height >> 1;
50776
- texture || (texture = new TextureCube(engine, cubeSize, undefined, undefined, false));
50777
- var pixels = HDRLoader._readPixels(bufferArray.subarray(dataPosition), width, height);
50778
- var cubeMapData = HDRLoader._convertToCubemap(pixels, width, height, cubeSize);
50779
- for(var faceIndex = 0; faceIndex < 6; faceIndex++){
50780
- texture.setPixelBuffer(TextureCubeFace.PositiveX + faceIndex, cubeMapData[faceIndex], 0);
50781
- }
50782
- texture.generateMipmaps();
50783
- return texture;
50784
- };
50785
- HDRLoader._convertToCubemap = function _convertToCubemap(pixels, inputWidth, inputHeight, size) {
50786
- if (!pixels) {
50787
- throw "ConvertPanoramaToCubemap: input cannot be null";
50788
- }
50789
- if (pixels.length != inputWidth * inputHeight * 4) {
50790
- throw "ConvertPanoramaToCubemap: input size is wrong";
50791
- }
50792
- var textureRight = this._createCubemapData(size, this._faceRight, pixels, inputWidth, inputHeight);
50793
- var textureLeft = this._createCubemapData(size, this._faceLeft, pixels, inputWidth, inputHeight);
50794
- var textureUp = this._createCubemapData(size, this._faceUp, pixels, inputWidth, inputHeight);
50795
- var textureDown = this._createCubemapData(size, this._faceBottom, pixels, inputWidth, inputHeight);
50796
- var textureFront = this._createCubemapData(size, this._faceFront, pixels, inputWidth, inputHeight);
50797
- var textureBack = this._createCubemapData(size, this._faceBack, pixels, inputWidth, inputHeight);
50798
- return [
50799
- textureRight,
50800
- textureLeft,
50801
- textureUp,
50802
- textureDown,
50803
- textureFront,
50804
- textureBack
50805
- ];
50806
- };
50807
- HDRLoader._createCubemapData = function _createCubemapData(texSize, faceData, pixels, inputWidth, inputHeight) {
50808
- var textureArray = new Uint8ClampedArray(texSize * texSize * 4);
50809
- var rotDX1 = this._tempVector3.set(0, 0, 0).add(faceData[1]).subtract(faceData[0]).scale(1 / texSize);
50810
- var rotDX2 = this._temp2Vector3.set(0, 0, 0).add(faceData[3]).subtract(faceData[2]).scale(1 / texSize);
50811
- var dy = 1 / texSize;
50812
- var fy = 0;
50813
- for(var y = 0; y < texSize; y++){
50814
- var xv1 = this._temp3Vector3.set(0, 0, 0).add(faceData[0]);
50815
- var xv2 = this._temp4Vector3.set(0, 0, 0).add(faceData[2]);
50816
- for(var x = 0; x < texSize; x++){
50817
- var v = this._temp5Vector3.set(0, 0, 0).add(xv2).subtract(xv1).scale(fy).add(xv1);
50818
- v.normalize();
50819
- var color = this._calcProjectionSpherical(v, pixels, inputWidth, inputHeight);
50820
- this._RGBEToLinear(color);
50821
- this._linearToRGBM(color, 5);
50822
- // 4 channels per pixels
50823
- var index = y * texSize * 4 + x * 4;
50824
- textureArray[index] = color.r;
50825
- textureArray[index + 1] = color.g;
50826
- textureArray[index + 2] = color.b;
50827
- textureArray[index + 3] = color.a;
50828
- xv1.add(rotDX1);
50829
- xv2.add(rotDX2);
50830
- }
50831
- fy += dy;
50832
- }
50833
- return textureArray;
50834
- };
50835
- HDRLoader._calcProjectionSpherical = function _calcProjectionSpherical(vDir, pixels, inputWidth, inputHeight) {
50836
- var theta = Math.atan2(vDir.z, vDir.x);
50837
- var phi = Math.acos(vDir.y);
50838
- while(theta < -PI){
50839
- theta += 2 * PI;
50840
- }
50841
- while(theta > PI){
50842
- theta -= 2 * PI;
50843
- }
50844
- var dx = theta / PI;
50845
- var dy = phi / PI;
50846
- // recenter.
50847
- dx = dx * 0.5 + 0.5;
50848
- var px = Math.round(dx * inputWidth);
50849
- if (px < 0) {
50850
- px = 0;
50851
- } else if (px >= inputWidth) {
50852
- px = inputWidth - 1;
50853
- }
50854
- var py = Math.round(dy * inputHeight);
50855
- if (py < 0) {
50856
- py = 0;
50857
- } else if (py >= inputHeight) {
50858
- py = inputHeight - 1;
50859
- }
50860
- var inputY = inputHeight - py - 1;
50861
- var index = inputY * inputWidth * 4 + px * 4;
50862
- var r = pixels[index];
50863
- var g = pixels[index + 1];
50864
- var b = pixels[index + 2];
50865
- var a = pixels[index + 3];
50866
- return new Color(r, g, b, a);
50867
- };
50868
- HDRLoader._readStringLine = function _readStringLine(uint8array, startIndex) {
50869
- var line = "";
50870
- var character = "";
50871
- for(var i = startIndex; i < uint8array.length - startIndex; i++){
50872
- character = String.fromCharCode(uint8array[i]);
50873
- if (character == "\n") {
50874
- break;
50875
- }
50876
- line += character;
50877
- }
50878
- return line;
50879
- };
50880
- HDRLoader._parseHeader = function _parseHeader(uint8array) {
50881
- var height = 0;
50882
- var width = 0;
50883
- var line = this._readStringLine(uint8array, 0);
50884
- if (line[0] != "#" || line[1] != "?") {
50885
- throw "Bad HDR Format.";
50886
- }
50887
- var endOfHeader = false;
50888
- var findFormat = false;
50889
- var lineIndex = 0;
50890
- do {
50891
- lineIndex += line.length + 1;
50892
- line = this._readStringLine(uint8array, lineIndex);
50893
- if (line == "FORMAT=32-bit_rle_rgbe") {
50894
- findFormat = true;
50895
- } else if (line.length == 0) {
50896
- endOfHeader = true;
50897
- }
50898
- }while (!endOfHeader);
50899
- if (!findFormat) {
50900
- throw "HDR Bad header format, unsupported FORMAT";
50901
- }
50902
- lineIndex += line.length + 1;
50903
- line = this._readStringLine(uint8array, lineIndex);
50904
- var sizeRegexp = /^\-Y (.*) \+X (.*)$/g;
50905
- var match = sizeRegexp.exec(line);
50906
- // TODO. Support +Y and -X if needed.
50907
- if (!match || match.length < 3) {
50908
- throw "HDR Bad header format, no size";
50909
- }
50910
- width = parseInt(match[2]);
50911
- height = parseInt(match[1]);
50912
- if (width < 8 || width > 0x7fff) {
50913
- throw "HDR Bad header format, unsupported size";
50914
- }
50915
- lineIndex += line.length + 1;
50916
- return {
50917
- height: height,
50918
- width: width,
50919
- dataPosition: lineIndex
50920
- };
50921
- };
50922
- HDRLoader._readPixels = function _readPixels(buffer, width, height) {
50923
- var scanLineWidth = width;
50924
- var byteLength = buffer.byteLength;
50925
- var dataRGBA = new Uint8Array(4 * width * height);
50926
- var offset = 0, pos = 0;
50927
- var ptrEnd = 4 * scanLineWidth;
50928
- var scanLineBuffer = new Uint8Array(ptrEnd);
50929
- var numScanLines = height; // read in each successive scanLine
50930
- while(numScanLines > 0 && pos < byteLength){
50931
- var a = buffer[pos++];
50932
- var b = buffer[pos++];
50933
- var c = buffer[pos++];
50934
- var d = buffer[pos++];
50935
- if (a != 2 || b != 2 || c & 0x80 || width < 8 || width > 32767) {
50936
- // this file is not run length encoded
50937
- // read values sequentially
50938
- return buffer;
50939
- }
50940
- if ((c << 8 | d) != scanLineWidth) {
50941
- // eslint-disable-next-line no-throw-literal
50942
- throw "HDR Bad header format, wrong scan line width";
50943
- }
50944
- // read each of the four channels for the scanline into the buffer
50945
- // first red, then green, then blue, then exponent
50946
- var ptr = 0, count = void 0;
50947
- while(ptr < ptrEnd && pos < byteLength){
50948
- count = buffer[pos++];
50949
- var isEncodedRun = count > 128;
50950
- if (isEncodedRun) count -= 128;
50951
- if (0 === count || ptr + count > ptrEnd) {
50952
- throw "HDR Bad Format, bad scanline data (run)";
50953
- }
50954
- if (isEncodedRun) {
50955
- // a (encoded) run of the same value
50956
- var byteValue = buffer[pos++];
50957
- for(var i = 0; i < count; i++){
50958
- scanLineBuffer[ptr++] = byteValue;
50959
- } //ptr += count;
50960
- } else {
50961
- // a literal-run
50962
- scanLineBuffer.set(buffer.subarray(pos, pos + count), ptr);
50963
- ptr += count;
50964
- pos += count;
50965
- }
50966
- } // now convert data from buffer into rgba
50967
- // first red, then green, then blue, then exponent (alpha)
50968
- var l = scanLineWidth; //scanLine_buffer.byteLength;
50969
- for(var i1 = 0; i1 < l; i1++){
50970
- var off = 0;
50971
- dataRGBA[offset] = scanLineBuffer[i1 + off];
50972
- off += scanLineWidth;
50973
- dataRGBA[offset + 1] = scanLineBuffer[i1 + off];
50974
- off += scanLineWidth;
50975
- dataRGBA[offset + 2] = scanLineBuffer[i1 + off];
50976
- off += scanLineWidth;
50977
- dataRGBA[offset + 3] = scanLineBuffer[i1 + off];
50978
- offset += 4;
50979
- }
50980
- numScanLines--;
50981
- }
50982
- return dataRGBA;
50983
- };
50984
- HDRLoader._RGBEToLinear = function _RGBEToLinear(color) {
50985
- var scaleFactor = Math.pow(2, color.a - 128) / 255;
50986
- color.r *= scaleFactor;
50987
- color.g *= scaleFactor;
50988
- color.b *= scaleFactor;
50989
- color.a = 1;
50990
- };
50991
- HDRLoader._linearToRGBM = function _linearToRGBM(color, maxRange) {
50992
- var maxRGB = Math.max(color.r, Math.max(color.g, color.b));
50993
- var M = Math.min(maxRGB / maxRange, 1);
50994
- M = Math.ceil(M * 255);
50995
- var scaleFactor = 65025 / (M * maxRange); // 255 * (255 / (M * maxRange) )
50996
- color.r *= scaleFactor;
50997
- color.g *= scaleFactor;
50998
- color.b *= scaleFactor;
50999
- color.a *= M;
51000
- };
51001
- return HDRLoader;
51002
- }(Loader);
51003
- HDRLoader._rightBottomBack = new Vector3(1.0, -1.0, -1.0);
51004
- HDRLoader._rightBottomFront = new Vector3(1.0, -1.0, 1.0);
51005
- HDRLoader._rightUpBack = new Vector3(1.0, 1.0, -1.0);
51006
- HDRLoader._rightUpFront = new Vector3(1.0, 1.0, 1.0);
51007
- HDRLoader._leftBottomBack = new Vector3(-1.0, -1.0, -1.0);
51008
- HDRLoader._leftBottomFront = new Vector3(-1.0, -1.0, 1.0);
51009
- HDRLoader._leftUpBack = new Vector3(-1.0, 1.0, -1.0);
51010
- HDRLoader._leftUpFront = new Vector3(-1.0, 1.0, 1.0);
51011
- HDRLoader._faceRight = [
51012
- HDRLoader._rightBottomBack,
51013
- HDRLoader._rightBottomFront,
51014
- HDRLoader._rightUpBack,
51015
- HDRLoader._rightUpFront
51016
- ];
51017
- HDRLoader._faceLeft = [
51018
- HDRLoader._leftBottomFront,
51019
- HDRLoader._leftBottomBack,
51020
- HDRLoader._leftUpFront,
51021
- HDRLoader._leftUpBack
51022
- ];
51023
- HDRLoader._faceUp = [
51024
- HDRLoader._leftBottomFront,
51025
- HDRLoader._rightBottomFront,
51026
- HDRLoader._leftBottomBack,
51027
- HDRLoader._rightBottomBack
51028
- ];
51029
- HDRLoader._faceBottom = [
51030
- HDRLoader._leftUpBack,
51031
- HDRLoader._rightUpBack,
51032
- HDRLoader._leftUpFront,
51033
- HDRLoader._rightUpFront
51034
- ];
51035
- HDRLoader._faceFront = [
51036
- HDRLoader._leftBottomBack,
51037
- HDRLoader._rightBottomBack,
51038
- HDRLoader._leftUpBack,
51039
- HDRLoader._rightUpBack
51040
- ];
51041
- HDRLoader._faceBack = [
51042
- HDRLoader._rightBottomFront,
51043
- HDRLoader._leftBottomFront,
51044
- HDRLoader._rightUpFront,
51045
- HDRLoader._leftUpFront
51046
- ];
51047
- HDRLoader._tempVector3 = new Vector3();
51048
- HDRLoader._temp2Vector3 = new Vector3();
51049
- HDRLoader._temp3Vector3 = new Vector3();
51050
- HDRLoader._temp4Vector3 = new Vector3();
51051
- HDRLoader._temp5Vector3 = new Vector3();
51052
- HDRLoader = __decorate([
51053
- resourceLoader(AssetType.HDR, [
51054
- "hdr"
51055
- ])
51056
- ], HDRLoader);
51057
- /**
51058
- * @internal
51059
- */ var HDRContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
51060
- _inherits(HDRContentRestorer, ContentRestorer);
51061
- function HDRContentRestorer(resource, url, requestConfig) {
51062
- var _this;
51063
- _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
51064
- return _this;
51065
- }
51066
- var _proto = HDRContentRestorer.prototype;
51067
- _proto.restoreContent = function restoreContent() {
51068
- var _this = this;
51069
- return new AssetPromise(function(resolve, reject) {
51070
- var resource = _this.resource;
51071
- var engine = resource.engine;
51072
- engine.resourceManager // @ts-ignore
51073
- ._request(_this.url, _this.requestConfig).then(function(buffer) {
51074
- HDRLoader._setTextureByBuffer(engine, buffer, resource);
51075
- resolve(resource);
51076
- }).catch(reject);
51077
- });
51078
- };
51079
- return HDRContentRestorer;
51080
- }(ContentRestorer);
51081
50709
  var JSONLoader = /*#__PURE__*/ function(Loader) {
51082
50710
  _inherits(JSONLoader, Loader);
51083
50711
  function JSONLoader() {
@@ -51473,7 +51101,7 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
51473
51101
  }(Loader);
51474
51102
  MaterialLoader = __decorate([
51475
51103
  resourceLoader(AssetType.Material, [
51476
- "json"
51104
+ "mat"
51477
51105
  ])
51478
51106
  ], MaterialLoader);
51479
51107
  var MeshLoader = /*#__PURE__*/ function(Loader) {
@@ -51593,7 +51221,7 @@ var ProjectLoader = /*#__PURE__*/ function(Loader) {
51593
51221
  }(Loader);
51594
51222
  ProjectLoader = __decorate([
51595
51223
  resourceLoader(AssetType.Project, [
51596
- "proj"
51224
+ "project"
51597
51225
  ], false)
51598
51226
  ], ProjectLoader);
51599
51227
  var SourceFontLoader = /*#__PURE__*/ function(Loader) {
@@ -51809,27 +51437,20 @@ TextLoader = __decorate([
51809
51437
  "txt"
51810
51438
  ])
51811
51439
  ], TextLoader);
51812
- /**
51813
- * @internal
51814
- */ var Texture2DContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
51815
- _inherits(Texture2DContentRestorer, ContentRestorer);
51816
- function Texture2DContentRestorer(resource, url, requestConfig) {
51817
- var _this;
51818
- _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
51819
- return _this;
51820
- }
51821
- var _proto = Texture2DContentRestorer.prototype;
51822
- _proto.restoreContent = function restoreContent() {
51823
- var _this = this;
51824
- return request(this.url, this.requestConfig).then(function(image) {
51825
- var resource = _this.resource;
51826
- resource.setImageSource(image);
51827
- resource.generateMipmaps();
51828
- return resource;
51829
- });
51830
- };
51831
- return Texture2DContentRestorer;
51832
- }(ContentRestorer);
51440
+ function loadImageFromBuffer(buffer) {
51441
+ return new AssetPromise(function(resolve, reject) {
51442
+ var blob = new Blob([
51443
+ buffer
51444
+ ]);
51445
+ var img = new Image();
51446
+ img.onload = function() {
51447
+ URL.revokeObjectURL(img.src);
51448
+ resolve(img);
51449
+ };
51450
+ img.onerror = reject;
51451
+ img.src = URL.createObjectURL(blob);
51452
+ });
51453
+ }
51833
51454
  var Texture2DLoader = /*#__PURE__*/ function(Loader) {
51834
51455
  _inherits(Texture2DLoader, Loader);
51835
51456
  function Texture2DLoader() {
@@ -51837,36 +51458,48 @@ var Texture2DLoader = /*#__PURE__*/ function(Loader) {
51837
51458
  }
51838
51459
  var _proto = Texture2DLoader.prototype;
51839
51460
  _proto.load = function load(item, resourceManager) {
51461
+ var _this = this;
51462
+ var url = item.url;
51463
+ var requestConfig = _extends({}, item, {
51464
+ type: "arraybuffer"
51465
+ });
51840
51466
  return new AssetPromise(function(resolve, reject, setTaskCompleteProgress, setTaskDetailProgress) {
51841
- var url = item.url;
51842
- var requestConfig = _extends({}, item, {
51843
- type: "image"
51844
- });
51845
51467
  resourceManager // @ts-ignore
51846
- ._request(url, requestConfig).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(image) {
51847
- var _item_params;
51848
- var _ref = (_item_params = item.params) != null ? _item_params : {}, _ref_format = _ref.format, format = _ref_format === void 0 ? TextureFormat.R8G8B8A8 : _ref_format, anisoLevel = _ref.anisoLevel, wrapModeU = _ref.wrapModeU, wrapModeV = _ref.wrapModeV, filterMode = _ref.filterMode, _ref_isSRGBColorSpace = _ref.isSRGBColorSpace, isSRGBColorSpace = _ref_isSRGBColorSpace === void 0 ? true : _ref_isSRGBColorSpace, _ref_mipmap = _ref.mipmap, mipmap = _ref_mipmap === void 0 ? true : _ref_mipmap;
51849
- var width = image.width, height = image.height;
51850
- var engine = resourceManager.engine;
51851
- var generateMipmap = TextureUtils.supportGenerateMipmapsWithCorrection(engine, width, height, format, mipmap, isSRGBColorSpace);
51852
- var texture = new Texture2D(engine, width, height, format, generateMipmap, isSRGBColorSpace);
51853
- texture.anisoLevel = anisoLevel != null ? anisoLevel : texture.anisoLevel;
51854
- texture.filterMode = filterMode != null ? filterMode : texture.filterMode;
51855
- texture.wrapModeU = wrapModeU != null ? wrapModeU : texture.wrapModeU;
51856
- texture.wrapModeV = wrapModeV != null ? wrapModeV : texture.wrapModeV;
51857
- texture.setImageSource(image);
51858
- generateMipmap && texture.generateMipmaps();
51859
- if (url.indexOf("data:") !== 0) {
51860
- var index = url.lastIndexOf("/");
51861
- texture.name = url.substring(index + 1);
51468
+ ._request(url, requestConfig).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(buffer) {
51469
+ if (FileHeader.checkMagic(buffer)) {
51470
+ decode(buffer, resourceManager.engine).then(function(texture) {
51471
+ resourceManager.addContentRestorer(new Texture2DContentRestorer(texture, url, requestConfig));
51472
+ resolve(texture);
51473
+ }, reject);
51474
+ } else {
51475
+ loadImageFromBuffer(buffer).then(function(img) {
51476
+ var texture = _this._createTexture(img, item, resourceManager);
51477
+ resourceManager.addContentRestorer(new Texture2DContentRestorer(texture, url, requestConfig));
51478
+ resolve(texture);
51479
+ }, reject);
51862
51480
  }
51863
- resourceManager.addContentRestorer(new Texture2DContentRestorer(texture, url, requestConfig));
51864
- resolve(texture);
51865
- }).catch(function(e) {
51866
- reject(e);
51867
- });
51481
+ }).catch(reject);
51868
51482
  });
51869
51483
  };
51484
+ _proto._createTexture = function _createTexture(img, item, resourceManager) {
51485
+ var _item_params;
51486
+ var _ref = (_item_params = item.params) != null ? _item_params : {}, _ref_format = _ref.format, format = _ref_format === void 0 ? TextureFormat.R8G8B8A8 : _ref_format, anisoLevel = _ref.anisoLevel, wrapModeU = _ref.wrapModeU, wrapModeV = _ref.wrapModeV, filterMode = _ref.filterMode, _ref_isSRGBColorSpace = _ref.isSRGBColorSpace, isSRGBColorSpace = _ref_isSRGBColorSpace === void 0 ? true : _ref_isSRGBColorSpace, _ref_mipmap = _ref.mipmap, mipmap = _ref_mipmap === void 0 ? true : _ref_mipmap;
51487
+ var width = img.width, height = img.height;
51488
+ var engine = resourceManager.engine;
51489
+ var generateMipmap = TextureUtils.supportGenerateMipmapsWithCorrection(engine, width, height, format, mipmap, isSRGBColorSpace);
51490
+ var texture = new Texture2D(engine, width, height, format, generateMipmap, isSRGBColorSpace);
51491
+ texture.anisoLevel = anisoLevel != null ? anisoLevel : texture.anisoLevel;
51492
+ texture.filterMode = filterMode != null ? filterMode : texture.filterMode;
51493
+ texture.wrapModeU = wrapModeU != null ? wrapModeU : texture.wrapModeU;
51494
+ texture.wrapModeV = wrapModeV != null ? wrapModeV : texture.wrapModeV;
51495
+ texture.setImageSource(img);
51496
+ generateMipmap && texture.generateMipmaps();
51497
+ var url = item.url;
51498
+ if (url.indexOf("data:") !== 0) {
51499
+ texture.name = url.substring(url.lastIndexOf("/") + 1);
51500
+ }
51501
+ return texture;
51502
+ };
51870
51503
  return Texture2DLoader;
51871
51504
  }(Loader);
51872
51505
  Texture2DLoader = __decorate([
@@ -51874,38 +51507,317 @@ Texture2DLoader = __decorate([
51874
51507
  "png",
51875
51508
  "jpg",
51876
51509
  "webp",
51877
- "jpeg"
51510
+ "jpeg",
51511
+ "tex"
51878
51512
  ])
51879
51513
  ], Texture2DLoader);
51880
- /**
51881
- * @internal
51882
- */ var TextureCubeContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
51883
- _inherits(TextureCubeContentRestorer, ContentRestorer);
51884
- function TextureCubeContentRestorer(resource, urls, requestConfig) {
51514
+ var Texture2DContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
51515
+ _inherits(Texture2DContentRestorer, ContentRestorer);
51516
+ function Texture2DContentRestorer(resource, url, requestConfig) {
51885
51517
  var _this;
51886
- _this = ContentRestorer.call(this, resource) || this, _this.urls = urls, _this.requestConfig = requestConfig;
51518
+ _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
51887
51519
  return _this;
51888
51520
  }
51889
- var _proto = TextureCubeContentRestorer.prototype;
51521
+ var _proto = Texture2DContentRestorer.prototype;
51890
51522
  _proto.restoreContent = function restoreContent() {
51891
- var _this = this;
51892
- return new AssetPromise(function(resolve, reject) {
51893
- Promise.all(_this.urls.map(function(url) {
51894
- return request(url, _this.requestConfig);
51895
- })).then(function(images) {
51896
- var resource = _this.resource;
51897
- for(var faceIndex = 0; faceIndex < 6; faceIndex++){
51898
- resource.setImageSource(TextureCubeFace.PositiveX + faceIndex, images[faceIndex], 0);
51899
- }
51900
- resource.generateMipmaps();
51901
- resolve(resource);
51902
- }).catch(function(e) {
51903
- reject(e);
51904
- });
51523
+ var texture = this.resource;
51524
+ var engine = texture.engine;
51525
+ return engine.resourceManager // @ts-ignore
51526
+ ._request(this.url, this.requestConfig).then(function(buffer) {
51527
+ if (FileHeader.checkMagic(buffer)) {
51528
+ return decode(buffer, engine, texture);
51529
+ } else {
51530
+ return loadImageFromBuffer(buffer).then(function(img) {
51531
+ texture.setImageSource(img);
51532
+ texture.generateMipmaps();
51533
+ return texture;
51534
+ });
51535
+ }
51905
51536
  });
51906
51537
  };
51907
- return TextureCubeContentRestorer;
51538
+ return Texture2DContentRestorer;
51908
51539
  }(ContentRestorer);
51540
+ /**
51541
+ * @internal
51542
+ * HDR panorama to cubemap decoder.
51543
+ */ var HDRDecoder = /*#__PURE__*/ function() {
51544
+ function HDRDecoder() {}
51545
+ HDRDecoder.parseHeader = function parseHeader(uint8array) {
51546
+ var line = this._readStringLine(uint8array, 0);
51547
+ if (line[0] !== "#" || line[1] !== "?") {
51548
+ throw "HDRDecoder: invalid file header";
51549
+ }
51550
+ var endOfHeader = false;
51551
+ var findFormat = false;
51552
+ var lineIndex = 0;
51553
+ do {
51554
+ lineIndex += line.length + 1;
51555
+ line = this._readStringLine(uint8array, lineIndex);
51556
+ if (line === "FORMAT=32-bit_rle_rgbe") findFormat = true;
51557
+ else if (line.length === 0) endOfHeader = true;
51558
+ }while (!endOfHeader);
51559
+ if (!findFormat) {
51560
+ throw "HDRDecoder: unsupported format, expected 32-bit_rle_rgbe";
51561
+ }
51562
+ lineIndex += line.length + 1;
51563
+ line = this._readStringLine(uint8array, lineIndex);
51564
+ var match = /^\-Y (.*) \+X (.*)$/g.exec(line);
51565
+ if (!match || match.length < 3) {
51566
+ throw "HDRDecoder: missing image size, only -Y +X layout is supported";
51567
+ }
51568
+ var width = parseInt(match[2]);
51569
+ var height = parseInt(match[1]);
51570
+ if (width < 8 || width > 0x7fff) {
51571
+ throw "HDRDecoder: unsupported image width, must be between 8 and 32767";
51572
+ }
51573
+ return {
51574
+ height: height,
51575
+ width: width,
51576
+ dataPosition: lineIndex + line.length + 1
51577
+ };
51578
+ };
51579
+ HDRDecoder.decodeFaces = function decodeFaces(bufferArray, header, onFace) {
51580
+ var width = header.width, height = header.height, dataPosition = header.dataPosition;
51581
+ var cubeSize = height >> 1;
51582
+ var pixels = HDRDecoder._readPixels(bufferArray.subarray(dataPosition), width, height);
51583
+ var faces = HDRDecoder._faces;
51584
+ var faceBuffer = new Uint16Array(cubeSize * cubeSize * 4);
51585
+ for(var faceIndex = 0; faceIndex < 6; faceIndex++){
51586
+ HDRDecoder._createCubemapData(cubeSize, faces[faceIndex], pixels, width, height, faceBuffer);
51587
+ onFace(faceIndex, faceBuffer);
51588
+ }
51589
+ };
51590
+ HDRDecoder._generateFloat2HalfTables = function _generateFloat2HalfTables() {
51591
+ var baseTable = new Uint32Array(512);
51592
+ var shiftTable = new Uint32Array(512);
51593
+ for(var i = 0; i < 256; ++i){
51594
+ var e = i - 127;
51595
+ if (e < -27) {
51596
+ baseTable[i] = 0x0000;
51597
+ baseTable[i | 0x100] = 0x8000;
51598
+ shiftTable[i] = 24;
51599
+ shiftTable[i | 0x100] = 24;
51600
+ } else if (e < -14) {
51601
+ baseTable[i] = 0x0400 >> -e - 14;
51602
+ baseTable[i | 0x100] = 0x0400 >> -e - 14 | 0x8000;
51603
+ shiftTable[i] = -e - 1;
51604
+ shiftTable[i | 0x100] = -e - 1;
51605
+ } else if (e <= 15) {
51606
+ baseTable[i] = e + 15 << 10;
51607
+ baseTable[i | 0x100] = e + 15 << 10 | 0x8000;
51608
+ shiftTable[i] = 13;
51609
+ shiftTable[i | 0x100] = 13;
51610
+ } else if (e < 128) {
51611
+ baseTable[i] = 0x7c00;
51612
+ baseTable[i | 0x100] = 0xfc00;
51613
+ shiftTable[i] = 24;
51614
+ shiftTable[i | 0x100] = 24;
51615
+ } else {
51616
+ baseTable[i] = 0x7c00;
51617
+ baseTable[i | 0x100] = 0xfc00;
51618
+ shiftTable[i] = 13;
51619
+ shiftTable[i | 0x100] = 13;
51620
+ }
51621
+ }
51622
+ return {
51623
+ baseTable: baseTable,
51624
+ shiftTable: shiftTable
51625
+ };
51626
+ };
51627
+ HDRDecoder._createCubemapData = function _createCubemapData(texSize, face, pixels, inputWidth, inputHeight, facePixels) {
51628
+ var invSize = 1 / texSize;
51629
+ var rotDX1X = (face[3] - face[0]) * invSize;
51630
+ var rotDX1Y = (face[4] - face[1]) * invSize;
51631
+ var rotDX1Z = (face[5] - face[2]) * invSize;
51632
+ var rotDX2X = (face[9] - face[6]) * invSize;
51633
+ var rotDX2Y = (face[10] - face[7]) * invSize;
51634
+ var rotDX2Z = (face[11] - face[8]) * invSize;
51635
+ var floatView = HDRDecoder._floatView;
51636
+ var uint32View = HDRDecoder._uint32View;
51637
+ var _HDRDecoder__float2HalfTables = HDRDecoder._float2HalfTables, baseTable = _HDRDecoder__float2HalfTables.baseTable, shiftTable = _HDRDecoder__float2HalfTables.shiftTable;
51638
+ var one = HDRDecoder._one;
51639
+ var fy = 0;
51640
+ for(var y = 0; y < texSize; y++){
51641
+ var xv1X = face[0], xv1Y = face[1], xv1Z = face[2];
51642
+ var xv2X = face[6], xv2Y = face[7], xv2Z = face[8];
51643
+ for(var x = 0; x < texSize; x++){
51644
+ var dirX = xv1X + (xv2X - xv1X) * fy;
51645
+ var dirY = xv1Y + (xv2Y - xv1Y) * fy;
51646
+ var dirZ = xv1Z + (xv2Z - xv1Z) * fy;
51647
+ var invLen = 1 / Math.sqrt(dirX * dirX + dirY * dirY + dirZ * dirZ);
51648
+ dirX *= invLen;
51649
+ dirY *= invLen;
51650
+ dirZ *= invLen;
51651
+ var px = Math.round((Math.atan2(dirZ, dirX) / Math.PI * 0.5 + 0.5) * inputWidth);
51652
+ if (px < 0) px = 0;
51653
+ else if (px >= inputWidth) px = inputWidth - 1;
51654
+ var py = Math.round(Math.acos(dirY) / Math.PI * inputHeight);
51655
+ if (py < 0) py = 0;
51656
+ else if (py >= inputHeight) py = inputHeight - 1;
51657
+ var srcIndex = (inputHeight - py - 1) * inputWidth * 4 + px * 4;
51658
+ var scaleFactor = Math.pow(2, pixels[srcIndex + 3] - 128) / 255;
51659
+ var dstIndex = y * texSize * 4 + x * 4;
51660
+ for(var c = 0; c < 3; c++){
51661
+ floatView[0] = pixels[srcIndex + c] * scaleFactor;
51662
+ var f = uint32View[0];
51663
+ var e = f >> 23 & 0x1ff;
51664
+ facePixels[dstIndex + c] = baseTable[e] + ((f & 0x007fffff) >> shiftTable[e]);
51665
+ }
51666
+ facePixels[dstIndex + 3] = one;
51667
+ xv1X += rotDX1X;
51668
+ xv1Y += rotDX1Y;
51669
+ xv1Z += rotDX1Z;
51670
+ xv2X += rotDX2X;
51671
+ xv2Y += rotDX2Y;
51672
+ xv2Z += rotDX2Z;
51673
+ }
51674
+ fy += invSize;
51675
+ }
51676
+ };
51677
+ HDRDecoder._readStringLine = function _readStringLine(uint8array, startIndex) {
51678
+ var line = "";
51679
+ for(var i = startIndex, n = uint8array.length; i < n; i++){
51680
+ var character = String.fromCharCode(uint8array[i]);
51681
+ if (character === "\n") break;
51682
+ line += character;
51683
+ }
51684
+ return line;
51685
+ };
51686
+ HDRDecoder._readPixels = function _readPixels(buffer, width, height) {
51687
+ var byteLength = buffer.byteLength;
51688
+ var dataRGBA = new Uint8Array(4 * width * height);
51689
+ var offset = 0;
51690
+ var pos = 0;
51691
+ var ptrEnd = 4 * width;
51692
+ var scanLineBuffer = new Uint8Array(ptrEnd);
51693
+ var numScanLines = height;
51694
+ while(numScanLines > 0 && pos < byteLength){
51695
+ var a = buffer[pos++];
51696
+ var b = buffer[pos++];
51697
+ var c = buffer[pos++];
51698
+ var d = buffer[pos++];
51699
+ if (a !== 2 || b !== 2 || c & 0x80 || width < 8 || width > 32767) return buffer;
51700
+ if ((c << 8 | d) !== width) throw "HDRDecoder: wrong scanline width";
51701
+ var ptr = 0;
51702
+ while(ptr < ptrEnd && pos < byteLength){
51703
+ var count = buffer[pos++];
51704
+ var isEncodedRun = count > 128;
51705
+ if (isEncodedRun) count -= 128;
51706
+ if (count === 0 || ptr + count > ptrEnd) throw "HDRDecoder: bad scanline data";
51707
+ if (isEncodedRun) {
51708
+ var byteValue = buffer[pos++];
51709
+ for(var i = 0; i < count; i++)scanLineBuffer[ptr++] = byteValue;
51710
+ } else {
51711
+ scanLineBuffer.set(buffer.subarray(pos, pos + count), ptr);
51712
+ ptr += count;
51713
+ pos += count;
51714
+ }
51715
+ }
51716
+ for(var i1 = 0; i1 < width; i1++, offset += 4){
51717
+ dataRGBA[offset] = scanLineBuffer[i1];
51718
+ dataRGBA[offset + 1] = scanLineBuffer[i1 + width];
51719
+ dataRGBA[offset + 2] = scanLineBuffer[i1 + width * 2];
51720
+ dataRGBA[offset + 3] = scanLineBuffer[i1 + width * 3];
51721
+ }
51722
+ numScanLines--;
51723
+ }
51724
+ return dataRGBA;
51725
+ };
51726
+ return HDRDecoder;
51727
+ }();
51728
+ // Float32 to Float16 lookup tables (http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf)
51729
+ HDRDecoder._float2HalfTables = HDRDecoder._generateFloat2HalfTables();
51730
+ HDRDecoder._floatView = new Float32Array(1);
51731
+ HDRDecoder._uint32View = new Uint32Array(HDRDecoder._floatView.buffer);
51732
+ HDRDecoder._one = 0x3c00 // Half float for 1.0
51733
+ ;
51734
+ // prettier-ignore
51735
+ HDRDecoder._faces = [
51736
+ /* +X */ [
51737
+ 1,
51738
+ -1,
51739
+ -1,
51740
+ 1,
51741
+ -1,
51742
+ 1,
51743
+ 1,
51744
+ 1,
51745
+ -1,
51746
+ 1,
51747
+ 1,
51748
+ 1
51749
+ ],
51750
+ /* -X */ [
51751
+ -1,
51752
+ -1,
51753
+ 1,
51754
+ -1,
51755
+ -1,
51756
+ -1,
51757
+ -1,
51758
+ 1,
51759
+ 1,
51760
+ -1,
51761
+ 1,
51762
+ -1
51763
+ ],
51764
+ /* +Y */ [
51765
+ -1,
51766
+ -1,
51767
+ 1,
51768
+ 1,
51769
+ -1,
51770
+ 1,
51771
+ -1,
51772
+ -1,
51773
+ -1,
51774
+ 1,
51775
+ -1,
51776
+ -1
51777
+ ],
51778
+ /* -Y */ [
51779
+ -1,
51780
+ 1,
51781
+ -1,
51782
+ 1,
51783
+ 1,
51784
+ -1,
51785
+ -1,
51786
+ 1,
51787
+ 1,
51788
+ 1,
51789
+ 1,
51790
+ 1
51791
+ ],
51792
+ /* +Z */ [
51793
+ -1,
51794
+ -1,
51795
+ -1,
51796
+ 1,
51797
+ -1,
51798
+ -1,
51799
+ -1,
51800
+ 1,
51801
+ -1,
51802
+ 1,
51803
+ 1,
51804
+ -1
51805
+ ],
51806
+ /* -Z */ [
51807
+ 1,
51808
+ -1,
51809
+ 1,
51810
+ -1,
51811
+ -1,
51812
+ 1,
51813
+ 1,
51814
+ 1,
51815
+ 1,
51816
+ -1,
51817
+ 1,
51818
+ 1
51819
+ ]
51820
+ ];
51909
51821
  var TextureCubeLoader = /*#__PURE__*/ function(Loader) {
51910
51822
  _inherits(TextureCubeLoader, Loader);
51911
51823
  function TextureCubeLoader() {
@@ -51913,6 +51825,44 @@ var TextureCubeLoader = /*#__PURE__*/ function(Loader) {
51913
51825
  }
51914
51826
  var _proto = TextureCubeLoader.prototype;
51915
51827
  _proto.load = function load(item, resourceManager) {
51828
+ if (item.urls) {
51829
+ return this._loadCubeFaces(item, resourceManager);
51830
+ } else {
51831
+ return this._loadHDR(item, resourceManager);
51832
+ }
51833
+ };
51834
+ _proto._loadHDR = function _loadHDR(item, resourceManager) {
51835
+ return new AssetPromise(function(resolve, reject) {
51836
+ var engine = resourceManager.engine;
51837
+ var url = item.url;
51838
+ var requestConfig = _extends({}, item, {
51839
+ type: "arraybuffer"
51840
+ });
51841
+ resourceManager // @ts-ignore
51842
+ ._request(url, requestConfig).then(function(buffer) {
51843
+ if (!SystemInfo.supportsTextureFormat(engine, TextureFormat.R16G16B16A16)) {
51844
+ reject(new Error("TextureCubeLoader: HDR texture requires half float support."));
51845
+ return;
51846
+ }
51847
+ var _item_params;
51848
+ var _ref = (_item_params = item.params) != null ? _item_params : {}, _ref_mipmap = _ref.mipmap, mipmap = _ref_mipmap === void 0 ? true : _ref_mipmap, anisoLevel = _ref.anisoLevel, wrapModeU = _ref.wrapModeU, wrapModeV = _ref.wrapModeV, filterMode = _ref.filterMode;
51849
+ var bufferArray = new Uint8Array(buffer);
51850
+ var header = HDRDecoder.parseHeader(bufferArray);
51851
+ var texture = new TextureCube(engine, header.height >> 1, TextureFormat.R16G16B16A16, mipmap, false);
51852
+ HDRDecoder.decodeFaces(bufferArray, header, function(faceIndex, data) {
51853
+ texture.setPixelBuffer(TextureCubeFace.PositiveX + faceIndex, data, 0);
51854
+ });
51855
+ texture.generateMipmaps();
51856
+ texture.anisoLevel = anisoLevel != null ? anisoLevel : texture.anisoLevel;
51857
+ texture.filterMode = filterMode != null ? filterMode : texture.filterMode;
51858
+ texture.wrapModeU = wrapModeU != null ? wrapModeU : texture.wrapModeU;
51859
+ texture.wrapModeV = wrapModeV != null ? wrapModeV : texture.wrapModeV;
51860
+ resourceManager.addContentRestorer(new HDRContentRestorer(texture, url, requestConfig));
51861
+ resolve(texture);
51862
+ }).catch(reject);
51863
+ });
51864
+ };
51865
+ _proto._loadCubeFaces = function _loadCubeFaces(item, resourceManager) {
51916
51866
  return new AssetPromise(function(resolve, reject) {
51917
51867
  var urls = item.urls;
51918
51868
  var requestConfig = _extends({}, item, {
@@ -51926,7 +51876,7 @@ var TextureCubeLoader = /*#__PURE__*/ function(Loader) {
51926
51876
  var _ref = (_item_params = item.params) != null ? _item_params : {}, _ref_format = _ref.format, format = _ref_format === void 0 ? TextureFormat.R8G8B8A8 : _ref_format, anisoLevel = _ref.anisoLevel, wrapModeU = _ref.wrapModeU, wrapModeV = _ref.wrapModeV, filterMode = _ref.filterMode, _ref_isSRGBColorSpace = _ref.isSRGBColorSpace, isSRGBColorSpace = _ref_isSRGBColorSpace === void 0 ? true : _ref_isSRGBColorSpace, _ref_mipmap = _ref.mipmap, mipmap = _ref_mipmap === void 0 ? true : _ref_mipmap;
51927
51877
  var _images_ = images[0], width = _images_.width, height = _images_.height;
51928
51878
  if (width !== height) {
51929
- console.error("The cube texture must have the same width and height");
51879
+ reject(new Error("The cube texture must have the same width and height"));
51930
51880
  return;
51931
51881
  }
51932
51882
  var engine = resourceManager.engine;
@@ -51939,21 +51889,70 @@ var TextureCubeLoader = /*#__PURE__*/ function(Loader) {
51939
51889
  for(var faceIndex = 0; faceIndex < 6; faceIndex++){
51940
51890
  texture.setImageSource(TextureCubeFace.PositiveX + faceIndex, images[faceIndex], 0);
51941
51891
  }
51942
- generateMipmap && texture.generateMipmaps();
51943
- resourceManager.addContentRestorer(new TextureCubeContentRestorer(texture, urls, requestConfig));
51892
+ texture.generateMipmaps();
51893
+ resourceManager.addContentRestorer(new CubeFaceContentRestorer(texture, urls, requestConfig));
51944
51894
  resolve(texture);
51945
- }).catch(function(e) {
51946
- reject(e);
51947
- });
51895
+ }).catch(reject);
51948
51896
  });
51949
51897
  };
51950
51898
  return TextureCubeLoader;
51951
51899
  }(Loader);
51952
51900
  TextureCubeLoader = __decorate([
51953
51901
  resourceLoader(AssetType.TextureCube, [
51954
- ""
51902
+ "texCube",
51903
+ "hdr"
51955
51904
  ])
51956
51905
  ], TextureCubeLoader);
51906
+ var HDRContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
51907
+ _inherits(HDRContentRestorer, ContentRestorer);
51908
+ function HDRContentRestorer(resource, url, requestConfig) {
51909
+ var _this;
51910
+ _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
51911
+ return _this;
51912
+ }
51913
+ var _proto = HDRContentRestorer.prototype;
51914
+ _proto.restoreContent = function restoreContent() {
51915
+ var _this = this;
51916
+ return new AssetPromise(function(resolve, reject) {
51917
+ var resource = _this.resource;
51918
+ resource.engine.resourceManager // @ts-ignore
51919
+ ._request(_this.url, _this.requestConfig).then(function(buffer) {
51920
+ var bufferArray = new Uint8Array(buffer);
51921
+ HDRDecoder.decodeFaces(bufferArray, HDRDecoder.parseHeader(bufferArray), function(faceIndex, data) {
51922
+ resource.setPixelBuffer(TextureCubeFace.PositiveX + faceIndex, data, 0);
51923
+ });
51924
+ resource.generateMipmaps();
51925
+ resolve(resource);
51926
+ }).catch(reject);
51927
+ });
51928
+ };
51929
+ return HDRContentRestorer;
51930
+ }(ContentRestorer);
51931
+ var CubeFaceContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
51932
+ _inherits(CubeFaceContentRestorer, ContentRestorer);
51933
+ function CubeFaceContentRestorer(resource, urls, requestConfig) {
51934
+ var _this;
51935
+ _this = ContentRestorer.call(this, resource) || this, _this.urls = urls, _this.requestConfig = requestConfig;
51936
+ return _this;
51937
+ }
51938
+ var _proto = CubeFaceContentRestorer.prototype;
51939
+ _proto.restoreContent = function restoreContent() {
51940
+ var _this = this;
51941
+ return new AssetPromise(function(resolve, reject) {
51942
+ Promise.all(_this.urls.map(function(url) {
51943
+ return request(url, _this.requestConfig);
51944
+ })).then(function(images) {
51945
+ var resource = _this.resource;
51946
+ for(var faceIndex = 0; faceIndex < 6; faceIndex++){
51947
+ resource.setImageSource(TextureCubeFace.PositiveX + faceIndex, images[faceIndex], 0);
51948
+ }
51949
+ resource.generateMipmaps();
51950
+ resolve(resource);
51951
+ }).catch(reject);
51952
+ });
51953
+ };
51954
+ return CubeFaceContentRestorer;
51955
+ }(ContentRestorer);
51957
51956
  var AudioLoader = /*#__PURE__*/ function(Loader) {
51958
51957
  _inherits(AudioLoader, Loader);
51959
51958
  function AudioLoader() {
@@ -52099,7 +52098,7 @@ var PhysicsMaterialLoader = /*#__PURE__*/ function(Loader) {
52099
52098
  }(Loader);
52100
52099
  PhysicsMaterialLoader = __decorate([
52101
52100
  resourceLoader(AssetType.PhysicsMaterial, [
52102
- "mesh"
52101
+ "physMat"
52103
52102
  ])
52104
52103
  ], PhysicsMaterialLoader);
52105
52104
  var SceneLoader = /*#__PURE__*/ function(Loader) {
@@ -52751,11 +52750,11 @@ EXT_texture_webp = __decorate([
52751
52750
  ], EXT_texture_webp);
52752
52751
 
52753
52752
  //@ts-ignore
52754
- var version = "2.0.0-alpha.5";
52753
+ var version = "2.0.0-alpha.6";
52755
52754
  console.log("Galacean Engine Version: " + version);
52756
52755
  for(var key in CoreObjects){
52757
52756
  Loader.registerClass(key, CoreObjects[key]);
52758
52757
  }
52759
52758
 
52760
- export { AccessorType, AmbientLight, AmbientOcclusion, AmbientOcclusionQuality, AnimationArrayCurve, AnimationBoolCurve, AnimationClip, AnimationClipCurveBinding, AnimationClipDecoder, AnimationColorCurve, AnimationCurve, AnimationEvent, AnimationFloatArrayCurve, AnimationFloatCurve, AnimationQuaternionCurve, AnimationRectCurve, AnimationRefCurve, AnimationStringCurve, AnimationVector2Curve, AnimationVector3Curve, AnimationVector4Curve, Animator, AnimatorCondition, AnimatorConditionMode, AnimatorController, AnimatorControllerLayer, AnimatorControllerParameter, AnimatorCullingMode, AnimatorLayerBlendingMode, AnimatorLayerMask, AnimatorState, AnimatorStateMachine, AnimatorStateTransition, AntiAliasing, AssetPromise, AssetType, AudioClip, AudioManager, AudioSource, Background, BackgroundMode, BackgroundTextureFillMode, BaseMaterial, BasicRenderPipeline, BatchUtils, BlendFactor, BlendMode, BlendOperation, BlendShape, BlendShapeFrame, BlendState, BlinnPhongMaterial, Blitter, BloomDownScaleMode, BloomEffect, BoolUpdateFlag, BoundingBox, BoundingFrustum, BoundingSphere, BoxColliderShape, BoxShape, Buffer, BufferAsset, BufferBindFlag, BufferInfo, BufferMesh, BufferReader, BufferUsage, BufferUtil, Burst, Camera, CameraClearFlags, CameraModifyFlags, CameraType$1 as CameraType, Canvas, CapsuleColliderShape, CharRenderInfo, CharacterController, CircleShape, ClearableObjectPool, CloneManager, Collider, ColliderShape, ColliderShapeUpAxis, Collision, CollisionDetectionMode, CollisionUtil, Color, ColorOverLifetimeModule, ColorWriteMask, CompareFunction, Component, ConeEmitType, ConeShape, ContactPoint, ContainmentType, ContentRestorer, ControllerCollisionFlag, ControllerNonWalkableMode, CubeProbe, CullMode, CurveKey, DataType, DependentMode, DepthState, DepthTextureMode, DiffuseMode, DirectLight, DisorderedArray, Downsampling, DynamicCollider, DynamicColliderConstraints, EditorTextureLoader, EmissionModule, Engine, EngineObject, Entity, EntityModifyFlags, EventDispatcher, FileHeader, FinalPass, FixedJoint, FogMode, Font, FontStyle, FrustumFace, GLCapabilityType, GLCompressedTextureInternalFormat, GLTFAnimationParser, GLTFAnimatorControllerParser, GLTFBufferParser, GLTFBufferViewParser, GLTFEntityParser, GLTFExtensionMode, GLTFExtensionParser, GLTFLoader, GLTFMaterialParser, GLTFMeshParser, GLTFParser, GLTFParserContext, GLTFParserType, GLTFResource, GLTFSceneParser, GLTFSchemaParser, GLTFSkinParser, GLTFTextureParser, GLTFUtils, GLTFValidator, GradientAlphaKey, GradientColorKey, HemisphereShape, HierarchyParser, HingeJoint, HitResult, IndexBufferBinding, IndexFormat, InputManager, InterpolableValueType, InterpolationType, JSONAsset, Joint, JointLimits, JointMotor, KTX2Loader, KTX2TargetFormat, Keyframe, Keys, Layer, LayerPathMask, Light, Loader, Logger, MSAASamples, MainModule, Material, MaterialLoaderType, MathUtil, Matrix, Matrix3x3, Mesh, MeshColliderShape, MeshColliderShapeCookingFlag, MeshDecoder, MeshRenderer, MeshShape, MeshTopology, ModelMesh, OverflowMode, PBRMaterial, ParserContext, ParserType, ParticleCompositeCurve, ParticleCompositeGradient, ParticleCurve, ParticleCurveMode, ParticleGenerator, ParticleGradient, ParticleGradientMode, ParticleMaterial, ParticleRenderMode, ParticleRenderer, ParticleScaleMode, ParticleShapeArcMode, ParticleShapeType, ParticleSimulationSpace, ParticleStopMode, PhysicsMaterial, PhysicsMaterialCombineMode, PhysicsScene, PipelineStage, Plane, PlaneColliderShape, PlaneIntersectionType, Platform, PointLight, Pointer, PointerButton, PointerEventData, PointerEventEmitter, PointerPhase, PostProcess, PostProcessEffect, PostProcessEffectBoolParameter, PostProcessEffectColorParameter, PostProcessEffectEnumParameter, PostProcessEffectFloatParameter, PostProcessEffectParameter, PostProcessEffectTextureParameter, PostProcessEffectVector2Parameter, PostProcessEffectVector3Parameter, PostProcessEffectVector4Parameter, PostProcessManager, PostProcessPass, PostProcessPassEvent, PostProcessUberPass, PrefabResource, Primitive, PrimitiveMesh, Probe, Quaternion, Rand, RasterState, Ray, Rect, ReferResource, ReflectionParser, RefractionMode, RenderBufferDepthFormat, RenderFace, RenderQueue, RenderQueueFlags, RenderQueueType, RenderState, RenderStateElementKey, RenderTarget, RenderTargetBlendState, Renderer, RendererUpdateFlags, RenderingStatistics, ReplacementFailureStrategy, ResourceManager, ReturnableObjectPool, RotationOverLifetimeModule, SafeLoopArray, Scene, SceneManager, SceneParser, Script, SetDataOptions, Shader, ShaderData, ShaderDataGroup, ShaderFactory, ShaderLanguage, ShaderLib, ShaderMacro, ShaderMacroCollection, ShaderPass, ShaderProperty, ShaderPropertyType, ShaderTagKey, ShadowCascadesMode, ShadowResolution, ShadowType, SimpleSpriteAssembler, SizeOverLifetimeModule, Skin, SkinnedMeshRenderer, Sky, SkyBoxMaterial, SkyProceduralMaterial, SlicedSpriteAssembler, SpecularMode, SphereColliderShape, SphereShape, SphericalHarmonics3, SpotLight, SpringJoint, Sprite, SpriteAtlas, SpriteDrawMode, SpriteMask, SpriteMaskInteraction, SpriteMaskLayer, SpriteModifyFlags, SpriteRenderer, SpriteTileMode, StateMachineScript, StaticCollider, StencilOperation, StencilState, SubFont, SubMesh, SubPrimitive, SubShader, SunMode, SystemInfo, TextAsset, TextHorizontalAlignment, TextRenderer, TextUtils, TextVerticalAlignment, Texture, Texture2D, Texture2DArray, Texture2DDecoder, TextureCoordinate, TextureCube, TextureCubeFace, TextureDepthCompareFunction, TextureFilterMode, TextureFormat, TextureSheetAnimationModule, TextureUsage, TextureUtils, TextureWrapMode$1 as TextureWrapMode, TiledSpriteAssembler, Time, TonemappingEffect, TonemappingMode, TrailMaterial, TrailRenderer, TrailTextureMode, Transform, TransformModifyFlags, UnlitMaterial, Utils, Vector2, Vector3, Vector4, VelocityOverLifetimeModule, VertexAttribute, VertexBufferBinding, VertexElement, VertexElementFormat, WebCanvas, WebGLEngine, WebGLGraphicDevice, WebGLMode, WrapMode, XRManager, assignmentClone, decode, decoder, decoderMap, deepClone, dependentComponents, ignoreClone, parseSingleKTX, registerGLTFExtension, registerGLTFParser, registerPointerEventEmitter, request, resourceLoader, shallowClone, version };
52759
+ export { AccessorType, AmbientLight, AmbientOcclusion, AmbientOcclusionQuality, AnimationArrayCurve, AnimationBoolCurve, AnimationClip, AnimationClipCurveBinding, AnimationClipDecoder, AnimationColorCurve, AnimationCurve, AnimationEvent, AnimationFloatArrayCurve, AnimationFloatCurve, AnimationQuaternionCurve, AnimationRectCurve, AnimationRefCurve, AnimationStringCurve, AnimationVector2Curve, AnimationVector3Curve, AnimationVector4Curve, Animator, AnimatorCondition, AnimatorConditionMode, AnimatorController, AnimatorControllerLayer, AnimatorControllerParameter, AnimatorCullingMode, AnimatorLayerBlendingMode, AnimatorLayerMask, AnimatorState, AnimatorStateMachine, AnimatorStateTransition, AntiAliasing, AssetPromise, AssetType, AudioClip, AudioManager, AudioSource, Background, BackgroundMode, BackgroundTextureFillMode, BaseMaterial, BasicRenderPipeline, BatchUtils, BlendFactor, BlendMode, BlendOperation, BlendShape, BlendShapeFrame, BlendState, BlinnPhongMaterial, Blitter, BloomDownScaleMode, BloomEffect, BoolUpdateFlag, BoundingBox, BoundingFrustum, BoundingSphere, BoxColliderShape, BoxShape, Buffer, BufferAsset, BufferBindFlag, BufferInfo, BufferMesh, BufferReader, BufferUsage, BufferUtil, Burst, Camera, CameraClearFlags, CameraModifyFlags, CameraType$1 as CameraType, Canvas, CapsuleColliderShape, CharRenderInfo, CharacterController, CircleShape, ClearableObjectPool, CloneManager, Collider, ColliderShape, ColliderShapeUpAxis, Collision, CollisionDetectionMode, CollisionUtil, Color, ColorOverLifetimeModule, ColorWriteMask, CompareFunction, Component, ConeEmitType, ConeShape, ContactPoint, ContainmentType, ContentRestorer, ControllerCollisionFlag, ControllerNonWalkableMode, CubeProbe, CullMode, CurveKey, DataType, DependentMode, DepthState, DepthTextureMode, DiffuseMode, DirectLight, DisorderedArray, Downsampling, DynamicCollider, DynamicColliderConstraints, EmissionModule, Engine, EngineObject, Entity, EntityModifyFlags, EventDispatcher, FileHeader, FinalPass, FixedJoint, FogMode, Font, FontStyle, FrustumFace, GLCapabilityType, GLCompressedTextureInternalFormat, GLTFAnimationParser, GLTFAnimatorControllerParser, GLTFBufferParser, GLTFBufferViewParser, GLTFEntityParser, GLTFExtensionMode, GLTFExtensionParser, GLTFLoader, GLTFMaterialParser, GLTFMeshParser, GLTFParser, GLTFParserContext, GLTFParserType, GLTFResource, GLTFSceneParser, GLTFSchemaParser, GLTFSkinParser, GLTFTextureParser, GLTFUtils, GLTFValidator, GradientAlphaKey, GradientColorKey, HemisphereShape, HierarchyParser, HingeJoint, HitResult, IndexBufferBinding, IndexFormat, InputManager, InterpolableValueType, InterpolationType, JSONAsset, Joint, JointLimits, JointMotor, KTX2Loader, KTX2TargetFormat, Keyframe, Keys, Layer, LayerPathMask, Light, Loader, Logger, MSAASamples, MainModule, Material, MaterialLoaderType, MathUtil, Matrix, Matrix3x3, Mesh, MeshColliderShape, MeshColliderShapeCookingFlag, MeshDecoder, MeshRenderer, MeshShape, MeshTopology, ModelMesh, OverflowMode, PBRMaterial, ParserContext, ParserType, ParticleCompositeCurve, ParticleCompositeGradient, ParticleCurve, ParticleCurveMode, ParticleGenerator, ParticleGradient, ParticleGradientMode, ParticleMaterial, ParticleRenderMode, ParticleRenderer, ParticleScaleMode, ParticleShapeArcMode, ParticleShapeType, ParticleSimulationSpace, ParticleStopMode, PhysicsMaterial, PhysicsMaterialCombineMode, PhysicsScene, PipelineStage, Plane, PlaneColliderShape, PlaneIntersectionType, Platform, PointLight, Pointer, PointerButton, PointerEventData, PointerEventEmitter, PointerPhase, PostProcess, PostProcessEffect, PostProcessEffectBoolParameter, PostProcessEffectColorParameter, PostProcessEffectEnumParameter, PostProcessEffectFloatParameter, PostProcessEffectParameter, PostProcessEffectTextureParameter, PostProcessEffectVector2Parameter, PostProcessEffectVector3Parameter, PostProcessEffectVector4Parameter, PostProcessManager, PostProcessPass, PostProcessPassEvent, PostProcessUberPass, PrefabResource, Primitive, PrimitiveMesh, Probe, Quaternion, Rand, RasterState, Ray, Rect, ReferResource, ReflectionParser, RefractionMode, RenderBufferDepthFormat, RenderFace, RenderQueue, RenderQueueFlags, RenderQueueType, RenderState, RenderStateElementKey, RenderTarget, RenderTargetBlendState, Renderer, RendererUpdateFlags, RenderingStatistics, ReplacementFailureStrategy, ResourceManager, ReturnableObjectPool, RotationOverLifetimeModule, SafeLoopArray, Scene, SceneManager, SceneParser, Script, SetDataOptions, Shader, ShaderData, ShaderDataGroup, ShaderFactory, ShaderLanguage, ShaderLib, ShaderMacro, ShaderMacroCollection, ShaderPass, ShaderProperty, ShaderPropertyType, ShaderTagKey, ShadowCascadesMode, ShadowResolution, ShadowType, SimpleSpriteAssembler, SizeOverLifetimeModule, Skin, SkinnedMeshRenderer, Sky, SkyBoxMaterial, SkyProceduralMaterial, SlicedSpriteAssembler, SpecularMode, SphereColliderShape, SphereShape, SphericalHarmonics3, SpotLight, SpringJoint, Sprite, SpriteAtlas, SpriteDrawMode, SpriteMask, SpriteMaskInteraction, SpriteMaskLayer, SpriteModifyFlags, SpriteRenderer, SpriteTileMode, StateMachineScript, StaticCollider, StencilOperation, StencilState, SubFont, SubMesh, SubPrimitive, SubShader, SunMode, SystemInfo, TextAsset, TextHorizontalAlignment, TextRenderer, TextUtils, TextVerticalAlignment, Texture, Texture2D, Texture2DArray, Texture2DDecoder, TextureCoordinate, TextureCube, TextureCubeFace, TextureDepthCompareFunction, TextureFilterMode, TextureFormat, TextureSheetAnimationModule, TextureUsage, TextureUtils, TextureWrapMode$1 as TextureWrapMode, TiledSpriteAssembler, Time, TonemappingEffect, TonemappingMode, TrailMaterial, TrailRenderer, TrailTextureMode, Transform, TransformModifyFlags, UnlitMaterial, Utils, Vector2, Vector3, Vector4, VelocityOverLifetimeModule, VertexAttribute, VertexBufferBinding, VertexElement, VertexElementFormat, WebCanvas, WebGLEngine, WebGLGraphicDevice, WebGLMode, WrapMode, XRManager, assignmentClone, decode, decoder, decoderMap, deepClone, dependentComponents, ignoreClone, parseSingleKTX, registerGLTFExtension, registerGLTFParser, registerPointerEventEmitter, request, resourceLoader, shallowClone, version };
52761
52760
  //# sourceMappingURL=bundled.module.js.map