@galacean/engine-loader 1.2.0-alpha.0 → 1.2.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/module.js CHANGED
@@ -1,7 +1,6 @@
1
- import { Utils, ModelMesh, BlendShape, Texture2D, Loader, Entity, Transform, Animator, DirectLight, Camera, MeshRenderer, ParticleRenderer, PointLight, SpotLight, Script, SpriteMask, SpriteRenderer, TextRenderer, AnimationClip, AnimationEvent, AnimationStringCurve, Keyframe, AnimationBoolCurve, AnimationRefCurve, AnimationQuaternionCurve, AnimationColorCurve, AnimationVector4Curve, AnimationVector3Curve, AnimationVector2Curve, AnimationFloatArrayCurve, AnimationArrayCurve, AnimationFloatCurve, Scene, resourceLoader, AssetPromise, AssetType, AnimatorController, AnimatorControllerLayer, AnimatorStateMachine, AnimatorStateTransition, TextureCube, TextureFilterMode, TextureCubeFace, AmbientLight, DiffuseMode, Font, ReferResource, IndexFormat, VertexElementFormat, GLCapabilityType, Logger, TextureFormat, request, ContentRestorer, InterpolationType, SkinnedMeshRenderer, PBRMaterial, BlinnPhongMaterial, PBRSpecularMaterial, TextureCoordinate, RenderFace, VertexElement, Buffer, BufferBindFlag, BufferUsage, Skin, TextureWrapMode as TextureWrapMode$1, Material, Shader, SpriteAtlas, Sprite, BackgroundMode, UnlitMaterial } from '@galacean/engine-core';
1
+ import { Utils, ModelMesh, BlendShape, Texture2D, Loader, Entity, Transform, Animator, DirectLight, Camera, MeshRenderer, ParticleRenderer, PointLight, SpotLight, Script, SpriteMask, SpriteRenderer, TextRenderer, AnimationClip, AnimationEvent, AnimationStringCurve, Keyframe, AnimationBoolCurve, AnimationRefCurve, AnimationQuaternionCurve, AnimationColorCurve, AnimationVector4Curve, AnimationVector3Curve, AnimationVector2Curve, AnimationFloatArrayCurve, AnimationArrayCurve, AnimationFloatCurve, Scene, resourceLoader, AssetPromise, AssetType, AnimatorController, AnimatorControllerLayer, AnimatorStateMachine, AnimatorStateTransition, TextureCube, TextureFilterMode, TextureCubeFace, AmbientLight, DiffuseMode, Font, ReferResource, IndexFormat, VertexElementFormat, GLCapabilityType, Logger, TextureFormat, request, ContentRestorer, InterpolationType, SkinnedMeshRenderer, PBRMaterial, BlinnPhongMaterial, PBRSpecularMaterial, TextureCoordinate, RenderFace, VertexElement, Buffer, BufferBindFlag, BufferUsage, Skin, TextureWrapMode as TextureWrapMode$1, SystemInfo, Material, Shader, SpriteAtlas, Sprite, BackgroundMode, UnlitMaterial } from '@galacean/engine-core';
2
2
  import { Color, Vector4, Vector3, Vector2, Quaternion, SphericalHarmonics3, MathUtil, BoundingBox, Matrix, Rect } from '@galacean/engine-math';
3
3
  import { GLCompressedTextureInternalFormat } from '@galacean/engine-rhi-webgl';
4
- import { DRACODecoder } from '@galacean/engine-draco';
5
4
 
6
5
  function _extends() {
7
6
  _extends = Object.assign || function assign(target) {
@@ -534,6 +533,8 @@ var ReflectionParser = /*#__PURE__*/ function() {
534
533
  if (position) entity.transform.position.copyFrom(position);
535
534
  if (rotation) entity.transform.rotation.copyFrom(rotation);
536
535
  if (scale) entity.transform.scale.copyFrom(scale);
536
+ var _entityConfig_layer;
537
+ entity.layer = (_entityConfig_layer = entityConfig.layer) != null ? _entityConfig_layer : entity.layer;
537
538
  return entity;
538
539
  });
539
540
  };
@@ -1702,7 +1703,7 @@ var TextureWrapMode;
1702
1703
  var glTFItems = this.glTF[glTFSchemaMap[type]];
1703
1704
  if (glTFItems && (index === undefined || glTFItems[index])) {
1704
1705
  if (index === undefined) {
1705
- resource = type === 7 ? glTFItems.map(function(_, index) {
1706
+ resource = type === 8 ? glTFItems.map(function(_, index) {
1706
1707
  return _this.get(type, index);
1707
1708
  }) : Promise.all(glTFItems.map(function(_, index) {
1708
1709
  return _this.get(type, index);
@@ -1724,11 +1725,11 @@ var TextureWrapMode;
1724
1725
  _this.glTF = json;
1725
1726
  return Promise.all([
1726
1727
  _this.get(1),
1727
- _this.get(4),
1728
1728
  _this.get(5),
1729
1729
  _this.get(6),
1730
- _this.get(8),
1730
+ _this.get(7),
1731
1731
  _this.get(9),
1732
+ _this.get(10),
1732
1733
  _this.get(2)
1733
1734
  ]).then(function() {
1734
1735
  var glTFResource = _this.glTFResource;
@@ -1778,7 +1779,7 @@ var TextureWrapMode;
1778
1779
  var _this = this;
1779
1780
  var glTFResourceKey = glTFResourceMap[type];
1780
1781
  if (!glTFResourceKey) return;
1781
- if (type === 7) {
1782
+ if (type === 8) {
1782
1783
  var _this_glTFResource, _glTFResourceKey;
1783
1784
  ((_this_glTFResource = this.glTFResource)[_glTFResourceKey = glTFResourceKey] || (_this_glTFResource[_glTFResourceKey] = []))[index] = resource;
1784
1785
  } else {
@@ -1786,7 +1787,7 @@ var TextureWrapMode;
1786
1787
  resource.then(function(item) {
1787
1788
  var _this_glTFResource, _glTFResourceKey;
1788
1789
  ((_this_glTFResource = _this.glTFResource)[_glTFResourceKey = glTFResourceKey] || (_this_glTFResource[_glTFResourceKey] = []))[index] = item;
1789
- if (type === 6) {
1790
+ if (type === 7) {
1790
1791
  for(var i = 0, length = item.length; i < length; i++){
1791
1792
  var mesh = item[i];
1792
1793
  // @ts-ignore
@@ -1826,17 +1827,18 @@ var GLTFParserType;
1826
1827
  GLTFParserType[GLTFParserType["Validator"] = 1] = "Validator";
1827
1828
  GLTFParserType[GLTFParserType["Scene"] = 2] = "Scene";
1828
1829
  GLTFParserType[GLTFParserType["Buffer"] = 3] = "Buffer";
1829
- GLTFParserType[GLTFParserType["Texture"] = 4] = "Texture";
1830
- GLTFParserType[GLTFParserType["Material"] = 5] = "Material";
1831
- GLTFParserType[GLTFParserType["Mesh"] = 6] = "Mesh";
1832
- GLTFParserType[GLTFParserType["Entity"] = 7] = "Entity";
1833
- GLTFParserType[GLTFParserType["Skin"] = 8] = "Skin";
1834
- GLTFParserType[GLTFParserType["Animation"] = 9] = "Animation";
1830
+ GLTFParserType[GLTFParserType["BufferView"] = 4] = "BufferView";
1831
+ GLTFParserType[GLTFParserType["Texture"] = 5] = "Texture";
1832
+ GLTFParserType[GLTFParserType["Material"] = 6] = "Material";
1833
+ GLTFParserType[GLTFParserType["Mesh"] = 7] = "Mesh";
1834
+ GLTFParserType[GLTFParserType["Entity"] = 8] = "Entity";
1835
+ GLTFParserType[GLTFParserType["Skin"] = 9] = "Skin";
1836
+ GLTFParserType[GLTFParserType["Animation"] = 10] = "Animation";
1835
1837
  })(GLTFParserType || (GLTFParserType = {}));
1836
1838
  var _obj;
1837
- var glTFSchemaMap = (_obj = {}, _obj[2] = "scenes", _obj[3] = "buffers", _obj[4] = "textures", _obj[5] = "materials", _obj[6] = "meshes", _obj[7] = "nodes", _obj[8] = "skins", _obj[9] = "animations", _obj);
1839
+ var glTFSchemaMap = (_obj = {}, _obj[2] = "scenes", _obj[3] = "buffers", _obj[5] = "textures", _obj[6] = "materials", _obj[7] = "meshes", _obj[8] = "nodes", _obj[9] = "skins", _obj[10] = "animations", _obj[4] = "bufferViews", _obj);
1838
1840
  var _obj1;
1839
- var glTFResourceMap = (_obj1 = {}, _obj1[2] = "_sceneRoots", _obj1[4] = "textures", _obj1[5] = "materials", _obj1[6] = "meshes", _obj1[7] = "entities", _obj1[8] = "skins", _obj1[9] = "animations", _obj1);
1841
+ var glTFResourceMap = (_obj1 = {}, _obj1[2] = "_sceneRoots", _obj1[5] = "textures", _obj1[6] = "materials", _obj1[7] = "meshes", _obj1[8] = "entities", _obj1[9] = "skins", _obj1[10] = "animations", _obj1);
1840
1842
  function registerGLTFParser(pipeline) {
1841
1843
  return function(Parser) {
1842
1844
  var parser = new Parser();
@@ -1942,11 +1944,10 @@ function registerGLTFParser(pipeline) {
1942
1944
  GLTFUtils.getAccessorBuffer = function getAccessorBuffer(context, bufferViews, accessor) {
1943
1945
  var componentType = accessor.componentType;
1944
1946
  var bufferView = bufferViews[accessor.bufferView];
1945
- return context.get(GLTFParserType.Buffer).then(function(buffers) {
1947
+ return context.get(GLTFParserType.BufferView, accessor.bufferView).then(function(bufferViewData) {
1946
1948
  var bufferIndex = bufferView.buffer;
1947
- var buffer = buffers[bufferIndex];
1948
- var _bufferView_byteOffset;
1949
- var bufferByteOffset = (_bufferView_byteOffset = bufferView.byteOffset) != null ? _bufferView_byteOffset : 0;
1949
+ var _bufferViewData_byteOffset;
1950
+ var bufferByteOffset = (_bufferViewData_byteOffset = bufferViewData.byteOffset) != null ? _bufferViewData_byteOffset : 0;
1950
1951
  var _accessor_byteOffset;
1951
1952
  var byteOffset = (_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0;
1952
1953
  var TypedArray = GLTFUtils.getComponentType(componentType);
@@ -1965,19 +1966,21 @@ function registerGLTFParser(pipeline) {
1965
1966
  if (!bufferInfo) {
1966
1967
  var offset = bufferByteOffset + bufferSlice * bufferStride;
1967
1968
  var count = accessorCount * (bufferStride / dataElementBytes);
1968
- var data = new TypedArray(buffer, offset, count);
1969
+ var data = new TypedArray(bufferViewData.buffer, offset, count);
1969
1970
  accessorBufferCache[bufferCacheKey] = bufferInfo = new BufferInfo(data, true, bufferStride);
1970
1971
  bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset, count));
1971
1972
  }
1972
1973
  } else {
1973
1974
  var offset1 = bufferByteOffset + byteOffset;
1974
1975
  var count1 = accessorCount * dataElementSize;
1975
- var data1 = new TypedArray(buffer, offset1, count1);
1976
+ var data1 = new TypedArray(bufferViewData.buffer, offset1, count1);
1976
1977
  bufferInfo = new BufferInfo(data1, false, elementStride);
1977
1978
  bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset1, count1));
1978
1979
  }
1979
1980
  if (accessor.sparse) {
1980
- GLTFUtils.processingSparseData(bufferViews, accessor, buffers, bufferInfo);
1981
+ return GLTFUtils.processingSparseData(context, accessor, bufferInfo).then(function() {
1982
+ return bufferInfo;
1983
+ });
1981
1984
  }
1982
1985
  return bufferInfo;
1983
1986
  });
@@ -2053,40 +2056,43 @@ function registerGLTFParser(pipeline) {
2053
2056
  };
2054
2057
  /**
2055
2058
  * Get accessor data.
2056
- */ GLTFUtils.processingSparseData = function processingSparseData(bufferViews, accessor, buffers, bufferInfo) {
2059
+ */ GLTFUtils.processingSparseData = function processingSparseData(context, accessor, bufferInfo) {
2057
2060
  var restoreInfo = bufferInfo.restoreInfo;
2061
+ var bufferViews = context.glTF.bufferViews;
2058
2062
  var accessorTypeSize = GLTFUtils.getAccessorTypeSize(accessor.type);
2059
2063
  var TypedArray = GLTFUtils.getComponentType(accessor.componentType);
2060
2064
  var data = bufferInfo.data.slice();
2061
2065
  var _accessor_sparse = accessor.sparse, count = _accessor_sparse.count, indices = _accessor_sparse.indices, values = _accessor_sparse.values;
2062
2066
  var indicesBufferView = bufferViews[indices.bufferView];
2063
2067
  var valuesBufferView = bufferViews[values.bufferView];
2064
- var indicesBufferIndex = indicesBufferView.buffer;
2065
- var valuesBufferIndex = valuesBufferView.buffer;
2066
- var indicesArrayBuffer = buffers[indicesBufferIndex];
2067
- var valuesArrayBuffer = buffers[valuesBufferIndex];
2068
- var _indices_byteOffset, _indicesBufferView_byteOffset;
2069
- var indicesByteOffset = ((_indices_byteOffset = indices.byteOffset) != null ? _indices_byteOffset : 0) + ((_indicesBufferView_byteOffset = indicesBufferView.byteOffset) != null ? _indicesBufferView_byteOffset : 0);
2070
- var indicesByteLength = indicesBufferView.byteLength;
2071
- var _values_byteOffset, _valuesBufferView_byteOffset;
2072
- var valuesByteOffset = ((_values_byteOffset = values.byteOffset) != null ? _values_byteOffset : 0) + ((_valuesBufferView_byteOffset = valuesBufferView.byteOffset) != null ? _valuesBufferView_byteOffset : 0);
2073
- var valuesByteLength = valuesBufferView.byteLength;
2074
- restoreInfo.typeSize = accessorTypeSize;
2075
- restoreInfo.sparseCount = count;
2076
- var IndexTypeArray = GLTFUtils.getComponentType(indices.componentType);
2077
- var indexLength = indicesByteLength / IndexTypeArray.BYTES_PER_ELEMENT;
2078
- var indicesArray = new IndexTypeArray(indicesArrayBuffer, indicesByteOffset, indexLength);
2079
- restoreInfo.sparseIndices = new RestoreDataAccessor(indicesBufferIndex, IndexTypeArray, indicesByteOffset, indexLength);
2080
- var valueLength = valuesByteLength / TypedArray.BYTES_PER_ELEMENT;
2081
- var valuesArray = new TypedArray(valuesArrayBuffer, valuesByteOffset, valueLength);
2082
- restoreInfo.sparseValues = new RestoreDataAccessor(valuesBufferIndex, TypedArray, valuesByteOffset, valueLength);
2083
- for(var i = 0; i < count; i++){
2084
- var replaceIndex = indicesArray[i];
2085
- for(var j = 0; j < accessorTypeSize; j++){
2086
- data[replaceIndex * accessorTypeSize + j] = valuesArray[i * accessorTypeSize + j];
2068
+ return Promise.all([
2069
+ context.get(GLTFParserType.BufferView, indices.bufferView),
2070
+ context.get(GLTFParserType.BufferView, values.bufferView)
2071
+ ]).then(function(param) {
2072
+ var indicesUint8Array = param[0], valuesUin8Array = param[1];
2073
+ var _indices_byteOffset, _indicesUint8Array_byteOffset;
2074
+ var indicesByteOffset = ((_indices_byteOffset = indices.byteOffset) != null ? _indices_byteOffset : 0) + ((_indicesUint8Array_byteOffset = indicesUint8Array.byteOffset) != null ? _indicesUint8Array_byteOffset : 0);
2075
+ var indicesByteLength = indicesUint8Array.byteLength;
2076
+ var _values_byteOffset, _valuesUin8Array_byteOffset;
2077
+ var valuesByteOffset = ((_values_byteOffset = values.byteOffset) != null ? _values_byteOffset : 0) + ((_valuesUin8Array_byteOffset = valuesUin8Array.byteOffset) != null ? _valuesUin8Array_byteOffset : 0);
2078
+ var valuesByteLength = valuesUin8Array.byteLength;
2079
+ restoreInfo.typeSize = accessorTypeSize;
2080
+ restoreInfo.sparseCount = count;
2081
+ var IndexTypeArray = GLTFUtils.getComponentType(indices.componentType);
2082
+ var indexLength = indicesByteLength / IndexTypeArray.BYTES_PER_ELEMENT;
2083
+ var indicesArray = new IndexTypeArray(indicesUint8Array.buffer, indicesByteOffset, indexLength);
2084
+ restoreInfo.sparseIndices = new RestoreDataAccessor(indicesBufferView.buffer, IndexTypeArray, indicesByteOffset, indexLength);
2085
+ var valueLength = valuesByteLength / TypedArray.BYTES_PER_ELEMENT;
2086
+ var valuesArray = new TypedArray(valuesUin8Array.buffer, valuesByteOffset, valueLength);
2087
+ restoreInfo.sparseValues = new RestoreDataAccessor(valuesBufferView.buffer, TypedArray, valuesByteOffset, valueLength);
2088
+ for(var i = 0; i < count; i++){
2089
+ var replaceIndex = indicesArray[i];
2090
+ for(var j = 0; j < accessorTypeSize; j++){
2091
+ data[replaceIndex * accessorTypeSize + j] = valuesArray[i * accessorTypeSize + j];
2092
+ }
2087
2093
  }
2088
- }
2089
- bufferInfo.data = data;
2094
+ bufferInfo.data = data;
2095
+ });
2090
2096
  };
2091
2097
  GLTFUtils.getIndexFormat = function getIndexFormat(type) {
2092
2098
  switch(type){
@@ -3108,8 +3114,9 @@ var KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
3108
3114
  });
3109
3115
  };
3110
3116
  /**
3111
- * Destroy ktx2 transcoder worker.
3112
- */ KTX2Loader1.destroy = function destroy() {
3117
+ * Release ktx2 transcoder worker.
3118
+ * @remarks If use loader after releasing, we should release again.
3119
+ */ KTX2Loader1.release = function release() {
3113
3120
  if (this._binomialLLCTranscoder) this._binomialLLCTranscoder.destroy();
3114
3121
  if (this._khronosTranscoder) this._khronosTranscoder.destroy();
3115
3122
  this._binomialLLCTranscoder = null;
@@ -4639,12 +4646,256 @@ GLTFValidator = __decorate([
4639
4646
  registerGLTFParser(GLTFParserType.Validator)
4640
4647
  ], GLTFValidator);
4641
4648
 
4649
+ var GLTFBufferViewParser = /*#__PURE__*/ function(GLTFParser1) {
4650
+ _inherits(GLTFBufferViewParser, GLTFParser1);
4651
+ function GLTFBufferViewParser() {
4652
+ return GLTFParser1.apply(this, arguments);
4653
+ }
4654
+ var _proto = GLTFBufferViewParser.prototype;
4655
+ _proto.parse = function parse(context, index) {
4656
+ var bufferView = context.glTF.bufferViews[index];
4657
+ var extensions = bufferView.extensions, _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset, byteLength = bufferView.byteLength, bufferIndex = bufferView.buffer;
4658
+ return extensions ? GLTFParser.executeExtensionsCreateAndParse(extensions, context, bufferView) : context.get(GLTFParserType.Buffer, bufferIndex).then(function(buffer) {
4659
+ return new Uint8Array(buffer, byteOffset, byteLength);
4660
+ });
4661
+ };
4662
+ return GLTFBufferViewParser;
4663
+ }(GLTFParser);
4664
+ GLTFBufferViewParser = __decorate([
4665
+ registerGLTFParser(GLTFParserType.BufferView)
4666
+ ], GLTFBufferViewParser);
4667
+
4668
+ // Source: https://github.com/zeux/meshoptimizer/blob/master/js/meshopt_decoder.js
4669
+ var MeshoptDecoder = function() {
4670
+ var unpack = function unpack(data) {
4671
+ var result = new Uint8Array(data.length);
4672
+ for(var i = 0; i < data.length; ++i){
4673
+ var ch = data.charCodeAt(i);
4674
+ result[i] = ch > 96 ? ch - 97 : ch > 64 ? ch - 39 : ch + 4;
4675
+ }
4676
+ var write = 0;
4677
+ for(var i1 = 0; i1 < data.length; ++i1){
4678
+ result[write++] = result[i1] < 60 ? wasmpack[result[i1]] : (result[i1] - 60) * 64 + result[++i1];
4679
+ }
4680
+ return result.buffer.slice(0, write);
4681
+ };
4682
+ var decode = function decode(fun, target, count, size, source, filter) {
4683
+ var sbrk = instance.exports.sbrk;
4684
+ var count4 = count + 3 & ~3;
4685
+ var tp = sbrk(count4 * size);
4686
+ var sp = sbrk(source.length);
4687
+ var heap = new Uint8Array(instance.exports.memory.buffer);
4688
+ heap.set(source, sp);
4689
+ var res = fun(tp, count, size, sp, source.length);
4690
+ if (res == 0 && filter) {
4691
+ filter(tp, count4, size);
4692
+ }
4693
+ target.set(heap.subarray(tp, tp + count * size));
4694
+ sbrk(tp - sbrk(0));
4695
+ if (res != 0) {
4696
+ throw new Error("Malformed buffer data: " + res);
4697
+ }
4698
+ };
4699
+ var createWorker = function createWorker(url) {
4700
+ var worker = {
4701
+ object: new Worker(url),
4702
+ pending: 0,
4703
+ requests: {}
4704
+ };
4705
+ worker.object.onmessage = function(event) {
4706
+ var data = event.data;
4707
+ worker.pending -= data.count;
4708
+ worker.requests[data.id][data.action](data.value);
4709
+ delete worker.requests[data.id];
4710
+ };
4711
+ return worker;
4712
+ };
4713
+ var initWorkers = function initWorkers(count) {
4714
+ 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();});" + "self.onmessage = workerProcess;" + decode.toString() + workerProcess.toString();
4715
+ var blob = new Blob([
4716
+ source
4717
+ ], {
4718
+ type: "text/javascript"
4719
+ });
4720
+ var url = URL.createObjectURL(blob);
4721
+ for(var i = 0; i < count; ++i){
4722
+ workers[i] = createWorker(url);
4723
+ }
4724
+ URL.revokeObjectURL(url);
4725
+ };
4726
+ var decodeWorker = function decodeWorker(count, size, source, mode, filter) {
4727
+ var worker = workers[0];
4728
+ for(var i = 1; i < workers.length; ++i){
4729
+ if (workers[i].pending < worker.pending) {
4730
+ worker = workers[i];
4731
+ }
4732
+ }
4733
+ return new Promise(function(resolve, reject) {
4734
+ var data = new Uint8Array(source);
4735
+ var id = requestId++;
4736
+ worker.pending += count;
4737
+ worker.requests[id] = {
4738
+ resolve: resolve,
4739
+ reject: reject
4740
+ };
4741
+ worker.object.postMessage({
4742
+ id: id,
4743
+ count: count,
4744
+ size: size,
4745
+ source: data,
4746
+ mode: mode,
4747
+ filter: filter
4748
+ }, [
4749
+ data.buffer
4750
+ ]);
4751
+ });
4752
+ };
4753
+ var workerProcess = function workerProcess(event) {
4754
+ ready.then(function() {
4755
+ var data = event.data;
4756
+ try {
4757
+ var target = new Uint8Array(data.count * data.size);
4758
+ decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]);
4759
+ self.postMessage({
4760
+ id: data.id,
4761
+ count: data.count,
4762
+ action: "resolve",
4763
+ value: target
4764
+ }, [
4765
+ target.buffer
4766
+ ]);
4767
+ } catch (error) {
4768
+ self.postMessage({
4769
+ id: data.id,
4770
+ count: data.count,
4771
+ action: "reject",
4772
+ value: error
4773
+ });
4774
+ }
4775
+ });
4776
+ };
4777
+ 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";
4778
+ 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";
4779
+ var wasmpack = new Uint8Array([
4780
+ 32,
4781
+ 0,
4782
+ 65,
4783
+ 2,
4784
+ 1,
4785
+ 106,
4786
+ 34,
4787
+ 33,
4788
+ 3,
4789
+ 128,
4790
+ 11,
4791
+ 4,
4792
+ 13,
4793
+ 64,
4794
+ 6,
4795
+ 253,
4796
+ 10,
4797
+ 7,
4798
+ 15,
4799
+ 116,
4800
+ 127,
4801
+ 5,
4802
+ 8,
4803
+ 12,
4804
+ 40,
4805
+ 16,
4806
+ 19,
4807
+ 54,
4808
+ 20,
4809
+ 9,
4810
+ 27,
4811
+ 255,
4812
+ 113,
4813
+ 17,
4814
+ 42,
4815
+ 67,
4816
+ 24,
4817
+ 23,
4818
+ 146,
4819
+ 148,
4820
+ 18,
4821
+ 14,
4822
+ 22,
4823
+ 45,
4824
+ 70,
4825
+ 69,
4826
+ 56,
4827
+ 114,
4828
+ 101,
4829
+ 21,
4830
+ 25,
4831
+ 63,
4832
+ 75,
4833
+ 136,
4834
+ 108,
4835
+ 28,
4836
+ 118,
4837
+ 29,
4838
+ 73,
4839
+ 115
4840
+ ]);
4841
+ // @ts-ignore
4842
+ var wasm = SystemInfo._detectSIMDSupported() ? wasm_simd : wasm_base;
4843
+ var instance;
4844
+ var ready = WebAssembly.instantiate(unpack(wasm), {}).then(function(result) {
4845
+ instance = result.instance;
4846
+ instance.exports.__wasm_call_ctors();
4847
+ });
4848
+ var filters = {
4849
+ NONE: "",
4850
+ OCTAHEDRAL: "meshopt_decodeFilterOct",
4851
+ QUATERNION: "meshopt_decodeFilterQuat",
4852
+ EXPONENTIAL: "meshopt_decodeFilterExp"
4853
+ };
4854
+ var decoders = {
4855
+ ATTRIBUTES: "meshopt_decodeVertexBuffer",
4856
+ TRIANGLES: "meshopt_decodeIndexBuffer",
4857
+ INDICES: "meshopt_decodeIndexSequence"
4858
+ };
4859
+ var workers = [];
4860
+ var requestId = 0;
4861
+ return {
4862
+ workerCount: 4,
4863
+ ready: ready,
4864
+ useWorkers: function useWorkers() {
4865
+ initWorkers(this.workerCount);
4866
+ },
4867
+ decodeGltfBuffer: function decodeGltfBuffer(count, stride, source, mode, filter) {
4868
+ if (this.workerCount > 0 && workers.length === 0) this.useWorkers();
4869
+ if (workers.length > 0) return decodeWorker(count, stride, source, decoders[mode], filters[filter]);
4870
+ return ready.then(function() {
4871
+ var target = new Uint8Array(count * stride);
4872
+ decode(instance.exports[decoders[mode]], target, count, stride, source, instance.exports[filters[filter]]);
4873
+ return target;
4874
+ });
4875
+ },
4876
+ release: function release() {
4877
+ for(var i = 0; i < workers.length; i++){
4878
+ workers[i].object.terminate();
4879
+ }
4880
+ }
4881
+ };
4882
+ }();
4883
+
4642
4884
  var GLTFLoader = /*#__PURE__*/ function(Loader1) {
4643
4885
  _inherits(GLTFLoader, Loader1);
4644
4886
  function GLTFLoader() {
4645
4887
  return Loader1.apply(this, arguments);
4646
4888
  }
4647
4889
  var _proto = GLTFLoader.prototype;
4890
+ _proto.initialize = function initialize(_, configuration) {
4891
+ var _configuration_glTF;
4892
+ var meshOptOptions = (_configuration_glTF = configuration.glTF) == null ? void 0 : _configuration_glTF.meshOpt;
4893
+ if (meshOptOptions) {
4894
+ MeshoptDecoder.workerCount = meshOptOptions.workerCount;
4895
+ MeshoptDecoder.useWorkers();
4896
+ }
4897
+ return Promise.resolve();
4898
+ };
4648
4899
  _proto.load = function load(item, resourceManager) {
4649
4900
  var url = item.url;
4650
4901
  var params = item.params;
@@ -4658,6 +4909,12 @@ var GLTFLoader = /*#__PURE__*/ function(Loader1) {
4658
4909
  context.parse().then(resolve).catch(reject);
4659
4910
  });
4660
4911
  };
4912
+ /**
4913
+ * Release glTF loader memory(includes meshopt workers).
4914
+ * @remarks If use loader after releasing, we should release again.
4915
+ */ GLTFLoader.release = function release() {
4916
+ MeshoptDecoder.release();
4917
+ };
4661
4918
  return GLTFLoader;
4662
4919
  }(Loader);
4663
4920
  GLTFLoader = __decorate([
@@ -5487,7 +5744,7 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader1) {
5487
5744
  };
5488
5745
  _proto._makeSprite = function _makeSprite(engine, config, texture) {
5489
5746
  // Generate a SpriteAtlas object.
5490
- var region = config.region, atlasRegionOffset = config.atlasRegionOffset, atlasRegion = config.atlasRegion, pivot = config.pivot, border = config.border;
5747
+ var region = config.region, atlasRegionOffset = config.atlasRegionOffset, atlasRegion = config.atlasRegion, pivot = config.pivot, border = config.border, width = config.width, height = config.height;
5491
5748
  var sprite = new Sprite(engine, texture, region ? this._tempRect.set(region.x, region.y, region.w, region.h) : undefined, pivot ? this._tempVec2.set(pivot.x, pivot.y) : undefined, border ? this._tempVec4.set(border.x, border.y, border.z, border.w) : undefined, config.name);
5492
5749
  if (texture) {
5493
5750
  var invW = 1 / texture.width;
@@ -5499,6 +5756,8 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader1) {
5499
5756
  }
5500
5757
  config.atlasRotated && (sprite.atlasRotated = true);
5501
5758
  }
5759
+ isNaN(width) || (sprite.width = width);
5760
+ isNaN(height) || (sprite.height = height);
5502
5761
  return sprite;
5503
5762
  };
5504
5763
  return SpriteAtlasLoader;
@@ -5517,26 +5776,39 @@ var SpriteLoader = /*#__PURE__*/ function(Loader1) {
5517
5776
  var _proto = SpriteLoader.prototype;
5518
5777
  _proto.load = function load(item, resourceManager) {
5519
5778
  var _this = this;
5520
- return new AssetPromise(function(resolve, reject) {
5521
- _this.request(item.url, _extends({}, item, {
5522
- type: "json"
5523
- })).then(function(data) {
5524
- if (data.belongToAtlas) {
5525
- resourceManager// @ts-ignore
5526
- .getResourceByRef(data.belongToAtlas).then(function(atlas) {
5527
- resolve(atlas.getSprite(data.fullPath));
5528
- }).catch(reject);
5529
- } else if (data.texture) {
5530
- resourceManager// @ts-ignore
5531
- .getResourceByRef(data.texture).then(function(texture) {
5532
- resolve(new Sprite(resourceManager.engine, texture, data.region, data.pivot, data.border));
5533
- }).catch(reject);
5534
- } else {
5535
- resolve(new Sprite(resourceManager.engine, null, data.region, data.pivot, data.border));
5536
- }
5537
- }).catch(reject);
5779
+ return this.request(item.url, _extends({}, item, {
5780
+ type: "json"
5781
+ })).then(function(data) {
5782
+ return data.belongToAtlas ? _this._loadFromAtlas(resourceManager, data) : _this._loadFromTexture(resourceManager, data);
5783
+ });
5784
+ };
5785
+ _proto._loadFromAtlas = function _loadFromAtlas(resourceManager, data) {
5786
+ var _this = this;
5787
+ return resourceManager// @ts-ignore
5788
+ .getResourceByRef(data.belongToAtlas).then(function(atlas) {
5789
+ return atlas.getSprite(data.fullPath) || _this._loadFromTexture(resourceManager, data);
5538
5790
  });
5539
5791
  };
5792
+ _proto._loadFromTexture = function _loadFromTexture(resourceManager, data) {
5793
+ if (data.texture) {
5794
+ return resourceManager// @ts-ignore
5795
+ .getResourceByRef(data.texture).then(function(texture) {
5796
+ var sprite = new Sprite(resourceManager.engine, texture, data.region, data.pivot, data.border);
5797
+ var width = data.width, height = data.height;
5798
+ isNaN(width) || (sprite.width = width);
5799
+ isNaN(height) || (sprite.height = height);
5800
+ return sprite;
5801
+ });
5802
+ } else {
5803
+ return new AssetPromise(function(resolve) {
5804
+ var sprite = new Sprite(resourceManager.engine, null, data.region, data.pivot, data.border);
5805
+ var width = data.width, height = data.height;
5806
+ isNaN(width) || (sprite.width = width);
5807
+ isNaN(height) || (sprite.height = height);
5808
+ resolve(sprite);
5809
+ });
5810
+ }
5811
+ };
5540
5812
  return SpriteLoader;
5541
5813
  }(Loader);
5542
5814
  SpriteLoader = __decorate([
@@ -5839,170 +6111,6 @@ ReflectionParser.registerCustomParseComponent("TextRenderer", /*#__PURE__*/ _asy
5839
6111
  });
5840
6112
  }));
5841
6113
 
5842
- var _KHR_draco_mesh_compression;
5843
- var KHR_draco_mesh_compression = (_KHR_draco_mesh_compression = /*#__PURE__*/ function(GLTFExtensionParser1) {
5844
- _inherits(KHR_draco_mesh_compression1, GLTFExtensionParser1);
5845
- function KHR_draco_mesh_compression1() {
5846
- return GLTFExtensionParser1.apply(this, arguments);
5847
- }
5848
- var _proto = KHR_draco_mesh_compression1.prototype;
5849
- _proto.createAndParse = function createAndParse(context, schema, glTFPrimitive, glTFMesh) {
5850
- var _this = this;
5851
- this._initialize();
5852
- var glTF = context.glTF, engine = context.glTFResource.engine;
5853
- var bufferViews = glTF.bufferViews, accessors = glTF.accessors;
5854
- var bufferViewIndex = schema.bufferView, gltfAttributeMap = schema.attributes;
5855
- var attributeMap = {};
5856
- var attributeTypeMap = {};
5857
- for(var attributeName in gltfAttributeMap){
5858
- attributeMap[attributeName] = gltfAttributeMap[attributeName];
5859
- }
5860
- for(var attributeName1 in glTFPrimitive.attributes){
5861
- if (gltfAttributeMap[attributeName1] !== undefined) {
5862
- var accessorDef = accessors[glTFPrimitive.attributes[attributeName1]];
5863
- attributeTypeMap[attributeName1] = GLTFUtils.getComponentType(accessorDef.componentType).name;
5864
- }
5865
- }
5866
- var indexAccessor = accessors[glTFPrimitive.indices];
5867
- var indexType = GLTFUtils.getComponentType(indexAccessor.componentType).name;
5868
- var taskConfig = {
5869
- attributeIDs: attributeMap,
5870
- attributeTypes: attributeTypeMap,
5871
- useUniqueIDs: true,
5872
- indexType: indexType
5873
- };
5874
- return context.get(GLTFParserType.Buffer).then(function(buffers) {
5875
- var buffer = GLTFUtils.getBufferViewData(bufferViews[bufferViewIndex], buffers);
5876
- return KHR_draco_mesh_compression._decoder.decode(buffer, taskConfig).then(function(decodedGeometry) {
5877
- var mesh = new ModelMesh(engine, glTFMesh.name);
5878
- return _this._parseMeshFromGLTFPrimitiveDraco(mesh, glTFMesh, glTFPrimitive, glTF, function(attributeSemantic) {
5879
- for(var j = 0; j < decodedGeometry.attributes.length; j++){
5880
- if (decodedGeometry.attributes[j].name === attributeSemantic) {
5881
- return decodedGeometry.attributes[j].array;
5882
- }
5883
- }
5884
- return null;
5885
- }, function(attributeSemantic, shapeIndex) {
5886
- throw "BlendShape animation is not supported when using draco.";
5887
- }, function() {
5888
- return decodedGeometry.index.array;
5889
- }, context.params.keepMeshData);
5890
- });
5891
- });
5892
- };
5893
- _proto._initialize = function _initialize() {
5894
- if (!KHR_draco_mesh_compression._decoder) {
5895
- KHR_draco_mesh_compression._decoder = new DRACODecoder();
5896
- }
5897
- };
5898
- _proto._parseMeshFromGLTFPrimitiveDraco = function _parseMeshFromGLTFPrimitiveDraco(mesh, gltfMesh, gltfPrimitive, gltf, getVertexBufferData, getBlendShapeData, getIndexBufferData, keepMeshData) {
5899
- var attributes = gltfPrimitive.attributes, targets = gltfPrimitive.targets, indices = gltfPrimitive.indices, mode = gltfPrimitive.mode;
5900
- var vertexCount;
5901
- var accessors = gltf.accessors;
5902
- var accessor = accessors[attributes["POSITION"]];
5903
- var positionBuffer = getVertexBufferData("POSITION");
5904
- var positions = GLTFUtils.floatBufferToVector3Array(positionBuffer);
5905
- mesh.setPositions(positions);
5906
- var bounds = mesh.bounds;
5907
- vertexCount = accessor.count;
5908
- if (accessor.min && accessor.max) {
5909
- bounds.min.copyFromArray(accessor.min);
5910
- bounds.max.copyFromArray(accessor.max);
5911
- } else {
5912
- var position = KHR_draco_mesh_compression._tempVector3;
5913
- var min = bounds.min, max = bounds.max;
5914
- min.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
5915
- max.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
5916
- var stride = positionBuffer.length / vertexCount;
5917
- for(var j = 0; j < vertexCount; j++){
5918
- var offset = j * stride;
5919
- position.copyFromArray(positionBuffer, offset);
5920
- Vector3.min(min, position, min);
5921
- Vector3.max(max, position, max);
5922
- }
5923
- }
5924
- for(var attributeSemantic in attributes){
5925
- if (attributeSemantic === "POSITION") {
5926
- continue;
5927
- }
5928
- var bufferData = getVertexBufferData(attributeSemantic);
5929
- switch(attributeSemantic){
5930
- case "NORMAL":
5931
- var normals = GLTFUtils.floatBufferToVector3Array(bufferData);
5932
- mesh.setNormals(normals);
5933
- break;
5934
- case "TEXCOORD_0":
5935
- var texturecoords = GLTFUtils.floatBufferToVector2Array(bufferData);
5936
- mesh.setUVs(texturecoords, 0);
5937
- break;
5938
- case "TEXCOORD_1":
5939
- var texturecoords1 = GLTFUtils.floatBufferToVector2Array(bufferData);
5940
- mesh.setUVs(texturecoords1, 1);
5941
- break;
5942
- case "TEXCOORD_2":
5943
- var texturecoords2 = GLTFUtils.floatBufferToVector2Array(bufferData);
5944
- mesh.setUVs(texturecoords2, 2);
5945
- break;
5946
- case "TEXCOORD_3":
5947
- var texturecoords3 = GLTFUtils.floatBufferToVector2Array(bufferData);
5948
- mesh.setUVs(texturecoords3, 3);
5949
- break;
5950
- case "TEXCOORD_4":
5951
- var texturecoords4 = GLTFUtils.floatBufferToVector2Array(bufferData);
5952
- mesh.setUVs(texturecoords4, 4);
5953
- break;
5954
- case "TEXCOORD_5":
5955
- var texturecoords5 = GLTFUtils.floatBufferToVector2Array(bufferData);
5956
- mesh.setUVs(texturecoords5, 5);
5957
- break;
5958
- case "TEXCOORD_6":
5959
- var texturecoords6 = GLTFUtils.floatBufferToVector2Array(bufferData);
5960
- mesh.setUVs(texturecoords6, 6);
5961
- break;
5962
- case "TEXCOORD_7":
5963
- var texturecoords7 = GLTFUtils.floatBufferToVector2Array(bufferData);
5964
- mesh.setUVs(texturecoords7, 7);
5965
- break;
5966
- case "COLOR_0":
5967
- var colors = GLTFUtils.floatBufferToColorArray(bufferData, accessors[attributes["COLOR_0"]].type === AccessorType.VEC3);
5968
- mesh.setColors(colors);
5969
- break;
5970
- case "TANGENT":
5971
- var tangents = GLTFUtils.floatBufferToVector4Array(bufferData);
5972
- mesh.setTangents(tangents);
5973
- break;
5974
- case "JOINTS_0":
5975
- var joints = GLTFUtils.floatBufferToVector4Array(bufferData);
5976
- mesh.setBoneIndices(joints);
5977
- break;
5978
- case "WEIGHTS_0":
5979
- var weights = GLTFUtils.floatBufferToVector4Array(bufferData);
5980
- mesh.setBoneWeights(weights);
5981
- break;
5982
- }
5983
- }
5984
- // Indices
5985
- if (indices !== undefined) {
5986
- var indexAccessor = gltf.accessors[indices];
5987
- var indexData = getIndexBufferData();
5988
- mesh.setIndices(indexData);
5989
- mesh.addSubMesh(0, indexAccessor.count, mode);
5990
- } else {
5991
- mesh.addSubMesh(0, vertexCount, mode);
5992
- }
5993
- // BlendShapes
5994
- targets && GLTFMeshParser._createBlendShape(mesh, null, gltfMesh, accessors, targets, getBlendShapeData);
5995
- mesh.uploadData(!keepMeshData);
5996
- return Promise.resolve(mesh);
5997
- };
5998
- return KHR_draco_mesh_compression1;
5999
- }(GLTFExtensionParser), function() {
6000
- _KHR_draco_mesh_compression._tempVector3 = new Vector3();
6001
- }(), _KHR_draco_mesh_compression);
6002
- KHR_draco_mesh_compression = __decorate([
6003
- registerGLTFExtension("KHR_draco_mesh_compression", GLTFExtensionMode.CreateAndParse)
6004
- ], KHR_draco_mesh_compression);
6005
-
6006
6114
  var KHR_lights_punctual = /*#__PURE__*/ function(GLTFExtensionParser1) {
6007
6115
  _inherits(KHR_lights_punctual, GLTFExtensionParser1);
6008
6116
  function KHR_lights_punctual() {
@@ -6335,6 +6443,23 @@ GALACEAN_animation_event = __decorate([
6335
6443
  registerGLTFExtension("GALACEAN_animation_event", GLTFExtensionMode.AdditiveParse)
6336
6444
  ], GALACEAN_animation_event);
6337
6445
 
6446
+ var EXT_meshopt_compression = /*#__PURE__*/ function(GLTFExtensionParser1) {
6447
+ _inherits(EXT_meshopt_compression, GLTFExtensionParser1);
6448
+ function EXT_meshopt_compression() {
6449
+ return GLTFExtensionParser1.apply(this, arguments);
6450
+ }
6451
+ var _proto = EXT_meshopt_compression.prototype;
6452
+ _proto.createAndParse = function createAndParse(context, schema) {
6453
+ return context.get(GLTFParserType.Buffer, schema.buffer).then(function(arrayBuffer) {
6454
+ return MeshoptDecoder.decodeGltfBuffer(schema.count, schema.byteStride, new Uint8Array(arrayBuffer, schema.byteOffset, schema.byteLength), schema.mode, schema.filter);
6455
+ });
6456
+ };
6457
+ return EXT_meshopt_compression;
6458
+ }(GLTFExtensionParser);
6459
+ EXT_meshopt_compression = __decorate([
6460
+ registerGLTFExtension("EXT_meshopt_compression", GLTFExtensionMode.CreateAndParse)
6461
+ ], EXT_meshopt_compression);
6462
+
6338
6463
  var KHR_materials_anisotropy = /*#__PURE__*/ function(GLTFExtensionParser1) {
6339
6464
  _inherits(KHR_materials_anisotropy, GLTFExtensionParser1);
6340
6465
  function KHR_materials_anisotropy() {
@@ -6358,5 +6483,5 @@ KHR_materials_anisotropy = __decorate([
6358
6483
  registerGLTFExtension("KHR_materials_anisotropy", GLTFExtensionMode.AdditiveParse)
6359
6484
  ], KHR_materials_anisotropy);
6360
6485
 
6361
- export { AnimationClipDecoder, ComponentMap, EditorTextureLoader, GLTFAnimationParser, GLTFBufferParser, GLTFEntityParser, GLTFExtensionMode, GLTFExtensionParser, GLTFMaterialParser, GLTFMeshParser, GLTFParser, GLTFParserContext, GLTFParserType, GLTFResource, GLTFSceneParser, GLTFSchemaParser, GLTFSkinParser, GLTFTextureParser, GLTFUtils, GLTFValidator, InterpolableValueType, KTX2Loader, KTX2TargetFormat, KTX2Transcoder, MeshDecoder, MeshLoader$1 as MeshLoader, PrefabParser, ReflectionParser, SceneParser, SpecularMode, Texture2DDecoder, decode, parseSingleKTX, registerGLTFExtension, registerGLTFParser };
6486
+ export { AccessorType, AnimationClipDecoder, BufferInfo, ComponentMap, EditorTextureLoader, GLTFAnimationParser, GLTFBufferParser, GLTFBufferViewParser, GLTFEntityParser, GLTFExtensionMode, GLTFExtensionParser, GLTFLoader, GLTFMaterialParser, GLTFMeshParser, GLTFParser, GLTFParserContext, GLTFParserType, GLTFResource, GLTFSceneParser, GLTFSchemaParser, GLTFSkinParser, GLTFTextureParser, GLTFUtils, GLTFValidator, InterpolableValueType, KTX2Loader, KTX2TargetFormat, KTX2Transcoder, MeshDecoder, MeshLoader$1 as MeshLoader, PrefabParser, ReflectionParser, SceneParser, SpecularMode, Texture2DDecoder, decode, parseSingleKTX, registerGLTFExtension, registerGLTFParser };
6362
6487
  //# sourceMappingURL=module.js.map