@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/main.js CHANGED
@@ -932,6 +932,18 @@ exports.AnimationClipDecoder = __decorate([
932
932
  decoder("AnimationClip")
933
933
  ], exports.AnimationClipDecoder);
934
934
 
935
+ exports.MaterialLoaderType = void 0;
936
+ (function(MaterialLoaderType) {
937
+ MaterialLoaderType["Vector2"] = "Vector2";
938
+ MaterialLoaderType["Vector3"] = "Vector3";
939
+ MaterialLoaderType["Vector4"] = "Vector4";
940
+ MaterialLoaderType["Color"] = "Color";
941
+ MaterialLoaderType["Float"] = "Float";
942
+ MaterialLoaderType["Texture"] = "Texture";
943
+ MaterialLoaderType["Boolean"] = "Boolean";
944
+ MaterialLoaderType["Integer"] = "Integer";
945
+ })(exports.MaterialLoaderType || (exports.MaterialLoaderType = {}));
946
+
935
947
  exports.SpecularMode = void 0;
936
948
  (function(SpecularMode) {
937
949
  SpecularMode["Sky"] = "Sky";
@@ -1317,32 +1329,6 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
1317
1329
  return SceneParser;
1318
1330
  }(HierarchyParser);
1319
1331
 
1320
- exports.MeshLoader = /*#__PURE__*/ function(Loader1) {
1321
- _inherits(MeshLoader, Loader1);
1322
- function MeshLoader() {
1323
- return Loader1.apply(this, arguments);
1324
- }
1325
- var _proto = MeshLoader.prototype;
1326
- _proto.load = function load(item, resourceManager) {
1327
- var _this = this;
1328
- return new engineCore.AssetPromise(function(resolve, reject) {
1329
- _this.request(item.url, _extends({}, item, {
1330
- type: "arraybuffer"
1331
- })).then(function(data) {
1332
- decode(data, resourceManager.engine).then(function(mesh) {
1333
- resolve(mesh);
1334
- });
1335
- }).catch(reject);
1336
- });
1337
- };
1338
- return MeshLoader;
1339
- }(engineCore.Loader);
1340
- exports.MeshLoader = __decorate([
1341
- engineCore.resourceLoader("Mesh", [
1342
- "prefab"
1343
- ], true)
1344
- ], exports.MeshLoader);
1345
-
1346
1332
  exports.EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
1347
1333
  _inherits(EditorTextureLoader, Loader1);
1348
1334
  function EditorTextureLoader() {
@@ -1352,7 +1338,7 @@ exports.EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
1352
1338
  _proto.load = function load(item, resourceManager) {
1353
1339
  var _this = this;
1354
1340
  return new engineCore.AssetPromise(function(resolve, reject) {
1355
- _this.request(item.url, _extends({}, item, {
1341
+ _this.request(item.url, resourceManager, _extends({}, item, {
1356
1342
  type: "arraybuffer"
1357
1343
  })).then(function(data) {
1358
1344
  decode(data, resourceManager.engine).then(function(texture) {
@@ -1392,7 +1378,7 @@ var AnimationClipLoader = /*#__PURE__*/ function(Loader1) {
1392
1378
  _proto.load = function load(item, resourceManager) {
1393
1379
  var _this = this;
1394
1380
  return new engineCore.AssetPromise(function(resolve, reject) {
1395
- _this.request(item.url, _extends({}, item, {
1381
+ _this.request(item.url, resourceManager, _extends({}, item, {
1396
1382
  type: "arraybuffer"
1397
1383
  })).then(function(data) {
1398
1384
  return decode(data, resourceManager.engine).then(function(clip) {
@@ -1444,7 +1430,7 @@ var AnimatorControllerLoader = /*#__PURE__*/ function(Loader1) {
1444
1430
  _proto.load = function load(item, resourceManager) {
1445
1431
  var _this = this;
1446
1432
  return new engineCore.AssetPromise(function(resolve, reject) {
1447
- _this.request(item.url, _extends({}, item, {
1433
+ _this.request(item.url, resourceManager, _extends({}, item, {
1448
1434
  type: "json"
1449
1435
  })).then(function(data) {
1450
1436
  var animatorController = new engineCore.AnimatorController(resourceManager.engine);
@@ -1549,7 +1535,7 @@ var BufferLoader = /*#__PURE__*/ function(Loader1) {
1549
1535
  return Loader1.apply(this, arguments);
1550
1536
  }
1551
1537
  var _proto = BufferLoader.prototype;
1552
- _proto.load = function load(item) {
1538
+ _proto.load = function load(item, resourceManager) {
1553
1539
  var url = item.url;
1554
1540
  if (isBase64(url)) {
1555
1541
  return new engineCore.AssetPromise(function(resolve) {
@@ -1560,7 +1546,7 @@ var BufferLoader = /*#__PURE__*/ function(Loader1) {
1560
1546
  resolve(result.buffer);
1561
1547
  });
1562
1548
  }
1563
- return this.request(url, _extends({}, item, {
1549
+ return this.request(url, resourceManager, _extends({}, item, {
1564
1550
  type: "arraybuffer"
1565
1551
  }));
1566
1552
  };
@@ -1582,7 +1568,7 @@ var EnvLoader = /*#__PURE__*/ function(Loader1) {
1582
1568
  _proto.load = function load(item, resourceManager) {
1583
1569
  var _this = this;
1584
1570
  return new engineCore.AssetPromise(function(resolve, reject) {
1585
- _this.request(item.url, _extends({}, item, {
1571
+ _this.request(item.url, resourceManager, _extends({}, item, {
1586
1572
  type: "arraybuffer"
1587
1573
  })).then(function(arraybuffer) {
1588
1574
  var _this;
@@ -1664,7 +1650,7 @@ var FontLoader = /*#__PURE__*/ function(Loader1) {
1664
1650
  _proto.load = function load(item, resourceManager) {
1665
1651
  var _this = this;
1666
1652
  return new engineCore.AssetPromise(function(resolve, reject) {
1667
- _this.request(item.url, _extends({}, item, {
1653
+ _this.request(item.url, resourceManager, _extends({}, item, {
1668
1654
  type: "json"
1669
1655
  })).then(function(data) {
1670
1656
  var fontName = data.fontName, fontUrl = data.fontUrl;
@@ -3322,7 +3308,7 @@ exports.KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
3322
3308
  */ _proto.load = function load(item, resourceManager) {
3323
3309
  var _this = this;
3324
3310
  return new engineCore.AssetPromise(function(resolve, reject, setTaskCompleteProgress, setTaskDetailProgress) {
3325
- _this.request(item.url, {
3311
+ _this.request(item.url, resourceManager, {
3326
3312
  type: "arraybuffer"
3327
3313
  }).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(buffer) {
3328
3314
  return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
@@ -3861,8 +3847,11 @@ exports.GLTFSchemaParser = /*#__PURE__*/ function(GLTFParser1) {
3861
3847
  var requestConfig = {
3862
3848
  type: "arraybuffer"
3863
3849
  };
3864
- return engineCore.request(url, requestConfig).onProgress(undefined, context._onTaskDetail).then(function(buffer) {
3865
- restoreBufferRequests.push(new BufferRequestInfo(url, requestConfig));
3850
+ var _context_resourceManager__virtualPathMap_url;
3851
+ // @ts-ignore
3852
+ var remoteUrl = (_context_resourceManager__virtualPathMap_url = context.resourceManager._virtualPathMap[url]) != null ? _context_resourceManager__virtualPathMap_url : url;
3853
+ return engineCore.request(remoteUrl, requestConfig).onProgress(undefined, context._onTaskDetail).then(function(buffer) {
3854
+ restoreBufferRequests.push(new BufferRequestInfo(remoteUrl, requestConfig));
3866
3855
  return GLTFUtils.parseGLB(context, buffer);
3867
3856
  }).then(function(result) {
3868
3857
  var _result;
@@ -4090,11 +4079,14 @@ exports.GLTFBufferParser = /*#__PURE__*/ function(GLTFParser1) {
4090
4079
  _proto._parseSingleBuffer = function _parseSingleBuffer(context, bufferInfo) {
4091
4080
  var glTFResource = context.glTFResource, contentRestorer = context.contentRestorer;
4092
4081
  var url = glTFResource.url;
4082
+ var _context_resourceManager__virtualPathMap_url;
4083
+ // @ts-ignore
4084
+ var remoteUrl = (_context_resourceManager__virtualPathMap_url = context.resourceManager._virtualPathMap[url]) != null ? _context_resourceManager__virtualPathMap_url : url;
4093
4085
  var restoreBufferRequests = contentRestorer.bufferRequests;
4094
4086
  var requestConfig = {
4095
4087
  type: "arraybuffer"
4096
4088
  };
4097
- var absoluteUrl = engineCore.Utils.resolveAbsoluteUrl(url, bufferInfo.uri);
4089
+ var absoluteUrl = engineCore.Utils.resolveAbsoluteUrl(remoteUrl, bufferInfo.uri);
4098
4090
  restoreBufferRequests.push(new BufferRequestInfo(absoluteUrl, requestConfig));
4099
4091
  var promise = engineCore.request(absoluteUrl, requestConfig).onProgress(undefined, context._onTaskDetail);
4100
4092
  context._addTaskCompletePromise(promise);
@@ -5138,9 +5130,8 @@ exports.GLTFLoader = /*#__PURE__*/ function(Loader1) {
5138
5130
  return Promise.resolve();
5139
5131
  };
5140
5132
  _proto.load = function load(item, resourceManager) {
5141
- var url = item.url;
5142
5133
  var params = item.params;
5143
- var glTFResource = new GLTFResource(resourceManager.engine, url);
5134
+ var glTFResource = new GLTFResource(resourceManager.engine, item.url);
5144
5135
  var context = new GLTFParserContext(glTFResource, resourceManager, _extends({
5145
5136
  keepMeshData: false
5146
5137
  }, params));
@@ -5207,7 +5198,7 @@ var PrefabLoader = /*#__PURE__*/ function(Loader1) {
5207
5198
  var _this = this;
5208
5199
  var engine = resourceManager.engine;
5209
5200
  return new engineCore.AssetPromise(function(resolve, reject) {
5210
- _this.request(item.url, _extends({}, item, {
5201
+ _this.request(item.url, resourceManager, _extends({}, item, {
5211
5202
  type: "json"
5212
5203
  })).then(function(data) {
5213
5204
  PrefabParser.parse(engine, item.url, data).then(resolve).catch(reject);
@@ -5235,7 +5226,7 @@ var HDRLoader = (_HDRLoader = // referenece: https://www.flipcode.com/archives/H
5235
5226
  var _this = this;
5236
5227
  return new engineCore.AssetPromise(function(resolve, reject) {
5237
5228
  var engine = resourceManager.engine;
5238
- _this.request(item.url, _extends({}, item, {
5229
+ _this.request(item.url, resourceManager, _extends({}, item, {
5239
5230
  type: "arraybuffer"
5240
5231
  })).then(function(buffer) {
5241
5232
  var uint8Array = new Uint8Array(buffer);
@@ -5550,8 +5541,8 @@ var JSONLoader = /*#__PURE__*/ function(Loader1) {
5550
5541
  return Loader1.apply(this, arguments);
5551
5542
  }
5552
5543
  var _proto = JSONLoader.prototype;
5553
- _proto.load = function load(item) {
5554
- return this.request(item.url, _extends({}, item, {
5544
+ _proto.load = function load(item, resourceManager) {
5545
+ return this.request(item.url, resourceManager, _extends({}, item, {
5555
5546
  type: "json"
5556
5547
  }));
5557
5548
  };
@@ -5758,7 +5749,7 @@ var KTXCubeLoader = /*#__PURE__*/ function(Loader1) {
5758
5749
  var _this = this;
5759
5750
  return new engineCore.AssetPromise(function(resolve, reject) {
5760
5751
  Promise.all(item.urls.map(function(url) {
5761
- return _this.request(url, _extends({}, item, {
5752
+ return _this.request(url, resourceManager, _extends({}, item, {
5762
5753
  type: "arraybuffer"
5763
5754
  }));
5764
5755
  })).then(function(data) {
@@ -5794,7 +5785,7 @@ var KTXLoader = /*#__PURE__*/ function(Loader1) {
5794
5785
  _proto.load = function load(item, resourceManager) {
5795
5786
  var _this = this;
5796
5787
  return new engineCore.AssetPromise(function(resolve, reject) {
5797
- _this.request(item.url, _extends({}, item, {
5788
+ _this.request(item.url, resourceManager, _extends({}, item, {
5798
5789
  type: "arraybuffer"
5799
5790
  })).then(function(bin) {
5800
5791
  var parsedData = parseSingleKTX(bin);
@@ -5837,63 +5828,76 @@ var MaterialLoader = /*#__PURE__*/ function(Loader1) {
5837
5828
  _proto.load = function load(item, resourceManager) {
5838
5829
  var _this = this;
5839
5830
  return new engineCore.AssetPromise(function(resolve, reject) {
5840
- _this.request(item.url, _extends({}, item, {
5831
+ _this.request(item.url, resourceManager, _extends({}, item, {
5841
5832
  type: "json"
5842
5833
  })).then(function(materialSchema) {
5843
- var _loop = function(key) {
5844
- var _shaderData_key = shaderData[key], type = _shaderData_key.type, value = _shaderData_key.value;
5845
- switch(type){
5846
- case "Vector2":
5847
- materialShaderData.setVector2(key, new engineMath.Vector2(value.x, value.y));
5848
- break;
5849
- case "Vector3":
5850
- materialShaderData.setVector3(key, new engineMath.Vector3(value.x, value.y, value.z));
5851
- break;
5852
- case "Vector4":
5853
- materialShaderData.setVector4(key, new engineMath.Vector4(value.x, value.y, value.z, value.w));
5854
- break;
5855
- case "Color":
5856
- materialShaderData.setColor(key, new engineMath.Color(value.r, value.g, value.b, value.a));
5857
- break;
5858
- case "Float":
5859
- materialShaderData.setFloat(key, value);
5860
- break;
5861
- case "Texture":
5862
- texturePromises.push(// @ts-ignore
5863
- resourceManager.getResourceByRef(value).then(function(texture) {
5864
- materialShaderData.setTexture(key, texture);
5865
- }));
5866
- break;
5867
- case "Boolean":
5868
- materialShaderData.setInt(key, value ? 1 : 0);
5869
- break;
5870
- case "Integer":
5871
- materialShaderData.setInt(key, Number(value));
5872
- break;
5873
- }
5874
- };
5875
5834
  var engine = resourceManager.engine;
5876
- var name = materialSchema.name, shader = materialSchema.shader, shaderData = materialSchema.shaderData, macros = materialSchema.macros, renderState = materialSchema.renderState;
5877
- var material = new engineCore.Material(engine, engineCore.Shader.find(shader));
5878
- material.name = name;
5879
- var texturePromises = new Array();
5880
- var materialShaderData = material.shaderData;
5881
- for(var key in shaderData)_loop(key);
5882
- for(var i = 0, length = macros.length; i < length; i++){
5883
- var _macros_i = macros[i], name1 = _macros_i.name, value = _macros_i.value;
5884
- if (value == undefined) {
5885
- materialShaderData.enableMacro(name1);
5886
- } else {
5887
- materialShaderData.enableMacro(name1, value);
5888
- }
5835
+ var shaderRef = materialSchema.shaderRef, shaderName = materialSchema.shader;
5836
+ if (shaderRef) {
5837
+ resolve(resourceManager// @ts-ignore
5838
+ .getResourceByRef(shaderRef).then(function(shader) {
5839
+ return _this.getMaterialByShader(materialSchema, shader, engine);
5840
+ }));
5841
+ } else {
5842
+ // compatible with 1.2-pre version material schema
5843
+ var shader = engineCore.Shader.find(shaderName);
5844
+ resolve(_this.getMaterialByShader(materialSchema, shader, engine));
5889
5845
  }
5890
- parseProperty(material, "renderState", renderState);
5891
- return Promise.all(texturePromises).then(function() {
5892
- resolve(material);
5893
- });
5894
5846
  }).catch(reject);
5895
5847
  });
5896
5848
  };
5849
+ _proto.getMaterialByShader = function getMaterialByShader(materialSchema, shader, engine) {
5850
+ var _loop = function(key) {
5851
+ var _shaderData_key = shaderData[key], type = _shaderData_key.type, value = _shaderData_key.value;
5852
+ switch(type){
5853
+ case exports.MaterialLoaderType.Vector2:
5854
+ materialShaderData.setVector2(key, new engineMath.Vector2(value.x, value.y));
5855
+ break;
5856
+ case exports.MaterialLoaderType.Vector3:
5857
+ materialShaderData.setVector3(key, new engineMath.Vector3(value.x, value.y, value.z));
5858
+ break;
5859
+ case exports.MaterialLoaderType.Vector4:
5860
+ materialShaderData.setVector4(key, new engineMath.Vector4(value.x, value.y, value.z, value.w));
5861
+ break;
5862
+ case exports.MaterialLoaderType.Color:
5863
+ materialShaderData.setColor(key, new engineMath.Color(value.r, value.g, value.b, value.a));
5864
+ break;
5865
+ case exports.MaterialLoaderType.Float:
5866
+ materialShaderData.setFloat(key, value);
5867
+ break;
5868
+ case exports.MaterialLoaderType.Texture:
5869
+ texturePromises.push(// @ts-ignore
5870
+ engine.resourceManager.getResourceByRef(value).then(function(texture) {
5871
+ materialShaderData.setTexture(key, texture);
5872
+ }));
5873
+ break;
5874
+ case exports.MaterialLoaderType.Boolean:
5875
+ materialShaderData.setInt(key, value ? 1 : 0);
5876
+ break;
5877
+ case exports.MaterialLoaderType.Integer:
5878
+ materialShaderData.setInt(key, Number(value));
5879
+ break;
5880
+ }
5881
+ };
5882
+ var name = materialSchema.name, shaderData = materialSchema.shaderData, macros = materialSchema.macros, renderState = materialSchema.renderState;
5883
+ var material = new engineCore.Material(engine, shader);
5884
+ material.name = name;
5885
+ var texturePromises = new Array();
5886
+ var materialShaderData = material.shaderData;
5887
+ for(var key in shaderData)_loop(key);
5888
+ for(var i = 0, length = macros.length; i < length; i++){
5889
+ var _macros_i = macros[i], name1 = _macros_i.name, value = _macros_i.value;
5890
+ if (value == undefined) {
5891
+ materialShaderData.enableMacro(name1);
5892
+ } else {
5893
+ materialShaderData.enableMacro(name1, value);
5894
+ }
5895
+ }
5896
+ parseProperty(material, "renderState", renderState);
5897
+ return Promise.all(texturePromises).then(function() {
5898
+ return material;
5899
+ });
5900
+ };
5897
5901
  return MaterialLoader;
5898
5902
  }(engineCore.Loader);
5899
5903
  MaterialLoader = __decorate([
@@ -5911,7 +5915,7 @@ var MeshLoader = /*#__PURE__*/ function(Loader1) {
5911
5915
  _proto.load = function load(item, resourceManager) {
5912
5916
  var _this = this;
5913
5917
  return new engineCore.AssetPromise(function(resolve, reject) {
5914
- _this.request(item.url, _extends({}, item, {
5918
+ _this.request(item.url, resourceManager, _extends({}, item, {
5915
5919
  type: "arraybuffer"
5916
5920
  })).then(function(data) {
5917
5921
  return decode(data, resourceManager.engine);
@@ -5934,9 +5938,9 @@ var PrimitiveMeshLoader = /*#__PURE__*/ function(Loader1) {
5934
5938
  return Loader1.apply(this, arguments);
5935
5939
  }
5936
5940
  var _proto = PrimitiveMeshLoader.prototype;
5937
- _proto.load = function load(item, param) {
5938
- var engine = param.engine;
5939
- return this.request(item.url, _extends({}, item, {
5941
+ _proto.load = function load(item, resourceManager) {
5942
+ var engine = resourceManager.engine;
5943
+ return this.request(item.url, resourceManager, _extends({}, item, {
5940
5944
  type: "json"
5941
5945
  })).then(function(data) {
5942
5946
  switch(data.type){
@@ -5985,7 +5989,7 @@ var ProjectLoader = /*#__PURE__*/ function(Loader1) {
5985
5989
  var _this = this;
5986
5990
  var engine = resourceManager.engine;
5987
5991
  return new engineCore.AssetPromise(function(resolve, reject) {
5988
- _this.request(item.url, _extends({}, item, {
5992
+ _this.request(item.url, resourceManager, _extends({}, item, {
5989
5993
  type: "json"
5990
5994
  })).then(function(data) {
5991
5995
  // @ts-ignore
@@ -6017,7 +6021,9 @@ var SourceFontLoader = /*#__PURE__*/ function(Loader1) {
6017
6021
  _proto.load = function load(item, resourceManager) {
6018
6022
  var _this = this;
6019
6023
  return new engineCore.AssetPromise(function(resolve, reject) {
6020
- var url = item.url;
6024
+ var _resourceManager__virtualPathMap_item_url;
6025
+ // @ts-ignore
6026
+ var url = (_resourceManager__virtualPathMap_item_url = resourceManager._virtualPathMap[item.url]) != null ? _resourceManager__virtualPathMap_item_url : item.url;
6021
6027
  _this._registerFont(url, url).then(function() {
6022
6028
  var font = new engineCore.Font(resourceManager.engine, url);
6023
6029
  resolve(font);
@@ -6077,7 +6083,7 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader1) {
6077
6083
  chainPromises[i].cancel();
6078
6084
  }
6079
6085
  });
6080
- var configPromise = _this.request(item.url, _extends({}, item, {
6086
+ var configPromise = _this.request(item.url, resourceManager, _extends({}, item, {
6081
6087
  type: "json"
6082
6088
  }));
6083
6089
  chainPromises.push(configPromise);
@@ -6160,7 +6166,7 @@ var SpriteLoader = /*#__PURE__*/ function(Loader1) {
6160
6166
  var _proto = SpriteLoader.prototype;
6161
6167
  _proto.load = function load(item, resourceManager) {
6162
6168
  var _this = this;
6163
- return this.request(item.url, _extends({}, item, {
6169
+ return this.request(item.url, resourceManager, _extends({}, item, {
6164
6170
  type: "json"
6165
6171
  })).then(function(data) {
6166
6172
  return data.belongToAtlas ? _this._loadFromAtlas(resourceManager, data) : _this._loadFromTexture(resourceManager, data);
@@ -6238,7 +6244,7 @@ var Texture2DLoader = /*#__PURE__*/ function(Loader1) {
6238
6244
  var requestConfig = _extends({}, item, {
6239
6245
  type: "image"
6240
6246
  });
6241
- _this.request(url, requestConfig).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(image) {
6247
+ _this.request(url, resourceManager, requestConfig).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(image) {
6242
6248
  var _item_params;
6243
6249
  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;
6244
6250
  var texture = new engineCore.Texture2D(resourceManager.engine, image.width, image.height, format, mipmap);
@@ -6316,7 +6322,7 @@ var TextureCubeLoader = /*#__PURE__*/ function(Loader1) {
6316
6322
  type: "image"
6317
6323
  });
6318
6324
  Promise.all(urls.map(function(url) {
6319
- return _this.request(url, requestConfig);
6325
+ return _this.request(url, resourceManager, requestConfig);
6320
6326
  })).then(function(images) {
6321
6327
  var _images_ = images[0], width = _images_.width, height = _images_.height;
6322
6328
  if (width !== height) {
@@ -6343,6 +6349,91 @@ TextureCubeLoader = __decorate([
6343
6349
  ])
6344
6350
  ], TextureCubeLoader);
6345
6351
 
6352
+ var _ShaderChunkLoader;
6353
+ var ShaderChunkLoader = (_ShaderChunkLoader = /*#__PURE__*/ function(Loader1) {
6354
+ _inherits(ShaderChunkLoader1, Loader1);
6355
+ function ShaderChunkLoader1() {
6356
+ return Loader1.apply(this, arguments);
6357
+ }
6358
+ var _proto = ShaderChunkLoader1.prototype;
6359
+ _proto.load = function load(item, resourceManager) {
6360
+ var url = item.url;
6361
+ return this.request(url, resourceManager, _extends({}, item, {
6362
+ type: "text"
6363
+ })).then(function(code) {
6364
+ engineCore.ShaderFactory.registerInclude(url.substring(1), code);
6365
+ return ShaderChunkLoader._loadChunksInCode(code, url, resourceManager);
6366
+ });
6367
+ };
6368
+ /**
6369
+ * @internal
6370
+ */ ShaderChunkLoader1._loadChunksInCode = function _loadChunksInCode(code, basePath, resourceManager) {
6371
+ var shaderChunkPaths = new Array();
6372
+ var matches = code.matchAll(ShaderChunkLoader._shaderIncludeRegex);
6373
+ for(var _iterator = _create_for_of_iterator_helper_loose(matches), _step; !(_step = _iterator()).done;){
6374
+ var match = _step.value;
6375
+ var chunkPath = engineCore.Utils.resolveAbsoluteUrl(basePath, match[1]);
6376
+ if (!engineCore.ShaderLib[chunkPath.substring(1)]) {
6377
+ shaderChunkPaths.push(chunkPath);
6378
+ }
6379
+ }
6380
+ return Promise.all(shaderChunkPaths.map(function(chunkPath) {
6381
+ return resourceManager.load({
6382
+ type: "ShaderChunk",
6383
+ url: chunkPath
6384
+ });
6385
+ }));
6386
+ };
6387
+ return ShaderChunkLoader1;
6388
+ }(engineCore.Loader), function() {
6389
+ _ShaderChunkLoader._shaderIncludeRegex = /\s#include\s+"([./][^\\"]+)"/gm;
6390
+ }(), _ShaderChunkLoader);
6391
+ ShaderChunkLoader = __decorate([
6392
+ engineCore.resourceLoader("ShaderChunk", [
6393
+ "glsl"
6394
+ ])
6395
+ ], ShaderChunkLoader);
6396
+
6397
+ var _ShaderLoader;
6398
+ var ShaderLoader = (_ShaderLoader = /*#__PURE__*/ function(Loader1) {
6399
+ _inherits(ShaderLoader1, Loader1);
6400
+ function ShaderLoader1() {
6401
+ return Loader1.apply(this, arguments);
6402
+ }
6403
+ var _proto = ShaderLoader1.prototype;
6404
+ _proto.load = function load(item, resourceManager) {
6405
+ var _this = this;
6406
+ var url = item.url;
6407
+ return this.request(url, resourceManager, _extends({}, item, {
6408
+ type: "text"
6409
+ })).then(function(code) {
6410
+ var builtinShader = _this._getBuiltinShader(code);
6411
+ if (builtinShader) {
6412
+ return engineCore.Shader.find(builtinShader);
6413
+ }
6414
+ return ShaderChunkLoader._loadChunksInCode(code, url, resourceManager).then(function() {
6415
+ var shader = engineCore.Shader.create(code);
6416
+ // @ts-ignore
6417
+ shader._registerPath(url);
6418
+ return shader;
6419
+ });
6420
+ });
6421
+ };
6422
+ _proto._getBuiltinShader = function _getBuiltinShader(code) {
6423
+ var match = code.match(ShaderLoader._builtinRegex);
6424
+ if (match && match[1]) return match[1];
6425
+ };
6426
+ return ShaderLoader1;
6427
+ }(engineCore.Loader), function() {
6428
+ _ShaderLoader._builtinRegex = /^\s*\/\/\s*@builtin\s+(\w+)/;
6429
+ }(), _ShaderLoader);
6430
+ ShaderLoader = __decorate([
6431
+ engineCore.resourceLoader(engineCore.AssetType.Shader, [
6432
+ "gs",
6433
+ "gsl"
6434
+ ])
6435
+ ], ShaderLoader);
6436
+
6346
6437
  var SceneLoader = /*#__PURE__*/ function(Loader1) {
6347
6438
  _inherits(SceneLoader, Loader1);
6348
6439
  function SceneLoader() {
@@ -6353,7 +6444,7 @@ var SceneLoader = /*#__PURE__*/ function(Loader1) {
6353
6444
  var _this = this;
6354
6445
  var engine = resourceManager.engine;
6355
6446
  return new engineCore.AssetPromise(function(resolve, reject) {
6356
- _this.request(item.url, _extends({}, item, {
6447
+ _this.request(item.url, resourceManager, _extends({}, item, {
6357
6448
  type: "json"
6358
6449
  })).then(function(data) {
6359
6450
  return SceneParser.parse(engine, data).then(function(scene) {