@galacean/engine-loader 1.3.16 → 1.3.18

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,4 +1,4 @@
1
- import { Utils, ModelMesh, BlendShape, Texture2D, Loader, Entity, AnimationClip, AnimationEvent, AnimationStringCurve, Keyframe, AnimationBoolCurve, AnimationRefCurve, AnimationQuaternionCurve, AnimationColorCurve, AnimationVector4Curve, AnimationVector3Curve, AnimationVector2Curve, AnimationFloatArrayCurve, AnimationArrayCurve, AnimationFloatCurve, ReferResource, Scene, resourceLoader, AssetPromise, AssetType, AnimatorController, AnimatorControllerLayer, AnimatorStateTransition, TextureCube, TextureFilterMode, TextureCubeFace, AmbientLight, DiffuseMode, Font, Animator, IndexFormat, VertexElementFormat, GLCapabilityType, Logger, TextureFormat, request, ContentRestorer, InterpolationType, SkinnedMeshRenderer, Transform, PBRMaterial, BlinnPhongMaterial, PBRSpecularMaterial, TextureCoordinate, RenderFace, VertexElement, Buffer, BufferBindFlag, BufferUsage, Camera, MeshRenderer, Skin, TextureWrapMode as TextureWrapMode$1, AnimatorStateMachine, SystemInfo, Material, Shader, PrimitiveMesh, SpriteAtlas, Sprite, BackgroundMode, DirectLight, PointLight, SpotLight, UnlitMaterial } from '@galacean/engine-core';
1
+ import { Utils, ModelMesh, BlendShape, Texture2D, Loader, Entity, AnimationClip, AnimationEvent, AnimationStringCurve, Keyframe, AnimationBoolCurve, AnimationRefCurve, AnimationQuaternionCurve, AnimationColorCurve, AnimationVector4Curve, AnimationVector3Curve, AnimationVector2Curve, AnimationFloatArrayCurve, AnimationArrayCurve, AnimationFloatCurve, ReferResource, Scene, resourceLoader, AssetPromise, AssetType, AnimatorController, AnimatorControllerLayer, AnimatorStateTransition, TextureCube, TextureFilterMode, TextureCubeFace, AmbientLight, DiffuseMode, Font, Animator, IndexFormat, VertexElementFormat, GLCapabilityType, Logger, TextureFormat, request, ContentRestorer, InterpolationType, SkinnedMeshRenderer, Transform, PBRMaterial, BlinnPhongMaterial, PBRSpecularMaterial, TextureCoordinate, RenderFace, VertexElement, Buffer, BufferBindFlag, BufferUsage, Camera, MeshRenderer, Skin, TextureWrapMode as TextureWrapMode$1, AnimatorStateMachine, SystemInfo, Shader, Material, PrimitiveMesh, SpriteAtlas, Sprite, ShaderFactory, ShaderLib, BackgroundMode, DirectLight, PointLight, SpotLight, 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
4
 
@@ -928,6 +928,18 @@ AnimationClipDecoder = __decorate([
928
928
  decoder("AnimationClip")
929
929
  ], AnimationClipDecoder);
930
930
 
931
+ var MaterialLoaderType;
932
+ (function(MaterialLoaderType) {
933
+ MaterialLoaderType["Vector2"] = "Vector2";
934
+ MaterialLoaderType["Vector3"] = "Vector3";
935
+ MaterialLoaderType["Vector4"] = "Vector4";
936
+ MaterialLoaderType["Color"] = "Color";
937
+ MaterialLoaderType["Float"] = "Float";
938
+ MaterialLoaderType["Texture"] = "Texture";
939
+ MaterialLoaderType["Boolean"] = "Boolean";
940
+ MaterialLoaderType["Integer"] = "Integer";
941
+ })(MaterialLoaderType || (MaterialLoaderType = {}));
942
+
931
943
  var SpecularMode;
932
944
  (function(SpecularMode) {
933
945
  SpecularMode["Sky"] = "Sky";
@@ -1313,32 +1325,6 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
1313
1325
  return SceneParser;
1314
1326
  }(HierarchyParser);
1315
1327
 
1316
- var MeshLoader$1 = /*#__PURE__*/ function(Loader1) {
1317
- _inherits(MeshLoader, Loader1);
1318
- function MeshLoader() {
1319
- return Loader1.apply(this, arguments);
1320
- }
1321
- var _proto = MeshLoader.prototype;
1322
- _proto.load = function load(item, resourceManager) {
1323
- var _this = this;
1324
- return new AssetPromise(function(resolve, reject) {
1325
- _this.request(item.url, _extends({}, item, {
1326
- type: "arraybuffer"
1327
- })).then(function(data) {
1328
- decode(data, resourceManager.engine).then(function(mesh) {
1329
- resolve(mesh);
1330
- });
1331
- }).catch(reject);
1332
- });
1333
- };
1334
- return MeshLoader;
1335
- }(Loader);
1336
- MeshLoader$1 = __decorate([
1337
- resourceLoader("Mesh", [
1338
- "prefab"
1339
- ], true)
1340
- ], MeshLoader$1);
1341
-
1342
1328
  var EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
1343
1329
  _inherits(EditorTextureLoader, Loader1);
1344
1330
  function EditorTextureLoader() {
@@ -1348,7 +1334,7 @@ var EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
1348
1334
  _proto.load = function load(item, resourceManager) {
1349
1335
  var _this = this;
1350
1336
  return new AssetPromise(function(resolve, reject) {
1351
- _this.request(item.url, _extends({}, item, {
1337
+ _this.request(item.url, resourceManager, _extends({}, item, {
1352
1338
  type: "arraybuffer"
1353
1339
  })).then(function(data) {
1354
1340
  decode(data, resourceManager.engine).then(function(texture) {
@@ -1388,7 +1374,7 @@ var AnimationClipLoader = /*#__PURE__*/ function(Loader1) {
1388
1374
  _proto.load = function load(item, resourceManager) {
1389
1375
  var _this = this;
1390
1376
  return new AssetPromise(function(resolve, reject) {
1391
- _this.request(item.url, _extends({}, item, {
1377
+ _this.request(item.url, resourceManager, _extends({}, item, {
1392
1378
  type: "arraybuffer"
1393
1379
  })).then(function(data) {
1394
1380
  return decode(data, resourceManager.engine).then(function(clip) {
@@ -1440,7 +1426,7 @@ var AnimatorControllerLoader = /*#__PURE__*/ function(Loader1) {
1440
1426
  _proto.load = function load(item, resourceManager) {
1441
1427
  var _this = this;
1442
1428
  return new AssetPromise(function(resolve, reject) {
1443
- _this.request(item.url, _extends({}, item, {
1429
+ _this.request(item.url, resourceManager, _extends({}, item, {
1444
1430
  type: "json"
1445
1431
  })).then(function(data) {
1446
1432
  var animatorController = new AnimatorController(resourceManager.engine);
@@ -1545,7 +1531,7 @@ var BufferLoader = /*#__PURE__*/ function(Loader1) {
1545
1531
  return Loader1.apply(this, arguments);
1546
1532
  }
1547
1533
  var _proto = BufferLoader.prototype;
1548
- _proto.load = function load(item) {
1534
+ _proto.load = function load(item, resourceManager) {
1549
1535
  var url = item.url;
1550
1536
  if (isBase64(url)) {
1551
1537
  return new AssetPromise(function(resolve) {
@@ -1556,7 +1542,7 @@ var BufferLoader = /*#__PURE__*/ function(Loader1) {
1556
1542
  resolve(result.buffer);
1557
1543
  });
1558
1544
  }
1559
- return this.request(url, _extends({}, item, {
1545
+ return this.request(url, resourceManager, _extends({}, item, {
1560
1546
  type: "arraybuffer"
1561
1547
  }));
1562
1548
  };
@@ -1578,7 +1564,7 @@ var EnvLoader = /*#__PURE__*/ function(Loader1) {
1578
1564
  _proto.load = function load(item, resourceManager) {
1579
1565
  var _this = this;
1580
1566
  return new AssetPromise(function(resolve, reject) {
1581
- _this.request(item.url, _extends({}, item, {
1567
+ _this.request(item.url, resourceManager, _extends({}, item, {
1582
1568
  type: "arraybuffer"
1583
1569
  })).then(function(arraybuffer) {
1584
1570
  var _this;
@@ -1660,7 +1646,7 @@ var FontLoader = /*#__PURE__*/ function(Loader1) {
1660
1646
  _proto.load = function load(item, resourceManager) {
1661
1647
  var _this = this;
1662
1648
  return new AssetPromise(function(resolve, reject) {
1663
- _this.request(item.url, _extends({}, item, {
1649
+ _this.request(item.url, resourceManager, _extends({}, item, {
1664
1650
  type: "json"
1665
1651
  })).then(function(data) {
1666
1652
  var fontName = data.fontName, fontUrl = data.fontUrl;
@@ -3318,7 +3304,7 @@ var KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
3318
3304
  */ _proto.load = function load(item, resourceManager) {
3319
3305
  var _this = this;
3320
3306
  return new AssetPromise(function(resolve, reject, setTaskCompleteProgress, setTaskDetailProgress) {
3321
- _this.request(item.url, {
3307
+ _this.request(item.url, resourceManager, {
3322
3308
  type: "arraybuffer"
3323
3309
  }).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(buffer) {
3324
3310
  return KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
@@ -3857,8 +3843,11 @@ var GLTFSchemaParser = /*#__PURE__*/ function(GLTFParser1) {
3857
3843
  var requestConfig = {
3858
3844
  type: "arraybuffer"
3859
3845
  };
3860
- return request(url, requestConfig).onProgress(undefined, context._onTaskDetail).then(function(buffer) {
3861
- restoreBufferRequests.push(new BufferRequestInfo(url, requestConfig));
3846
+ var _context_resourceManager__virtualPathMap_url;
3847
+ // @ts-ignore
3848
+ var remoteUrl = (_context_resourceManager__virtualPathMap_url = context.resourceManager._virtualPathMap[url]) != null ? _context_resourceManager__virtualPathMap_url : url;
3849
+ return request(remoteUrl, requestConfig).onProgress(undefined, context._onTaskDetail).then(function(buffer) {
3850
+ restoreBufferRequests.push(new BufferRequestInfo(remoteUrl, requestConfig));
3862
3851
  return GLTFUtils.parseGLB(context, buffer);
3863
3852
  }).then(function(result) {
3864
3853
  var _result;
@@ -4086,11 +4075,14 @@ var GLTFBufferParser = /*#__PURE__*/ function(GLTFParser1) {
4086
4075
  _proto._parseSingleBuffer = function _parseSingleBuffer(context, bufferInfo) {
4087
4076
  var glTFResource = context.glTFResource, contentRestorer = context.contentRestorer;
4088
4077
  var url = glTFResource.url;
4078
+ var _context_resourceManager__virtualPathMap_url;
4079
+ // @ts-ignore
4080
+ var remoteUrl = (_context_resourceManager__virtualPathMap_url = context.resourceManager._virtualPathMap[url]) != null ? _context_resourceManager__virtualPathMap_url : url;
4089
4081
  var restoreBufferRequests = contentRestorer.bufferRequests;
4090
4082
  var requestConfig = {
4091
4083
  type: "arraybuffer"
4092
4084
  };
4093
- var absoluteUrl = Utils.resolveAbsoluteUrl(url, bufferInfo.uri);
4085
+ var absoluteUrl = Utils.resolveAbsoluteUrl(remoteUrl, bufferInfo.uri);
4094
4086
  restoreBufferRequests.push(new BufferRequestInfo(absoluteUrl, requestConfig));
4095
4087
  var promise = request(absoluteUrl, requestConfig).onProgress(undefined, context._onTaskDetail);
4096
4088
  context._addTaskCompletePromise(promise);
@@ -5134,9 +5126,8 @@ var GLTFLoader = /*#__PURE__*/ function(Loader1) {
5134
5126
  return Promise.resolve();
5135
5127
  };
5136
5128
  _proto.load = function load(item, resourceManager) {
5137
- var url = item.url;
5138
5129
  var params = item.params;
5139
- var glTFResource = new GLTFResource(resourceManager.engine, url);
5130
+ var glTFResource = new GLTFResource(resourceManager.engine, item.url);
5140
5131
  var context = new GLTFParserContext(glTFResource, resourceManager, _extends({
5141
5132
  keepMeshData: false
5142
5133
  }, params));
@@ -5203,7 +5194,7 @@ var PrefabLoader = /*#__PURE__*/ function(Loader1) {
5203
5194
  var _this = this;
5204
5195
  var engine = resourceManager.engine;
5205
5196
  return new AssetPromise(function(resolve, reject) {
5206
- _this.request(item.url, _extends({}, item, {
5197
+ _this.request(item.url, resourceManager, _extends({}, item, {
5207
5198
  type: "json"
5208
5199
  })).then(function(data) {
5209
5200
  PrefabParser.parse(engine, item.url, data).then(resolve).catch(reject);
@@ -5231,7 +5222,7 @@ var HDRLoader = (_HDRLoader = // referenece: https://www.flipcode.com/archives/H
5231
5222
  var _this = this;
5232
5223
  return new AssetPromise(function(resolve, reject) {
5233
5224
  var engine = resourceManager.engine;
5234
- _this.request(item.url, _extends({}, item, {
5225
+ _this.request(item.url, resourceManager, _extends({}, item, {
5235
5226
  type: "arraybuffer"
5236
5227
  })).then(function(buffer) {
5237
5228
  var uint8Array = new Uint8Array(buffer);
@@ -5546,8 +5537,8 @@ var JSONLoader = /*#__PURE__*/ function(Loader1) {
5546
5537
  return Loader1.apply(this, arguments);
5547
5538
  }
5548
5539
  var _proto = JSONLoader.prototype;
5549
- _proto.load = function load(item) {
5550
- return this.request(item.url, _extends({}, item, {
5540
+ _proto.load = function load(item, resourceManager) {
5541
+ return this.request(item.url, resourceManager, _extends({}, item, {
5551
5542
  type: "json"
5552
5543
  }));
5553
5544
  };
@@ -5754,7 +5745,7 @@ var KTXCubeLoader = /*#__PURE__*/ function(Loader1) {
5754
5745
  var _this = this;
5755
5746
  return new AssetPromise(function(resolve, reject) {
5756
5747
  Promise.all(item.urls.map(function(url) {
5757
- return _this.request(url, _extends({}, item, {
5748
+ return _this.request(url, resourceManager, _extends({}, item, {
5758
5749
  type: "arraybuffer"
5759
5750
  }));
5760
5751
  })).then(function(data) {
@@ -5790,7 +5781,7 @@ var KTXLoader = /*#__PURE__*/ function(Loader1) {
5790
5781
  _proto.load = function load(item, resourceManager) {
5791
5782
  var _this = this;
5792
5783
  return new AssetPromise(function(resolve, reject) {
5793
- _this.request(item.url, _extends({}, item, {
5784
+ _this.request(item.url, resourceManager, _extends({}, item, {
5794
5785
  type: "arraybuffer"
5795
5786
  })).then(function(bin) {
5796
5787
  var parsedData = parseSingleKTX(bin);
@@ -5833,63 +5824,76 @@ var MaterialLoader = /*#__PURE__*/ function(Loader1) {
5833
5824
  _proto.load = function load(item, resourceManager) {
5834
5825
  var _this = this;
5835
5826
  return new AssetPromise(function(resolve, reject) {
5836
- _this.request(item.url, _extends({}, item, {
5827
+ _this.request(item.url, resourceManager, _extends({}, item, {
5837
5828
  type: "json"
5838
5829
  })).then(function(materialSchema) {
5839
- var _loop = function(key) {
5840
- var _shaderData_key = shaderData[key], type = _shaderData_key.type, value = _shaderData_key.value;
5841
- switch(type){
5842
- case "Vector2":
5843
- materialShaderData.setVector2(key, new Vector2(value.x, value.y));
5844
- break;
5845
- case "Vector3":
5846
- materialShaderData.setVector3(key, new Vector3(value.x, value.y, value.z));
5847
- break;
5848
- case "Vector4":
5849
- materialShaderData.setVector4(key, new Vector4(value.x, value.y, value.z, value.w));
5850
- break;
5851
- case "Color":
5852
- materialShaderData.setColor(key, new Color(value.r, value.g, value.b, value.a));
5853
- break;
5854
- case "Float":
5855
- materialShaderData.setFloat(key, value);
5856
- break;
5857
- case "Texture":
5858
- texturePromises.push(// @ts-ignore
5859
- resourceManager.getResourceByRef(value).then(function(texture) {
5860
- materialShaderData.setTexture(key, texture);
5861
- }));
5862
- break;
5863
- case "Boolean":
5864
- materialShaderData.setInt(key, value ? 1 : 0);
5865
- break;
5866
- case "Integer":
5867
- materialShaderData.setInt(key, Number(value));
5868
- break;
5869
- }
5870
- };
5871
5830
  var engine = resourceManager.engine;
5872
- var name = materialSchema.name, shader = materialSchema.shader, shaderData = materialSchema.shaderData, macros = materialSchema.macros, renderState = materialSchema.renderState;
5873
- var material = new Material(engine, Shader.find(shader));
5874
- material.name = name;
5875
- var texturePromises = new Array();
5876
- var materialShaderData = material.shaderData;
5877
- for(var key in shaderData)_loop(key);
5878
- for(var i = 0, length = macros.length; i < length; i++){
5879
- var _macros_i = macros[i], name1 = _macros_i.name, value = _macros_i.value;
5880
- if (value == undefined) {
5881
- materialShaderData.enableMacro(name1);
5882
- } else {
5883
- materialShaderData.enableMacro(name1, value);
5884
- }
5831
+ var shaderRef = materialSchema.shaderRef, shaderName = materialSchema.shader;
5832
+ if (shaderRef) {
5833
+ resolve(resourceManager// @ts-ignore
5834
+ .getResourceByRef(shaderRef).then(function(shader) {
5835
+ return _this.getMaterialByShader(materialSchema, shader, engine);
5836
+ }));
5837
+ } else {
5838
+ // compatible with 1.2-pre version material schema
5839
+ var shader = Shader.find(shaderName);
5840
+ resolve(_this.getMaterialByShader(materialSchema, shader, engine));
5885
5841
  }
5886
- parseProperty(material, "renderState", renderState);
5887
- return Promise.all(texturePromises).then(function() {
5888
- resolve(material);
5889
- });
5890
5842
  }).catch(reject);
5891
5843
  });
5892
5844
  };
5845
+ _proto.getMaterialByShader = function getMaterialByShader(materialSchema, shader, engine) {
5846
+ var _loop = function(key) {
5847
+ var _shaderData_key = shaderData[key], type = _shaderData_key.type, value = _shaderData_key.value;
5848
+ switch(type){
5849
+ case MaterialLoaderType.Vector2:
5850
+ materialShaderData.setVector2(key, new Vector2(value.x, value.y));
5851
+ break;
5852
+ case MaterialLoaderType.Vector3:
5853
+ materialShaderData.setVector3(key, new Vector3(value.x, value.y, value.z));
5854
+ break;
5855
+ case MaterialLoaderType.Vector4:
5856
+ materialShaderData.setVector4(key, new Vector4(value.x, value.y, value.z, value.w));
5857
+ break;
5858
+ case MaterialLoaderType.Color:
5859
+ materialShaderData.setColor(key, new Color(value.r, value.g, value.b, value.a));
5860
+ break;
5861
+ case MaterialLoaderType.Float:
5862
+ materialShaderData.setFloat(key, value);
5863
+ break;
5864
+ case MaterialLoaderType.Texture:
5865
+ texturePromises.push(// @ts-ignore
5866
+ engine.resourceManager.getResourceByRef(value).then(function(texture) {
5867
+ materialShaderData.setTexture(key, texture);
5868
+ }));
5869
+ break;
5870
+ case MaterialLoaderType.Boolean:
5871
+ materialShaderData.setInt(key, value ? 1 : 0);
5872
+ break;
5873
+ case MaterialLoaderType.Integer:
5874
+ materialShaderData.setInt(key, Number(value));
5875
+ break;
5876
+ }
5877
+ };
5878
+ var name = materialSchema.name, shaderData = materialSchema.shaderData, macros = materialSchema.macros, renderState = materialSchema.renderState;
5879
+ var material = new Material(engine, shader);
5880
+ material.name = name;
5881
+ var texturePromises = new Array();
5882
+ var materialShaderData = material.shaderData;
5883
+ for(var key in shaderData)_loop(key);
5884
+ for(var i = 0, length = macros.length; i < length; i++){
5885
+ var _macros_i = macros[i], name1 = _macros_i.name, value = _macros_i.value;
5886
+ if (value == undefined) {
5887
+ materialShaderData.enableMacro(name1);
5888
+ } else {
5889
+ materialShaderData.enableMacro(name1, value);
5890
+ }
5891
+ }
5892
+ parseProperty(material, "renderState", renderState);
5893
+ return Promise.all(texturePromises).then(function() {
5894
+ return material;
5895
+ });
5896
+ };
5893
5897
  return MaterialLoader;
5894
5898
  }(Loader);
5895
5899
  MaterialLoader = __decorate([
@@ -5907,7 +5911,7 @@ var MeshLoader = /*#__PURE__*/ function(Loader1) {
5907
5911
  _proto.load = function load(item, resourceManager) {
5908
5912
  var _this = this;
5909
5913
  return new AssetPromise(function(resolve, reject) {
5910
- _this.request(item.url, _extends({}, item, {
5914
+ _this.request(item.url, resourceManager, _extends({}, item, {
5911
5915
  type: "arraybuffer"
5912
5916
  })).then(function(data) {
5913
5917
  return decode(data, resourceManager.engine);
@@ -5930,9 +5934,9 @@ var PrimitiveMeshLoader = /*#__PURE__*/ function(Loader1) {
5930
5934
  return Loader1.apply(this, arguments);
5931
5935
  }
5932
5936
  var _proto = PrimitiveMeshLoader.prototype;
5933
- _proto.load = function load(item, param) {
5934
- var engine = param.engine;
5935
- return this.request(item.url, _extends({}, item, {
5937
+ _proto.load = function load(item, resourceManager) {
5938
+ var engine = resourceManager.engine;
5939
+ return this.request(item.url, resourceManager, _extends({}, item, {
5936
5940
  type: "json"
5937
5941
  })).then(function(data) {
5938
5942
  switch(data.type){
@@ -5981,7 +5985,7 @@ var ProjectLoader = /*#__PURE__*/ function(Loader1) {
5981
5985
  var _this = this;
5982
5986
  var engine = resourceManager.engine;
5983
5987
  return new AssetPromise(function(resolve, reject) {
5984
- _this.request(item.url, _extends({}, item, {
5988
+ _this.request(item.url, resourceManager, _extends({}, item, {
5985
5989
  type: "json"
5986
5990
  })).then(function(data) {
5987
5991
  // @ts-ignore
@@ -6013,7 +6017,9 @@ var SourceFontLoader = /*#__PURE__*/ function(Loader1) {
6013
6017
  _proto.load = function load(item, resourceManager) {
6014
6018
  var _this = this;
6015
6019
  return new AssetPromise(function(resolve, reject) {
6016
- var url = item.url;
6020
+ var _resourceManager__virtualPathMap_item_url;
6021
+ // @ts-ignore
6022
+ var url = (_resourceManager__virtualPathMap_item_url = resourceManager._virtualPathMap[item.url]) != null ? _resourceManager__virtualPathMap_item_url : item.url;
6017
6023
  _this._registerFont(url, url).then(function() {
6018
6024
  var font = new Font(resourceManager.engine, url);
6019
6025
  resolve(font);
@@ -6073,7 +6079,7 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader1) {
6073
6079
  chainPromises[i].cancel();
6074
6080
  }
6075
6081
  });
6076
- var configPromise = _this.request(item.url, _extends({}, item, {
6082
+ var configPromise = _this.request(item.url, resourceManager, _extends({}, item, {
6077
6083
  type: "json"
6078
6084
  }));
6079
6085
  chainPromises.push(configPromise);
@@ -6156,7 +6162,7 @@ var SpriteLoader = /*#__PURE__*/ function(Loader1) {
6156
6162
  var _proto = SpriteLoader.prototype;
6157
6163
  _proto.load = function load(item, resourceManager) {
6158
6164
  var _this = this;
6159
- return this.request(item.url, _extends({}, item, {
6165
+ return this.request(item.url, resourceManager, _extends({}, item, {
6160
6166
  type: "json"
6161
6167
  })).then(function(data) {
6162
6168
  return data.belongToAtlas ? _this._loadFromAtlas(resourceManager, data) : _this._loadFromTexture(resourceManager, data);
@@ -6234,7 +6240,7 @@ var Texture2DLoader = /*#__PURE__*/ function(Loader1) {
6234
6240
  var requestConfig = _extends({}, item, {
6235
6241
  type: "image"
6236
6242
  });
6237
- _this.request(url, requestConfig).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(image) {
6243
+ _this.request(url, resourceManager, requestConfig).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(image) {
6238
6244
  var _item_params;
6239
6245
  var _ref = (_item_params = item.params) != null ? _item_params : {}, format = _ref.format, mipmap = _ref.mipmap, anisoLevel = _ref.anisoLevel, wrapModeU = _ref.wrapModeU, wrapModeV = _ref.wrapModeV, filterMode = _ref.filterMode;
6240
6246
  var texture = new Texture2D(resourceManager.engine, image.width, image.height, format, mipmap);
@@ -6312,7 +6318,7 @@ var TextureCubeLoader = /*#__PURE__*/ function(Loader1) {
6312
6318
  type: "image"
6313
6319
  });
6314
6320
  Promise.all(urls.map(function(url) {
6315
- return _this.request(url, requestConfig);
6321
+ return _this.request(url, resourceManager, requestConfig);
6316
6322
  })).then(function(images) {
6317
6323
  var _images_ = images[0], width = _images_.width, height = _images_.height;
6318
6324
  if (width !== height) {
@@ -6339,6 +6345,91 @@ TextureCubeLoader = __decorate([
6339
6345
  ])
6340
6346
  ], TextureCubeLoader);
6341
6347
 
6348
+ var _ShaderChunkLoader;
6349
+ var ShaderChunkLoader = (_ShaderChunkLoader = /*#__PURE__*/ function(Loader1) {
6350
+ _inherits(ShaderChunkLoader1, Loader1);
6351
+ function ShaderChunkLoader1() {
6352
+ return Loader1.apply(this, arguments);
6353
+ }
6354
+ var _proto = ShaderChunkLoader1.prototype;
6355
+ _proto.load = function load(item, resourceManager) {
6356
+ var url = item.url;
6357
+ return this.request(url, resourceManager, _extends({}, item, {
6358
+ type: "text"
6359
+ })).then(function(code) {
6360
+ ShaderFactory.registerInclude(url.substring(1), code);
6361
+ return ShaderChunkLoader._loadChunksInCode(code, url, resourceManager);
6362
+ });
6363
+ };
6364
+ /**
6365
+ * @internal
6366
+ */ ShaderChunkLoader1._loadChunksInCode = function _loadChunksInCode(code, basePath, resourceManager) {
6367
+ var shaderChunkPaths = new Array();
6368
+ var matches = code.matchAll(ShaderChunkLoader._shaderIncludeRegex);
6369
+ for(var _iterator = _create_for_of_iterator_helper_loose(matches), _step; !(_step = _iterator()).done;){
6370
+ var match = _step.value;
6371
+ var chunkPath = Utils.resolveAbsoluteUrl(basePath, match[1]);
6372
+ if (!ShaderLib[chunkPath.substring(1)]) {
6373
+ shaderChunkPaths.push(chunkPath);
6374
+ }
6375
+ }
6376
+ return Promise.all(shaderChunkPaths.map(function(chunkPath) {
6377
+ return resourceManager.load({
6378
+ type: "ShaderChunk",
6379
+ url: chunkPath
6380
+ });
6381
+ }));
6382
+ };
6383
+ return ShaderChunkLoader1;
6384
+ }(Loader), function() {
6385
+ _ShaderChunkLoader._shaderIncludeRegex = /\s#include\s+"([./][^\\"]+)"/gm;
6386
+ }(), _ShaderChunkLoader);
6387
+ ShaderChunkLoader = __decorate([
6388
+ resourceLoader("ShaderChunk", [
6389
+ "glsl"
6390
+ ])
6391
+ ], ShaderChunkLoader);
6392
+
6393
+ var _ShaderLoader;
6394
+ var ShaderLoader = (_ShaderLoader = /*#__PURE__*/ function(Loader1) {
6395
+ _inherits(ShaderLoader1, Loader1);
6396
+ function ShaderLoader1() {
6397
+ return Loader1.apply(this, arguments);
6398
+ }
6399
+ var _proto = ShaderLoader1.prototype;
6400
+ _proto.load = function load(item, resourceManager) {
6401
+ var _this = this;
6402
+ var url = item.url;
6403
+ return this.request(url, resourceManager, _extends({}, item, {
6404
+ type: "text"
6405
+ })).then(function(code) {
6406
+ var builtinShader = _this._getBuiltinShader(code);
6407
+ if (builtinShader) {
6408
+ return Shader.find(builtinShader);
6409
+ }
6410
+ return ShaderChunkLoader._loadChunksInCode(code, url, resourceManager).then(function() {
6411
+ var shader = Shader.create(code);
6412
+ // @ts-ignore
6413
+ shader._registerPath(url);
6414
+ return shader;
6415
+ });
6416
+ });
6417
+ };
6418
+ _proto._getBuiltinShader = function _getBuiltinShader(code) {
6419
+ var match = code.match(ShaderLoader._builtinRegex);
6420
+ if (match && match[1]) return match[1];
6421
+ };
6422
+ return ShaderLoader1;
6423
+ }(Loader), function() {
6424
+ _ShaderLoader._builtinRegex = /^\s*\/\/\s*@builtin\s+(\w+)/;
6425
+ }(), _ShaderLoader);
6426
+ ShaderLoader = __decorate([
6427
+ resourceLoader(AssetType.Shader, [
6428
+ "gs",
6429
+ "gsl"
6430
+ ])
6431
+ ], ShaderLoader);
6432
+
6342
6433
  var SceneLoader = /*#__PURE__*/ function(Loader1) {
6343
6434
  _inherits(SceneLoader, Loader1);
6344
6435
  function SceneLoader() {
@@ -6349,7 +6440,7 @@ var SceneLoader = /*#__PURE__*/ function(Loader1) {
6349
6440
  var _this = this;
6350
6441
  var engine = resourceManager.engine;
6351
6442
  return new AssetPromise(function(resolve, reject) {
6352
- _this.request(item.url, _extends({}, item, {
6443
+ _this.request(item.url, resourceManager, _extends({}, item, {
6353
6444
  type: "json"
6354
6445
  })).then(function(data) {
6355
6446
  return SceneParser.parse(engine, data).then(function(scene) {
@@ -6913,5 +7004,5 @@ EXT_texture_webp = __decorate([
6913
7004
  registerGLTFExtension("EXT_texture_webp", GLTFExtensionMode.CreateAndParse)
6914
7005
  ], EXT_texture_webp);
6915
7006
 
6916
- export { AccessorType, AnimationClipDecoder, BufferInfo, BufferReader, EditorTextureLoader, FileHeader, GLTFAnimationParser, GLTFAnimatorControllerParser, 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, ParserContext, ParserType, PrefabResource, ReflectionParser, SceneParser, SpecularMode, Texture2DDecoder, decode, decoder, decoderMap, parseSingleKTX, registerGLTFExtension, registerGLTFParser };
7007
+ export { AccessorType, AnimationClipDecoder, BufferInfo, BufferReader, EditorTextureLoader, FileHeader, GLTFAnimationParser, GLTFAnimatorControllerParser, GLTFBufferParser, GLTFBufferViewParser, GLTFEntityParser, GLTFExtensionMode, GLTFExtensionParser, GLTFLoader, GLTFMaterialParser, GLTFMeshParser, GLTFParser, GLTFParserContext, GLTFParserType, GLTFResource, GLTFSceneParser, GLTFSchemaParser, GLTFSkinParser, GLTFTextureParser, GLTFUtils, GLTFValidator, InterpolableValueType, KTX2Loader, KTX2TargetFormat, KTX2Transcoder, MaterialLoaderType, MeshDecoder, ParserContext, ParserType, PrefabResource, ReflectionParser, SceneParser, SpecularMode, Texture2DDecoder, decode, decoder, decoderMap, parseSingleKTX, registerGLTFExtension, registerGLTFParser };
6917
7008
  //# sourceMappingURL=module.js.map