@galacean/engine 1.2.0-beta.6 → 1.2.0

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/browser.js CHANGED
@@ -15784,6 +15784,33 @@
15784
15784
  (function() {
15785
15785
  PrimitiveMesh._spherePoleIdx = 0;
15786
15786
  })();
15787
+ function _is_native_reflect_construct$1() {
15788
+ if (typeof Reflect === "undefined" || !Reflect.construct) return false;
15789
+ if (Reflect.construct.sham) return false;
15790
+ if (typeof Proxy === "function") return true;
15791
+ try {
15792
+ Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
15793
+ return true;
15794
+ } catch (e) {
15795
+ return false;
15796
+ }
15797
+ }
15798
+ function _construct$1(Parent, args, Class) {
15799
+ if (_is_native_reflect_construct$1()) _construct$1 = Reflect.construct;
15800
+ else {
15801
+ _construct$1 = function construct(Parent, args, Class) {
15802
+ var a = [
15803
+ null
15804
+ ];
15805
+ a.push.apply(a, args);
15806
+ var Constructor = Function.bind.apply(Parent, a);
15807
+ var instance = new Constructor();
15808
+ if (Class) _set_prototype_of$2(instance, Class.prototype);
15809
+ return instance;
15810
+ };
15811
+ }
15812
+ return _construct$1.apply(null, arguments);
15813
+ }
15787
15814
  /**
15788
15815
  * Layer, used for bit operations.
15789
15816
  */ exports.Layer = void 0;
@@ -15869,10 +15896,14 @@
15869
15896
  /**
15870
15897
  * Add component based on the component type.
15871
15898
  * @param type - The type of the component
15899
+ * @param args - The arguments of the component
15872
15900
  * @returns The component which has been added
15873
15901
  */ _proto.addComponent = function addComponent(type) {
15902
+ for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
15903
+ args[_key - 1] = arguments[_key];
15904
+ }
15874
15905
  ComponentsDependencies._addCheck(this, type);
15875
- var component = new type(this);
15906
+ var component = _construct$1(type, [].concat(this, args));
15876
15907
  this._components.push(component);
15877
15908
  component._setActive(true, ActiveChangeFlag.All);
15878
15909
  return component;
@@ -16041,7 +16072,7 @@
16041
16072
  * Clone this entity include children and components.
16042
16073
  * @returns Cloned entity
16043
16074
  */ _proto.clone = function clone() {
16044
- var cloneEntity = this._createCloneEntity(this);
16075
+ var cloneEntity = this._createCloneEntity();
16045
16076
  this._parseCloneEntity(this, cloneEntity, this, cloneEntity, new Map());
16046
16077
  return cloneEntity;
16047
16078
  };
@@ -16051,23 +16082,23 @@
16051
16082
  this._isTemplate = true;
16052
16083
  this._templateResource = templateResource;
16053
16084
  };
16054
- _proto._createCloneEntity = function _createCloneEntity(srcEntity) {
16055
- var cloneEntity = new Entity(srcEntity._engine, srcEntity.name);
16085
+ _proto._createCloneEntity = function _createCloneEntity() {
16086
+ var cloneEntity = new Entity(this._engine, this.name);
16056
16087
  var templateResource = this._templateResource;
16057
16088
  if (templateResource) {
16058
16089
  cloneEntity._templateResource = templateResource;
16059
16090
  templateResource._addReferCount(1);
16060
16091
  }
16061
- cloneEntity.layer = srcEntity.layer;
16062
- cloneEntity._isActive = srcEntity._isActive;
16092
+ cloneEntity.layer = this.layer;
16093
+ cloneEntity._isActive = this._isActive;
16063
16094
  var cloneTransform = cloneEntity.transform;
16064
- var srcTransform = srcEntity.transform;
16095
+ var _this = this, srcTransform = _this.transform;
16065
16096
  cloneTransform.position = srcTransform.position;
16066
16097
  cloneTransform.rotation = srcTransform.rotation;
16067
16098
  cloneTransform.scale = srcTransform.scale;
16068
- var children = srcEntity._children;
16069
- for(var i = 0, n = srcEntity._children.length; i < n; i++){
16070
- cloneEntity.addChild(this._createCloneEntity(children[i]));
16099
+ var srcChildren = this._children;
16100
+ for(var i = 0, n = srcChildren.length; i < n; i++){
16101
+ cloneEntity.addChild(srcChildren[i]._createCloneEntity());
16071
16102
  }
16072
16103
  return cloneEntity;
16073
16104
  };
@@ -18268,7 +18299,7 @@
18268
18299
  if (info) {
18269
18300
  return info;
18270
18301
  }
18271
- info = TextUtils._measureFontOrChar(fontString);
18302
+ info = TextUtils._measureFontOrChar(fontString, TextUtils._measureString, false);
18272
18303
  fontSizeInfoCache[fontString] = info;
18273
18304
  return info;
18274
18305
  };
@@ -18289,7 +18320,7 @@
18289
18320
  return str;
18290
18321
  };
18291
18322
  TextUtils.measureChar = function measureChar(char, fontString) {
18292
- return TextUtils._measureFontOrChar(fontString, char);
18323
+ return TextUtils._measureFontOrChar(fontString, char, true);
18293
18324
  };
18294
18325
  TextUtils.measureTextWithWrap = function measureTextWithWrap(renderer) {
18295
18326
  var subFont = renderer._subFont;
@@ -18509,15 +18540,15 @@
18509
18540
  /**
18510
18541
  * @internal
18511
18542
  * Use internal for CanvasRenderer plugin.
18512
- */ TextUtils._measureFontOrChar = function _measureFontOrChar(fontString, char) {
18513
- if (char === void 0) char = "";
18543
+ */ TextUtils._measureFontOrChar = function _measureFontOrChar(fontString, measureString, isChar) {
18514
18544
  var _TextUtils_textContext = TextUtils.textContext(), canvas = _TextUtils_textContext.canvas, context = _TextUtils_textContext.context;
18515
18545
  context.font = fontString;
18516
- var measureString = char || TextUtils._measureString;
18517
18546
  // Safari gets data confusion through getImageData when the canvas width is not an integer.
18518
18547
  // The measure text width of some special invisible characters may be 0, so make sure the width is at least 1.
18519
18548
  // @todo: Text layout may vary from standard and not support emoji.
18520
- var width = Math.max(1, Math.round(context.measureText(measureString).width));
18549
+ var textMetrics = context.measureText(measureString);
18550
+ // In some case (ex: " "), actualBoundingBoxRight and actualBoundingBoxLeft will be 0, so use width.
18551
+ var width = Math.max(1, Math.round(textMetrics.actualBoundingBoxRight - textMetrics.actualBoundingBoxLeft || textMetrics.width));
18521
18552
  var baseline = Math.ceil(context.measureText(TextUtils._measureBaseline).width);
18522
18553
  var height = baseline * TextUtils._heightMultiplier;
18523
18554
  baseline = TextUtils._baselineMultiplier * baseline | 0;
@@ -18562,12 +18593,7 @@
18562
18593
  descent = bottom - baseline + 1;
18563
18594
  size = ascent + descent;
18564
18595
  }
18565
- var sizeInfo = {
18566
- ascent: ascent,
18567
- descent: descent,
18568
- size: size
18569
- };
18570
- if (char) {
18596
+ if (isChar) {
18571
18597
  var data = null;
18572
18598
  if (size > 0) {
18573
18599
  var lineIntegerW = integerW * 4;
@@ -18575,7 +18601,7 @@
18575
18601
  data = new Uint8Array(colorData.buffer, top * lineIntegerW, size * lineIntegerW);
18576
18602
  }
18577
18603
  return {
18578
- char: char,
18604
+ char: measureString,
18579
18605
  x: 0,
18580
18606
  y: 0,
18581
18607
  w: width,
@@ -18595,7 +18621,11 @@
18595
18621
  data: data
18596
18622
  };
18597
18623
  } else {
18598
- return sizeInfo;
18624
+ return {
18625
+ ascent: ascent,
18626
+ descent: descent,
18627
+ size: size
18628
+ };
18599
18629
  }
18600
18630
  };
18601
18631
  /**
@@ -21514,17 +21544,33 @@
21514
21544
  };
21515
21545
  /**
21516
21546
  * @internal
21517
- */ _proto._onSubAssetSuccess = function _onSubAssetSuccess(assetURL, value) {
21518
- var _this__subAssetPromiseCallbacks_assetURL;
21519
- (_this__subAssetPromiseCallbacks_assetURL = this._subAssetPromiseCallbacks[assetURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_assetURL.resolve(value);
21520
- delete this._subAssetPromiseCallbacks[assetURL];
21547
+ */ _proto._onSubAssetSuccess = function _onSubAssetSuccess(assetBaseURL, assetSubPath, value) {
21548
+ var _this__subAssetPromiseCallbacks_assetBaseURL;
21549
+ var subPromiseCallback = (_this__subAssetPromiseCallbacks_assetBaseURL = this._subAssetPromiseCallbacks[assetBaseURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_assetBaseURL[assetSubPath];
21550
+ if (subPromiseCallback) {
21551
+ // Already resolved
21552
+ subPromiseCallback.resolve(value);
21553
+ } else {
21554
+ var _this__subAssetPromiseCallbacks, _assetBaseURL;
21555
+ ((_this__subAssetPromiseCallbacks = this._subAssetPromiseCallbacks)[_assetBaseURL = assetBaseURL] || (_this__subAssetPromiseCallbacks[_assetBaseURL] = {}))[assetSubPath] = {
21556
+ resolve: value
21557
+ };
21558
+ }
21521
21559
  };
21522
21560
  /**
21523
21561
  * @internal
21524
- */ _proto._onSubAssetFail = function _onSubAssetFail(assetURL, value) {
21525
- var _this__subAssetPromiseCallbacks_assetURL;
21526
- (_this__subAssetPromiseCallbacks_assetURL = this._subAssetPromiseCallbacks[assetURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_assetURL.reject(value);
21527
- delete this._subAssetPromiseCallbacks[assetURL];
21562
+ */ _proto._onSubAssetFail = function _onSubAssetFail(assetBaseURL, assetSubPath, value) {
21563
+ var _this__subAssetPromiseCallbacks_assetBaseURL;
21564
+ var subPromiseCallback = (_this__subAssetPromiseCallbacks_assetBaseURL = this._subAssetPromiseCallbacks[assetBaseURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_assetBaseURL[assetSubPath];
21565
+ if (subPromiseCallback) {
21566
+ // Already rejected
21567
+ subPromiseCallback.reject(value);
21568
+ } else {
21569
+ var _this__subAssetPromiseCallbacks, _assetBaseURL;
21570
+ ((_this__subAssetPromiseCallbacks = this._subAssetPromiseCallbacks)[_assetBaseURL = assetBaseURL] || (_this__subAssetPromiseCallbacks[_assetBaseURL] = {}))[assetSubPath] = {
21571
+ reject: value
21572
+ };
21573
+ }
21528
21574
  };
21529
21575
  /**
21530
21576
  * @internal
@@ -21669,8 +21715,21 @@
21669
21715
  if (!loader) {
21670
21716
  throw "loader not found: " + item.type;
21671
21717
  }
21672
- // Load asset
21718
+ // Check sub asset
21719
+ if (queryPath) {
21720
+ // Check whether load main asset
21721
+ var mainPromise = loadingPromises[assetBaseURL] || this._loadMainAsset(loader, item, assetBaseURL);
21722
+ mainPromise.catch(function(e) {
21723
+ _this._onSubAssetFail(assetBaseURL, queryPath, e);
21724
+ });
21725
+ return this._createSubAssetPromiseCallback(assetBaseURL, assetURL, queryPath);
21726
+ }
21727
+ return this._loadMainAsset(loader, item, assetBaseURL);
21728
+ };
21729
+ _proto._loadMainAsset = function _loadMainAsset(loader, item, assetBaseURL) {
21730
+ var _this = this;
21673
21731
  item.url = assetBaseURL;
21732
+ var loadingPromises = this._loadingPromises;
21674
21733
  var promise = loader.load(item, this);
21675
21734
  loadingPromises[assetBaseURL] = promise;
21676
21735
  promise.then(function(resource) {
@@ -21678,32 +21737,46 @@
21678
21737
  _this._addAsset(assetBaseURL, resource);
21679
21738
  }
21680
21739
  delete loadingPromises[assetBaseURL];
21740
+ _this._releaseSubAssetPromiseCallback(assetBaseURL);
21681
21741
  }, function() {
21682
- return delete loadingPromises[assetBaseURL];
21742
+ delete loadingPromises[assetBaseURL];
21743
+ _this._releaseSubAssetPromiseCallback(assetBaseURL);
21683
21744
  });
21684
- if (queryPath) {
21685
- var subPromise = new AssetPromise(function(resolve, reject) {
21686
- _this._pushSubAssetPromiseCallback(assetURL, resolve, reject);
21687
- });
21688
- loadingPromises[assetURL] = subPromise;
21689
- subPromise.then(function() {
21745
+ return promise;
21746
+ };
21747
+ _proto._createSubAssetPromiseCallback = function _createSubAssetPromiseCallback(assetBaseURL, assetURL, assetSubPath) {
21748
+ var _this = this;
21749
+ var _this__subAssetPromiseCallbacks_assetBaseURL, _subPromiseCallback, _subPromiseCallback1;
21750
+ var loadingPromises = this._loadingPromises;
21751
+ var subPromiseCallback = (_this__subAssetPromiseCallbacks_assetBaseURL = this._subAssetPromiseCallbacks[assetBaseURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_assetBaseURL[assetSubPath];
21752
+ var resolvedValue = (_subPromiseCallback = subPromiseCallback) == null ? void 0 : _subPromiseCallback.resolve;
21753
+ var rejectedValue = (_subPromiseCallback1 = subPromiseCallback) == null ? void 0 : _subPromiseCallback1.reject;
21754
+ var promise = new AssetPromise(function(resolve, reject) {
21755
+ if (resolvedValue) {
21756
+ // Already resolved
21757
+ resolve(resolvedValue);
21758
+ } else if (rejectedValue) {
21759
+ // Already rejected
21760
+ reject(rejectedValue);
21761
+ } else {
21762
+ var _this__subAssetPromiseCallbacks, _assetBaseURL;
21763
+ // Pending
21764
+ loadingPromises[assetURL] = promise;
21765
+ ((_this__subAssetPromiseCallbacks = _this._subAssetPromiseCallbacks)[_assetBaseURL = assetBaseURL] || (_this__subAssetPromiseCallbacks[_assetBaseURL] = {}))[assetSubPath] = {
21766
+ resolve: resolve,
21767
+ reject: reject
21768
+ };
21769
+ }
21770
+ });
21771
+ if (!resolvedValue && !rejectedValue) {
21772
+ promise.then(function() {
21690
21773
  delete loadingPromises[assetURL];
21691
21774
  }, function() {
21692
21775
  return delete loadingPromises[assetURL];
21693
21776
  });
21694
- promise.catch(function(e) {
21695
- _this._onSubAssetFail(assetURL, e);
21696
- });
21697
- return subPromise;
21698
21777
  }
21699
21778
  return promise;
21700
21779
  };
21701
- _proto._pushSubAssetPromiseCallback = function _pushSubAssetPromiseCallback(assetURL, resolve, reject) {
21702
- this._subAssetPromiseCallbacks[assetURL] = {
21703
- resolve: resolve,
21704
- reject: reject
21705
- };
21706
- };
21707
21780
  _proto._gc = function _gc(forceDestroy) {
21708
21781
  var objects = Utils.objectValues(this._referResourcePool);
21709
21782
  for(var i = 0, n = objects.length; i < n; i++){
@@ -21760,6 +21833,9 @@
21760
21833
  });
21761
21834
  return result;
21762
21835
  };
21836
+ _proto._releaseSubAssetPromiseCallback = function _releaseSubAssetPromiseCallback(assetBaseURL) {
21837
+ delete this._subAssetPromiseCallbacks[assetBaseURL];
21838
+ };
21763
21839
  /**
21764
21840
  * @internal
21765
21841
  * @beta Just for internal editor, not recommended for developers.
@@ -27629,6 +27705,13 @@
27629
27705
  DepthTextureMode[DepthTextureMode[/* No depth texture. */ "None"] = 0] = "None";
27630
27706
  DepthTextureMode[DepthTextureMode[/* Generate depth texture by pre-pass rendering. */ "PrePass"] = 1] = "PrePass";
27631
27707
  })(exports.DepthTextureMode || (exports.DepthTextureMode = {}));
27708
+ /**
27709
+ * The strategy to use when a shader replacement fails.
27710
+ */ exports.ReplacementFailureStrategy = void 0;
27711
+ (function(ReplacementFailureStrategy) {
27712
+ ReplacementFailureStrategy[ReplacementFailureStrategy[/** Keep the original shader. */ "KeepOriginalShader"] = 0] = "KeepOriginalShader";
27713
+ ReplacementFailureStrategy[ReplacementFailureStrategy[/** Do not render. */ "DoNotRender"] = 1] = "DoNotRender";
27714
+ })(exports.ReplacementFailureStrategy || (exports.ReplacementFailureStrategy = {}));
27632
27715
  /**
27633
27716
  * PipelinePass is a base class for all pipeline passes.
27634
27717
  */ var PipelinePass = function PipelinePass(engine) {
@@ -29053,13 +29136,15 @@
29053
29136
  var replacementSubShaders = replacementShader.subShaders;
29054
29137
  var replacementTag = context.replacementTag;
29055
29138
  if (replacementTag) {
29139
+ var materialSubShaderTagValue = materialSubShader.getTagValue(replacementTag);
29056
29140
  for(var i = 0, n = replacementSubShaders.length; i < n; i++){
29057
29141
  var subShader = replacementSubShaders[i];
29058
- if (subShader.getTagValue(replacementTag) === materialSubShader.getTagValue(replacementTag)) {
29142
+ if (subShader.getTagValue(replacementTag) === materialSubShaderTagValue) {
29059
29143
  this.pushRenderDataWithShader(context, data, subShader.passes, renderStates);
29060
- break;
29144
+ return;
29061
29145
  }
29062
29146
  }
29147
+ context.replacementFailureStrategy === exports.ReplacementFailureStrategy.KeepOriginalShader && this.pushRenderDataWithShader(context, data, materialSubShader.passes, renderStates);
29063
29148
  } else {
29064
29149
  this.pushRenderDataWithShader(context, data, replacementSubShaders[0].passes, renderStates);
29065
29150
  }
@@ -29215,6 +29300,7 @@
29215
29300
  /** @internal */ _this._virtualCamera = new VirtualCamera();
29216
29301
  /** @internal */ _this._replacementShader = null;
29217
29302
  /** @internal */ _this._replacementSubShaderTag = null;
29303
+ /** @internal */ _this._replacementFailureStrategy = null;
29218
29304
  /** @internal */ _this._cameraIndex = -1;
29219
29305
  _this._priority = 0;
29220
29306
  _this._shaderData = new ShaderData(ShaderDataGroup.Camera);
@@ -29393,6 +29479,7 @@
29393
29479
  context.virtualCamera = virtualCamera;
29394
29480
  context.replacementShader = this._replacementShader;
29395
29481
  context.replacementTag = this._replacementSubShaderTag;
29482
+ context.replacementFailureStrategy = this._replacementFailureStrategy;
29396
29483
  // compute cull frustum.
29397
29484
  if (this.enableFrustumCulling && this._frustumChangeFlag.flag) {
29398
29485
  this._frustum.calculateFromMatrix(virtualCamera.viewProjectionMatrix);
@@ -29412,15 +29499,18 @@
29412
29499
  this._renderPipeline.render(context, cubeFace, mipLevel, clearMask);
29413
29500
  this._engine._renderCount++;
29414
29501
  };
29415
- _proto.setReplacementShader = function setReplacementShader(shader, replacementTag) {
29502
+ _proto.setReplacementShader = function setReplacementShader(shader, replacementTag, failureStrategy) {
29503
+ if (failureStrategy === void 0) failureStrategy = exports.ReplacementFailureStrategy.KeepOriginalShader;
29416
29504
  this._replacementShader = shader;
29417
29505
  this._replacementSubShaderTag = typeof replacementTag === "string" ? ShaderTagKey.getByName(replacementTag) : replacementTag;
29506
+ this._replacementFailureStrategy = failureStrategy;
29418
29507
  };
29419
29508
  /**
29420
29509
  * Reset and clear the replacement shader.
29421
29510
  */ _proto.resetReplacementShader = function resetReplacementShader() {
29422
29511
  this._replacementShader = null;
29423
29512
  this._replacementSubShaderTag = null;
29513
+ this._replacementFailureStrategy = null;
29424
29514
  };
29425
29515
  /**
29426
29516
  * @inheritdoc
@@ -36310,6 +36400,7 @@
36310
36400
  RenderTarget: RenderTarget,
36311
36401
  RenderTargetBlendState: RenderTargetBlendState,
36312
36402
  get Renderer () { return exports.Renderer; },
36403
+ get ReplacementFailureStrategy () { return exports.ReplacementFailureStrategy; },
36313
36404
  ResourceManager: ResourceManager,
36314
36405
  RotationOverLifetimeModule: RotationOverLifetimeModule,
36315
36406
  Scene: Scene,
@@ -39732,9 +39823,9 @@
39732
39823
  _proto.load = function load(item, resourceManager) {
39733
39824
  var _this = this;
39734
39825
  return new AssetPromise(function(resolve, reject) {
39735
- _this.request(item.url, {
39826
+ _this.request(item.url, _extends({}, item, {
39736
39827
  type: "arraybuffer"
39737
- }).then(function(data) {
39828
+ })).then(function(data) {
39738
39829
  decode(data, resourceManager.engine).then(function(mesh) {
39739
39830
  resolve(mesh);
39740
39831
  });
@@ -39757,9 +39848,9 @@
39757
39848
  _proto.load = function load(item, resourceManager) {
39758
39849
  var _this = this;
39759
39850
  return new AssetPromise(function(resolve, reject) {
39760
- _this.request(item.url, {
39851
+ _this.request(item.url, _extends({}, item, {
39761
39852
  type: "arraybuffer"
39762
- }).then(function(data) {
39853
+ })).then(function(data) {
39763
39854
  decode(data, resourceManager.engine).then(function(texture) {
39764
39855
  resolve(texture);
39765
39856
  });
@@ -39961,9 +40052,9 @@
39961
40052
  _proto.load = function load(item, resourceManager) {
39962
40053
  var _this = this;
39963
40054
  return new AssetPromise(function(resolve, reject) {
39964
- _this.request(item.url, {
40055
+ _this.request(item.url, _extends({}, item, {
39965
40056
  type: "arraybuffer"
39966
- }).then(function(arraybuffer) {
40057
+ })).then(function(arraybuffer) {
39967
40058
  var _this;
39968
40059
  var shArray = new Float32Array(arraybuffer, 0, 27);
39969
40060
  var shByteLength = 27 * 4;
@@ -40037,9 +40128,9 @@
40037
40128
  _proto.load = function load(item, resourceManager) {
40038
40129
  var _this = this;
40039
40130
  return new AssetPromise(function(resolve, reject) {
40040
- _this.request(item.url, {
40131
+ _this.request(item.url, _extends({}, item, {
40041
40132
  type: "json"
40042
- }).then(function(data) {
40133
+ })).then(function(data) {
40043
40134
  var fontName = data.fontName, fontUrl = data.fontUrl;
40044
40135
  if (fontUrl) {
40045
40136
  _this._registerFont(fontName, fontUrl).then(function() {
@@ -40421,15 +40512,15 @@
40421
40512
  for(var i = 0, length = item.length; i < length; i++){
40422
40513
  var mesh = item[i];
40423
40514
  // @ts-ignore
40424
- _this.resourceManager._onSubAssetSuccess(url + "?q=" + glTFResourceKey + "[" + index + "][" + i + "]", mesh);
40515
+ _this.resourceManager._onSubAssetSuccess(url, glTFResourceKey + "[" + index + "][" + i + "]", mesh);
40425
40516
  }
40426
40517
  } else {
40427
40518
  // @ts-ignore
40428
- _this.resourceManager._onSubAssetSuccess(url + "?q=" + glTFResourceKey + "[" + index + "]", item);
40519
+ _this.resourceManager._onSubAssetSuccess(url, "" + glTFResourceKey + (index === undefined ? "" : "[" + index + "]"), item);
40429
40520
  var _this_glTF_scene;
40430
40521
  if (type === 2 && ((_this_glTF_scene = _this.glTF.scene) != null ? _this_glTF_scene : 0) === index) {
40431
40522
  // @ts-ignore
40432
- _this.resourceManager._onSubAssetSuccess("" + url + "?q=defaultSceneRoot", item);
40523
+ _this.resourceManager._onSubAssetSuccess(url, "defaultSceneRoot", item);
40433
40524
  }
40434
40525
  }
40435
40526
  });
@@ -42850,7 +42941,7 @@
42850
42941
  var sceneExtensions = sceneInfo.extensions;
42851
42942
  var engine = glTFResource.engine;
42852
42943
  var isDefaultScene = scene === index;
42853
- var sceneNodes = sceneInfo.nodes;
42944
+ var sceneNodes = sceneInfo.nodes || [];
42854
42945
  var sceneRoot;
42855
42946
  if (sceneNodes.length === 1) {
42856
42947
  sceneRoot = context.get(exports.GLTFParserType.Entity, sceneNodes[0]);
@@ -43263,7 +43354,8 @@
43263
43354
  registerGLTFParser(exports.GLTFParserType.AnimatorController)
43264
43355
  ], exports.GLTFAnimatorControllerParser);
43265
43356
  // Source: https://github.com/zeux/meshoptimizer/blob/master/js/meshopt_decoder.js
43266
- var MeshoptDecoder = function() {
43357
+ var ready;
43358
+ function getMeshoptDecoder() {
43267
43359
  var unpack = function unpack(data) {
43268
43360
  var result = new Uint8Array(data.length);
43269
43361
  for(var i = 0; i < data.length; ++i){
@@ -43308,7 +43400,7 @@
43308
43400
  return worker;
43309
43401
  };
43310
43402
  var initWorkers = function initWorkers(count) {
43311
- var source = "var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(unpack(wasm)) + "]), {})" + ".then(function(result) {instance = result.instance; instance.exports.__wasm_call_ctors();});\n" + "self.onmessage = workerProcess;\n" + 'function decode(fun, target, count, size, source, filter) {\n const sbrk = instance.exports.sbrk;\n const count4 = (count + 3) & ~3;\n const tp = sbrk(count4 * size);\n const sp = sbrk(source.length);\n const heap = new Uint8Array(instance.exports.memory.buffer);\n heap.set(source, sp);\n const res = fun(tp, count, size, sp, source.length);\n if (res == 0 && filter) {\n filter(tp, count4, size);\n }\n target.set(heap.subarray(tp, tp + count * size));\n sbrk(tp - sbrk(0));\n if (res != 0) {\n throw new Error("Malformed buffer data: " + res);\n }\n }\n' + 'function workerProcess(event) {\n ready.then(function () {\n const data = event.data;\n try {\n const target = new Uint8Array(data.count * data.size);\n decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]);\n self.postMessage({ id: data.id, count: data.count, action: "resolve", value: target }, [target.buffer]);\n } catch (error) {\n self.postMessage({\n id: data.id,\n count: data.count,\n action: "reject",\n value: error\n });\n }\n });\n }';
43403
+ var source = "var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(unpack(wasm)) + "]), {})" + ".then(function(result) {instance = result.instance; instance.exports.__wasm_call_ctors();});\n" + "self.onmessage = workerProcess;\n" + 'function decode(fun, target, count, size, source, filter) {\n const sbrk = instance.exports.sbrk;\n const count4 = (count + 3) & ~3;\n const tp = sbrk(count4 * size);\n const sp = sbrk(source.length);\n const heap = new Uint8Array(instance.exports.memory.buffer);\n heap.set(source, sp);\n const res = fun(tp, count, size, sp, source.length);\n if (res == 0 && filter) {\n filter(tp, count4, size);\n }\n target.set(heap.subarray(tp, tp + count * size));\n sbrk(tp - sbrk(0));\n if (res != 0) {\n throw new Error("Malformed buffer data: " + res);\n }\n }\n' + 'function workerProcess(event) {\n ready.then(function () {\n const data = event.data;\n try {\n const target = new Uint8Array(data.count * data.size);\n decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]);\n self.postMessage({ id: data.id, count: data.count, action: "resolve", value: target }, [target.buffer]);\n } catch (error) {\n self.postMessage({\n id: data.id,\n count: data.count,\n action: "reject",\n value: error\n });\n }\n });\n }';
43312
43404
  var blob = new Blob([
43313
43405
  source
43314
43406
  ], {
@@ -43347,6 +43439,7 @@
43347
43439
  ]);
43348
43440
  });
43349
43441
  };
43442
+ if (ready) return ready;
43350
43443
  var wasm_base = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb";
43351
43444
  var wasm_simd = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb";
43352
43445
  var wasmpack = new Uint8Array([
@@ -43414,9 +43507,32 @@
43414
43507
  // @ts-ignore
43415
43508
  var wasm = SystemInfo._detectSIMDSupported() ? wasm_simd : wasm_base;
43416
43509
  var instance;
43417
- var ready = WebAssembly.instantiate(unpack(wasm), {}).then(function(result) {
43510
+ ready = WebAssembly.instantiate(unpack(wasm)).then(function(result) {
43418
43511
  instance = result.instance;
43419
43512
  instance.exports.__wasm_call_ctors();
43513
+ }).then(function() {
43514
+ return {
43515
+ workerCount: 4,
43516
+ ready: ready,
43517
+ useWorkers: function useWorkers(workerCount) {
43518
+ this.workerCount = workerCount != null ? workerCount : this.workerCount;
43519
+ initWorkers(this.workerCount);
43520
+ },
43521
+ decodeGltfBuffer: function decodeGltfBuffer(count, stride, source, mode, filter) {
43522
+ if (this.workerCount > 0 && workers.length === 0) this.useWorkers();
43523
+ if (workers.length > 0) return decodeWorker(count, stride, source, decoders[mode], filters[filter]);
43524
+ return ready.then(function() {
43525
+ var target = new Uint8Array(count * stride);
43526
+ decode(instance.exports[decoders[mode]], target, count, stride, source, instance.exports[filters[filter]]);
43527
+ return target;
43528
+ });
43529
+ },
43530
+ release: function release() {
43531
+ for(var i = 0; i < workers.length; i++){
43532
+ workers[i].object.terminate();
43533
+ }
43534
+ }
43535
+ };
43420
43536
  });
43421
43537
  var filters = {
43422
43538
  NONE: "",
@@ -43431,28 +43547,8 @@
43431
43547
  };
43432
43548
  var workers = [];
43433
43549
  var requestId = 0;
43434
- return {
43435
- workerCount: 4,
43436
- ready: ready,
43437
- useWorkers: function useWorkers() {
43438
- initWorkers(this.workerCount);
43439
- },
43440
- decodeGltfBuffer: function decodeGltfBuffer(count, stride, source, mode, filter) {
43441
- if (this.workerCount > 0 && workers.length === 0) this.useWorkers();
43442
- if (workers.length > 0) return decodeWorker(count, stride, source, decoders[mode], filters[filter]);
43443
- return ready.then(function() {
43444
- var target = new Uint8Array(count * stride);
43445
- decode(instance.exports[decoders[mode]], target, count, stride, source, instance.exports[filters[filter]]);
43446
- return target;
43447
- });
43448
- },
43449
- release: function release() {
43450
- for(var i = 0; i < workers.length; i++){
43451
- workers[i].object.terminate();
43452
- }
43453
- }
43454
- };
43455
- }();
43550
+ return ready;
43551
+ }
43456
43552
  exports.GLTFLoader = /*#__PURE__*/ function(Loader1) {
43457
43553
  var GLTFLoader = function GLTFLoader() {
43458
43554
  return Loader1.apply(this, arguments);
@@ -43460,11 +43556,13 @@
43460
43556
  _inherits(GLTFLoader, Loader1);
43461
43557
  var _proto = GLTFLoader.prototype;
43462
43558
  _proto.initialize = function initialize(_, configuration) {
43463
- var _configuration_glTF;
43464
- var meshOptOptions = (_configuration_glTF = configuration.glTF) == null ? void 0 : _configuration_glTF.meshOpt;
43559
+ var _configuration_glTFLoader, _configuration_glTF;
43560
+ var _configuration_glTFLoader_meshOpt;
43561
+ var meshOptOptions = (_configuration_glTFLoader_meshOpt = (_configuration_glTFLoader = configuration.glTFLoader) == null ? void 0 : _configuration_glTFLoader.meshOpt) != null ? _configuration_glTFLoader_meshOpt : (_configuration_glTF = configuration.glTF) == null ? void 0 : _configuration_glTF.meshOpt;
43465
43562
  if (meshOptOptions) {
43466
- MeshoptDecoder.workerCount = meshOptOptions.workerCount;
43467
- MeshoptDecoder.useWorkers();
43563
+ return getMeshoptDecoder().then(function(meshoptDecoder) {
43564
+ meshoptDecoder.useWorkers(meshOptOptions.workerCount);
43565
+ });
43468
43566
  }
43469
43567
  return Promise.resolve();
43470
43568
  };
@@ -43485,7 +43583,11 @@
43485
43583
  * Release glTF loader memory(includes meshopt workers).
43486
43584
  * @remarks If use loader after releasing, we should release again.
43487
43585
  */ GLTFLoader.release = function release() {
43488
- MeshoptDecoder.release();
43586
+ if (ready) {
43587
+ getMeshoptDecoder().then(function(meshoptDecoder) {
43588
+ meshoptDecoder.release();
43589
+ });
43590
+ }
43489
43591
  };
43490
43592
  return GLTFLoader;
43491
43593
  }(Loader);
@@ -43507,9 +43609,9 @@
43507
43609
  var _this = this;
43508
43610
  return new AssetPromise(function(resolve, reject) {
43509
43611
  var engine = resourceManager.engine;
43510
- _this.request(item.url, {
43612
+ _this.request(item.url, _extends({}, item, {
43511
43613
  type: "arraybuffer"
43512
- }).then(function(buffer) {
43614
+ })).then(function(buffer) {
43513
43615
  var uint8Array = new Uint8Array(buffer);
43514
43616
  var _HDRLoader__parseHeader = HDRLoader._parseHeader(uint8Array), width = _HDRLoader__parseHeader.width, height = _HDRLoader__parseHeader.height, dataPosition = _HDRLoader__parseHeader.dataPosition;
43515
43617
  var pixels = HDRLoader._readPixels(uint8Array.subarray(dataPosition), width, height);
@@ -44247,9 +44349,9 @@
44247
44349
  var _this = this;
44248
44350
  var engine = resourceManager.engine;
44249
44351
  return new AssetPromise(function(resolve, reject) {
44250
- _this.request(item.url, {
44352
+ _this.request(item.url, _extends({}, item, {
44251
44353
  type: "json"
44252
- }).then(function(data) {
44354
+ })).then(function(data) {
44253
44355
  // @ts-ignore
44254
44356
  engine.resourceManager.initVirtualResources(data.files);
44255
44357
  return resourceManager.load({
@@ -44607,9 +44709,9 @@
44607
44709
  var _this = this;
44608
44710
  var engine = resourceManager.engine;
44609
44711
  return new AssetPromise(function(resolve, reject) {
44610
- _this.request(item.url, {
44712
+ _this.request(item.url, _extends({}, item, {
44611
44713
  type: "json"
44612
- }).then(function(data) {
44714
+ })).then(function(data) {
44613
44715
  return SceneParser.parse(engine, data).then(function(scene) {
44614
44716
  var promises = [];
44615
44717
  // parse ambient light
@@ -44672,6 +44774,8 @@
44672
44774
  scene.background.texture = texture;
44673
44775
  });
44674
44776
  promises.push(backgroundPromise);
44777
+ var _background_textureFillMode;
44778
+ scene.background.textureFillMode = (_background_textureFillMode = background.textureFillMode) != null ? _background_textureFillMode : scene.background.textureFillMode;
44675
44779
  }
44676
44780
  break;
44677
44781
  }
@@ -45054,7 +45158,9 @@
45054
45158
  var _proto = EXT_meshopt_compression.prototype;
45055
45159
  _proto.createAndParse = function createAndParse(context, schema) {
45056
45160
  return context.get(exports.GLTFParserType.Buffer, schema.buffer).then(function(arrayBuffer) {
45057
- return MeshoptDecoder.decodeGltfBuffer(schema.count, schema.byteStride, new Uint8Array(arrayBuffer, schema.byteOffset, schema.byteLength), schema.mode, schema.filter);
45161
+ return getMeshoptDecoder().then(function(decoder) {
45162
+ return decoder.decodeGltfBuffer(schema.count, schema.byteStride, new Uint8Array(arrayBuffer, schema.byteOffset, schema.byteLength), schema.mode, schema.filter);
45163
+ });
45058
45164
  });
45059
45165
  };
45060
45166
  return EXT_meshopt_compression;
@@ -45086,7 +45192,7 @@
45086
45192
  ], KHR_materials_anisotropy);
45087
45193
 
45088
45194
  //@ts-ignore
45089
- var version = "1.2.0-beta.6";
45195
+ var version = "1.2.0";
45090
45196
  console.log("Galacean engine version: " + version);
45091
45197
  for(var key in CoreObjects){
45092
45198
  Loader.registerClass(key, CoreObjects[key]);